COPYING0000644000175000017500000001347012240711455012423 0ustar mquinsonmquinsonCopyright (c) 2008-2013. The PLM Team: Martin Quinson, Gérald Oster and others. (see the git logs for the exact authorship of each file). The PLM software was written internally by the team. This software is distributed under the GNU general public license version 3 (GPLv3). The pedagogical material distributed with the PLM is covered both by the GPLv3 license (mainly for the included code) and by the CC-BY-SA license (mainly for the other media files). But the exact boundary here between the source code and the media is left as an exercise to the reader, so this material is distributed under both licenses for sake of simplicity. The GPLv3 license can be found in the archive under the name LICENSE-GPL-3. The CC-BY-SA license can be found online: http://creativecommons.org/licenses/by-sa/3.0/ The whole artwork is free content, licenced under CC-BY-SA, GPL, LGPL and/or CC0-public domain. Some parts were done by us, other parts were borowed from free collections. The specific license and origin of each files is listed below. ========================================================================= The artwork we did ourselves is distributed under the CC-BY-SA license. img/BuggleQuestBack.png img/BuggleQuestBETA.png img/log.png img/edit_leftwall.png img/edit_baggle.png img/edit_topwall.png img/lightbot_f1.png img/lightbot_f2.png img/lightbot_noop.png img/world_arrays.svg img/world_bat.svg img/world_buggle.svg img/world_hanoi.png img/world_sorting.png img/btn-reset.png is a mashup of mine between btn-start.png (CC-BY-SA) and http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/run-rebuild.png (LGPL-2.1). The result can be used under either licence. Several exercises provide screenshot of PLM itself to help the student. These images are naturally CC-BY-SA too. ========================================================================= We borrowed the following icons, that are CC-BY-SA too: * The bunny and egg in BuggleQuest universe come from: plm/universe/bugglequest/ui/egg.png http://openclipart.org/detail/93979/ plm/universe/bugglequest/ui/rabbit.png http://openclipart.org/detail/23052/ * Buttons: img/btn-demo.png: http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/games-solve.png img/btn-switch-exo.png: http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/code-class.png img/btn-debug-step.png: http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/debug-step-instruction.png img/btn-debug.png http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/go-next-context.png img/btn-start.png http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/media-playback-start-8.png img/btn-stop.png http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/media-playback-stop-8.png img/btn-load-lesson.png http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/address-book-new-3.png * light for lightbot: img/lightbot_light.png http://openiconlibrary.sourceforge.net/gallery2/?./Icons/actions/help-hint.png img/world_lightbot.png (same file) ========================================================================= The following icons are LGPL: * We borrowed several of them to the nuvola icon them for KDE 3.x img/btn-alert-off.png: nuvola/32x32/actions/irkickoff.png img/btn-alert-on.png: nuvola/32x32/actions/irkickflash.png img/console_delete.png: nuvola/22x22/actions/edit_remove.png img/console_add.png: nuvola/22x22/actions/edit_add.png img/console_refresh.png: nuvola/22x22/actions/reload_page.png img/edit_colors.png: nuvola/32x32/actions/colorize.png img/edit_text.png: nuvola/32x32/apps/applixware.png img/lightbot_forward.png nuvola/32x32/actions/up.png img/lightbot_left.png nuvola/32x32/actions/1leftarrow.png img/lightbot_right.png nuvola/32x32/actions/1rightarrow.png img/lightbot_jump.png nuvola/32x32/actions/2uparrow.png img/lightbot_light.png nuvola/32x32/actions/ledyellow.png img/menu-locale.png: nuvola/32x32/apps/locale.png ========================================================================= The following logos are GPLv2: img/busyicon/*: (gnome) http://openiconlibrary.sourceforge.net/gallery2/?./Icons/animations/process-working.png img/world_turtle.png : stolen to the kturtle project, that is GPLv2+ ========================================================================= The logos of the programming languages are certainly free, even if I didn't dig for their exact licence. img/lang_java.png img/lang_javascript.png img/lang_python.png img/lang_ruby.png img/lang_scala.png ========================================================================= Public domain images (CC0 PD) * img/focus_* These images were retrieved from http://openclipart.org/ even if I didn't write down the exact URL for them. * img/trophy.png http://openclipart.org/detail/48937/trophy-by-sheikh_tuhin * img/world_baseball.png http://openclipart.org/detail/76927/baseball2-by-shokunin ========================================================================= The following images are believed to be free, even if I cannot remember where they come from. We should maybe play safe and replace them. But as you can see from the rest of the project, we are better programmers than designers... You are welcome if you can help. * src/lessons/sort/pancake/img/world_pancake.png It was retrieved from http://omgwtflols.deviantart.com/art/Pixel-Art-Pancakes-with-syrup-298700868 It seems rather free, but the exact license is not known. * img/world_lesson.png I cannot remember where it comes from. It looks very similar to the logo for education applications in KDE so I guess it's ok. And since I'm planning at removing the whole concept of lessons, it's probably not worth digging any further on this one.ChangeLog0000644000175000017500000005234612240711455013147 0ustar mquinsonmquinson20131113: Release 2.3 * LectureChooser: fix preferred size to the MainFrame one (fix #118) * AboutDialog: display the license and ChangeLog too * TurtleWorld: better error message when the amount of lines differs * TurtleWorld: new builtins to hide()/show() the turtle. * PancakeWorld: The larger pancake is getStackSize()-1 * PancakeWorld: avoid ../ in the icon path: doesn't work in jarfiles * recursion.DragonCurve1: slight mission text improvement * recursion.SquareKoch: new exercise (variation over the Koch idea) * recursion.PentaKoch: new exercise (another variation of Koch curve) * recursion.HexaKoch: new exercise (yet another Koch curve) * recursion.Crab: new exercise (another L-system: the Lévy C curve) * sort.dutchflag: mention about the existing colors in the doc * sort.dutchflag: allow to play with the mouse through drag and drop * recursion.hanoi: builtin getRadius(slot): radius of top-most disk * recursion.hanoi: allow to play with the mouse through drag and drop * MainFrame: Implement a "Save a picture" feature, useful in turtleart * welcome.MethodsArgs.py: compare directions without relying on their name to avoid l10n issues (fix #122) * As usual, fix some typos in the French translation 20130930: Release 2.2.7 * recursion.spiralUse: rewrite to leverage the creative mode, so that students don't spend too much time seeking for the reward. * recursion.tree: make the color changing robust to negative steps * recursion.tree: forbid teleporting This was used by some students to make the method idempotent. * recursion.sierpinski: rewrite to simplify the code to be written * recursion.hanoi: Simplify by explicitely passing the index of the unused peg to the recursive function. * TurtleWorld: synchronize to avoid a concurent modification when a shape is added while we are computing the toString() of the world * sort.dutchflag: New universe/exercise on the Dutch Flag Sorting * sort.pancake: Correctly reset the move count on need * sort.insertion: fix path to img after recent package reorg * recursion.koch: give one color per side to ease the understanding * sort.CocktailSort2: don't use ++ but += 1 in pseudocode 20130924: Release 2.2.6 * SortingView: display the value on the left of temporal view, not the index * TurtleArt: force a newline every 5 exercises as it does not work well with Java7 otherwise. * TurtleArt.Flower: new exercise (provided by a student :) * GnomeSort: fix a bug in the correction, where we stay at i=0 when there is no previous pot instead of moving forward. * TurtleWorld.equals&diffTo: synchronized on shapes to avoid issues when the stop is pressed, for example * TurtleWorld: order the points in each segment so that the line (ab, cd) is detected as equal to (cd, ab) * TurtleWorld.diffTo: i18n and improve error messages * recursion.Circle: kill exercise. It is superseeded by turtleart. * recursion.Star: kill exercise. It is superseeded by turtleart. * recursion.tree: rework to make it easier to understand - each level is given its own color - we provide a subtree() that is correct (but the colors) to ease the debugging of user's code * As usual, fix a bunch of typos in the French translation 20130916: Release 2.2.5: SortingWorld needs *more* polishing. * Align equals() and diffTo() of sortedWorld to avoid false negatives * Internationalize and translate the error messages of SortedWorld * sort.Bubble3: there is no 'break' in scala * Color the statusbar in red when a world is running so that people notice that there is more than one world. * SortingWorld: give large worlds a reduced delay so that people don't wait for the perf world too much even if they don't click 20130916: Release 2.2.4: SortingWorld also needs polishing. * Disable the "help me" button if the appengine is disabled * Document the existing colors in Buggle&Turtle worlds * Update "About world" dialog's title changed on Human lang switches * Change buggle.setColor to setBodyColor so that people used to logo don't use it to change the brush color. * Compare turtle worlds with an upsilon to avoid false negatives. * Fix an error in the pseudocode of CombSort * Fix a bunch of typos in the French translations. * sorting world: represent values as letters so that they don't get mixed with indexes. 20130912: Release 2.2.3: Let's start adding new bu^Wfeatures again. * Let every interactive control issue the source code doing the same thing when they are clicked, so that the students can copy/paste. Thanks to Laurent Guittet for suggesting this change, I love it. * Buggle: Translate the direction names, too * TurtleWorld: add a new clear() primitive that clears the sheet * New feature: import/export session to the cloud. You don't have to struggle with a bunch of zip files anymore. * Rewamp the ExerciseFailedDialog to be more user friendly. Its title is less demotival, it hints about how to fix the issue, and the textual diff (that can be big and ugly) is hidden by default. * BuggleWorld: dropping a baggle was possible even if you had none * welcome.BlueTicket: Fix typo in French * BatEntity: more informative error message when an exception is raised * FeedbackDialog: should not be modal to enable copy/paste * maze.island: move the initial positions to make cheating harder * maze.shortestpath: also translate the helper methods in scala and python * maze.shortestpath: put the distance on every cell, not just until we found the buggle. Otherwise, the student must do exactly the same traversal, which is not part of the spec, making it harder. * Search windows directories first as the user.home property cannot be trusted here at Telecom Nancy. * welcome.basic.meth: reword the mission to make clear that the code will get called automatically. * Don't remove runner threads too early from their set so that "Stop" still find them to stop them (fix #108) * welcome.array.has271: improve the mission text * welcome.traversal.*: fix the java and scala templating * welcome.variable: speak about != that is handy here 20130910: Release 2.2.2: the 2 cts release. * welcome.LoopCourse: specify that the colors get updated automatically * welcome.NearHundred: fix french translation (was plainly wrong) * welcome.SlugHunting: align templating and mission: isFacingTrail must be copied * welcome.Variables: scala mandates an initial value (fix #109) plus various small improvements * Unify all Dave messages (marking functions that are forbidden in a given exercise -- like setPos in maze exercises), to ensure that they are properly translated despite the fact that gettext don't dig into scala and python files for string to translate. * Specify a working font for plain text to help the poor Mac users * welcome.RunHalf: fix the scala templating * welcome.FlowerPot: fix the french translation (growFlowers with a s) * FeedbackDialog: reset the text on each invocation * welcome.MethodsArgs: Fix a faulty copy/paste in scala prototypes * welcome.LoopFor: Fix the scala syntax of for loops * welcome.RunHalf: the description and the given condition did not match 20130908: Release 2.2.1: C'mon, dudes. Break that one if you dare. * Allow a creative mode, perfectly adapted to open LOGO exercises. The world is never reset nor compared to the "expected" output. * Fix the dist build to not take all files copied by eclipse (fix #101) * welcome.PictureMono*: fix the templating of run() (fix #102) * welcome.Instructions: Fix a translation error (fix #103) * welcome.slugTracking: Mention also in scala and python how to test whether the ground color is green (fix #104) * Bat templating didn't even compile in Java and Scala, oops (fix #105) * turmite.hello: fix mission text: left=2; right=8 * welcome.Poucet: specify how intersection cells must be counted * welcome.LoopStairs: say that there is no need to manually fiddle with the colors. 20130830: Release 2.2. The funny times are over * Rebrand JLM into PLM (Programmer's Learning Machine) * Turtles: Allow for hints on segment sizes * Turtle.circle(): New primitive to draw circles directly. * New lesson turtleart on the classical Logo geometric figures * Upgrade our twitter4j dependency to use the new twitter API 1.1 Twitter dropped support for the 1.0 API a while ago. * Drop the identi.ca spy. It does not work since the upstream move from status.net to pump.io, and I fail fixing it. * Drop our prototypal jabber chat dialog. It was not activated because it's not adapted: student only use it to try to cheat and get easy answers. A forum would be better. Students are authenticated, and the messages moderated (France IOI does that) * Build a plm-light jarfile, without scala and python dependencies. These langs remain usable if the deps are independently installed. * Specify a sain font as default to help Mac users (fix #100) 20130820: * RELEASE 2.1, the 100th day. * Introduce Scala as a new programing language (version 2.10+ required) * Port all exercises to scala. * Change turnLeft()/turnRight() to left()/right() in buggles & turtles * Translate all builtins of buggles, turtles and sorts to French: It is now possible to write avance() instead of forward() * Review all translations for uniformity and to iron out some typos * Test the compilation process in our JUnit tests, for Java and Scala. * Mark many more strings for translation in the engine. * Allow [!java]...[/!] constructs in mission texts to adapt to progLang * In debug mode, all adaptations of all progLangs are displayed, with a color code for each. This was mandatory with a third main progLang * Partially document the black magic fueling ExerciseTemplatingEntity Erk, this class is based on ... inventive hacks ;) * Property jlm.display.fontsize sets the size of the mission texts (default: 10px; must be valid in a CSS) * MissionEditorApp: little application to edit the mission texts with realtime rendering after applying our pseudo-markdown directives * lessons/welcome/methods/picture/PictureMono*: new exercises on drawing, but without the color so that it can come early in the learning process, when we don't have methods parameters yet * lessons/welcome/methods/flowerpot/*: two new exercises training on methods (and decomposition) * New lib/jsyntaxpane.jar, from debian package fixing some upstream bugs - Contextual menu now works, as well as Ctrl-Z/Ctrl-Y, etc 20130804: * RELEASE 2.0, the revolutionary night. * Remove the array world. It was not helping very much when compared to the bat world. * Use '' to get ' in translated strings to please MessageFormat. * Pythonize the documentation of all universes * add a button to lessonChooser to load lessons from disk * Disable the step-by-step mode when stopping or swichting the lesson or the exercise (fix #1) * Editor: kill buggles that are in outer space after world resizing. * Disable JavaScript, it's really not ready for the big night. * Update our version of jsyntaxpane to get a fully working jar file. 20130730: * Pythonize new exercises * Retranslate everything back to 100% in French * Various cosmetics, small refactoring and little bug fixes * Lesson navigator: Display which exercise are passed in which language * Entity.isSelected() returns whether /this/ is selected in the UI * Change Buggle.pickUpBaggle() to pickupBaggle() for consistency * ExerciseTemplated: Trim leading spaces of non-python templates * Fix BuggleView for non-square worlds (Fix: #83) * Implement a graphical lesson chooser (Fix: #19) * Rewrite and integrate all of the baseball exercises * Give the baseball universe an historical view, as for sorting one * PancakeView: Reimplement from scratch; can now be played with mouse * Split hanoi towers and the turmites out in their own lessons * Remove the meta lesson. It was not done, seemed difficult to finish, and complicated the code of the universes. (Fix: #2) 20130720: * Integrate the pancake exercises into the sorting lesson * New pancake exercise about implementing Gates' algorithm * 1 more exercise about the while loop: Moria * 2 more exercises about variables: Big Buggles's Race (1&2) * 3 more exercises about the for loop: Stairs, Course and CourseForest * 1 more exercise about the do/while loop: Poucet * Better integrate the slug hunting exercises; add new one (on parameters) 20130710: * Fix the temporal view of the sorting world (plus various cleanups) * Allow to provide feedback easily. One click to open the dialog window, type your text, validate, and it's automatically saved with an http POST request. * Properly select the current exercise in the lesson navigator * Save the currently used programming language in the property file * Current exercise gets saved in zip files and reselected when loading * Speeds initialization by directly building everything in the right locale instead of building it with no locale, and then updating it * Progress spys (twitter/identica) get controled through properties * Default values of properties get saved to local file to ease their discover and tuning by users 20130705: * RELEASE 1.99 * Pythonize all lessons: maze, recursion, sort and bat/string * Fix: demo mode in python was without delay * print() in python was not playing well with graphical console * Update French translation of missions: back to 100% 20130621: * Improve the BuggleWorld I/O and the BuggleWorldEditor: - better detection and error messages of invalid map files - every world's characteristic can be edited in the editor - buggles are read from/saved into world files * Update all existing worlds on disk to this format * Speedup the lesson loading with a cache of answer worlds: - If a relevant .map file exists, don't execute the answer entity - If not, save the .map file after execution for the next time 20130616: * RELEASE 1.98 * Squeeze a bit our sources so that we can package it for Debian * Add a logo to the distribution (img/logo.png) * List the exact license of every image used in COPYING, and replace the ones for which we lost the license on the way. JLM is now perfectly clean wrt the licensing legal consideration. * BatEntities now work within the unit tests too (fix #67) * Integrate the bat exercise using integer arrays into the welcome lesson (fix #21) * Welcome lesson ported to python, both code and missions (fix: #89) 20130531: * Try harder to find a path where we can save our data 20130530: * Make sure that jarfiles compiled with Java 6 also work with Java 7 20130529a: * Really kill jung in the source code too so that distributed jar files actually work -- sorry. 20130529: * Reintroduce the student progression listeners. It was turned off for the debugging process, but that shouldnt be part of a released version. 20130528: * New lesson navigator based on JTree (fix #71) * Some better looking icons, with known licenses * Basic testing infrastructure (fix #8) It ensures that python entities manage to solve the Java worlds. This could be extended in many way, including: - The java entity is not compiled, so there is no compilation test - Bat exercises are too specific to be tested this way. But at least, we have a testing infrastructure! * Exception raised in python code (including syntax error) are now correcly handled (fix #66 and #78) * Basic i18n infrastructure allowing to translate the user interface (fix #76) * Kill the ability to have more than one view per world (fix #35) * Save the session before switching exo/lesson to not loose student's edits (fix #45) 20130517: * Package baseball exercises in their own directories * Add a control panel for the Pancake Worlds ( raw & burned ) 20130516: * Add an icon depicting the programming language in the status bar * Various polishing of the exercises in Python * Fix issue #64: Buggle interactive controls are now properly initialized * Package maze, welcome, lightbot, sort and bat.string1 and recursion exercises in their own directories * Refresh the french translation * Add a control panel for the Sorting World * Start porting bat exercises to python * Port hanoiWorld to python 20130515: * Huge python cleanup: - various cleanups, code factorization and bug fixes - Create or improve the bindings of Turtle, Sorting and Buggle worlds - Port many exercises to python, testing that the bindings are sufficients, and [partially] rewriting the mission text to that extend. The templates are not sufficient yet for absolutely all exercises, but many of them are. - Fix line number computation in error messages coming from python - If python is the default language, use the python entity to compute the answer. Note that it still fails for some exercises. - Add back the jruby jar file, as jython needs it to access POSIX * Merge both views of sorting worlds, toward code simplification * Rewrite most sorting exercises mission texts after recent splitup of our mega exercise into several ones with one entity only each * Refresh the french translation * Simplify Random Mouse exercise, fix the demo of Pledge algorithm * Add a combobox to switch to next exercise in "success" dialog * Add an interactive way to change the buggle color and brush color * Baseball exercise of SMN can now be played with more than 2 players per base 20130416: * Kill several seamingly good ideas that complicated the code base: - aliased source files: student must keep them synchronized manually now. We may want to reintroduce this at some point? - Java code that cannot be compiled. This would have been useful only for user-provided text files, but we don't use it now. - uneditable source files. The student will see all files passed to the compiler, now. This was never used in production - inconditional static rewriting patterns to apply to the source code. People should change the code in their source directly :) - lessons cannot be sequential anymore. Forbidding pupils to attempt the exercise in the order they want is not in the JLM way of style anyway. - exercises cannot have more than one kind of exercise. This was introduced to have all sorting exercises at once, but this was split in several exercises because the SortingView was gone amok. * Simplify a bit the way external lesson files are loaded * Remove a bunch of unused dependencies on external jars. The distribution jar is now only half as big only (still 20M). * Request a confirmation from the user (through a dialog) before reverting the exercise, that was a mean trap... 20130328: * Merge all code (and wiki) from last year's students * Accept a pull request from J-Bastian, with a new lesson (SMN) and a bunch of bug fixes. * Various little bug fixes. 20120319: * Minor update on build process 20120318: * Allow jlm:/// links in mission texts 20120116: * Add an ant target to generate a source tgz (for Debian packaging) 20120110: * Do not even try to compile the Java sources if we were asked to used another language, such as Python. (Fixes #48: Python source code not used if some java code provided) 20111201: * Port some more welcome exercises to Python. The translations should be updated to appear again. * Port all sorting exercises to Python 20111013: * Fix a bug in python that were due to an extra space added in front of the body. Damn python indentation freaks. * Add a debug mode to JLM, to see more infos on problem * Add a trap spitting a lot of info when issue #42 (line numbers are shifted) occures. I need more info to understand where it comes from. * Fix the array exercises (there were bugged and not properly integrated into po4a) * various improvements to the missions and their french translations * Remove the "clear session" menu entry. Too dangerous. * Graphical consistency between menu choosing the human language, and the one choosing the programming language * Show in about box where the session gets saved to avoid NFS hell * Various typos and little errors hunted down by Pierre-Etienne and JC * Improve shortest path exercise by not removing distance marks, so that students can compare their computation with the correct one 20111006e: * Allow to code in python, javascript or ruby * Definitely kill the linearity of lessons (combobox removed) * Load the lessons on need only (and save them separately from each other) * Cleanup the way identica and twitter get informed of student progress * Textual display of what's wrong when the world is not what's expected * implement the world equality for logo * Allow to have lectures, ie non-interactive exercises * Improved turmite track, with a specific view displaying the step 20110909: * New exercise track on turmites * Enforce that the buggles cannot move to outer space with setPos(), setX(), setY() nor peek outer space with getCell() 20110907: * Add a new lesson navigator allowing to break the lesson linearity * Use identi.ca in addition to twitter to push the success of studentsLICENSE-GPL-30000644000175000017500000010451312240711455013154 0ustar mquinsonmquinson 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 . README.md0000644000175000017500000000260412240711455012644 0ustar mquinsonmquinsonProgrammer's Learning Machine (PLM) ========= The Programmer's Learning Machine (PLM) is a platform dedicated to computer programming education. This generic platform offers support to teachers for creating programming microworlds suitable to teaching courses. It features an integrated and graphical environment, providing a short feedback loop to students in order to improve the effectiveness of the autonomous learning process. For more information, [visit the PLM web site](http://www.loria.fr/~quinson/Teaching/PLM/). ## License PLM is licensed under the GNU General Public License 3. 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 . The documentation, tutorial and source code are intended as a community resource and you can basically use, copy and improve them however you want. Included works are subject to their respective licenses.TODO0000644000175000017500000000367112240711455012062 0ustar mquinsonmquinsonMost informations presented in this file should probably be converted to github issues. ***************** BUGS * Some tests of countTeen() seem wrong when compared to the mission text * In lightbot, the last instruction does not refresh the world when executed. * try to remove the *sys-package-mgr* processing messages when jython is loading ***************** ENGINE IMPROVEMENT * We could use the same shortcuts than eclipse * We could represent graphically the textual diff between the expected world and the actual one. We would have red circles on cells that have an error (either wrong color or wrong message), red crosses on badly located buggles, etc. * Locations displayed in the console should be links that move the editor. * During step-by-step execution, it'd be great to display the content of values, but I'm not sure of how to do that. Introspection could be a way, but I think that it's not possible. We could also convert everything to an eclipse plugin, but it seems to be a rather massive amount of work. * We should modify the JavaEditor so that it follows the execution point, just like the lightbot editor does. ***************** LESSONS There is a bunch of ideas on the pages of people that invented the buggle concept. For example: http://cs.wellesley.edu/~cs111/fall98/assignments.html ***************** UNIVERSES Pedagogical micro-worlds * Karel the robot (it may be sufficient to build a loader of karel worlds within the buggle world) * PatchWorld Programmer games (may require a King of Hill mode?) * CodeRuler (strategy) * CodeRobot (fights between robots) * CodeRally (racing cars) * CodeInvaders (fight between spaceships) * MARS (assembly) http://courses.missouristate.edu/kenvollmar/mars/ * MMIX (assembly by Knuth) http://mmix.cs.hm.edu/index.html * Corewars http://www.essentialmath.com/tutorial.htm Essential Math for Games Programmersbuild.xml0000644000175000017500000003104312240711455013205 0ustar mquinsonmquinson checkDave.pl0000755000175000017500000000320012240711455013573 0ustar mquinsonmquinson#! /usr/bin/perl use strict; my @files = qx(find src -name '*.java' -or -name '*.scala' -or -name '*.py'); my $error = 0; foreach my $file (sort @files) { chomp ($file); my $filectn; my $FH; open (FH,"<$file") || die "Cannot open $file: $!\n"; while () { next unless ($_ =~ /Dave/); my $line = $_; $line =~ s/throw new RuntimeException\(Game.i18n.tr\((.*?)\)\);/$1/; if ($line =~ /"Sorry Dave, I cannot let you use forward with an argument in this exercise. Use a loop instead."/) { } elsif ($line =~ /"Sorry Dave, I cannot let you use backward with an argument in this exercise. Use a loop instead."/) { # traversals } elsif ($line =~ /"Sorry Dave, I cannot let you use forward\(\) in this exercise. Use setPos\(x,y\) instead."/) { } elsif ($line =~ /"Sorry Dave, I cannot let you use backward\(\) in this exercise. Use setPos\(x,y\) instead."/) { # dogHouse } elsif ($line =~ /"Sorry Dave, I cannot let you use right\(\) in this exercise. Use left\(\) instead."/) { } elsif ($line =~ /"Sorry Dave, I cannot let you use left\(\) both in lines \{0\} and \{1\} in this exercise. You can write left\(\) only once in this exercise."/) { # mazes } elsif ($line =~ /"Sorry Dave, I cannot let you use setX\(x\) in this exercise. Walk to your goal instead."/) { } elsif ($line =~ /"Sorry Dave, I cannot let you use setY\(y\) in this exercise. Walk to your goal instead."/) { } elsif ($line =~ /"Sorry Dave, I cannot let you use setPos\(x,y\) in this exercise. Walk to your goal instead."/) { } else { $error++; print STDERR "$file : $line"; } } } print "#errors: $error\n";img/0000755000175000017500000000000012240711455012137 5ustar mquinsonmquinsonimg/edit_colors.png0000644000175000017500000000526312240711455015161 0ustar mquinsonmquinsonPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe< EIDATxb?@bb`@, \U?$R!_ B3hb`0 )130(3J11g'Ó_n}xІh0@,_f6@C8,$Ute4$89201f`fp0>Lb!~3..ji, )h!0 ~T ^濿ͰhPQ`ȳʐΐbhaǠc. ?~-U2a+uc Tc`cϠ!Xn'4=mN{!hw{/vMGm7%#aoO޸=O?3gPQbeaxZy3 @3<4`rKan3CN)Wο~JUĂ8gĉY'2~p Ér3 o0laAcO~*2MgJNq LO3xAP!4S^?v 0 r˒Osf`}tojgx. t aO gb`` o #. R`0F\>Bq 3RV/Ta`f1Ëo> & \ _vLgƗ {u9Ë[>`w308#! NG0+2yu yy!Ðb wg Ldx Ԁ R ҿLff W E`007@abff`d @,xA65^++2X0X}SAY3faeבd0&&&n+_?3; @`-7W6 g|*0}_|@ @u< ߿cx30bA@Y m!˯ f`\AN T^0e7? @??; r% [n/HSã[2H dPS` cpcC_򒓁ERA/Xh`<eD #8 F (u 4Ó=~Ҷ  /|t f&V_GX@A:o)Tp3.dx Lx zdE ^~9pd7@4/qNT,@M @SفlY`}  ) @0< l< fR RZ, _?a401𪵬3$ 0T~#>ic5X7x.P ALA,M? ̌[^pl7?k 3JЉ)f9^?{pUW1{-BZ@Ñ=z_5( @3+';'Ͽ,Ý+l_Ogͣ 1 Ypk̬ 7Au?@C$w>) N G` nn|`?m!~{ps[?3|a9z@`\tfr{}l`$TZ? _-?֏ /f u|wm^>nwÀ(*"0seQhNP,߼ps[{1|ya0]0f  0ǭ*^ sF7 +73P? οv(K`x}ͧv&68,*|eXaQA? 0\v쁷 .J`K p AXyvb`f5` Ư /_ nB>1x҂D8ܳwkInEUgtP "VmD]Pʭ+\?[<`Qt冈'F:rzdUm p[ `:$O[()w:4 @Ihz~n2Y- "U 껈lp\mz-x0`E78SG9yC>z3f@Ws DqVcJza`O,>f{/۟e[@al.˟J7Q Yay|IENDB`img/BuggleQuestBack.png0000644000175000017500000003326312240711455015664 0ustar mquinsonmquinsonPNG  IHDRJ/u/-sRGB IDATxyյϭ{zzvfeQpp"1A &&#i^4KP b\`@P [۳P]]q 'N|Nkkttt "J)%K;VZG8^|qўcNpX,,?! x{blٲ;7uvvFy ƍ'soPw 7)|k͛I0ɹ=DkXd#03ە`|ߞPJÚx]qxX`Ayyyؽ $HEawney3%*rS4 <]m*Vl ho v{ܫUUڸUQ߾l @Ͳg@w.\U=zСC-~Woký/frrr,(V .fYZh4QF){nfJ_>gׯ߰aCv~mަM`|-hј{WN>UKDQqt_ve%>ߵv"%ў:w+3o޼{?CJ{'{t:Y544-Rawvfaw>?֭[ooid8rKm"g.+=Zfؾ Hk>1M, |SCLSi2wzߵhە|Ԁڟ%ql7|3d:l޼<7ߓ8s͂Rbxi Ѿy CR* ݰl~ò+|hq:zQ[Pު;lcTW-lȌ!'/// 6*7y:R7P6mO'A$39c~Ok' [ZZe Bf)SU/rx/onHPQQER@]d]aAȗ^me€Œ)6o=$^۴iSdǥxqԩW7IN<6 yQ߽{vJΝ;~ͅ Ϝ9sԩwqr-rDK)p= /dpˬFt!UWԜ^~'\}_dX7\~p7`UUUAnڵ0e x;;;%I$²a}_?G <&b{2|L_Om9p%I6\ mccve,\8dc5LSt3_zu"n,IRr4Tbp6?Օ# d06矟 kXMgP[&Ps\~S4/sg@sρkuTh4OX/{V g, t)B6+L-GEX;pҐӟ\.)_8 Nw}8Ib=:^:REJA#]mȿ%w>}fHD ņ1 Ae.]ǿ+{)/ *[tZj.$Ei=qȞW#eK%DmN*/BQ$cG;h4'f?9 7!lk&9|!h|UUU:ޒnn,q;vj-dfgHlj 0}?_p„ax)B`خ6“6lnsM7l۲eK wd5CtÞyϳ glDP)* Np0T>q l6Q),B2]XX8yd;s'|>QߛC)]]]!I?P$Q[o qgpVW* ѵUW[qq2X"Sa铽 I]^q7͐.˟&Ij1ꪬL =ڠ}yR HUҸ6";Ԗ$ ZW fjjѢE\cNHP?^m`m.~زlNڲ%^mZg;=QGIvzUT =G I6'd0y?{[7Ih2|'O (;NLwuFm"f^Lf`l)#m ȠQilI3cUOD(LU[YkԖ'I‹ AIYgP+ɉZjgAj8HaVQdB Z+(@ι4G`8c6k3 WOҶ^'`$|i~i yW5EmH,U;nۺ{;j D,}Ql&Pl"K%h &t"C_o}E8+\&[290nBؼyҥKF޽{"v9c=KO7n|V 477tʛ1Z$@%K}߽;\.^SNm޼agϞv2 ٳ'r@e͛珿4n~-{ Pя~D)$),,YB) صkWv<ә CLPyS]iQ[$${ae***!6l~… I&ixN$ *o] yW_}[o 9o-{r?W[ddZkyb1+|zJ"w3 ӹeA"3MEqW!lA-u78.,,+dq2&wy {Q[l$FʛI-27n޿ujjj.cV^ ėѶ 6WK,袋OMje# ͟K=mrı7|WPp>3 b4=Ϲ钣gH%31g`>_O{ԙEAPy_;/`7nј$aǾu]wŋ3,Κ5"a_myOhy]򞞞+V矯.#Cˋ5_@IǺ[36mf.ZHm] ɟ'oZVmEM ; NH[29cUNmF}Fn୷gTg32rrdxve [f /gdo~sz|;j+DPyF.$Y۶m 6d^džZ!?ÇFm̏b8O ʛMecJRJn]m-hQ9AKEyYw}7,Z2*b?ǎ;yrjUO:uCs@4:]vtkt'|R:uԍ7nڴ ?%KO*D(c&&<ݿ ,644<3gH)NGL5Dg"Nm҆ݻw766F>&??k_Ze;xয়~15ySl?1"iE@'Kuׂ6H4xd6CIbpjK$L?OvVYbEee?4Q,N꣏> +Vyz̙?G?ڊ QMQ[^XD#It9 {3p6"Q= !aY"JI~8\1Ui!R|n"(#^`Μ9ѼYhF OpZI)7A455=z4.2 Qrr8:] Z1$Y2$ obazV\ !gE'{Nv>aKn; =XީO@Mo37xVЙ)]ǥ&1/oeCO<r0dO2~%*oƐF+/˥j#kAua۾}{KK Ny?W0#. d@yo;7~%r>ƟOEEBHa4@1LC&r0$"":ޕj$1eF灤5S5:C^md)b`L y hkmm\<&ZM:q\4!I2҂4Tl^`C&盳X,sh(={?ɑN4:2DiY`0EsdDK}XlX,LZ_r/e*++=l(l6ظq#H #|Ilod*j5gQ%?C;*OV(x# I K6y_1g9[ I sI;BK$iecqj2":"'p<[\-tԔMQoq7 D@QIdL1:"fL%!z> My/nyrHNttٳg3 F׀a5Sf:GhZjK1:Nt W>]mD~V[$RC!G`>vЙ%W"! $Oe5sC-4f *ŞVt =-tpL(פ޳bIH+ߝ'}_|9=)-XC '3#Ȍ'p=Fie '29P&";kes<$E??qFRBCz3ޣ;4\$o)QI_w-Ե{<}, 3\|8v2Eh T__kX~h]ƮFqN氽{+MYaaᗿh@ǎqo`}%GyolN80LybK`8>(HCO4F7- IyAr F/s p[` YN@ySz;&T$ _;fJqS@2 */Z<}9Ϭ\" d23EV_ 8H?J!O%vMydZl7Uo}+c(S="`=aIDATHM$`ygXمby1-iby/%*RQJyNH`]DI<FŇ,}_5()Udiby;>~bI?~gXwvl_ӄ.laFlE{Ϩ8N/g|6ޠ}-;d_;{ !p(-02&{כ}!u;.` l`'Ax7i*&Wnd8h_.. ,;. ,;. ,;. ,;@Xs XU arrr~޾ LN1_>0C\./5kE{eꪗ^zsQQ H~-AQI$,K4,ۋ/\SS3uT0a'Nڵ˿ڵkVQRvϜ9#BƍWUUUZZZL[81;aS v7K\4>hY|\'{zzVXÆ S PJNfyD'''P޴htmgrKaL+b,m~~k+imm]tјB@W'i)_nÕOetJH^l*:z"GDr:{@81XDq\eeeNN(V>Vb-+RYYym%~/?<,[ZZ%vBt:Ǐ >|\RefԩSv[ZZAT=,[:7)p֭[㎳gF 7y;::-'N3gΔ)Swr]:n{ ~zHlGimmceܺ-MC؀oƽR_wDٿſk=y]gǭXbŊvO~o߾Fy/˲.[lŋ ~hioų L9@)-ftᇵ#:uJ N`cm+vfelIuغ %%%0YAΗ04sfn7|f#<|hz?=܇~qƚX?!B[rŞ.q2p;dzgV\Ν;x 3 nw۷Xbh#iDdղ5 z+WHS4!h4ܣlPPP_zҤ!/Wt7oΑG$I^!=x&Tz9#$ccʪn +ˉg3"r1~q /`ejydRuѶ6A_1_{K'|gj?d<,SXy1jkP'H2ǎ{"\rŋ~8Șpv}K8zjKZLՏ&I~v;w>XɪQn! 3R{SU|m۶@aa5kZ"H01V3[QO?[VƘ|I <ӧOW[Y.X+㢂hѣG>>o޼o}[,)$(DJ@ #.ӟ`XBgЄ By~sffYVnin+^{Z5kCnX`UW]t_4iҵ^G$JWoslTMS׿{wϞ=cǎ;v˲wyի#l6_wuvjժc =S '>a5l1ݾo߾W`f3gˡpNqdpE= ^ഌ>h0(;wx䕁_l?HJi¼xcc #!(|>QRu:]nnnAAA FTnf|BHqqjfimG&Rk'N_Z[[X-KϼhҤIUUUҴpdaӧWVVFsR dv{aZ4yٙjq_0L6XgX+peӠ1dUBIw^m)R mhR  0VZZ$.(Dkћ)a+ĘRа*Dt&d !,_~;# 4 0>7Ғ˗ϝ;WG Fz9g~\rtÁLÏzG֭[x(ī:{O8Q>r΍,$Iݑ\ròKqMTEv9𾊾AZylA%Wynޟ='y\s`B\.{cutt׭[wM7 Un744|1PJrIiZ^yVJ瓳Yb!FNsSŘ* @Xk۷o7!' 4io9su][n(..޸q yiqOOϧ~ёo*hWK&!&n@WWh4+VKM6];wDT JZ;Oy>~oXh9tr\MkQ$(nܸ\PN!~9!#zm\ 3$A#G<y=IꃥFLApP V1P;.v5˵f͚_p1+7RW/1X kue˖}j}衇h# &+I^44=mڴ{7^J(999 .FABR"Z[8Θ1cƌQ]AUQCB!3Ah-y˖h&^ +vEc(hjr !(8zJ0ĂBĘϚ[+3qSv޽fux \r2 H꣐Ơb9_'!jmm_vUl6/^XE$-P9漣(^sbs ׮]+Bk4: hZŒLCa>`MdrK ZlT]]]]IRTT4iҤǫ-H&0M~2xP\΅,™zi5/&Vm!@l~ڲ!2&Woߑk$G7p:MpPA҂s+mDgXiB}x;љzJ޾/vyFy*5]v:"Z(<5.JAQuu5/KAb^#(.NZIy/Ŏ7JDc%$9 iR~:*Iuc.yoIK[΅{J& ڧ5FweL- *N\riY&́tWR~Ncfh6NWVVf6y988l03X=˲%%%f,i (|$?k]@)ee8FtJt$쓕Bk}J3aULOXY\R: ԩS'u\%I*((8qjj6rB09ZMEpIīNrAv{WW?E0 qSp8\.W2QXێ' uv1葤H5!ATC6j\.>/liͶ=K\8:~#Z(":1$j\~ڻo B0&w AR'4@ؐ  YJLj H,(Xν.bH"B) 4y,HfNr^Ѯ *z '>&zrɯd%LXʩ5uhs5 dTr /7jK j 4PGiIW0kjK (.H␝Ֆ"y&&Xuz讋d<;#bRJu:bjJvAHmNߋ:[<,% w^XlJBCcԋWNy<" DGD-Re q7d,1Tot#Hz0=ɪ+ҳAr"1NuC(P-7j 8% *cF$Ad,B=yp1!jz;~|v#<[(Fr0࿆ s.ںCx#$c 7@tqR)DUF]5]|% ?J9iAT$v!\@E3+% ^ki A2XN=uA%Q'KRR9Ym${u>sJ8Guu\eF$*p  VoXF]YV*0B!@5im |^75aX)r̢sAtkA`F7d,X$c  VoXz#HƂA2`F7d,X$c  VoXz#HƂA2_}TIENDB`img/console_add.png0000644000175000017500000000260712240711455015124 0ustar mquinsonmquinsonPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@tV 3Bdc+ +?L |) ,ۀ@0 VecouUpZS /;ÿR fX|d٬e~e`fyn@1ց秶r[|p-00cHg04gՉd_T@/1@'gaba8("'v\ 8y@~P@,Hga~ ?Ծ_&٘d3#3X˷_3a``{#f @r1-fj쬜 ~fVddFڿኌ3@R2M&ނ1~|_R*[\]TV %_X.|NJXؙI) ~32311aeSl$fC*(öCF`001{ql 2^fp?`|0  I 37- @`YAp> 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`img/world_lightbot.png0000644000175000017500000000413512240711455015673 0ustar mquinsonmquinsonPNG  IHDR szzgAMA asRGB cHRMz&u0`:pQ<bKGDC pHYsvv}ՂIDATXõ[]go_g9'3ɘ&3e4E4^-)^˼}/A-B b H^j 66-f&3əso-&dl}[oTUl隞0xxH ;xp jE1LBpH T3V6,~򷉯J[~a=]. @Y(ХVg< y%$">2jۛPT W}gϻEЂlm_w~|߉H[IQ=FWjeB;7Zټ6%') XCm5#|ldy'6u„P=N6Qѹ|kh,[@ֽ_nG\{k_5ޘG'rHqj{Vl3C}8ǿȻ@5o ?Ao\`o@P9ku5v "4T'89dlf*{)]ψ&틝72SS7V%zj&`DS2\T+?ް O= /-c^5O_KUHQfsC7IB>YqA(O Zw`h h;6%}Pv9R.KTh^F Osd/ Ez}_`Hg2 D!Hl'P4@z@/4F ovi8I?v% IR@TJڏTEOo~?XeVVMyP hҶj{͌Y # Y;0NuIJL@e^'2VQ8Qgg M.I **bXX*_~\ٳĪ Uo]qdaE;C,/@jՊlH-ϡ ͭa2WGNCIn2O=UQu\wGT D""uCoGb EaTsN82fa%+s&RdWf8vޜ/Vk;$wQUUQc֟ WWnų,iHo%cWE9fe.+lf5>R![RqmtK|>?vv, C빈HT]д_$gv 9^/駾# "c>O}'?yڅN/g̞}{QlQ} +qDsED),CX88NFn"93[Xq4K1??Qq5uZ'r.Zv9s湻 a~SS㣣c,JN:5}ܹw~Ya^ {Ǐ1L%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2013-06-15T21:17:35+02:00J6֗%tEXtdate:modify2013-06-15T21:16:19+02:00Q,hgtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[ image/svg+xml img/trophy.png0000644000175000017500000003327112240711455014200 0ustar mquinsonmquinsonPNG  IHDRiF IDATxy|3^o|v8Hp P(/PZRUE_JЖh }WB$sVjW]}>ḥh''Õ/CîGMyf}05hʇ 'z?eV=P!I(\=6{?in1+,t1=O W,\Wi>5}~U[>0H?Zp{%p3@lLU4_w +c ;n.%ĶAlqDð;@TcߥχS:΃C߅>zزC!a;ape 6hw/LW{/'@Cе4W [yPq 42?C!UWýC{l 3e,)&.z9w f[Ɗ~ܾGW#ƮK>s}K%j=g MW¹ t]Hr/ȡP \f3!5Z.W ԏ0 f%ѤF@O5o$lr8Mbޜ![31 oTV ;Eг ~-I/NoN2pGBS* Ztm ̞.ۚԍly PVԋ- v܈zeoB6b? ֭U{hXC?%9S7HtѰkpKrb8C9sw߅^ ?,/V;^ɻ#m@ƏA6Jl%OGiP8QJ0;@2lR bpcdWA N3w9!Uܾ>Cxh'3)#C KAx 5fDWvXwr7/0}u!SƑx)7WB Xv Nͷd[r(kv>ڦg`qIPׂ д`!LB춶yJELUU@; s֔~9"pF"?=@]>yRc.yM'AHF=}t@I \#r a%rI8IL T2/2 $Eol^J,&s!H-{b:[^cC< ƌ$O ,y|abx 6A xXDB *+ab xܧ GG…j$2RPV@t!e- K)g-:  9HYKR1 7~zOCaZ(%'!v0|!X[g!x Rk3 %PS F YtlP$Љ04. ]$(Nz}h-cn 0qถMUlKm oE'^d&q*S: t:8ۻMOJu*A;7r?Nz㖷+;Bgv*aJ*~  a%*$^ڧ?35+~6gF!ȱ5COEƳɽ râi\1DCaLW5ݹі7|"x_X!~ķ]܉x6Z@)'ĺpRi_U/3jamjq-`&!9_1%Ԓ_ÅaHHs$Ѓj^JM;{QL $A%n#O1يYUS9z/,P9gw';KXf s]֜2;GcIR,aH^u _S*&=[ Iy [fb:6ֹ uڤ`MZG pNFDgF$!B} ]z̞WD0 2D{xVBa ۴Vτ@WMi(mQ[uE}vf?;?PPi+Nb9w֢x7 %V+s– /עSGޯx׹㹕;ÅOWB ,Dw iHRAJzŤi4TX޾}{̈ǛfVVn8h :猑%:/X,l"s&@bWoJ-.wmhLȊ5,,z h7t;cL_[l3[-PK0 iه,0- MJd&La #eTVָhƌʓSbyM򢖩433`eoo;7%B{skz7?ƌQA 0khJͧ],Φ$\BI0H( $&m8A),&%T0r]o7iRX8tRԶICKV*Yu\W~D$›0AwIM$q.l]e*^1#R)g/*w]ꬲ%t\*scr6-"Ix, ) ( h P 9Բ,"mY=Tʌb̘8iI]ǦdX`yz`+ _ x B" d-d&O;Slr66()8Pl(Ik[-Iث~g/6nҡ'ӆaR47I.%]' u #{z{aL,/o?yrʶ Z?zKjO={M۶on$ Ӳ0-ibӤ aJI&fRjn*ECb,%OYKZ,lkvs9H X), ;ǪةRx)1$a[tޏL [DII$R)'e@XʁkBDTT7'(w,Բ0i @yI.dē>% `"uyUg$?ߓWU2i~7la)^&R)♔HJ1LZ fźZ4ZKRXuHF@G.E]+l "wn:|RBL˳A)7u+G*’y@*x&_^@.X"A,'LRBBAò*64GߺC,-JP+ϊq]Q"beͱ"]˚$'xSE`bו+݇ p Xa0 b==mm{[-mmf{WLH nC+޽˦1$K^k#';RJO4 m#9Fpyǟ,̬fu#gG SM.{v;πoQS% !ϴmmY(Hz,6z@#Z0t=d:%e7x9b(4T+3ψVx+$*t-KĤ2D@{H7 Rq>g ۜyw jaIHYD2IH%FOooL&t%-ǫ ӬPQ'2[ʻo uA IJ骒HF++d{܌;DuǍ*l-Nܽ-.nDےx z{d*LuR_Uո˴i[k++гz׆:;z*DE_OOYwwٖNwqaB2iۄU"*0C 5Q$q9&Ep}},j<`rlX ~! #P˃aM;SӼۧM_!SlN5[{nԼiûMMJU틚'Vp`n0xm-Ζ'i"(jn1Shz`;OM% ij8Ty*{LKϯ7?zeIXO6K%RKrW$[c ^RQVh9ӄnU4eL:1.DoU W-+Rw9yY+ K\ܼu%=\=öMݽ&Jwh[\ 2|+JېLC$V`Q_ZT0 !j.RntgNWׂQȢS/~#TbvfV6fDC[X2 0 xW&v?F`[ܭ\h \gMN)fuaQ]'";8"wʋ3ZnSg36=ޤ'+ٖ!t+nmZ 9$K[à b7 [`۹2ܔ+7]71|V$m3 ܨ-释 ^@0ڷcV'3%2σ*<תbEk@(/1}uAu˃$υ[wo: `~ @ % h_#{6ש2i "32s:e{N9e\_E;.,3 >"wU-@8OX>.tAn5K~Bjȼr>LoCQdI0dviGlJ1y˂olバJ >w&z@=&}^dJ;("/ϼ}[=';7P\dh4 !-J\8-S t8Z cba[+3W2]q65 Gl)r㵢Wr0H?Xwҳ`) OȘ?M~t:qўvLLm$v}h۷UA; ⁖Dk2f]CrN / 2P0o{˯8_ 1Ԋ<2xm,MJkX,0E~] mg[W.{ M\+8ކceRRhI]k^ڕgܜkM. >rf RLlk4m|Zdkܬ uiEZRF,+oOv+:aV)NRF+vL؎pA)H.Y6:'u_WӔɯQD0R<E\5}(\Y~h:dH^9GӮB;^J; &{}5;NŊ<ҋֲKTPܮlfy<_g75N61G+s?R1~(fp`4l} :FREVܡ`DqRl[Ԛ˹Sι?r\ʏO8ɭU 9Mo=b׷5ܺD.Tŭ e t(sߖBtB@&/"6631W1BNݫI퐡G2OzFTVE6\o+ʄ`7gV ;+,6Hrnz ? ).;qxГc"!?Oނ 52 r#ɕ~&om3oFU'w4[T}$mvc Ƈ=-V!80Yш.6$rRo>JJ&%K8HV*™fe~6Akor5<f(L޺g|0I߾yqO[m2&%s u.Hfp`' 7m?6EV2Syv"?"*d'xgxϝ+ȼ 0O*4 ݤ'$lϾ!4gtbDnΟvϰ_诅SELܷO'и@ΰ.pG I-'H%NQFύ`bb;3eC,ftt}U>rPlSQ(~#Cȟ&\@!.(90n S?4 aOnncbII[Ab^`}~2"2Bc6Ud99ArY/42?Pe2NR+`ϲ3y/_ Hɟ\ǖ&.C,ST]ޭw?)b{a3xs! 7 2@PK_dg}cZ0)#VBد0I#p{b )7s=kvV~Ҳi 0Kk)|$M*7.qB7ht_9"p(-2ǼJwNa$|D{3tzX!@isz.Ie]H)tB,ߙ{R܋A7r6Pl϶pwbH*F:KmұXw4ܒ u= T}?\TڃPaU}i 5$p hshA( 8@*'YU))2ό(ۙ&yWD\i2!̻F"?^춃+BmTsW7ש;faXE+ ]BH@OB I+юP1 ia wQrO!loZyȘCXdPwGPrX{Z,W|g^a8 5@+wwEiSlX /5#+HC#mXmk`򉃔NfW5P !(H˗/=[F$ӗχЌDAZ?/&:H,> DAJ2A&ymkypVyH򉂔Ng5}>A<0ţ%=cTQ'0ΰm[ݝ (=6FvP,_,k!|O Ƅ (emwQYc"{HK#Էƪ⽞)ԣZH?5 i~\XBzO-qơ-y %>;~Dc8 Ub"B_x[U?J$L'~nJ>_>n8pTL܇؀P}QA'ޒZx 3ڇZ?6KRe?zׇ]'P]!Ĝlժ$?Sb@.JʖIENDB`img/edit_baggle.png0000644000175000017500000000224212240711455015073 0ustar mquinsonmquinsonPNG  IHDR szzsRGBbKGD pHYs B(xtIME .:_Q"IDATXŗlSUǿ}u}[;mɺ ƪl5Řm(DŽaDHb Ƅ!H&Re dA Ua׽n?6ues={ι ^qOKq8wb90@(FvA1Tπ.[ J",g؎seEn- ʑE׽<قxW2c N[ 8.\l`z rڐۊI9 `©rs&n|PH`&2cAO; ym# >9zٯ qs Q~ƚ^C3^o ދ%J *]I=l8JH j?%Np%\% VS"ᔜ;~8/_yEƾz6C\]mޚt$c?ȫ3F>F:(x7]j]/mӱot=7wF.KWzy@\axق吪uD\7 ׵v0v@=-3}(>w|B MIDATc`@LHfV6'v0UAPHXDTLGA? 0(= $4,GA/" 2*8:&$6.>AA61)#*-% 5-=CNA!3+;'7/TQAYAUM]CSGAGWOߠIL5d0261532pYX0X&ύ 7E>V ֋. Zs6@ÂVZ=quv 7l4m۶عmRG%tEXtdate:create2013-08-05T01:28:34+02:00v%tEXtdate:modify2013-08-02T21:58:35+02:00cIENDB`img/world_arrays.svg0000644000175000017500000003574212240711455015403 0ustar mquinsonmquinson image/svg+xml 3 2 1 8 7 14 9 4 10 11 5 6 12 18 17 16 15 13 img/lang_python.png0000644000175000017500000000146612240711455015176 0ustar mquinsonmquinsonPNG  IHDRhsRGBtIME  **]IDAT8e]heٴBn6Z*R "-?b ^+U6 (UVZ m-)RX1&);nvv؝||9{C}_rTNL} wWxovPcs׶;`[gVf=:UUOvbj0jMz륬00qnfUG%M4޿T&n8"ˬ#ᛨSGQ0> 2V2}5'6m 8Pa;B-Cw1e-%܉KN%2ncdstan2A#Rk"Wwy*,;F&t l_t dSI,k=ٿsJl6Jߠ}~hK 4~Aљ4;C߻{=o|ՊhQXM~XwPL\~=3f5 OheZ[b9^OL;%tePVDU}ulBfpmWQ˄TLՕ+g>[| _ӻ|쩳lg2zf(.~n,m=';;tl0 lտ9g‘&`zWWۮ.V&.fse{m z> "2 *f'IENDB`img/edit_leftwall.png0000644000175000017500000000035212240711455015464 0ustar mquinsonmquinsonPNG  IHDR szzsRGBbKGD pHYs B(xtIME /4^jIDATXס Cєp݃ffStG̋'.Ws>:{Zk !̶*Ukݺ4Ɛ~+-e IENDB`img/console_delete.png0000644000175000017500000000134712240711455015636 0ustar mquinsonmquinsonPNG  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`img/btn-alert-off.png0000644000175000017500000000226712240711455015314 0ustar mquinsonmquinsonPNG  IHDR szzbKGDC pHYsHHFk> vpAg IDATXMhTW;I2IhQXŖtM .(;5mB7-tBACh+EBi1d&ۅ & dɅ%1ٕL>2e[8{r@ $6 iJ յw [FukJV` }kun^lPJWZSnuػ݄ KxkF % w.l¤ .$]ms}}"1{Hta4$"7Xwz$k{NҼyZFMB>1we ?]]7.\%tEXtcreate-date2009-11-28T17:18:28-07:001,%tEXtdate:create2010-01-11T08:47:57-07:00J՝%tEXtdate:modify2010-01-11T08:47:57-07:00;m!5tEXtLicensehttp://creativecommons.org/licenses/LGPL/2.1/;%tEXtmodify-date2009-11-28T14:33:24-07:00ƀtEXtSourceCrystal Project'tEXtSource_URLhttp://everaldo.com/crystal/[IENDB`img/world_bat.svg0000644000175000017500000000511112240711455014633 0ustar mquinsonmquinson image/svg+xml img/busyicon/0000755000175000017500000000000012240711455013772 5ustar mquinsonmquinsonimg/busyicon/anim-16.png0000644000175000017500000000130212240711455015644 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs Ol pHYs   vpAg@IDAT(ϕ=NoW KA+<[- &66؉X+v0͛7ǂHf tuEQ)M5 um'mrF, W##D"})7?T A9 ݖ fY|ಕm]tZbk8w3{tM= ݹOb:\/G C%?%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-25.png0000644000175000017500000000131012240711455015643 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs0 pHYs   vpAg@IDAT(υJP'ib(J-JKuc {\y^Ko%bXHk\?͜;s6LwCDӳϥ.b[O&z+JeF޼JƫԎBHQ[~"g=7m!6JRYz?=vݭ0s\iX [0Ză27uDr en.BaQA-Y%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-5.png0000644000175000017500000000130612240711455015566 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFsP֤9 pHYs   vpAg@IDAT(ϕѽ2/?1aIVR z/xfƌBb7k{#@ەQU}}{lDP"%=F.t ^< -3%BP8mG4G4M̊ B`u&)[v:VxahYW$043Nr*OM ~{W՚ T+p%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-6.png0000644000175000017500000000130612240711455015567 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs`޹ pHYs   vpAg@IDAT(ϕѽ.ؙcHƆHbQD{N1*L ®%(̬{U%TWSkW&@] ԷL)5Hլe2Rw=[صjiѷĂuQnٔz  (Ҕ1Jc5aav-x&f>Kr]V`C˽' pc:% Yu%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-24.png0000644000175000017500000000131512240711455015647 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs0l= pHYs   vpAg@IDAT(υ1NQX6D%F b(PC;PPxm$@@beQ4ͼ?3Z^ Y$YTUִPWPjoHANo721A G2@~(\^/ ]+ڶLHLNO$t0pΡsixuQ7ݫrYdxTa&'4TxǶr 0%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-2.png0000644000175000017500000000130612240711455015563 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs ݆ pHYs   vpAg@IDAT(ϕJqIDi!"}`oS.E۞E-"pr ȈЂlZbͅ{:yl-lzlbMK{v"y,QaDeس {6lKVlᄈ1WEjX?|B,r%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-9.png0000644000175000017500000000127612240711455015600 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs> pHYs   vpAg@IDAT(υ=Jon~5" j$6A,|Q3%M-\k%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-26.png0000644000175000017500000000131012240711455015644 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs 0 pHYs   vpAg@IDAT(υKKq4EXDh2hWiӧj2+"6VtA25{[^jc %y)ӁmK^L;r:"eaTݺ9I]mYˀu3Aݭ#vACCK"QQf""ҏH՟YQօXuhU(Ȫl k;W&@'R\pZ o.nƬ0`/%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/idle.png0000644000175000017500000000074212240711455015420 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 pHYs   vpAg@IDAT(c`%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:55:37+02:00id%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-17.png0000644000175000017500000000127012240711455015651 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs Lx pHYs   vpAg@IDAT(ϕѽJ^<#@4.M4`#؈#4G xgl22ÆؖՅ*2)@(Szh9p!51W%"\SaT" UQi-<4|[k-ՍH WƃnQ]M{vKCw ;zs̳'IMȽºpaoF".r%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-4.png0000644000175000017500000000130012240711455015557 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs@r pHYs   vpAg@IDAT(ϕѽN1;I4 ll-M,|$+@{ %BOQ,ض$.\kKдH*npE6;h} N8uX۷k*S "jœYѰo@@BPS\`0΁XUEiHOE,Q3tQƕߵ`&J*%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-28.png0000644000175000017500000000130612240711455015653 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs@0 4Q pHYs   vpAg@IDAT(υMJ/1M%tF . ]Kxo< uB, V,֟H&R:a==ް*s"Ps`Ë*32@(԰]>=%d LMAW1X_ߕܒ4&!DOݻHÉpvtM|,rHkTboP[ƮS`fR krOFBon=ks+ ."/Z%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-22.png0000644000175000017500000000132412240711455015645 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs` GZ6 pHYs   vpAg@IDAT(υ.Caj ASH%l$} xc؊G ,,XXhrUT#f3e2?1. 2#mh]Q$S6=H4*=gM--ru޹iJZ:=yGv"QZVX$(!hwXqj>԰'@vУ;7j}83•m= u*t>+s61ƥOw%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-3.png0000644000175000017500000000130212240711455015560 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs0Pc pHYs   vpAg@IDAT(ϕ.Lʈtf!Mv!Xaaoii׭%쭺hѱf"qvs?Lȱ?ƭbjXCdl,h;}yг#½KW:΅:,I3GŞmM}:eųQwLI[~-^E"/o߁XDEC1*ku++x^jhG֦m t0$pRCf\Y(Ԗ|ŶEj4u%RGg&c0CA]+Mv L퉴 }ma%&Ku%~24'K%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-15.png0000644000175000017500000000130212240711455015643 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFspʩ^ pHYs   vpAg@IDAT(ϕ;NBau7(|FL-mH܂ -ll\#@ ͜sf`UU\+jj*!Lڲٗ`$hhaѓeB_,񡧇HݽOYέ[{TA;!e6g۷hlY^gKmnaNN (븵BɚIXGוa.a&%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-10.png0000644000175000017500000000130412240711455015640 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs D pHYs   vpAg@IDAT(ϕ1Jaojb?F1EB x< "AD!Hh Xu3o K!rBRXڵN!Ω#LԡAXח{o wP&Z}0FǞ[-XtG%I'J92hL$^g$;δF*9Q({IeuW.(@آ,%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-31.png0000644000175000017500000000131112240711455015641 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFsp0N pHYs   vpAg@IDAT(υJBaw- 5UPe MECoS!3,)k ^Ms \*:%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-12.png0000644000175000017500000000130312240711455015641 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs@ pHYs   vpAg@IDAT(ϕ=Jq`%JDFMJll<`meF<_BXlb)fccSֲNu1StH`G'@0P&vMh1rƄ7G/ uj.$hĭcA,_ "m#g)Q>ZĖ xvQ]6eسJx6tgC͑Y}\{?~%vs%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-18.png0000644000175000017500000000131112240711455015646 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs HZ pHYs   vpAg@IDAT(ϕ=Jo7Y򇩄@0" Vlӈ7glD-VBĠMBvffxޱe$4t1U g6zZ_>%xl֛ţjqbC[Ngpҝe}lbיQ=+=Eڭ(o%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-11.png0000644000175000017500000000130412240711455015641 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs02 pHYs   vpAg@IDAT(ϕ=NqHvِh"!Xx `3XYy(?"DXX77o[d[v2%20ELӵDjCYQݗw%O&*^}{Þ;=`6Fb-ЗnPp[ȶy9 mI{t#5_hQ R/&z:+ DN5?Xe$D(. X%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-29.png0000644000175000017500000000131212240711455015651 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFsP0 pHYs   vpAg@IDAT(υѻJa_7,n#V+/>N %De-6JN3̜a S03'b/ڔz=EzLSbK$2g[稩bOčS^+ׇ e  b'Z#t+/Xkn\ 5e=$rL[žӀ\}C@ 5hP]mfm(ӗ apMWŮHo,M~-.{%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-14.png0000644000175000017500000000131212240711455015643 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs` pHYs   vpAg@IDAT(ύ;Jo8#> D 5*Vn@,܀p7XqQ8"33zsS-9V.b -@l۞(oY4pZjŬxFOH$HN],Rݖ؛^*sxǁ@qZмqD]E47 mxzѿf&f4ձuVmם  *^$.yvF|.k<%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-27.png0000644000175000017500000000131312240711455015650 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs00 pHYs   vpAg@IDAT(υ1Nз+@U`&ZA, cXHigGa(!aW ?B/}OZb<+k}ӷz.qf/-qHÍBwPQHB9t$.+{3B"L&ƉĮ%}$&>mH*z6+BllPdžT<jx @r/C%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-13.png0000644000175000017500000000130212240711455015641 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFsPfh pHYs   vpAg@IDAT(ϕ1NaVFDI4Q hl<7&X`HTDbAY ޙo&Ü/sٲ+N /m݉5מY+4 $j*O>J 2 ÙuUbx2%:\SB?R7(( f,^u&iف_܍V?tU5̈́ə}Cm%D.teBYƒUz',+˭%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-1.png0000644000175000017500000000127712240711455015571 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFsU pHYs   vpAg@IDAT(ϕ=Nq @fk+1D/ 'ƚ҄(#(kɲ-nǛ0.*q]3P \4nPS"=8yn:u̺2;jjBJKcN06^䖖sA^l`KtDnQ|𮦯$gsG$j; UDab(R[,<߬T?~(]%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-20.png0000644000175000017500000000131112240711455015637 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs@ @ pHYs   vpAg@IDAT(ϕнJ_kARqjq-|I|G'AKtڥC :$D]o?IM՘b==_-=@ вPVaіzQI&@aTnfP[;rktk}ȣJJ>D{#:*Tߓ~ō̕3sFE+s!riرs:CwvDQ#%4ظꒉ½a]2*Vz%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-7.png0000644000175000017500000000131312240711455015566 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFsp pHYs   vpAg@IDAT(ϕѱJQoMvM7jDژ*c-o`F| ID`,vW7ܙpsg ,ZX;B9+u!SDЃ{Vzv'n©']LCdir mUu"JmӽȆG&i*-KjS!w< lix)nȼm<T#)%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-19.png0000644000175000017500000000131012240711455015646 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs0 Kԕ pHYs   vpAg@IDAT(ϕ=Nq߮ 6~$4#`3\@[57>A`am 6h |s7o&3eU"^RuuiH%Y[ؖ#_z1T֗)H|\P&C"3 S(*?lk806λj}&-(Y.5AeD~qlS1 Wh9uk?y؃GMޝKzsհ)Fb )/5*iѶl=%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/busyicon/anim-8.png0000644000175000017500000000130612240711455015571 0ustar mquinsonmquinsonPNG  IHDR7gAMA abKGD#2 oFFs褟 pHYs   vpAg@IDAT(υ;N@[ AЄA+PR!qAGES!:$(5fb]R}+ԹoPT(ǁ G}3"sKuS]c7ڞ\\#ovaYV1]\{2"9wX^x/hSGDW- Ŧ_-ovm+EO 䆚G=]^M ֍0'K .S%tEXtcreate-date2009-11-15T23:04:35-07:00V%tEXtdate:create2013-06-15T21:54:17+02:00bB%tEXtdate:modify2013-06-15T21:53:04+02:004tEXtLicensehttp://creativecommons.org/licenses/GPL/2.0/lj%tEXtmodify-date2009-11-15T23:04:35-07:00̘tEXtSourceGNOME Icon Theme&i tEXtSource_URLhttp://art.gnome.org/2yIENDB`img/lightbot_right.png0000644000175000017500000000306712240711455015664 0ustar mquinsonmquinsonPNG  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`img/world_baseball.svg0000644000175000017500000001552012240711455015637 0ustar mquinsonmquinson image/svg+xml Open Clip Art Library baseball2 2010-08-03T23:23:16 Part of set of Silhouettes based on sports, in a nice vibrant colours of Ubuntu palette in Inkscape. http://openclipart.org/detail/76927/baseball2-by-shokunin shokunin Olympics baseball clip art clipart colours silhouette sports sports2010 img/focus_intro.png0000644000175000017500000000321412240711455015177 0ustar mquinsonmquinsonPNG  IHDR bKGDC pHYs oy vpAg 0IDATHǕMlSg;v'&R-Z Z"ZSjABH]tWQ*ݣYt"juQ@EMH&@ !q'v_4:jtG:s?;{wKk:WDQfF4xRrW {k}uo-]V*mz$! v3^0Mt9?`VSkU{ou-bf֚Ro}Эjfit7-]> K7kF0ԳjwE@tfl6eTr\f-R-mF&u$A3k$pڮz F]~lamePcP62J3ڊ4MX o J,mب}k2{n">S]RldHekIHAXE#?엗~݁岜%IDrÁh)T7[Lo|@rVۀ8JlJL#47 {#ޗ:(g,Jss[$4CiCMz-5}_J)ܿ.e?j:C;ĝ FRn޼)677eۓB pbS';b߿_>8^,Y>l6lQh/oLHbgǏR)#;|X6t"mD+.R)H$9ҼqF6N: "" V㣟;3gXJlBΝA}~}WojmnlwDѣl6.^Œ pID zΎr066ƣX,WbqqFJC^fsmF$ȈM!E*K0MS]/TtH?^/C$$ !*[kO<OR`apM-y}-s&''uPxեnK3C)988x(02kQ4qĉd2(]t5|ONοk_q!nc8GzbwH)P<WnKz[}=`VYqn R8_3` HCmx)(͒mAK,,,S”&GpXyu#I4V#ݭHgY~Ξ_ӪrѕWIXDkQu:UitEBg=Юhџٮ{d=F[)vGU]N0^hv/;AK:=LG 1D:ܪU]n[ұ]QѿSё;b+ ɬXo-eS̀oVnI<=~dar{?ON#|-c*v8ޔ 20Nt@;GWy_ޗq)z}5{LJT#Fq s9t-vDΠe sW"V!cuyC*|S+=S=A y+>DZ A -o*QTi/W?8B'ظcJ>juR37رr`Fz ]`8A cO^裙2;5ɷijg9Uϩcƻ`/ԧH6w f0='O N N g̙1gƜI8:qthhT,52J˪)8K.!L%_(WQ"U՗"Ip@8ԧPŐ G%^ OJ_-gTɖ6rQu!3kS#cm; PC%*z\DRJ+;'L ci(O؊f6QREJxyOUpP8-8CJ{Z7:c'܈GdY"J 0]PzwAitDgff:_{)VgYX8p@Mj -'-奥Ge|ppߖ\cq pBq'mf}6R`"rݫ8ZM5F)tiWǵZi/,mRpHwi@'|V9sߏ~9r:t!gf2@+iUN_C65ov26W 5Ptv>Ӂ79%,s^H:9/Bf9쿪l{,Z!3($0?o&ueQA0wܩ1Pi\HĀ]n`_pjnC!87= Lb0ASQCCel]?g?Z~Gybg *"w@4䓏/xxxZ3fjMȌ̌̌D!#@w]uW{z8;loF~ !OoDԎM4&_xҘ K̅iֲ[zNH3d^P4i֏X j1\=v‘jZW BBmp US~ƛQRNL=` "g<f~`,Lb}*X=]W<F5 (K4:5j@~F <_x {W]?quG#]N8|1b!*!(cꦺzZMR@"%LAmQ=`8kT()ȟQ2Ծ u3tU*5 rDP Unp @U|1z rƨÃʹ oGOz1 + KXpgY/w3i{ e\1"okAoDu R]!/~svxszp-0љ_ Շ&I?h:t蹯JOBgB~9Y *Lf M?*!fGH]Pnc@b'oV z0s{Ӏ2CbAW!Cƫ> uސ׿*rb"Jed|@J{i/i:bT3D-QK@t=Pt$D|P_j5G% r1%r6P~f"5"^W k[)Xc8Yt8d*ҸuB5:v  ^[..H~iD?P3*E0fJFoSx"-ž  (in[M- mb^ԣpg46 WU_Qێ`=8A@KBIҕd"Y$cXʡ ɒ,m@%H+f\zGexd;r_y2]V2_%PZGrۃT+4ȳ'^՗|DR7[ wdٻ9}vc7k9}oUj9}pN2Gy>vp,{"dsw U \ );͆Ij$S`ғ$SP+ P`Q PAd(Pu O-1΂w$:%{$9)eͼ f(dLЏ&ʯQTz%`"`:P<]= G';[ %u\# \շ8A-t.W!]h3 ^\1=}8FCʟE]{ Hpf%K?hs2Pw`Is"eu?4O حjbnn $7Q ?dTWY KEd-`pC,Kns6kdǫ@NÌQR%b*=C"7'ni:!X/Å}eOW{g;I\N s8J;4)} FyАj=dUp]Nϼ}[}7Wfz~XxΞB&Ѳm?L,"d#AQT/ BT Ej -Tv %: ߁8;ArBh9&@|T'YVCqcW^(qP}!tSIq Wuz(,0 k]VVC%(ffe $ O/ F@`/`BLJ8k&8273)Ŋ+J.b%9%GʋUzfF,,J8lb3S 9\G2a WW45 Vւ\VAA jM\52Z}rHfI uZZ5&@0R(%`_u %x \>)ړ3e`kwk@i/}(nA.+=(<}@PkA2~iє=9C00V}Bxr pY|cU<xJf{Mϡ1r1P/~;2Np)'dq%$_d,Ųd̐ bm,I J0 [nn҈=E>uPPY7̜(]Vzd_] ޑV+Aq}8&ʺ h_|.l@}N~PO rzZ{aCAw6t(y;i}S,~r9&8];}UH!rWxWP;FG#JeL Uz%~-jKPcdD  ò$ $\&(9 AՐj*En+y?BEg7?#pވ-BYSP04 Uك 1w*;sw-/CUm1L+*] \q#qAneso J=v}jun+>5tPo:uSb m_w~؎ Hoa綆SliK >B^%_~<,Oo7#橷ԛ Z RI 7W} j>&soާqH#8ɢऀR$dizǯϔ ,Ķ`:.,< @FUsU=2lpAkJY~57S 6_ H`< *I@(qܣ1YZЉOГ>- /݃ћl?ȏ=Z ݲ[g* wSHf-I4)PF!g. `? Du]S\{DVk퀬 \IכAiIm U%( 2 \߃X52h8 h  hI`G ]M*H2q5_x BFrMw6C@XR.+6A8]J{d^o} UoՍ@ TZDpp,J8g:)-!ITW\;lLܤrow`;(윅'> .dL ɐ 4X2|'AC# PT7ud4 ^F8DӈZ. dJIC|"RK5NH7YATK;i8.'<eN"UbPFMAT\$ AB$F@(A4e X R Zks\O[Kc9?Z\?U9eЏ$xG& wY R rN~ N=RIig0JOK(ur_S!8!C>C4k/y$d\,7AŪ,fQʗ 7e>I:ɓzbu $e#N I"H$gIC.( =MW3ʪf05n:qMDrd.mHA@S DTm,M$ pHo}Jlf̖2[~_W,%u^5i+EQX5MmN de. Q̷@E"JH(iKcn~xe4$1? ҈^]\}Y s" V4~}Af)}Lg44" Xr'6\Ĥ D,*$2rB_Po[K+i%x@2 t O2(RQ!e= }k @- D  b E {.&$qPm  )14. 4{2ְLk s@OeqI N`I~:0pSӞ#21cP )) 0 #CpN%9( #sqgJLVIPjzA NW}AOf#H IpM@ ":=4 tI<ylQt҃ -yD~@GH=?  W#tEq`z>ij>Iܓ@'/D :҉M'zSҒDSJ[Swt! bCQG^_FHM eL @ 6]΀ /ԛ dT]O?}JρXbuPx=PpRFd偊hʁމJ #кPqvT* ᯻%@cz&t32-@F9`E."=ux@' S<xPH IQBMytթz%h "hIWNrN!//pRT3L[@I2I&@Ho2NjJPd^6Kts]Vj5,.@7bI'g Y ,`,;B^Rd}ץ~\Z  ͹# M])sKҘRG $M_JAjK?J#+P^zc1\ [BNtT"9D96_VoI~mvE+z!s\q9.y;~`K7&Le*STd"S@2@dJT{.ї ; ݴ*Ђk@y=r$rҖ@m H9p +PN oJ[E{n8i -Փ=# %4tJglInzI)2;BOpC?Q䯃:[' sVmUm/ aﰷ6Mеtu] zv} ׾W6-j ֒bJkZ^=Nz5H14 $YЉ@G$mASRaҙ =LZ1rB9@M ح J{ Vih~i *ЃnV2Eb}*L. ߀@̇^˩z5;;;L_zxyyƁ\b.ae[V6H{.0].XVO gg@.z>\.\УhT$Y=M ~ @'}_iK3 HwSʹ9 ,SZKs݉f h$X!HH]i '^Q6 #%vizo[s@jOOOOd}SwjKW }@$IuppR+iBS2$g4Lw)yM6y[j%r^?y~,}@^mR7刴ԳdSvSe]B亚g 96o{񯙁7\)9!w EvSB<`ca_ռ8y/wzB<|Jŋ\|XJ/|@ك}S>=g7/gOMec|z5>{}Nu}z|>K}gWQ_/iu1DlL/~΢"r$,Ili_{wrC g%tEXtcreate-date2009-12-08T13:02:37-07:00j %tEXtdate:create2013-08-04T11:42:26+02:00 %tEXtdate:modify2010-11-14T04:40:51+01:00}gtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[^x fx~&VFY!qdsWT - @0@n𷧿w/dNG'5"#Qv Ӂ kG1`P6?|CTn̰tqǙ:?Lst+RkOU# @MpmJoAt YZ\8kW@%ãmB" A`f`gT`$@B8D-DCDę7!_Ł wοh2_DCQeFeyLS41S3tAAt041]je2"/'D'빅!-0?v+8hz2'nBGmn %}uh:4-0@2MPHax ;pȃ21X 8+xP!" ! r0R&-pn]x0 /a ` BD@D QCtCCO Ax$ك"GR$Ҁ\@ڐ[dy#3'CYQnTE7: j;4MAh ZEЇ0:΢qc$p8 1p\w׎p`2maT,KRucC86xa^oY"| ~?A x rm'!G8Ah&tD"QD4 :q,qYM q$ƤdŔTti= 3 s s2!ZvS+$NɀJ #&Α^H8Xvg2βŪjϚz9W2,K6&{ryFafȖVvm;3 { {%sfem#9)yg8pNsd,rpuqMRp)JCܡLq席øsyx4xxxxnxeyy#x^}Oτ// "130Oq pׂ``9!n!}!PE¨N^""V"t"]"sƢa3b1C1XM<&%[$%NJIHIn̔l|-Eґ *-5/-&U:UQ LL=EY9Yw-rrr)rrF1O : 'QEMP2JM Q7(*('(7*oh1scO7ym*toӚJJKU.ULv/jjT2'duK V % gͭ5okbhӚі.qӹ5нwQﳾ~r6n4478i0f(ngXe8f$aoTm4a,eh\gD$'SSE3=4Nsyy6RQKIFy+MV[[llZ7Xhۤt۲ںؖN)1ڷ[m^>ʾ:vsqDprt*sz|υr凫!חon~}cGCOAOgͫvǶOykzgy?!#iA~~gVXSͨ@ #A O 5 - Ji a[*OGG4G2EEEqEGuGF'EЕYc1 [F],#5;//~<0,a)-RgRTRobrv˔S;ԝS%RwLGogHe͘e~7iwG*G2qӾWd﮽5fe1F<V>ӓ[G9zz~p~!C ?-0*?y$ѭG~;{AFQe18xĮWKCKL˚˅˳O08W)R[VɫղE5wnNj˭u:Xs}wvC3ƙg̛Z);ۜ{ǟpӋo_ҹt++9WW[B[Z=[ln_n8A۱~3Nzܭ[}ozwwܻyzztzZj=ګ{+}Z}Wk?no<1h4xk|'n{l{dY^$XyUkE£o4i7px9I}vuj;bզXaj>2c'O?Z`,*7o;~ce1gI`~YgOWW%~ٮZ\_3hp0dOJ?p nFd=dNB lAbĺĦnu=ghV =/$a.yXjBFUvkMJsk6zkj&i m22ilrt֢rzN;d}yIgNmܪ/yݼΧ_L.P;H22CVAtҌ^422b>w$'z')%LI)IKI# WfD2-ɽ}/>,Xzrك/ ~XpHs5ǎ)y<4ʉʹ5k?X7{zmƅ&sf[.txrUEUͨI%7ouNƺ(݂w*ӾoGÜ^ޓ5=f +bX z5R,/S^{4falp|"xRurݩwA?t|țuxSgyᅦ/_/[bg/upC' wx#HXY l285,)nQ<{ykg9 i"b:qR?*Ʌ+*)o`(_ٸb[V.EQ?s!89eUF63vV>{9uG='=guiW6^uzxFyl^1[`L.5 զqЦnGDEZD F}IϏbH2fb%JHH2NƒJIN+Nߞ!1kwe=Q{Yei8z`1{"7j^C;BKݗG, m,oAȺYpvm;wq[A[O}ᏜtK/ L>x8)uss/f1xDd۴w˦O͜>5OK _M4spz #Qy!.3 % ̞$u6iKl9pp%Pyxhz&I,&-n*'GF̌6ŝJg6qhzTи9#OۜnP`Xct^,oZ]Rmcekk'nm]b)XWmFj~APŨcUA~boBBhbѰ(h$=.F.@vx/ U+I n)hJi3|vq]Gg/ީ}7 0s+0/v>)P##.G5  ׎-)n.9z<ԳL\|pŕʲ'jݾi g,4ٞoN=_rG.\lmr-g:߼s;]oi{^*{?<қ(o}EZ$<~bkCoioϤu-]^_@pP SHp4|}~ 3pH&0[G "h H89t!(Jh6OП8 \ ׍ aVXx٥uU37tM/)[ZXZ]҆hf羕acSKWmni35|3{5w:?D`M j) IME/V_Qjh[qxWΝ=C4L>q7NJέ}^*5: (6X;  4tSEґ CQTAhځqpAMGLۊcx=~AA'#YMLL7 ̎'?H7,,,oYXO")g9c)3VǬMy|* |,l-*.,)Ҩe;~KûgM_htmז;H=&/i{lgxQjhXDۤw;>XoPewꋎK>Z%rZ H*+BB܃ XGD$9EfQ.TVt GS3ⱳ^ _J%J D)bqɆiY $ITHgq`9JaMf ۓobc/T򥠔3IT`NmH5r!zw 9nk|dHjk:5cmwYod,ˏ:X0t4kQ|㉥Yܕu'j#H9wN텓"Ha3:nt6ݮ.[xPA'*G.>|話 Ʌ͘X;g/}[>⑥K./9rs{WӚZڛuu`u5@XM_eG~T_@(Hʔ0+r cHRMmsuzg0[PWIDATxJ+K8-"*W>.`K s&> $.q!hI0$Xw59'17dž3^^^ dAA+<>>Y]]'"N\.':sy޿}J\faaAlۦ\.Hښ4M(J~.T*IRq`u6iKVၛLdkk ˲hZ p~~Zk&''q]ϋp}}]QJ ,// Zh/aTU(0Mqm;:3<<ٔR(0 R+J1P,2eR,Ka$£#9;;C)ml6IRFX|'2 wP(P(D y?u/ضy?uov-/FIENDB`img/lightbot_noop.png0000644000175000017500000000164712240711455015524 0ustar mquinsonmquinsonPNG  IHDR szzsRGBbKGD pHYs  tIME5'IDATXoEu7 "FANVA**PC?RHVB.=8PS!U(BԍXx1/ qH#>*͢˭-cc?C't R%BݡeeD8{[!᫯pw8z`'#qrgoQk`PD;:=K~|SuC-7lɖea6DluNΞ.pwz#&)޹c F6d[EN:̟sd|b Oq"v-#!኷ӎ[68rBi@S>Hq[[8 |hK:Љ[`k 'c *N뀭--;+А!æG6EiHtgEFAyDb OR$0rlByIU\)Bd ѣxuBHPy[*uZ-’bbeĮ=nZ}J(m6#+eBoۭݽ!JIbFTTsTkO?,uAli A{ߧ63 酤e"FFjn`z qBo2/n¦ Go}IENDB`img/focus_not.svg0000644000175000017500000006262112240711455014666 0ustar mquinsonmquinson image/svg+xml img/world_sorting.svg0000644000175000017500000001316712240711455015564 0ustar mquinsonmquinson image/svg+xml img/world_bat.png0000644000175000017500000000134212240711455014622 0ustar mquinsonmquinsonPNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<_IDATXŖ=hA/1Ɵ\$( ""טJ&Yk&  j!(DA!p h@x-nջ75333kXֶǬK`Vfg1D1f2HWpC$MxL?*nx+f(A~ U1*hӍ:jEpMLp.(e j}NФU0Jx+xWE5-7ApIA>c&NxJ]'p{(Xx%x g쑠 q'`CY+xh@t! `]L#xh%@L#?FO=u&ubb6 sDǪ DApSP| "bB=A1b؏wτa1nBȠ?:m6;ͤ8B?WG۰Llv 8P. 1阎tsts}w'0lveg|'m N!; 4b[_F}ZHx؜ާEb}ʰ^ -y򶤟~W0#NIENDB`img/focus_check.png0000644000175000017500000000216312240711455015123 0ustar mquinsonmquinsonPNG  IHDR! bKGDԂ pHYs oy vpAg! LO8wIDATX_HSQo*eMA#%D"$/=H*!T!PQJR/j"$ ێt66ۦۼw^pZsuἜ}9@1B8+j@`/?˚P|7RLCI+$&x_y^B ̼q@@ANDʤ 0LJI5t̞&YIT}[@fr`6),vOvr|m_1gO,xNHBY&nw 4*fV91tOBl./f]P-*zF 67&L|Km̞ vy$1A

"=CMKVޚ `IXg3LtNN?e̚yxGArU /낺};BLK,4y~ZV;3pVN ơiLMsr:]A}!'}/!*4 AR T0:>OpUYFWMX`vA aY]=IcFGacƀg,y6; !7u+yVEuܭrq;|TiT br4}ڲ40(!wTU4*a?zqq7CL^Ktoj):tdmۍ" *I)Y;W _NY|K@@*,}x#>KWRe**<iwޯE%~П))V%tEXtdate:create2011-04-02T15:19:38+02:00K4%tEXtdate:modify2011-04-02T15:19:12+02:00>CatEXtSoftwarewww.inkscape.org<IENDB`img/lang_javascript.png0000644000175000017500000000132012240711455016010 0ustar mquinsonmquinsonPNG  IHDR(-SgAMA asRGB cHRMz&u0`:pQ<PLTEعÒVd4ԓvIӑWVc3`/VÓ׷Ua0`\+Y'Z(^Z(yLsF^\*bTVhZ)[*x_.UÔ}PɞX’Z|Pc2rĖhYͤoq‘[*c3{Nb1]zMyŗdqCm>],_рB_tRNSqqqȀPbKGDMh e pHYsHHFk>IDATmY`+VH!9uᢹ|Ϝyf(*F4Hl2*:.tTMjHz h'@;nY'vx2"/5! OBd v`3Xz(ccm^4qӿx"5%tEXtdate:create2013-06-15T20:10:21+02:00M0%tEXtdate:modify2012-01-13T11:40:39+01:00>IENDB`img/world_hanoi.svg0000644000175000017500000000730712240711455015174 0ustar mquinsonmquinson image/svg+xml img/btn-demo.png0000644000175000017500000000627212240711455014361 0ustar mquinsonmquinsonPNG  IHDR szzbKGDC pHYs oy vpAg IDATXõVkpT~sݳ\6&! PH0@@:*a/U-0ZkgSoնZZTZTDBpK*.$=$8NS}fyg@M 52bɒ%P(u8]` h2(XʂBfp=Ox=||'^'$W@@B Mm\ k!QtONN^F< 1J)N8~ C'MoŝGMer<V}dAhC؞A#gE;{9F=|Â=x.}ή&}t5RNMX+ /[vKSk' P@Q|̛~IFB: }`!GI'(VGC+֬@Jrq#=Pzw)FW:y5|4]2 y-ƒtI&%NQF ]OǎAy\όd3s7MM1%%%G,RTͩDҊ ? @[fZ5\6]68OQr=dq@(3z"4EbX;͋uSns؎ }+4,X+۷8ٌgϮa7-R@N te=ܭ{]1F+~cԌ!^ɔc&n#}vvFxasٕ?&%9FEx<ՊƱdľ- P3/O+]lc[sB$/k>M}koR9 -l +: ܘ [{9u&W6 3:@c8rYTt/yѹ4*06Eǿ-HF{A-Ս\0f]jΙ3i݉VX gn_x>A/hK%6PtJ$X5`,pSQF Qb#ِ;|D?NhoNzea{3QfबP@EkHgW' ǂ,GQDAcJEDfjDȟ,`'l;^_ * ʜǕլ)E`&zϽ yQ?kG~[ 0C;BK~.M_V|1ʈH?|I[rL#&&",sXv͋nɅ?bBzFyߩO h@񑪆c%*d0Q]}bqminYm&?07o*,(\$bPn7pgDPD$~xb:[>ZV/f s"2X,>O ߿,' *$0z2|`hQzөb#@ mmmGÇ/WxxP-=Y,D#Q#Ty5^^>z؇"8n jhjjFBeYVE !wɲ< ×䤂 @[HpajXJ8q"NJzӐQTHQŃn1*jX?\?%|XtJ<˄ kev;==\s@HnUhC =B(C@Ĥ$gYY]vuB8J|#FG ' rvS !.q@`ʲZ?-%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2010-01-11T09:30:14-07:00I%tEXtdate:modify2010-01-11T09:30:14-07:009gtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[ԯ^#<~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`img/btn-reset.png0000644000175000017500000000440112240711455014547 0ustar mquinsonmquinsonPNG  IHDR szzbKGD pHYs  tIME(IDATXåT?y338#*"+QȊ Ҥ1)R h `YTRĚ64i*,% i ֨BtJY켙޼wO4L^^s9Wq'HcZ,7@>%"Gz!r{aE mɉDdf ZGSsJ;v]vE~cL&&>ab@keY$IRmH$Zׁ'R=eعsg("0u]AkMX\.Gkk+055Źs(Jchmm%NcYJJ;F??|2tO^u]z{{ꢭt:g !>Fz!4Ld2Rgx;Dd.jBڵk?>f"J7!a0::ʡC ϓN#{<W1X^:::hii!H`YVTVRe4`l>QVdhh(>qڽ{@<ϣRp7u֙8ig#,YΜ9s.ömR "J۷o/c}q( EgORgmtR epV&  =ΏY*ط[~zÐfM7ıc}uNk}[" ;1xǂ Vz<<2myT%ULb4V9Iz_O" LdXp!###ضܡ1K0>cq&>itaE0nwБQٳo e-ݍy(_0 ˲hI*mhoM淞6TGwL6hy-SmV($ڱ,+ٳga*jcLCdوDZ0cdws\+ p?Hx`E1 BLdƘj4bŴ,YMޞ% yxs8ӿ,VJQfHͺTλg- Mf!5@{śxee.-\-eDr<D)ae :@fbyIOwgT)Rh9GpA# E1bƘRBDNk,̙3\r8>vGZmP\1mNw$B`>oPȔRȂ1etN:9De122H\stLK GSxPp}BΥQ n0eEy)!"G)˲rZ!֭[G2.~~/~ʉ5,zW}# F@A*蝿 9vzl6 0%"G-[~#"?}ǢEحmL̞n>ERMOVR;v`v$j޷oߏųzt6Zj<_H\6K<3HTX'OdkRc6+WY&r\*PT8|0:L&☽c===וRZk{=* B hbL"Z܅uqE^Ye=q(>|^x!JwKؼys Hj:;;I&$KtM]1}YFFFbe:LYyD䐈tAycX~=7|3L&QѠk@I$o?dӦM"_VYls̡1<<0Zt:w8p`٦Mbk&"(f&H`t[_ʜnܸ16"NVLg;TlNJ;$%"_+ {*]䕃J#e 筺?w!IENDB`img/world_baseball.png0000644000175000017500000000203312240711455015617 0ustar mquinsonmquinsonPNG  IHDR szzbKGD pHYs  tIME4%r6tEXtCommentCreated with GIMPWIDATXõ[lesnw7J%eK 6jiU[% c"! 1!CA%“DӄP%*5J1h6XkB)m-Kwto;>,ٲֽ;i|soF4M#M;GO H"[(3L~<f@5^= Mgs7!Ѳ Ҹw^$ϔ篫\t,(d)]cq'3*P8?7s*=RVdՌOٻ}4 ]m/_v_dT2JF%(JS5U)5edbFڲל#_жa5oBy`xǤ+/5,j{Ί"KG3͵ oRk֖Ȓ>xhmyة_Z~ק= cn_6Tw'h?ys 5B'9gRͺ4fŒ\>?o+hXhs+}nj{>PChZSN"e}Ο\_!5Ѩ^RNv9v|_w"P^@Uƺ²$+-(r2P}' @ե(DY974}?d `6T<󁸷ȞgY݇Ǔm\y(.cK$/Y *_7({>̡]m 2?wd /7?oI{PdO3e(HṔ- ..Ͼ$sL?Er럜^:m7>x%pGS| >;ر*|3U%,0\>z<`+re{=T/# SIENDB`img/edit_topwall.png0000644000175000017500000000034412240711455015335 0ustar mquinsonmquinsonPNG  IHDR szzsRGBbKGD pHYs B(xtIME 0)PdIDATXұ @! ߇ؿ=2C; di }p)"')`9y/3 9#9yyk   .> ,IENDB`img/btn-alert-on.png0000644000175000017500000000521512240711455015152 0ustar mquinsonmquinsonPNG  IHDR szzbKGDC pHYsHHFk> vpAg IDATXŗyp?{yK@ iPB @ڢVEǎOv#XtSVm k ""@彼w&օqw9sJ)c'a5VΞOTz oлW/>>h3myydž&&"[ϭlNqCO~KkG粶4COKpIX 9͹.m_VZcoL eoz!ck,ȿkpW#F@tvHS|rH=+W,E'*) ٖJeBͮVks+=^fT/˛"vn-UUNk;}tpyA{>lG96nꔭo^ׁ}ꊥkZ&P}ݸFD-FyX kΘRuf֑jafjskR 縋aTzIgR|XvtL$V^斨]e[@KWj&u,^\=j#Dܚ=!P̞ V0O6y`ʺB0JG<jVٚ0j;""c^thBNS2onQSbNm>[B,֑\K.*Bc{U*72׮\ѡfœD頸KymP'; KF.h7š F_:LE2&)i+ݙ0cD*^C}s7+-q;Ŏb(@q+@J%@H!4Lz2p*tGiO!fضbȀJ}HL:hTLir]aSZs[Ċj+2`HQ3jh:x$o7vA0>,(oD ]@bD Ma1`B9l%Qث @m)A5sQ:c;84 ]1/6snwtޖPRl]lp%!ێԬNv <|ppx #0Z<2vuG(fԺsݢPPys id৕gf߸6N Cz9aj86NEX8(~7Ŕ<T E;ek. 2 +K \N +4_D]N{ tZHWX^mc!߿R̋{[<2w Lq)h\60 CrzvO‰o22kR.܆lqNI>I}Emx#ԁnTD[lw%<{׽ nrwvՏVdrn7Q詠WXa,S) uhƪ嶭9#ju64 ڣ=Uo~G-6^@vڲu#eEB^y'%}Jy̰;[Ӫxyu/6̪ws̊uQ f5,'i-H2w?U紎h[C;;;1;H*<m0g3XL=M=x,!cwm[vꣻOk\نG%|$O[@ d/y!W,:LUmyϪkEW='O?5ٲ|O}\0` #SR, |e[%On=U;n~8upxF5?_k뀀FRA\&BXYe)g@#暛g *r\'^S&1cq SMa5pg2$~'`|;%)+2.wa1I4Ɉ]%gg:aM,nQ5OEdNP}Y.9֠XA%tEXtcreate-date2009-11-28T17:18:28-07:001,%tEXtdate:create2010-01-11T08:48:09-07:00N)%tEXtdate:modify2010-01-11T08:48:09-07:00C5tEXtLicensehttp://creativecommons.org/licenses/LGPL/2.1/;%tEXtmodify-date2009-11-28T14:33:27-07:00. tEXtSourceCrystal Project'tEXtSource_URLhttp://everaldo.com/crystal/[IENDB`img/world_turtle.png0000644000175000017500000000307012240711455015373 0ustar mquinsonmquinsonPNG  IHDR szzgAMA asRGB cHRMz&u0`:pQ<bKGD pHYs  -IDATXˏ[~3ml cf @ "b) !@da)(REؠ<EY  <3n{3~Tu=e@3HYoWswϩsH2yoy=oY[C6Ay]A /4M9-x9U^8ykuʽ[}__==.-' 4T8j"KH㤗vy>ʓ4QYBsRh,h3__.SO51h9s B<;-rh.躏k n+- &9Ö)8({=ZzOPi'`jA XI㪗+p:@A)N?ޏ^`wS3ג#JP dnāp=0R(2Rm!`˝Z<.?P]A:eS0sV0# 0%4HFb4nŗ>gOBh⻥|4۷ SHz$h`0Q0IDz&-,r2/<\p/m3`>͒L;@|l6Ԣ=%@\T[| dT.<_ HacS,Wy9Gހ6ry M0s R\%(V.ukkZ?>jM7(.N8CݠYg?Twv4j(k+ !:Hn*UEH 5 Ρ>nt%7FO̓ޏK!@pK]#ٜHX9i-%<WpC~ZmTMEӝxjgGXL"S=!-elk5QOpq*YLn2x]) r9U)_9xWU0BcXvE4MDYQCLz Z|uyδ6⫙?U0Ͻ*uWŞ6$S>mqtW Bn^`ʵ$BNܹqw}~=nqiqsgk?]+owoi<@e]X)k|<2;ݑt$.:-%tEXtdate:create2013-06-15T22:23:36+02:00Vf%tEXtdate:modify2009-02-06T13:44:35+01:001IENDB`img/btn-debug.png0000644000175000017500000000435312240711455014521 0ustar mquinsonmquinsonPNG  IHDR szzgAMA asRGB cHRMz&u0`:pQ<bKGDC pHYs B(x vpAg IDATX[Wks4Z)L!X# Jl Mkž OMĤO>jl&V m2"2e!308ù|߾a& 1q'+_kZ]Gpt[w绺N.€8!"nu[Ӽju7~~) c(~<A?yjMhֈ>!EJ)JGF1A"Jhُwq ĊEpN!,PXR(ࡉucϼϐg5 Q*%"49zADE{qut|3b,oQ Ѱ*uAG)A)3kWo>;iHWHA((Xzֶ<s8`ZpÒ6K rY Fq1aEa 8ƞ_i1:%՚$Iq_//Sipg~ihm0RJB$Y_w:" c8&Pa78$!IR"7r7FPw>wXcߴiӆ .MF"|8OjD/۫FĬY3xx˖-|Rk͚5;{xu%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2010-01-11T09:29:55-07:00%tEXtdate:modify2010-01-11T09:29:55-07:00_}gtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[1 o6I? k\Z9ȁ׷ɺoy/=um!xT-8Wٶv3&Ktnܤ*;XRhMUCc.rTNx72jۛPT W}gϻEЂlm_w~|߉H[IQ=FWjeB;7Zټ6%') XCm5#|ldy'6u„P=N6Qѹ|kh,[@ֽ_nG\{k_5ޘG'rHqj{Vl3C}8ǿȻ@5o ?Ao\`o@P9ku5v "4T'89dlf*{)]ψ&틝72SS7V%zj&`DS2\T+?ް O= /-c^5O_KUHQfsC7IB>YqA(O Zw`h h;6%}Pv9R.KTh^F Osd/ Ez}_`Hg2 D!Hl'P4@z@/4F ovi8I?v% IR@TJڏTEOo~?XeVVMyP hҶj{͌Y # Y;0NuIJL@e^'2VQ8Qgg M.I **bXX*_~\ٳĪ Uo]qdaE;C,/@jՊlH-ϡ ͭa2WGNCIn2O=UQu\wGT D""uCoGb EaTsN82fa%+s&RdWf8vޜ/Vk;$wQUUQc֟ WWnų,iHo%cWE9fe.+lf5>R![RqmtK|>?vv, C빈HT]д_$gv 9^/駾# "c>O}'?yڅN/g̞}{QlQ} +qDsED),CX88NFn"93[Xq4K1??Qq5uZ'r.Zv9s湻 a~SS㣣c,JN:5}ܹw~Ya^ {Ǐ1L%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2010-01-11T09:30:19-07:00wE%tEXtdate:modify2010-01-11T09:30:19-07:00gtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/['!yEc ff@ k7vܢJD6K' (W>\[W~S&;^ƺVR'0ʵ@k%Eޮ>ou @Z}5z-{Yl%x-T-|Oλq}8_vI`n-Y]+sGX,Ixb>?-=zלsщǹ/?#A]>H}IENDB`img/edit_nobuggle.png0000644000175000017500000000230612240711455015455 0ustar mquinsonmquinsonPNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<CIDATXQlSe_]٤I;1(k`C B%"M$N1ƋԐ`.Aq0qM; vsc_cڀyR]΁# p:g###477=ݭxxwelNO<,OWW'g/>⇁Hg,|$(xy)Z.gA@ ^yRyi V,=~ls)]Sao׍K|C7g"P~}&}-K {@Pcz6F]qp``@ضp\.GKK ,^~jm3sk ٬kJ.c֭Wad2)@mmm.mӣ@AX [)I{zz+qdU(^F$j*<;wi 5ҹvz8G׬aI,F{{;Bp8L46zD"zʕ/A} &+Hx2,Řc__^tv/^͐ǚ&͛`)ic eYض|`hn+ u$ly}röeY2v֠3秂ȼtN+U!(1WVd*z~PP(DTvbƍܹs.!nߞ@33B:TF=KRٶU:$;W֧R)[IwgP1^HWb'O8NU qZb1(^a)8PN9Acwo  Y9Pv OeŘRUu`d>-qzlH/c?lv@=z0 lҒݴ'/^/T*bv/e"0 !˲D%~0qu]YYYK.q]8~>~ёwttAQXl]|Yoѻ~jj,ѣG[~?׿N|mI`=LX,۶^[b_۶^|{ߓۿjH?Qyq{= p̠_]677˞x""Rn ߗGo~yw$!"r+`YVgm[ͦ,//ښAlY}왼xX#e‚HE2g5.q$ CۓǏ˧~7EQTX+?f)_@(Mݶm[Iad+L#\Q,K|ߗ0 aCe}ߗ$ۮluE7m'h!]( 2 fz p1lU*8ض}͂Hk_lm ctUM=Y$:ZB. =snyEB:YϠ=!3xu$8C~蘻$iWc-h]1pZcv`,/H@(\]`,vS,gw p4yunMͱ pnXf4@0}.> 0"aPg7:p1BF s =)@(B P @(B P P @(B P @(B@(B P @(B 8sIJ} ^ 4/2^p28N>BN$d2g'N+( 0U"B cHDy2pVj6(b^=.MU;b vT cXGTL; >!L)6Qφ@SlxGQ L]Qd~GpV6d.N g8 (/<"ssY70#,`GN-8|Ðf1bpض=ߔ]/ӍL,F y۹}0Hi[)c,ˋ3wL`Ɯ%2fӅD"I}E4i_ A =x2TeM=tA07 TiNK emC|azQyx"cB % CqGvp3zƹ9V8Q:w\ץng).l>ֆqm[0(ĶmiZ2??/ZM(/B^ Fcu7o+ b!\vMoʥKDD<̝q$ Ñ8S^Ax""JE(6 B8@jq+]Ϣښ}OlۖDa(q8YEX%{lA$?WeaaAz-iZRTX9PWBR^ڒ` VdjuuUx i4˟񔳊(WM4-e̺Yyg۶mi6fyq`uttٳR=s2ϥoYgYo뺲.mP8 Y]=TQX%JE\re^ߋm^@( wjQ[FETUYl/zϞ=SE\TΥ\Hڵkrץj 'ɓ??g}-q~@W^u^׿~ۮT՞뺽,IM";*(#$GJl|f)z= tUm28/^>O&Nm۶]xA&L>_^^}jy Udxϟ?~w}]Ȣ,0 PժZ-iJt:FmvOhԟy(x>NiWi_SqH AxeYqHyG~;yQflB!2??/nX7<`|z=w-}j5i6o ]˲ٶ-"=F_dZ? @(L1PewwW^xq8g>>m %3z] g(ʳgrer礵ZMzq{b80Bqq]whA OsЫvfV/uT,T*y'­?h3m^0 (B`Qg҂z ]WƋS|,b,8ζض:?m;ӳ,M(g*?*JPH$#tՁ]j*JJB ftrECqx/q<80ڸXg(IJm˲zm!g; Lq =m5(1Ӳ,K,˒($<[^'BEa,*e`TȲjֶm @a!o3tPʁ ib\edܳEEL8;Q8cVxECgZ?j#K0$pBIPe igd?B88 BaT]fDUh%p$ֶm3 ݑN0|,ڶ}T:= hW_П3 'BYV2uo;ӳm{  %%$纮8#ˬ9/^(ʞPI܎=˲j433~R@ 4 uFe1uYFQ$~}s]O8P&A%z,I҂sqR$?N/XԳ?e84JIݦDQlZ-\^ݗٛtzf< CVu׿.v[\bkO+ 0鎽۷eccCEі.ؙ}!ѕeӈY}}X]|YoRVŲ,  Qz]_n͵Db?ضٶSgڔ٘4;r,{tr[{jJXj2YzYeYZ歬țo)KKKӤ ym.%I277'7oޔ5q]}e=HQ&0ܶ,8DQ `0ʾ~ƍgq-",Aˎ>Vflz/_zKlmrxx(qgalgEuir UktͦnZBhskX;Ne,˺8;,PWF[>~ FN, @zŶmuY\\LbvC4vN0ԨjƆZ-988=z=|P8J2Tc&6N_Jj hNomum{qqWVewwzj]sծ."%$eܜZ^y𡷿M &OhtĶmؐn+eI^۶%' ƧY(l6eqqQZg#q\;YW}b6 @lۖz.˽MT*=u PsNj/wy+پ /HHqQBa0L\o%CںJ;xKד_W~^ /i?|H Hu֭[˗jɗ_~)IVK~VhOz"}͈H20LX[[oyyًH>#/ 5'C{'ׯ_%2 P|)ӂ2%lޞ-~|c˗2dg8` Jݖ7|[[[*eP~?_U={&/^ܼyS|ߗC裏/Ǐh\7qgdkkK<˲?o7XOuLAv(j*v[>|(nݒN#?G%D 'dME?VrUvr%X~˧~*JO2ʰvܹ#weyyY*G?Q;.nJ٤Urx'??rMuH(bٴX/-Hjt:9::;wHV ?Q>Cy<|-㎂~mo~Sw?P^x1TZ;I%q~Ϥ?Cljt:nŲ,/巿jmQ"!pwQQK<ڕ@(+ARTR~9>IPe^<IM^8X5T&QV$l(+WG7}?ل"QABqmqQgW1t x\D=jW2͞ ]}lTz=[PW&T"hՄU"`:C>$MϤO=#Z03 0~nBR3sM:_lc*݅qb&+nv?O#eQiMLQd^ Pe{0,E,4]( Q KNVĂrJ&Oq՘z_wKLz"G"- .!qRl Lu9NEg0X?kΉIK9i\;E?eg/(͎ ./5m:uZ`08VJSfTpyiИTEډ1{Y]Jn٢'sD xVl>.Z?' YA4ܬ>jĂF dԸP pnE<{[fOkY㕵=*+֯\|yJF޽Ee Ln+-#*RHU>Q曙G|'m`ڰɣREyLjGP A3/I wZ+ݸ ]Zk"Oڸ]%<*')7nX(&(6V(sH3e*vu.A 2;t(()39iJ fӺS{bQk̶%4ͮ͛h{%'v]wڿ[Q";7@X(+A)c7m~fi TV2\)z,=Ys g'ifwsSi pe BS8 w)JHeqy.o*cT6g9vH1:P5'k Y;4\),K4ƤikJg\iUY#8 l3, g1 CY;S,,aYV;ۙ'2Qw @(B P @(B@(B P @(B Pi8e}ִg,+S}ʼgm>+2f~d^C'e `SYY?[/lٓ8?|7~eN@ (szp| +?M $""Y_  *&= .Q]`E E / Bc= yVۤN:F8z5'9P8wrn1G$3K7\`B(8ƼsP) y&bN:p~PzL$5ps aGp,g>8rv OfF} ^y@ fHao-(G$ y_mk 0a8dm۞ym۶S zViuZ4"XT|iv3n9K8f6 IDATEApw1ݼ;0EZ;Βm8͒4m0 5evN260Nrszj-ea|Tyۋ,_A((sV/ӝ{P3N4~gZ(g^yo}n作/mΔ:K`_Ŭ 9fsNbhcy|([˹ 8 Q)̗?]4ٌƸLn夃 (uc@s.*h?>M˒ge^d7SZvW՚QcຮTdd*=`\уhlE }ߗ(q$7w uzXeuځɚE%3˧g:U\+4c~Ʃ(kGaEw,6'NCEC;P}Wuݡ;E OZRs(mgN2_.Ƙs]A A$]@(+Eg]$¡QYbe xI1øt@Qe&d e=׃`=Ũe%#8ג^ P 1\fɅ!LS `0H^ ;́Y堃 ZCZgΓ̥Gݑ eIPR̀5@63ѿQlݑ)ecol>F'Z8MHL|J{_G B;olEr,qhZrh0Q =ɥ?8rNy8}⺮ dA?a4Sg_=g9fWL^vb%z@g O85}ѓYb;o{cw? C9::988H.ufc|Ev@(Yi@Ւդ"O_ ]^^N#JEVVVdooO Y%KKKtHٔEYZZF0g]ֲ%3[ >77'˲AxqCYt9!"CR(,Q򲬮/S{Դt: mܜgv{AEQE$zZYYD|o*d4&|\FCh4#At_.k֎L=^RĶ,q\dccC\וFq$YښJٔK.`00 CG9粉Y]]i4*kkk^q,Z-R^NyY[[eY^^C쳷 *8#P|zqӑ_] '͠MPP﫪1WKKjzmU"KL([o?y{% @lۖF!Kɸui<Xs*Q]}_ju9<<8ҥK,FC87n`0fԣ+v-QwD =""FCduu5T+++DŽB1!5b۶,..ի=q8ͰmIl̋/~Imn^'jym4$MPVeqqQED|ЭT*I2H H1k&YYYZ-累F, &#??OFv(iLW>yyj2߶m~[֍7zZ^R,3{{'`0{)&\@7[eʕhT7 q,,,ȣG?Uh%\|YݮDQ$?O?83(TQYKKKj-˺Yaݿ_}]/9bVۛڎi2wҞA[gg;ȿۿ%Y,UiϡfSz-jm]~l6{j }{Yߏu(cvu]l6?w_|!-2_T۶Vɗ_~)벱ݼySZ+r}OK'yq9'.3W*Y\\L~~uuUL 띧o_~3 m[PZ)pZԬxg.Mڎ\E X.EEP[wTe˓f¬݆zVǩfLL}{l͜x] pn}:Pw*sy~8ap+ER=qX@"atNh5 4rZkѢ+?uSsVI,5OrjSZsaO@giPu4nG!OW2=s~NC؅[}_Bjv`p߲.Y)kw挺ołnxq'\55*u9|l.qBŘ([eg:8۠pǨY- gf/dG!{D0H&ÌEZCX`T X}:,5}ZgiIGv$4L.>/k@q)kaI™MQue*HpUcͩ8 ȳjGyy2]4լ3.4KH'YlLDiDƴC͐cm1ug #PӮ2Y'qVeȊYk ;sbgO?ff Y1f `G!HLք3^łI?u,D Y'iIXgڇQEaȮ鳵Rr3-0K$d]fd%i QbtzQab 91-ZTU?<NcG P @(B P  @(B P @(@>(H"2,K,˒8ED?u+sy-ٶ-"۬lx->/qsAaWeښεq{TL6>1ǮRGlxQ8X@hfX=˲Q1 1N*f| w0c۹Y]Kf+Ybq{q{"1Jm&M̪$Qs1+991(xe@ pРW(QuEH"rVϪ5a2 zNl  1<"eym02, i2YIY1>9V*8 g^fC#8f,. `&5z'Ytmv&)3Z(&vlYD?󬧢]dID`w5%d0_㙱; D]@(:Ռ09Uǜ繹FE>(w2+!Cb<Y7#@00>ec2^F6 {(DFfpeC\tLg!ɬ۶=*xO Nfy)`JPX0QI۳x;1;H́g~1ed;|"!Ȃ^\)g`n?X(Ü3k>.YY? g?%caJEG5 [jsMc;cQy"5 zj.I45aMkiކy!nbv!58/|qݏfY=c+" 0 eyU9W$MFLRX5u-8e*?٘qAbѳsd}~;0/8g3% vR IdT ۨIUfgm[\qĶmqG\ 4)#0*ex+JEժ8#A$cE_7u7k.Gڶn;5\ME;LLuݞeY$Gz/kM2/r>(viL)?m9.e1ٔѿ^TR$nBTMb]@U>uv3}=:ukLrK+f^-U*"rnljѲ*PqmeyeGDZj_w+5XҶ(/s@}WV]f!&6:qKf=2&x0 չOO?6ҲEu;Q=ͳDwZ¢3.H*aUCJہSvY EϘ+;%r,s.%!T @0˲T ; }_c pIqLэ\= 걬i:NVY 8.(Jε/Yly,GvQ)-PPV^KVugۘyPe/s:#jU\Mķ=6bcׯPxqV%sGϜݪ,Ƽ zI""fSIiO)0Ϲ)怙|<˲TaBaƩ8jdssS^+"qq|TUt:r5s y"9ѹv횬J"㗂rhjUd(L:.™AMV4MKy;3cgˊ>voϛf"Ǒ9e iaՒv-zAx|gYh4D} JeȾE&!t[J: 8Zd93(!kmD/j.ui6q-۶{za/Rd, ,t坖(Cџ9 C `^{rm/SĨiN z_j*o~SvvvdwwwBZ(+C4t#DZ\rE^{5t:DZEVm`O0 Ŷ-۶=۶hʊjdi]6( t:/Se%.Nȵg4Ug6ժ,//{۷qYZZ0 G9R4?_eKH0[ڶ-GGGb۶rʕv-bYVwgggH@-"X+{+zӑe88nѐj:$ԺRw&A J%YC*Hn^V;yfӬ/j"mHʵk׶@>䓭eH3#B #ϭk׽%qϞ=^'Ǐ5̬VQփ=S\tifERbN6{/[%NGeqqQ^`0H y`5P(8[*]ZZ9988^=}{Y]i YuaI{=jkɷ-qㆼh4dii)8@OMz-LJ IDATc0aһP0eOv-XL۶-@8J N$Q5&|677l믿.GGG3 aNr HFRwxx}ޯ~l܊:yz.rΝ~*wduuU瓺|uE6%O".ƼxJ"fSeooO:Z-ّCVOn͵dqaQV.MfIMI0z.N}]oooϛdޕ%!eY2 daaAZs[sssFPx'ݻw?Nگ;9_4e=K U&`Y,//˽{?Xcv%z);;;իW_P^x!gFuGA?tk׮Irxx(o>Ki-R66 /--Iߗy<|P>=k]9 C TC7xC<ϳǏ;#;;;C6 AjEtZw^:,--_|!m| =k']pWJ^vM^uqG?ܿA紝X%FCŋVQWJv TY9F泇zs ^ z.J%i,..kf}_?#~&h6/+,6wvwUbnu?ɓd\fA A5._,/_VVVFUٳgy:QQE6"|ܾ}[߿/Y{6z`W7F׻,,,x7#<{L?>i0?~,/ <2M$[%T>|(oݻcyPi^zSbuakkKܹ㭬ȃ__IoT'C9;)\_}}A'j׭hHՒ[nk&_~/?яO>{BYvt?۶{IZ#y޽{#w(lzk62??/zݻrܻwOK070g ~0Lv-Ӳv[<ϓIrOJuׂyu3u߳f)nWܹ9#}<|PJnr]Wnݺ%[[[rmY[[J(T*]USUk,rǚҟYoͧCƋ\{fT\jCxz}M߱*NS`PeUpl۶_|!O>M90qise?i{xx(;;;YϴUĆ zK'qё:,aʋ/ӧ' E v,˒} 9V:SԎs'j@GpGvww??VΨe5I8[x^sBv]w>62 IJf#_nf+4;; 1J<~u]`֤LbUvk&].ZO'%&"IMƲ"f7Os?EЧOʋ/Qc3P57mz|U/Cށ,jl~)?8832پY1REȨniA4mE4'z2:Qm8zpl$~&.&g۞W |dTL3kb[=vY'ȤfʨEǫL[8d_e泞6qeU.DgIL1GqId}Oֳ5G  P #^: @(L %G?@(L=y;UgȲ-@(ԉ=@Q'h8_ q)  P @( @(B P @(B P@(B P+Dz,̆q<'`s䰎`Rœɇ3ˉ/A=/Ӹ|&ifVTUI#M1"(3Lj`_G=k0,39Ф0v? 'Q_eW^4a5f/ϳp2c<eB"+׳Ya&d9ye~94(^8?a=ngǠ̋lԳ l4k Ut|\d)k=4~)ckHsJɬ948m4<GzbŽ.2Ma08B,(?>8/#(PJs A29s@'IJ((dړ>-ۄq'1ɤkiVnj@9IV&$p>V6ۃf+QF0 wGd`GI{'n2ۧrETyn93jLf$`ԜA,d I2{g' gkp4b`L883(F aL*e1̇Ѷ7˞f`N Ŏ؛8($w.AKEǘ3a&*S`1s)@ ],=ڝZSi 9lN֒nOL53NeOqKe]c<7M(Xu,ԝz75U9&?4.}q+owZ-jRץR$;qe,^r8l8$ o}K`Z&Ԣ0i~4MuRd~~^nݺ%o`08e}TJe+Ķ^V~t:y7P.."|D\%d>Ԧ}tdsssl00/W\988H&‚ ` ZM*J܋`]8 ˗/y__ߋO,*hH"HDg${\o~~^/O<H?teaUUy y'> 28Y=/z%ͦZ-i6rƍd+RH>WV>sDGJ?%ͦёܜ/O>Oϓ' !'7SoZ&cߗ4kwwWvvv224KͪժܺuK677^ˍ7qjl6"YBA3 CItND򲬭ܜx"E+*6wU,y榬m߹sgvOΑ|eg0  ?%_r, {)j*JnjIǪ",Tb(dooOIvbSUneܜ$kO^]]4G%SUfvsU‘B1[t:y͛;IՒj*GGGǚMx鱘)U-ܜ|k_j{c3":{ oAvO~+EI$6,m tVYz]?~}OO}*կ2L]&'v ².>]я~$!7oޔ'Osyun,ͣj[iзz=988?\~_9Mc@IOO//rrrTYudk$'?oog?Y^heQ-iS!q[Lwt*ppp ?壏>Axkk맞|jiǨ}zOxB~_Zt[6V)uVtxxBATSO 鮞U`kkkyP@1Ȳ,},*kw,N3P ,ucV#aJ< JokI*+=J8c̞kzmݒ?¤GzZKTZKMjZt8tdggG$FngoZt$˲|ѻê":z$ʖQΘN3 p6|*JDf}&+5JsT"2LӴokFU hΖ>i:Dqb4 p㱌F=U,64zv-$7lndaimzPayz6ѰUz*f7o/jX*J"[wH"J9uPגm=3J}u:zeY.AlUeڼ][ ))zѺuG.LTCuPIoݷL~Wgi yW0Ń E8gggsdL$Iy7TixI5A;޿"z]:ecID:hɲnQ*E?K` Qs쫺^J穮jMٞv2m h$g.Ah왫vy}N> x^'sl@Wˢ"1;z^sp٨"ml(̍IAonES7jmaQߗeYqj"&T]o]fӶ5Ƕ ~զ˾' j\^ˌg6jS}%keBU}ݘA+  :cF}Uu@.:9j,l6ܱE1L]v PXեYĪgM̅~zX57Cvj|{L/ADJ1jZb;˰یMcq`;u8#}S;.R&6q>=z \V.;jk(:`Xh.ɪSG")LU.Pҏlm-l|9R9RCoPaUgJ<(uP"*n8DsC)"IŅtusF߄ז-ǶHWٰ=\1O 臒Ja3X06~SʞbS 1դTu2sz~^lJGMEq.Q嚣qY悰:6A 3iMy6ulg7wM!~t:Y̪={mb%ٺ"Um臓~p岢iEK~/N'HhYEކXa][cYMUѝ(nh8<693q,svaFTjBj;˲8YoE@\O[1YD:uU'eSEvm-N!>%4uLUͳe!6ꂵEl1`P yzAz@(O~7mيSmQӨ{7o47%+TY E:uE_m76ӫsfE+џQu}e ꪌt(I%S絳m>R﫯4M+9F3uuixqq]wfo:Ӣ3[j>J2N53i{M`bI2U]'^M ybs5uN+ls{ɲIg[WuKEP|1&JH9r\ם[cu 3,bMłMy[詨3#$EFД'fId [1ezD:R,se& e>O<ɲL$\i碍XB٢ر|54FEXlu6/p=Vaܖ l]FVQ.l{)m]$=x9Q}u֐92uUgdc7ϋ̫*!\.XRcEeb(u{>t1|AOѪ]f/LE{oSu LSg_%OD8$IU(Mۡd*8+|(_GC2==7qyOiJ$Kjk`S!dFLgAf"AE[LVu%IL& Uz֋`șgUO ,Ґ6j/=:u=oDҍB}#>? ,;\TxΪF'EEURl)Ie"ҶyW(ۋ9Dfj3.b|}f3u e9"UvB~֔B9:i6y)ӹPнY y@/(VQۤfbw;jx-ot }vTPoN 5/l\%I2q03ӬiQ_M5xLjDfsU4"9VHUuȎ( W)8tgլ"TSO?I(l@< ZDZZ-V,QQQBޗ19f]d-U; FS^(6DfUNYk4MsXMD7DZq!p]RY^3_c9GVҨ5R&,}\(ivH9rqy^ĊE)e*6"Ħn޺PVU S=.$߱璹W5}bfM#,8/H9k̯"{g֪wf !6拜8-_ЫC-ݨ`lu]j,Kok+ jLcMsllSB붌3E:60N6ah$1y β3ڢNzn1/oTQ뺑8Uyrز!M`̐~EVZ;\ȬB `[̫;EƦnh9'^r{)\ו0 XX-j@r &?&^ Z|2m`lviP6PyX+DZ3veY}ȂqFt$eE!Ҫ_4d4Y֩u2PJ7UK56W\Xt[ RE'c2so;|WQ8%3F#yU>oh1xHT㱼zjf۾ʳ5LT4OfZNj̧ۢKms($T4͝MHVuPPhZtdggGmVUx< zA%ii<1K5T,u4asRs}ّV%IHQP"1PfRe Po/S=nWۛKB2^'fK zq% zΎloojIדvm=ve{{[$q]Wݮܸqc]&:!cjJu:ݕNCM,dLR&4Xd?QFQIPG8^(-۷vyǾXVt:GGGÏ?vv/D0w}Wƍ2L?*z:ZۤVVcDZx'AϽ'GGGrtt$^O>ܡӤ[c<ϓ]988[nIӑ'|2X]rtt$:%gY&wܑ7oJ~#pooOqx@?wyqĦXPQw}WO?v=[f٤q{ɲL0N#z=9::{o&-7/Ru=9<< ǽ^/yf{{{3wgսce:ʍ7dooO0|#!/xȳXEfemzLqNwmke5#U1<:88^'' 8N&aѥHxt:}(9wY[&Lw(Oh"HҗQUݪE8xs<}'qX[% %{۹!L&ikkKs^ =_PP{1Ó$UȌF^a.}u8e#O&ۓوٙ|2ӧm*RoG=#(~$={ yꕜy6},Fr-ߗ9WDw~ c7I-=4ETaA5i~VXkkq(sGɓ'RE:nܙ&*I Pvvv@)֋A2L믿` /^(u f۷2=<}TM~_x<$ڊ:tE_|E˗_~)|M<4%<ϓV%wbԻw iSieK dzt&Vht6cϭ:iZr^q*+)i۲/nWE4;d2yW_=z|n:,Hݖ>@>ywPNrvv&/^:O#1oЬrE# z3U\$ yD͹jIKy|Ml!U9֑˗2Lfr˓$LU*f;d;"u:}_F$ITy5.vKMq @^x.חZ0T&IUW, q"5}nK1, }ߏ<ϋ$wn,jU/*4U"J. as~uEJ\eˈ|6{IAjQw,Y EPMG5͐9Anm DP}TL7 q4s,)s-1"r]W]fxKgReCqRf\ ڔ4lmj.u}uj*ae=~dڄ~B0.tlם+1B|^D;BG$x,Է]X7mLR/`5E8O9R$m6>~* eUz{4], `&qVB@D Wg4P݈6U7HiU~7!t1lˈXE0T]@3 fYl*.2[{\oPH -ͨ(=˲p͖1ϝ*1:QUuwDY{YMU^ m qm[$I4M#" yEn4'gU7m[_eqU W'?Wk\k0R[9AeF7]bVYxwff"s "󫪊FӑC?~}ԼPлD2"lj)W~c^E6zG:E+n02m:_7rg.F@teK甪qُua`;7EڶC(,1_$͝]e`rVe.c Xzԝ^t}ٳNgͩ9Uݶ=cWY\dUuxtENPP]UEkluy:u-W'/ЬH%mP@fTBfzo"UXxp9rS| ]?`lΙ^3ǖ*^˪Ϻ=m>zVH5"1/%iZ,U9PEu}Kǝ=F7u,6ٽ? iOӴ/"t0.PݲuT @( @(B P @(B P@(B P EDɿ,[7\׉81pou|)3fYVhLr нzyeH$̒%pR?:u]qG4er\q}vf:i6-sݘ+|,jeMC=9A4[C$mX.z' 6xJyTͨUxLϷyns/,,=VK8ndLSF2NxelR$IrEUܣMc GaֆQC}5U4vGZx'DF`~T`RuAm*L/,eQ7];p]weِp5~QS"˾慥936m43Hy4ʉBf+4*<%Uct"in!1O*\ma" n1nZK>U UkOUA VTȌkB_`T$4lj%W#<ˣAR3j\nTN|qLdD4M(4zm.qɅ2l (Pga紉,$cFW^= pV)4wU85cL&d17*03Y=7"avjK%MX n rpw)3US^z2'zeZ-z&I>a]׍T%CUł|r"3}ߟ׳ t_Z䬵TwGm PZKPY$v{N\ݞ1Gᜨ 񙓯(Ͽ a޾ `5 H좊$z^޽{z [zݓ}t:ne#P!&zt8uqW)5Fu9p1f87a s])_K6i4}atpp wޕ{/o("0P- GuU{"ѫ Z*pݖm988 `O\ݕ(dkkkmvmR8r]988nF(z={|駲;3يlj:[ݻCɲL y2BAUuz'Je)Q`GA9=yA 0ܹsggrrrrGUKoV)I}ܹsgt߹sl&,5HUPaz6{cD,9'7n܈-s`t:n+n݊lj뾈D(HϪU޷nL&}xxxo:/_qjf6MV{k802ޖ^_HTA#t:'ϟ?qߖBQGL+ Y W_}ڢ(&v><{?anɌ,Gߤl"pkkvLǻ'O#NaJD { 0<ϲȬ|6􆢍T6dB6Ϲ2'{4x:WU˗2r6cƞt]@\ו[U(AB IEE޽{?l-t/'o~y5sTsKQ?|pEQ__}ZnBTAEs;loow}{]=6:Qe)6l;:ycڿN)puY`s=|K1lr9G<ϓ8F7_9wU&1g#VK?ܻwO<ϓ'OǏod2kM?4Ch)Իt]?Suhwwz_D/__巿\*e iʭ[Ν;2d"??㙨eӚ)Z-iwwÇ{&11W5Bp]WNOOe0ȓ'OfA@˼%NNNwߕ-}_~ʳgd<n8a3b2( IDAT#{d2a̎[$"I_3<. Q|e:~;-ɤO# jO P:,D$B2\{Hن}R|m}:t:#gggy4 ةC=DEt9@R~9jQ{Z{F<"ݛVuͬ P|i?O'A(\c.aeCql^UNXm٢*2[V14Lڱ ؚ.鷦.*<3quHB2X-Զ2v<3|ZSEB.HdKI2DDf"/u5UTR.Syk8Ya:4.w,=\85]MkfԋUg#/ikg5S> oѮa.u7. eM e)#eϢM 6ˏoEY+zX~*#AD-"I¦tѠ(lyOcH4{{UEK.t,{UǠ*:(\h0 ܯs@/[ZT]EÅTZ6"Fnjfۂ%<o˿/)zԤEm8-2lBc|)kZŵS$B3-vm- D.=]`vͪ }ѿo1.Ϙ.cUgEϡE*ϊhe pI$I2\?|z@lmA7=^am$;EPXөLu:AmҸG]k>fh-sZݍ<)Y/6!pE2 U Ug5m:4u4WmR1XTW:(\2.Z3qrueBxXv.antw]7hmQף8%7" EoI;}cU.baUu.GH}0 isS!@!P# [7q`Bq#ل5s9p9QfE/0q]^,\AYeqm\Ou\Mun~'I Ew`" P @(B P @(B@(B P @(B`]ǙoY1`K'{P[>~M!˲9Qe̗s?Úx1klmMV1&k~|x+BBu{F 0n[X+6VXPrYQNNveyugGC|3#TX3s??/ M60Թ[Bje@-,s@\nA4h1 e Aٞ$ pފ P>c]]͂5X,^PpE!/m(M..,*cμah#eQSѢVHh%ͳ:$B* 41łU8iZ蕯H@TUI /WA( nب_4uyηy/S*~SD ;d 64MmX U߯i{'뺥"QUƬ(bu]q]wfxY`1dz bP_* ϻlZCuX1D7fìF*E(˲#fQC]kٌ[sl¢Ϲ\3La%MSIT\׵F, G EB`P^auh+`Wa_X ,,<[ZN: %X Izy(Mi"8/!5Njq?k,iZD 0r8¡^l;M_HF]0T"J((c"oCp;|4MWQ֑Z#ΧPӱ}jON$IeY$"U@(lHHTZ3)t eDQ `PTag<2g"TϪ)Gj2=fa+DELSB`c8|ߏdwwW^z0׍* eV%Id2ݮL&s)v9*c)Y%|ߗv-R-{2Fqӑnl}Bu]t:$MSyꕈaVUZE'j=a(aJjX@$MS @tXq\J(ܸqC/VKͤeIU _tN۫"*v[͛M$"Kד[nI.ϹBAy]ו7okg2Hד۷oɉq,VꡮY5]=2yt:fYF13B`3 P}я~$/^˥D(t]yC>8U06NjlglV%wܑw?a;㏣gϞ~eE" יKfQJ7z޽{}%(&CQg/S*sjIGiFQp .8/MӾN3 P84;3anrqRYɜ(,Jyޠ<[rrzų/[[[Cs"qi{߇w_8)=J3}8Nn$I_2 ZaApqqw]x?==LEwY;W\Z4Lhlmm G0&j$MիWQe 8SgO%ɤ(Ą <NZ@(l3LGDN },o%YEiŕHRz aQa8x8{"R1:B 8Q}..C<> æ@0$I><琚[>yiF9xcfe^d80 Ae,ˆ'F7"?7rԡ%q4\mAq}_38js@1Tϕi$wzX~4N8Vksqs .o EIENDB`img/btn-switch-exo.png0000644000175000017500000000303712240711455015523 0ustar mquinsonmquinsonPNG  IHDR szzgAMA asRGB cHRMz&u0`:pQ<bKGDC pHYs B(x vpAg IDATXՖMh\Uf&$SSb jEJABAJmA APҭ?K +4J?BXLf߽s\d&3&Z y{{Ϲ<߽ZI^R'vrLɣL_(*&b]c/"T"%(+~0褹ڙ;^TJP?n"P y^!FFJ)6܅/O:IgxQt! hj6oR Ʉ$곅JLn }Ҋ-y^DAJDsȁtjj1mTܥg|>hIaP:;&Yr2g6; Wy8u&rOqYfLpnӹ2@Ep6xOqCmӗf$)+X)ybCe)J\3i4TM9=2{`gqb6uan"ʓꓷ;uo?]Jc V?Ҏ7Ͽ3QMDR$_.Z|u*ԣTj&F ڝA)2T=F=A Pm 4#A & (ţu]Z<~v+:.S j!hhc"d lo8· ގ;; QBlk{J,.yύ*=*Ɏ_|z1ω ftw? 9]^%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2010-01-11T09:30:18-07:00.|%tEXtdate:modify2010-01-11T09:30:18-07:00_MgtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[x,r(5*aMc:D&&N;hZmdFU TC|dt ab0V<va]_Xr=3ss~瞽 !v_}^܈s";;{0i+BOQW٭Vjiiq@&x$y< bb<n@P64Lڪ榦Guڵ ^E5ۍHwC$I 4(2Ll>PMMk8n ԒlwۍT{jz(Pc3oZv I)^q{II2BQ$ ވh.LnY\E`C`uGG֕u6|rxN :w)"Q` x0`Ctd4v,"l])g֯WYi|@P>[~z, Kp^hoof˲8Z~/eɂRp(k ʉ٘_CuuuKZ "Dm|1Ġ0.6"3#AAA8T`W@+e>[{Žg|>ZmmEө.C, Պ:;<?rj W gZ[߸<:hϧq'[ ܵydm'rl~'b#d3'&Rss{Ћee_'2eg\DvAh]>T@z XUuЙK||>"Q@P>g$rXqx 7o&\Z*0bY*):\vt: #uZ:g"o$M$>ˏ>:Р8ct+Lr_܌ T,^%e%X}qڝ6c66rՕ%XW^iHJR̆}}@1MyHV?*_B$It`zc롲2]ϹCN9%EX5y<+xȌ0 Id2PdqFj"*SDQw(ENn^'"3҅ x$;bFhOSNg/m~iV*OUQrqC555[PÑO?=4g;kbx4Z_I4Nhi5EEFjцhښ՟Psso9=_3?~]<ֆ)= ̼2rL$7#|hP7;VW{Y7ׯ/bS?ΫJrAWTR{{&//V|p67?Nض4ϗ 20荍u.պx %tEXtdate:create2011-04-02T15:19:38+02:00K4%tEXtdate:modify2011-04-02T15:18:44+02:00tEXtSoftwarewww.inkscape.org<IENDB`img/focus_check.svg0000644000175000017500000000570612240711455015144 0ustar mquinsonmquinson image/svg+xml img/lang_ruby.png0000644000175000017500000000144212240711455014630 0ustar mquinsonmquinsonPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxڤKTQƟsg^?ɠ(AE(DP&X p᪢?HD* (ۈ"!Z&-$S"u4tdxOgf E8yy缄RY_x7?t^ܕu=$eeo0,Df>]<2-њ4àJB*=`w{7#j82`AUC#M-,R\hsjo;mfz`WAQC|D֧4gɜ&nlxjLr1c^HvGcXZ1MR(7_ +"{gD/Gt)cEvPpӫƻ <6 OcX`MVP$)h0p־ +{T%DLLO{; -Pt(!8PV6IENDB`img/btn-start.png0000644000175000017500000000314112240711455014562 0ustar mquinsonmquinsonPNG  IHDR sbKGD#2 pHYsvv}Ղ vpAg BIDATH}ߋ\w93;MU@\TKiAU^HeаX۠4i"MkWERzѥsvz1'm=~yϳYu4zͱᓀ~\vE߂Dl9N- >pZLC"ȍ ~isyRhR-ru2FvG?Rɕ&n"5b}C;FF_٪&JUQ+Y ɾy_n:,H$)U~c |8F=PwG#=v1Ahֺ<zKDWA{&*U6;Y=wg7ӸKRQ|-oJ*LL*;f}+U&& Jيo%gx6`CK:qriziW~'g T8gX0QO\uhM #>nWb0u/K.֒=͋o%OT1Ta[n?.;{7-gé?mAxq͗o9y%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2010-02-20T23:26:17-07:00M%tEXtdate:modify2010-01-11T09:29:53-07:00bjGgtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[ϟ? 0011[0 npP{1( ]Cp9PHHH( b"**,r耿@1P{ * ߿9%% @8L9@ Ǐ_ŏ#ĸ͛7PP<<<@q;B1oVVV +P_H E r/41 3 :1T ?0 ;hJH t PD߽{zg ڟĸ@PY0!K8aP9@@|`Q B GJG㽀⺸, |jQFAAJ1=jhPX5KD0 |r(SPCqT_jC hAQ T`A.  \M2u@a @R ,@zA1++ X8AC5#L(1B(- lQ tq(z D7AÆ$j1YCn@as@ (/D6~C B*O5L Ag0 5l%"08C3%{# @(G&Hl7` djkX4lb2[)X!0r.H*D@4'[f@Oд r"d"Рr7  ˻A?,y a=Bu *_Z]8hF2'ro 2D_͝IENDB`img/world_lesson.svg0000644000175000017500000022704212240711455015401 0ustar mquinsonmquinson image/svg+xml img/BuggleQuestBETA.png0000644000175000017500000005631212240711455015537 0ustar mquinsonmquinsonPNG  IHDRJZވ* IDATxw$G}0aMV*""&6`uz 61w.Nb_q@`BHծvݳs&t{kzV_뷟=]]KU߯<ϣ aFo^04o>|W9mG,|U=Ӆ*Onhtï*J'}7v+irV7qmIs;#e4];^<^T|d?_.z*60؍] n X7tӳN|1S2gw7Ud&\l|u//Uz|-bҠs.b_`ԶCb#s e[olWB;,us[x_ŀ^Γy0qޅ7ᎃ*t}AF+*xk\91귌lA ^¿Б˜,t0-bu"S!ݿQ⊫+UNvkqr2mU8g 1p8:?L⺮21ɚm #ËZ4_JuVrAC'gʣj@r~xT9MS*d餓#t|/cmX]D/FXr\VlCzuJEqtj{8 יOcPjٝ_!y:ՏᛡSK[S%Lh: eq|:zO::Q*nx^,rG/B,GCguz{ӿL'+:zmd1UDAW/*9e "N:  z78'Z`B`gp]73 _C^0Rm:Az‰O.ɞ8t".TuzM;ʈu:ѕQg7'K7\'R%ʤOd\qxC6K'L^ųl|u§qmvLp _ʓP~wH$l0O Uj q^ lY):uu4UN4Ug[:qe*6adTYqhuȢG1;ɷYt:9dFnYP^K7}GNΦi}4[`=:H_﵈ԏa~iR L`YV̨<ꌊΕV)'NqT!H'*9T|t꞉|1]{6#K\U~ ENrwSNkڋut[_A[Td뜆KNMW#uSP~#4x>HExGP44m;h*t&Q !eoJqJv9 :%S]:*NN7:}UInTumRSZS{qy:QՋu|4Sx7s# 0[o08mc۶^Ϯz*cltn\Dc.x{9;yqU呟y: < :W'-O'KW/*Y:KԯU2M뺘|0c_{nyWBqpk?v뭹-0fwzHc3sE:iL&I&q9Os={Smyt M*YTxU|t҅̃l:\F7t"t*}w}8FR`'X1:L>Dx l5/pv!+{ ^M"9ҵcY0wyz]}zP'6 g'O38'-ϝ8Ut;)`O2=qbCuKnl|ѻE]'K7٩^^N<+8z*]uAwjCpҁ /cXoAxiӜ)>_'_ul.;`AugߓN 2Cy&rAc?Jͺj? @_5O6yT['xq|ppe;ԛG;Nk?*:UZmqGyA zꌆg3e]G&BŌ޺ЩD=E@Џ.i['JNyd=v=Xo40EECjyaGJ΋Mm^ x%Ccs5=Qf" @0]r7ngmAEs8ak"8i(=|+/?>F\P&Cs`<]O2B$9SEn\q42r6i^8q ףBh. Gݠ:}˲" Nv˲bbN8 =p s] [a4a``҄i``[e`ݳAӭU֫^NiWOMszqM[A ߈s'=8p`%;{Qyowx8_`t"͒NM "}yỷ5Q?viv[ yH:Nye*^Bo!r'44n\׍\/PWALivLVZr7y#j={fM J܄ާ L .[#F6.g@ P{2 >DMբs8}+]y7igz5$eBr`Tgi4`,OUqmNazC<0z"W(*8CS9D~CӲ,_{ed<ͭq4H0`r"_ty._&^`RAG

ـtph$e^u׬k 恙Ot/NF=W {p'<2nj@OǛzBncCkgZ?T/}-T30ɕ=z'O2;;|xygzyg$Mm;m|q].YTq㷎E2<k{NW92WBRݥ $M3lM; `LRl;Qcqޠ1<.CvNV84Sc Iˠ7eb Ƒ$W.Os {v'ōG=>qGuCgX98]c1_qH) 3\4eYLt~qZUln\T8T+}.tߛ%X>Q%_gE3ՠ%/s]L0 ad_|ߑz5Ԙ7XhÄ ٤E.ifP5ń5e*gj*4W] ˀmҟ6Yk?$Tޟx42a'{ooIy)4#;e8Dh~_w۶ G H 0[n4 ]{轲Ćq z e%,T>Tjnԛ8kkE 5Ѭ|P)M\G̕>mF[ K0U | #UI-ZT]i_SGi3U+`m[y sᲖw]:Vn1s]Հ},?O ;"p3ԝ0eYH)7 Z%8RWt *G`b01_牣%r kVpŊ4I}i@GdH~?5Bx뇒\*ú2X3쌇tZ}jVߓ47A1@s;93Ufl6=G! 4V XQsMmk*H^60‰rZ^Yz ^iU"}U%.KQTnkeiԎJ+@Ç\uhQ:ZϞe*ʿzrVwNV0+2[>3˽/._oe퐞˱|#S'apٲLW/[!4EGa0LJũ:w?9Mw3U!nےw-x6Wv+ ;xS`u/2︸%9[y?X~_@ Ś+~*n3.3B:tjI^ +011A: ?ϟ o2H+zԱ20dh*̯3Xdon1 DXηTwS{,T URݣxv鞽mK?5J ?Zӏa7`io7<5n5Z,2Yh6 }S<':EEi!ACLaewoc^\eT@ŜsI`jjR{{=TR0x '0,.]ensᒯ87qѹ:klva_`r CoGO>rBUl\&g׭W\{TǦ/1h$__v9ߨ USwi}tM)?Ƒv}1[6yPYYGty f`~͇KUrԂl 7eї6If+m9wX1 `lj2Gi_B-=!% IDAT%\k[>Coany; =9 )8^cZdٲ_b{ݶm+ PAmMAwM ._ $E Pk\j#h;/6z0isi56(dW\|j.4J~Sߐk= O` &I+rC&J|ṼvZ5+3ac#)zS&ñ'JUl'%2_v쪁D,ޯnCoBsz8(msR8s³͗EZ ȻAcܴ^X36O$;7JǪ~_jKC"e.9ZлPi𧏟QeqÚlǓIlMa捛z}',m8J.s]'8Sk=e}plB3BC3S!.\m纘#|^olAs\=pbͥ/m1Hy˚cܾهCrA/kaޞEObEkVgypLkuwӦMlܸ1Rȑ#ضM6Ų,E>\f<͒L&q]d2IRt0ն :&=WYɣ%%",88~An>7.u8@Jq9 5OOB8/Z~ޓ)z@+aZ:*JKg`s}}}bi*T*p18W<(͒rdXcL=J?6Š{L}C ]9'ln0Urss<4/>Mx.^4pm.M7] Ȟs2²L-)Md ݾ>}0,ЊhddD+uo[9M=]z `Yu=OgòPwI"VNy~OK| *|.D}Wȗ'R{̷Mxˊ>;7D4~Ln\ \s,4xL'*l; r)+alq<݆~zބ PFڄx d0H$,+4Sy, U.Ȇ*zEkRi?Zxks!uNB3Bȣli3_.#w$r_ޟ²ߎj0e&WˣXFd#ZʿysojbD9^Vap\U61諞2qef^.@[^ߪ:u@U|xc(%źfuE` ^wOM f,3Tw<\&ˆv|7I +C[(xDe-+\4MlD-l#GQpqS7uXa|{obx1o\g0cuiK#+ݲqmH+]p<}zN7 w.Bo݂h36:_=5L \|atf fNsŅZ",6^7 pĖl[9##eBy\}v$O4POqT!>< ϔԝ/*| B5` dYg*cbC|Ѧ`@IBӅFĠtw/G&aO)źGBm0ZLzќd=kL* U>9Tl퉖CfDC rsg꭛cX7P{6RW[A4pMj r~SF7e*S lj-^3 FøimCeu#SstJi}~ SZl@+n5lV>u0[f8H \9Y>8SZ&D?.Hn*EI֟l Wͳ8%;ǹry*4k!~|c~`ʮSOט.9<|ȗẇg:ޡ޹W,rI+vM1]j0Sr(MٸƒW*_f?|LQ5Ldx@IM'.|*+Wikaw(DK?%{6w.m3_vW"^?=o(uۉ2]ltMzvQ=Iy{h:VSq&B,Rix feۄ).WVUjuf [+x#oMr<eY];F[Q-NϯY块 Fh޳/l!߫&=59~AtZKY̕+|KG=/ya_. NRbl5I-NKn۞VΖ2_GSb7a0O?\ݙKnae_{0|ovW]8q4FZпUW<>]hseo܈MmC KWKѩ@[7NV5ğd_~>_ qUp\ֹG3B uriӥz7g'-s]¼VnB.D, &G6zYGV叻 ey}rn]ך'ۙ<(m[uђʠ;[2 zRUd,6oڔPҎl@ol7Nw* )<}6⵪p^L ԃv6E˲lE:sPe6dSG6Lx5zۏŊ ~Hxϋ-8 fH\Hqn @_ayxsO_{%{.WjMyg"޴LCOdIl݆5B+uN|>ctSR=4o;ɅFsӌyX+TGSma9͵eNT| #tEؑ|İSwW rHޔY nTsA 7.Wv(I&6<҅b'ljv>E|}gVG+|J5.dvEv(gY?{I?)?"{{>3yJ\ߛk/,Dp.r+%b!lb/NoNr4(۹amexAΌ.>Ư|T=ږ0M~)>X'To7?ѪWPs98S anTvtOW]v+h">58zٳІ|['yۅ}\&xo4*yq΃<לOSю[LNPu{ gxy|6 ξkmnXcUDRu k:Uвȥm,֏fed^U&m1L'T ?i\qi]_=YNxD7|yIzS&5c{̓*a]|9㱴9Xdd>me<͚}miӥOMҶ6|/E`4ɮSK(}#M?"0]f욬2Ī51ʫJi\?mؠTo?Ng}@x]>1ůLpr=S 4U'EE?CWE:q_փHoX]3naVxPwugU6$dp:6~g%kyV0ܜxS5N~[=*oX8?y([qi9XTd:}uKWf_=Ή$ӑێϯyx|'s)um5/SoX m+z"~k&HKoYxnsvF°| mb[e,v˅;ssu #)2.KIr(ڑArq VVTnYN*~^<yU3byn7T߾4/Ɔ獤\cOsr/Zuiu_GQ/w qo\7EK[g(C_ں,ˇon y: -b0mp׭c 46mFz?qV>N*~>Qt%eCoGaUNxݶ̓JnS3h][[[IT"\<_/gԯо}}.2vZCLșwZy\9#g5_GlqnM{óu~3UmΥlI.O9ODDܪH;amqp1n#mGߪfXnq4UiOhiq$_ܹC5ٸ~*?y_Mk|uw~Q|<+yjjg¯f5jeOAOHG½^u]w%`&39Hy^u#V'FX4^yzphCI^8]|Fp~[A2x݆^~QZ*΋zCZuB3&@mY=rc(ci48L@KK@G ϣ܀B5 vNV#d\i]>`ڌO`,lHrblEПa ޴߾~N.xi ˀ[7aTh۔|4c z{_GsFD䏄yLx݆^>r_5i/Aw^Y6(N^+=|yM|~?uPf"+8>_D0uty8U+2yz M\n^\cFr⾰/G9u]0}, Q3zS&lIeI#ퟨ4IxHg?V$-ޔɲlMqٲ )WN{߻ZKklj=X⥩SՆG6abXͣ) %4\S(rϞ|ہAG|Y߿mI'+<+LWܐFmNk<|@@KC.2SvH?kVf*NUy~* U|mY$Ϧ.Ka8.MG;-\+]qB婣%vNV82WTAp67iRqp[GS{k?.(0 sSq峄 szǙ d Wڗ\<Æ$kM xU*488SŽWN߿ C8(D 'a0kz y"ȴ׃'9UfbFwI,Y;`hϭ;ji=STs㑶MJf0Y.7D*NLm}GD5(qh|3I&9U6ZS:O*iOW&lY⦵9 ߑ:,]U2$L6جOzПN0k"Lb'iHmu=¾n?Oi m[ e,m=BxkFm#hiR4غ)˸LݧLՙ;m&|uYn\g?U aMl&^X|%p(7\ 9I.@Kr6YUAeī`ir0 i%,˗cc/`9a,w\1:U#A.5=!-p'PՁ|xKs]z_>5֖%WoW׊'pqu9Y>BAG*kO\-z&xeZr߻pior]H>.KEp|t+xs+S+~Cw=xM_p dq^|M)>4re7 yIDATЗ4xPN)Tm&x.ĦѹJ1ϮS5m{i_֠ e-SmfUvUYn0c4RFh"[)P.EyD>}Gka%_a>E%w'})߾~mFhWܽn dl>rh8(ɝj*|^庵9ްGk uo|cQ|yzo}t ]x|D?W.O-tۨ'N;*ۨL3{f Ը~*?y.e 3@eOs,a !yS׭m*u]gfr}kMO%غc%W`%,nELL(Wjsn\0 j*=P$|ڲ@3 .2(w@{2DX.!=axV2"bOq<$$k2iHXUL˲xt5O璜Żo[9N>}b͋RZevXH xh8>y'N$P.‹܉6[ gÃj|=Z 4DQ[7៞_^J/-^PeY|u<3%7VcZ8\oYw|%_q+˙\aKP=T|A,:0 ~V $ss/c9y.8_qHXBY_N~يoڔc7"t-$LR&z}\/@ 2e]6o\8>W=% U~~w^2&_ٻQd![Ph+uGGqۆ.dy/K2c2]rt}y 6:s'˄Ssi9F~C\AQIڦHf(cQnxW؅sC4ψg`ĺ$ݲJ I&M^2)2aPmp,ds - ] )V܇e8~~6 9.'u;1Ur)7\LïX₱t"D;0IYj!7-J/4kDiNX MlIb?BEA8iv 2w6\f=hQʆX?bIM3(T8UcT-yՀ.~]5^͠zp2LЗ21MBe k|pp%nl~ .g׾ U/F$,x͊4,Iӟ21 B\]mZp^4^K6Y7b@J,Z#\M#pʈ#H_4u E2 ZLը8v^p}LJã'E P^ŏ<y'SiL^<]x$L 2M a;/.$P&>_ŶD57Z#I޴)ma9 B;ӟ8e3:*9GxaMkVFRU韲N[ L|ep#_?<^h+V< u&כ22l㵵sˀV#e^by$ɝR{S&F4\d<ֶx%&~/1mt~0Qq}]$LldYg׹E D!ޝ F%9~ zBaf \y~gUsFAi$Mx^i眒jL&?w=35 )$(xY>ew=XKZiN[r:i,HfİptdPU]GO5#I>nu6=.i8ȸwU+;lb6 `U9m'^d_P.;gF͆na穪b8'aFBlݽ~^)1 {U7^hbɇE"eP5t)L Nxt/dO@&@"Q_tW?:c>y%;Π(՝o|a4eFu;fr=9ϣ32aK߿f=yg8-ucKɥoOG%>z ՛x?—mK16ڶ$vb u(E\u꧷u_z βh}Оq)(}:NeɟGv΢C56ā"62iėq0y-;^`ޒRh8 $eS('/o,?zoYa^k9M}y_>Yp2`F&^xBRtK%u䊅DbX0]a-㝒=ٻ%>} F֍Y5)ɅwbNXI9(2Au7ԡl>UJѬa^<E,}캷nW5@_Ul35- qPf28[`l;Mp$7<ş_/HC8>yW{mO_5|>-eP;>}ıvNޡ|Xc zO)1އw |xrLN >+5iviAxxj#v^ozUIy N1IO9dúHѪ6u/޴3Vg*~+]N7A7BV85% y2KޒSxDxrR""ܴ/j ~ŏN_>4 ?_yӂ=o|v˜Уeuޡx_/|vZ:fzk5GEYgNz Zɼ.vth:ZĦB˛~4>x,<wh!6O.(kzA)nPjq.*k}$Ot:"HkI +m71VY.ux@ }R.d^d&Eo~#YX /=Yd(8_h<\V{QBxM;9esdxK {Z]9 3Z<>uiExIN}aC~G%ehMܠ[;iAX5{7ϵ_6!/ǽz6:5 z?z{n/OKU{ruC՘>WsՖwx^xX裌_OGESQBo(η0Owiz> 1V$2#>72 ~кѮA=5ٙ?[ ",rln`瞝y탒' KAR6 *.ҜWuv,~ǥ-Čx|Nȕ#MҲ\ar-"km(Wy]FܯˣTj ‡+oI{>0-r[ˍ"W!",\GQodꋫȎ`ΊFT8MCFSjc<2_>QfHi&^ӻN#ӯTBjkrjʘA2l:3ɔ?? ::mmVN2q晒}fk"\=,i$ .a]=,,'q[f8og }/<OJ< Yɇ#^d:x%R2l:*s&xsekz*g޶&Y\= Wޔ7cuqt*R bJjU&r,\C,OtBжzGVjYƮW۰m>`H.?ކn\wn[zY_A-fcnz$3.X2Ž>Pixy fl(wAU# $_~ UcP#~U!צΡAoE.2x_ fw<+}]h5}k1zo{cL+,Gw#bf޲h܁7|#/WSnKv2ŞЩ'[]nZj}tWOKk9) ^|֍1ii-k\I{N Nr vPm̓ƺ5Tg,^!JG.Dt&./yB}uMK ?azXÏSRz$͐,8ra+QJzN'Iag$8ź5X׉x伳Ky:cn{GKyi{/~9.o27[z8.Y4 \,捴.^ȲȔ'I/y[<C n9/Ə >7&ri'd^Mj >;nd:cň70+,K>(n)`Z]C0f#p[Q5ZDێܽ[y( /Vz;(E -hYqzX 4"^4F|$y9Aoٳݴ[`tU\N Uw.;z[˳)޻ty >NRyR)lƶ9I;_? eVqf[k9f+6:Z+lLy㠘mR2G(nV؇:tׅ?z)"ؚ +" ^H-)SBVi0D7[˓C YA2d+u$wxeq;Z'7#kolC4|~w;saVj@]da߱dcx 51ߣ|KKEw5}| ޹rFNF,7k OŜ14%P]Bo'8;lt2MpaIl'L21o_^^u{mllIu |wզLh1*[|cnW~II3[%4M=|a0TS s.8bHIENDB`img/lightbot_f2.png0000644000175000017500000000103212240711455015044 0ustar mquinsonmquinsonPNG  IHDR szzsRGBbKGD pHYs  tIME F) IDATX햿/A?C""J%X PI hHTPhD')]8A]2\vvWdw̼<(Fmru0]kƀq =F`p]+b hyF4ީw-e:*FnLwVYd 呑]P0d/?"ˆ}0}*Tny*T_H1([B 2w%k^*@vus̱cϛ,!`k^?^~`=,(5{kZ*ؔ&'}>rIYV*4Nwnq'ِ&L| o X@qxNIDATc`F&Šgc@srq!EbH:ed\U5u M-m]=}5D3D#GFE'$&%|32sr !fWy$L1%tEXtdate:create2012-01-13T11:40:32+01:00|ISx%tEXtdate:modify2012-01-13T11:40:32+01:00 IENDB`img/btn-debug-step.png0000644000175000017500000000335112240711455015467 0ustar mquinsonmquinsonPNG  IHDR szzgAMA asRGB cHRMz&u0`:pQ<bKGDC pHYs B(x vpAg IDATX[lTUL b"DJmMh$i-lK/&hb Z0!_%@*o"jBU:s[> ?3kY^(g@UV| v6VD&#, G1ߍ "!{o0DL6fcui/ZW .aTD&1+DDIJ5s+`~XsUAD˜DF7B@UuNϛ*D`D1nW};}^2U6X@I[WvwoIh-"0*r/|.\8ӹ1"70$Ӧ|qhmAUz&2\_`}ʍ|r8a {&M.}@< Ec3i1D"ydQN<~Mu7$L?@I<:;/BV.ǿ#(yjV+QTQD׶ՇԊ{zq\ s;)+;9Lq\0?!JSUT @T ?klyj]:$;ũ(c5ПL FA'gTUaќe#"0z.V$#_ űm;c6x 1/{z.ChL_mGF) wܑv8K<NJXD |YiBBADnʂaܼ'W;%QPO,X,ʸqw!b׾O:"JJ,Q ւɅ]j8qV;!#eʔ)L}`j%J=yK,\0k??>%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2010-01-11T09:30:06-07:00|2%tEXtdate:modify2010-01-11T09:30:06-07:00!gtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[.01A|7v 9v-BhHz2Ű]<vlN$&֍đ[ZRzx'l=/땙9 Je % Gkq]/:YOx\.Fv㌁V8ۧ {f3Y"JADP)}_$lFr\@n bժ/n6[ ?7ᱱoy#;(,[̔JWA"qVNeuY_NQ ŭh%q&"wJNeE1Mi|j;LOo`Q'TANx@F;ͭY"wۗI|'JTj 7bhd쌱S@qC*$ܾJt/ol"jjͤkoo%]EC=įNZʿ^.ʄg).9T7/Z(gq7.rcsBYJE/JsW].Se3p>\GnÃv++`Eu+kq?Wf>;;qB a#v=LwշC ?#~%tEXtcreate-date2009-11-15T17:02:37-07:00%tEXtdate:create2010-02-20T23:26:17-07:00M%tEXtdate:modify2010-01-11T09:30:03-07:00)gtEXtLicensehttp://creativecommons.org/licenses/by-sa/3.0/ or http://creativecommons.org/licenses/LGPL/2.1/[^x fx~&VFY!qdsWT - @0@n𷧿w/dNG'5"#Qv Ӂ kG1`P6?|CTn̰tqǙ:?Lst+RkOU# @MpmJoAt YZ\8kW@%ãmB" A`f`gT`$@B8D-DCDę7!_Ł wοh2_DCQeFeyLS41S3tAAt041]je2"/'D'빅!-0?v+8hz2'nBGmn %}uh:4-0@2MPHax ;pȃ21X 8+xP!" ! r0R&-pn]x0 /a ` BD@D QCtCCO Ax$ك"GR$Ҁ\@ڐ[dy#3'CYQnTE7: j;4MAh ZEЇ0:΢qc$p8 1p\w׎p`2maT,KRucC86xa^oY"| ~?A x rm'!G8Ah&tD"QD4 :q,qYM q$ƤdŔTti= 3 s s2!ZvS+$NɀJ #&Α^H8Xvg2βŪjϚz9W2,K6&{ryFafȖVvm;3 { {%sfem#9)yg8pNsd,rpuqMRp)JCܡLq席øsyx4xxxxnxeyy#x^}Oτ// "130Oq pׂ``9!n!}!PE¨N^""V"t"]"sƢa3b1C1XM<&%[$%NJIHIn̔l|-Eґ *-5/-&U:UQ LL=EY9Yw-rrr)rrF1O : 'QEMP2JM Q7(*('(7*oh1scO7ym*toӚJJKU.ULv/jjT2'duK V % gͭ5okbhӚі.qӹ5нwQﳾ~r6n4478i0f(ngXe8f$aoTm4a,eh\gD$'SSE3=4Nsyy6RQKIFy+MV[[llZ7Xhۤt۲ںؖN)1ڷ[m^>ʾ:vsqDprt*sz|υr凫!חon~}cGCOAOgͫvǶOykzgy?!#iA~~gVXSͨ@ #A O 5 - Ji a[*OGG4G2EEEqEGuGF'EЕYc1 [F],#5;//~<0,a)-RgRTRobrv˔S;ԝS%RwLGogHe͘e~7iwG*G2qӾWd﮽5fe1F<V>ӓ[G9zz~p~!C ?-0*?y$ѭG~;{AFQe18xĮWKCKL˚˅˳O08W)R[VɫղE5wnNj˭u:Xs}wvC3ƙg̛Z);ۜ{ǟpӋo_ҹt++9WW[B[Z=[ln_n8A۱~3Nzܭ[}ozwwܻyzztzZj=ګ{+}Z}Wk?no<1h4xk|'n{l{dY^$XyUkE£o4i7px9I}vuj;bզXaj>2c'O?Z`,*7o;~ce1gI`~YgOWW%~ٮZ\_3hp0dOJ?p nFd=dNB lAbĺĦnu=ghV =/$a.yXjBFUvkMJsk6zkj&i m22ilrt֢rzN;d}yIgNmܪ/yݼΧ_L.P;H22CVAtҌ^422b>w$'z')%LI)IKI# WfD2-ɽ}/>,Xzrك/ ~XpHs5ǎ)y<4ʉʹ5k?X7{zmƅ&sf[.txrUEUͨI%7ouNƺ(݂w*ӾoGÜ^ޓ5=f +bX z5R,/S^{4falp|"xRurݩwA?t|țuxSgyᅦ/_/[bg/upC' wx#HXY l285,)nQ<{ykg9 i"b:qR?*Ʌ+*)o`(_ٸb[V.EQ?s!89eUF63vV>{9uG='=guiW6^uzxFyl^1[`L.5 զqЦnGDEZD F}IϏbH2fb%JHH2NƒJIN+Nߞ!1kwe=Q{Yei8z`1{"7j^C;BKݗG, m,oAȺYpvm;wq[A[O}ᏜtK/ L>x8)uss/f1xDd۴w˦O͜>5OK _M4spz #Qy!.3 % ̞$u6iKl9pp%Pyxhz&I,&-n*'GF̌6ŝJg6qhzTи9#OۜnP`Xct^,oZ]Rmcekk'nm]b)XWmFj~APŨcUA~boBBhbѰ(h$=.F.@vx/ U+I n)hJi3|vq]Gg/ީ}7 0s+0/v>)P##.G5  ׎-)n.9z<ԳL\|pŕʲ'jݾi g,4ٞoN=_rG.\lmr-g:߼s;]oi{^*{?<қ(o}EZ$<~bkCoioϤu-]^_@pP SHp4|}~ 3pH&0[G "h H89t!(Jh6OП8 \ ׍ aVXx٥uU37tM/)[ZXZ]҆hf羕acSKWmni35|3{5w:?D`M j) IME/V_Qjh[qxWΝ=C4L>q7NJέ}^*5: (6X;  4tSEґ CQTAhځqpAMGLۊcx=~AA'#YMLL7 ̎'?H7,,,oYXO")g9c)3VǬMy|* |,l-*.,)Ҩe;~KûgM_htmז;H=&/i{lgxQjhXDۤw;>XoPewꋎK>Z%rZ H*+BB܃ XGD$9EfQ.TVt GS3ⱳ^ _J%J D)bqɆiY $ITHgq`9JaMf ۓobc/T򥠔3IT`NmH5r!zw 9nk|dHjk:5cmwYod,ˏ:X0t4kQ|㉥Yܕu'j#H9wN텓"Ha3:nt6ݮ.[xPA'*G.>|話 Ʌ͘X;g/}[>⑥K./9rs{WӚZڛuu`u5@XM_eG~T_@(Hʔ0+r cHRMmsuzg0[PWIDATxJ+K8-"*W>.`K s&> $.q!hI0$Xw59'17dž3^^^ dAA+<>>Y]]'"N\.':sy޿}J\faaAlۦ\.Hښ4M(J~.T*IRq`u6iKVၛLdkk ˲hZ p~~Zk&''q]ϋp}}]QJ ,// Zh/aTU(0Mqm;:3<<ٔR(0 R+J1P,2eR,Ka$£#9;;C)ml6IRFX|'2 wP(P(D y?u/ضy?uov-/FIENDB`img/lightbot_f1.png0000644000175000017500000000074312240711455015053 0ustar mquinsonmquinsonPNG  IHDR szzsRGBbKGD pHYs  tIME %fcIDATX햿/DA?qHB. :! VoPJ**_ZhNy/ VL8K}ٝ^ Q5*P8n| \iyww`BO%gs I Z-oIw| uѵQ׻^uT`h"M=]2M_cc 9`@ ƥ <>' }RTQ rCj] X2`k\eu;C7a֚@B>y 0#Fm$"nPuRDК@d4'͔Si9_EZ/$LIENDB`img/focus_intro.svg0000644000175000017500000003502512240711455015217 0ustar mquinsonmquinson image/svg+xml img/lightbot_left.png0000644000175000017500000000306312240711455015475 0ustar mquinsonmquinsonPNG  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`img/world_lesson.png0000644000175000017500000001277312240711455015371 0ustar mquinsonmquinsonPNG  IHDR #ꦷbKGD X pHYsHHFk> vpAg IDAThՙwt庇- 酒@H$t4P.ArH)4APJ$G8W׽W=3kfy7 SDG[ɷo%C6mO}R;?w|Ȼں~v$;jsvh0VDZ 7x} U(RhamّpŒvAB755B'䁘,&  A vI] fb6("\ɾ}%O/^ N?;,;pÿg~yO'K_: VFxSR !!R xQ<ȔcLPU+tP\}.Mi6 lI$[vՋW/nnn;:w4? >_thogl 0<={@׵9j?L2=U/u>qP90|c%%%_ѯW@#ƀqqq1L&555Qs"""+J[be?:? nz7ۯqh: |mS 9S hI =;qvuEM]ɪA*8Ʋ2pw+; GUӲ2x\aLvpshΈ*V ,,, ^R/h'Ip: py<@Y,Wqqq-XR,)~>.=eO7LXrE-`T}$ c AQ^YBTR &/&TWY*w2W "9n|G0?;<*/i45ր;{o͛@zyP[*.G6(ɎlPʷN'珯|X\sG#Ns4l۶vpW+Y Y7fO' rhf~&gUW2t.-!qߜeeez%{=Rs P8@X$䍎v:k:c O^G8wt0V[z ?!30BEBeBwЧ/C_#oA@:T~Vy?Tjo dٷff|'zh|MTjW{튶O;]| jSuy諾ǟ=C$]?WAxz='0.addNꁁ;ANch/<@ST59}!T[`v_ 9xa[xxpsͭ!zZёk3ٸ/dl2L MHg@5rsȲ|.~|сekρHW1@#d=uWۭ݆[Iwz>)twգ`%Rh*x$K< XeޗyPq캳fq^Ջ\oUv.N^t >YJ|S]vp~W 7*r.{m'IJgNk|O)5fл˲+HR,Гy{堧jj8 pbM*°AkAy;$~>;gIq0%-u޻U0bIC!K}\>y;eu뎮CӚm3EXk}mTWж54rPc@.XeU3@wu9ҹfd3bk9?a݄u ߀5cnje}f)ƽ f7ԅpkΗiBS-Y?=poMlWv/s*eN;@'x<:vI;W?>>rȽ=ET t}" ]=V}[$)WOV-@Β>ўZY-'? N>]t9d6mۛg:0>4'<2LZ;0@!B8R xy {(9-/lj*YsSw.Xw;jFb0T`00)v ԋ TuB- û5Q5A.7{˂A_`"~0% QFl0Ƈ&mmME(0?* ʗ;-ˡ+$wi{73=vp*䐊umJpo NT."Zn &)dw[t灳So6 $k&ϿaӱY`|jlǟJ8=zh-D׍:@3 !BKo*y43oN0 M(ƩMr̞ r'2>r'`s@f/A'[bAk(w*UMMƀp\Mqm;ЊLhMGhpeDnI8l<6Ovi)o~hz8 @#{v)A kdZ*M4[M2- x}%3RUUUu 0A_ЃZ 똘w|c=;A`hN ¯z&PO{z/ԋPTyi}FT?5O.Xaoٜ!tpRCϻ^7yDNp0Xh[:7*Q]N`zO=4Mfixa_ @dkI_mkq1}PҲpڷ|Ep&~*s:+l1-#!oH^5\\qXKnjpr;Q [>[B 0Wa_77UX )73 Ty+{G_uPUz\QZOy0E`` w 1Ï`[iUZ,AnsoYH>9`%}*::*97%a49 V{u/C@_6`ܠOԻABp8=A  ÕQW@HYQ1`Z`\(eb([(ne#ŞVrL> dd_iTY q+c'@g4@*L&S.!{}6s zj.AB&8=| 8FkX_h]{fAFZs vuCiPZP?t.QXC/ teiR(LuZPSn-s>Jl v?Nze탚%6*@Ě5jϝ͹6tv} `wxW(\tolpO74ziQF>\{Q8p}3xl0p)Ctb.q6HW =+\y)oi4K w0JnCe$W 3D=MOJ% t;Tj+7::f/=qV%.U| E=퓡"S]^Z ) vrϺ(YPvE*nTZ EAk& hk+eeΣO3ߺ&aM]^S6@eO;.B5aCO(,,:V/[ }ۻ ϋ>q1 ~ 2@pQ@ppz'̵K + g8q'y6eu\i x @)C>4= 2ܿO:^@q;e#)#a0HHv #6H6l[}?6^4j>No||ul@?=-cҰt s0U-mB$QI/T7ն@9> .p@( +=x *R Z##ze 4]`|EZ]{Qra$_ԶazC˽@.v{W8-3#ů{]|ܽ?Sq$e7Y 4~ǣLk3nh*q45!Rx 6@7~ S D~iE;1.O:/M//?ז ,O=|6%z "%^ g2qr21@FfgbfFn?f)V}~?/#l3,9a_ ~aPg(*3gkP4>X˯vc)N{&`V?L e o#ʰ__1T1x*3|5  @a7_#{t71QN7_0L='#+?,?@ ! ?̽o \,&3(j1|]9$@%;,M%~03 h_`O-o<ʠ(0y=7k0=Xc Bu(b%_c2_=Oq?` _~ ][_1<Qb'KDA6Tf6f)eJ p|'FK? E21a #( Q_LY͇ 7~cx Cf!5#r{Qf6߻ Q`: dW p(|/X1I~f`Zh@=1 r0\w? 'NFƼ?! r(yYW|JB sj6fDʻy @/l0f6P(pg` DR7f9X ,ɠ(!'$J721 pM#@_9 lfF0 M eT z@%0W0t(فs3!R3C_ ?|зoX%&$=  A>fF+- e((Ahq3010N[v`fEHˈs $؁ yQal ey ;a@L7lL {Jaeb#W30 | rPc`W~-gfEo @(d9D6-,gnS @7Ѐ; gK2IENDB`img/lightbot_jump.png0000644000175000017500000000420612240711455015516 0ustar mquinsonmquinsonPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@,J3`aWd_n & L@0db ̄ff>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`keystore.properties.sample0000644000175000017500000000014312240711455016624 0ustar mquinsonmquinsonkeystore.file= keystore.passwd= keystore.alias=lib/0000755000175000017500000000000012244417732012136 5ustar mquinsonmquinsonlib/jython/0000755000175000017500000000000012244417732013451 5ustar mquinsonmquinsonlib/resources/0000755000175000017500000000000012240711455014143 5ustar mquinsonmquinsonlib/resources/plm.configuration.properties0000644000175000017500000000203612240711455021720 0ustar mquinsonmquinson#Fri, 11 Oct 2013 11:29:18 +0200 # PLM default configuration plm.major.version=2.3beta plm.minor.version=20131015 # This should be self explanatory, actually # Its value is automatically updated and saved in the personal property file plm.programmingLanguage=Java plm.appengine.url=http\://jlmserver-chmod0.appspot.com plm.session.cloud.provider.url=http\://www.loria.fr/~oster/plm-cloud/ # This is not documented, as it opens the door to teacher-only # features, one of them being to see the correction of any exercises. # Not very secure either, but PLM shouldn't be used for coercitive # exercises nor for evaluation anyway. plm.configuration.teacher=false # This is for twitter. This is not as bad as having the pass in clear # text, but this still feels somehow wrong... plm.oauth.consumerKey=ibVls7COiCHxwMd5NoFThQ plm.oauth.consumerSecret=XLcE0kSWDKV4iojSs6KySl5iNFqaUBF1b0CuklmU plm.oauth.accessToken=75057670-caayoZpQWVbVQl3da4js1cvpL906UM3JeoOiKhk plm.oauth.tokenSecret=GgZGRA48c8ylWkwIkPWy9vTtEis7VL3xbtklpniTklM lib/resources/star_white.png0000644000175000017500000000224712240711455017027 0ustar mquinsonmquinsonPNG  IHDR Vu\ iCCPICC ProfilexOhU?o: 5*b$Blncu& };fv"K"$A$`mc[b)aτ??/$lq9&C (. 0cgW/W@Ytg@| \Kz+*`` hxٖWA vl%6*LڌAK߷oѾol^[#}C;Qa`lg_ۏ}ّBormKd&p, ?@ib}LՅ`^4~ÎC|M˲zI"eZ2ɦnzz*X: :,*`ĽA|[Ocn՜\JX [g],tx8X/Ѵ8v鹮\0h,.R}M]u=ԥBқ3h>KTQ( >OԔR,s|>Br\tpvn;ל#ͱ~d|{;WPBazhDߣ4M fo(ijpu\y>->JMR&XGBNU{ngo ޼gW'Ry~~۞Q}ž۳v>fz79QFpusI2y({d4Vg9 78 pHYs  BIDAT(AK($%t $Po"adإSz $fزv$s͛VpTrSӑ4DxWWs++ IĒj _;F͍]aW+Qq cn7Xr`S$qa4kH(,?d)[Ӟm˲]Wd;MRI_1<zSPQB0dkjxn.99="x)91jYQ0A*g}!v~b ]RI}桗IENDB`lib/resources/star.png0000644000175000017500000000065212240711455015625 0ustar mquinsonmquinsonPNG  IHDR Vu\ pHYs  \IDAT(mK+Dc=iR nld_ 6R8f:HsiF[NNpz7]]+? :%`[ߞ%pU zuxfFbQW IZ" B6')Svll|[i:%yxrx*bE+q[K|e3jʱ;x}?M7doOSY:lDnzgKI zCR(ҁ8׭Y%qk'n62Z0+pwnׇ7|2=\-ֺ e̿#[YAUK[@IENDB`lib/mac-resources/0000755000175000017500000000000012240711455014701 5ustar mquinsonmquinsonlib/mac-resources/fr.lproj/0000755000175000017500000000000012240711455016435 5ustar mquinsonmquinsonlib/mac-resources/fr.lproj/Localizable.strings0000644000175000017500000000033612240711455022273 0ustar mquinsonmquinson"JRELoadError" = "Je ne peux charger l'environnement runtime Java."; "MainClassNameRequired" = "Un nom de classe principale est nécessaire."; "JavaDirectoryNotFound" = "Je ne peux énumérer le contenu du dossier Java."; lib/mac-resources/JLM.icns0000644000175000017500000015240312240711455016206 0ustar mquinsonmquinsonicnsTOC @is32s8mkic085qic09}ic07il32Zl8mkis32/e5k9_9U9 U  5l/e5k9_9U9 U  5l/e5k9_9U9 U  5ls8mk~mo+....+FXXFGppEôĭ{{{{{{ψ)) ))QQ,bf'g`u^;j];®wey>˛jNzjGic085qPNG  IHDR\rf$iCCPICC Profile8UoT>oR? XGůUS[IJ*$:7鶪O{7@Hkk?<kktq݋m6nƶد-mR;`zv x#=\% oYRڱ#&?>ҹЪn_;j;$}*}+(}'}/LtY"$].9⦅%{_a݊]hk5'SN{<_ t jM{-4%TńtY۟R6#v\喊x:'HO3^&0::m,L%3:qVE t]~Iv6Wٯ) |ʸ2]G4(6w‹$"AEv m[D;Vh[}چN|3HS:KtxU'D;77;_"e?Yqxl+ pHYs  0IDATx} յmI ZQ@7?1hLOL\G&Fbk&qČKIF\ʍQ#D |n>",{9]uή9UuN^kWڧrںuk֬ѣݖ.7bĈ]ǏgϞ T͛7\r]jՠ}g {qtA[ƌsUg,0gŋ}_`ۙ]yWe۪"R^z?Gz68xӦ{7|sرcպ~@ss:xul q) C<mF ˶䉛}ce }@4e }@4e }@4e }@4e }@4e }@4e }.@U̇UM H` =ׄԄ6/_]ֺGky<ﭩ{jdx7[X\K/[±L4@TA5~slye2n8"{w}CV3;w<1.DM 9rd.OAA9g?>F[Vפg=cǎl~qvU *ɔԀJhn`fۖ9x֭뮻ڤ`Ealo C3 hSSF bc,]9xWO@gzH;^z?*t/5# #(z꩓ϟ_WDB:9sx .wd rR(s_{lp!<_-\r` fX-N ϾnƍlC(qYzU9=\x*cG7b(J_Q4|֮]*.ehl`>6e>ER..3l;MܴGϠSSpm1J/.rD@mbl2݇߅"{,Lޖ4FNOm:1 A%]Vp_ZN|vZ`}VY0?lSf"yHaOq:lꠢ.d \ TrڸF˸*0&Yf`@9NA^ʪRՕ,3 ˽+)P@ duY=]Hɀ:jue r@J$P+Yf@@sPM&5; |Ȩ&V(>`JwNuEtT+ߒr\TQnu4[(b@@G^ X|s blM,r"2 .6؇.p?\p 4JW~9 T3Oxel`I䋪ELv8L?3O#"ʀ(32d%Kԝ d ^Ai,Adt5 rV~-U#98Ph31qY7 t3:ρiH́~ElMÆ cmk q { z DI(gY3奱CVw$A p}Cm楑2 1wː!CU spX5,U 9^k֬ {R#>:xפI:x>bHP<~Sf}mAe13OKyyمvY E))S%IrO-X(``5a„s~mcg } f;1/~1}#Fî}Wp)8p+pWEWcYxB:n[V"g!kJuxJ\3lnYIW-={5ĹN۩B#ӧ_mA`+W4Oӈ̂i1eG&6(Q*Oh̍'ef(:6) 9!3e;I&.l׶R֭[9XSO=o˗/L1cT$!td}DOmCd`maPN:$ߞ*6 wy<0/rљ2!L8??qsN?teEԋ{nO'`g qvq%cIyki|gy0Mxe6z^veCot6/2y09L҈l'*rS{ΦLLHjn{ܹǶ L'x6a}, 9v 6X gJƩ BhJ^vָv[Ƀ'iޕ̔v'1NrJf8:maI}LŶM,S ٣ke@6 6]*]PЕiiD3 "T~ȋ3T,hꂚ+܂QuTrmPO_$@PPuʵAe~PP?}(Ug@@)a@@J TuU\Tu*2Pu2z#\j\'\#k|ӀpoUs > fLDmmS>Ū-y90S3kݕܮp]+zJS50]Fv!n2zWa ׮-rw.팪fSF0 .;Lk4z2 NsT=6A\[2]9CvpbC=C`? z\$lKKN;1ڌ+E#F;v}‚>Jk>eoܸq~|=#`pr!މ'VI~Y$axĉ￿V;,K\ϘwxoX9#|\rM~f$$όd,+m-:VbDNJ8^bF&%6#x)RvǏ%h`MM67R*T1֣Qrp{„ ~_chlե?^<֨I InڴpTA!mUdy"tX䈎]Y >;{׿zn-6ALɇzR 6Kgˁ/L966Tx䀉v{9ohlx`Laл(ߤ}H.IH; :P.8B Y`47؞mϛ7o!:ОVٳgw|>i1+hjj*ȜTV(TӟtgQ2Iހ:o\ TR5Tը+ S ''7f)3_U ߬dIl"X]m(lvuͷ i֡-(e0٨(؏ځhU V-C$bp0f6D7,$?Z%a`]q.}6ɁNE3HH4JLlf f;h.goHypI򒬉E SUySX4zI8Ktx̘1>|Md'`.=zV MRNs ֫T*Ƚ[.aDn'qz]v+aKZ,rBÜ5k?hE`gy9vA~6MpʰMrzЩHݏ,m;)K\C+VLCa_XLۉ2o`c%r,ץ_~eG I#_.S~s=7G MI}zkRY#L5c3} 1?)^9X&6:x/1S'svmNv0Ng-۰Lه;d=ӦMke[Cft\e `U7lGU3fh rI(/q:M)>% 4!$h)piR0 t s]pk ˗/ov۶mHb<{>(-^4tGqĪ/| ')lŘ?ϟ?3wS{UW]g2]s2R psP51ND7hv(z@ 4auK +gȊxᙯ}뭷TXG+>?~ dz G@۱nK(@ ^YFYRnIOpQ! 9Lώ1b~0v~QaGٳg5nXgמ16`PtP087 N;ޱ= \pԩS?г2̙ga6-[m,Y\NpAva;YBJ( ^7 HLaP š7[к[ɐX'r4`֭ 7y'kqגAՔx&rX _ q0V!z ;]U_x\xAM^p .]pիW_o1:qoԧ>uLZ;,+qD&:Wchk}蓟16p88UjV*)!Jtչ ̧\(a R8ǎG[bVdoϛo#GiXٶL_ӹ8δ /=}28|Y@PTV 8BƞIU||>sl+rY e63S(Bc;| @.:lVIë<ۧW0>bSWa/ @Fof@w?#ƍ/eL-;l(!&9'OP2cTN~ik˗/?:L_cWk&y՞$9 I?~;9l .h;PBzڍF7"`4Z帚Pb~smD` `(9K>N.ëQw= qO1*PfzfPS 3rUoy.O<:ݠ Fz Ӹ< 4=M-\YR\”N2@'t0_- 5?a٤$eF@Kr Ra:s=]Hj*3L˖{7xYQ:7,.Wse6`,􊩕lڴ0hZ>Xq?~|`}muDKXV$f.*XDx<{F ]v_ۯ_]2*\(Q0:pk&zK=wy0^In!P6׃rᬻ@'Wub_)h@#c%]wp[=%|G] I{IJIkY ~:TXn-l8`Z0s8ʴwq1-_RN@ !7'5TmVrׁ}|x Pn}k,5%Rp K yG/45gy{嗏3-r-L6-O-C٤]p 2cTqsy /Ga~b{c=7i$cgxf*D.X^ P*UVXL@ńoĉT. ˁƾ(FjF$uq Z`V=|:mf_d0#Dނ>!yٕ %L؎;e5,W!Q%~`k{_=gpu7~?!W!)%r#rUا_1c yEq(?\xBF #)C {5b #38`@ڧM%ϢeOpq_9\HA}RԶjT 5ԋ 3W25} gJ/Ι3g~g~DUnm\-[ż*QX|!QGe|': ?bUD |w &Jk\I :a" \} @/cJ"t} @M~GX԰k׮<=+x"dX{Ye(ee>/U0>EWvw@_ĸ 'W^C>ff2rzt}D.G\#^ ,S4h͛h@mPܹy\[y;P°b[!nT:(!\W0iq¹~׃cLA06U۞Z8jاqա=Z;!CCܝ"#1k"`~6/;PBzº;)GN*p]4PgΜD.ݏ׃iWcckd#b`pU$P r]mƷ` n.+mGG*3a* %L)@sd2VQ}qm~:O9bEEru8BUgINReд6SP,)}a6`R#q_ꢋddim@O`4%I"kAx=USxTzx÷ xVꢋ-j=Q͆Vsij¨m~ӧOu+«__<(g:r}bť=c_3gyo0 YQcJxpRɊMI:Qc$P'Q[ OBzmYnɼ` i6= HD/1x4_A'/, lcg! A%@$F:[N?ہz/~9j(f?[Lr$MZ\H=3mm1XB_Z0= Ipo;Mr3 _s5`'jCo <2:;VU T`ݺuoOfkR1A8A\>x}2v.q @c'|RK/48h! iKl:0:dW~xIEZ%mnjs'رF\c "C%틘+ISkIJJ:3fLc$ؕt1mZ8 Ԟ:Cc.]pX$Jz }ןCk/}Ce.)DjZ8*BzGO5b_\*k㿘F3?XV,Q޴:SB-={vph ҂ 9 ȧ8q10~]p^z]v:uOk.NrWR⭳:+NYq.o>sd9 u]Iwسw⢋TImZǬx/f$Q7w lR'yuq-} hX;%raT%:V7'.8.J4 }Uoذ!.8O>}7ŋۭޚhO,mpnJi0|`t<:S`'l_  Rvg?Ek?*yኺCծd7|bG[ZqK pW7Ἳ\++5uR_rT8RHJ![v| bٰd/2#EJ% `@NIi"bXM3^])]qPUAÙX^) ´#FX Ј.骣M]yin0)[2_yomGQWGԏ}e noY yq"0ԥLȪ CG%~㣕L0]YteF`ĉFl޽[ٰ5ؑX>6\مw!jw.H画 dݷm5ӵ^ 鿋ūͶ\م1.GH|OOqiqz}qa ON%\2mرZ[11Y24G>Q@c9RwIXӁx컏=XG磜I"RoC.8,}3\مGիC9mnn|\x//iCCʀ(,% #!vغ^E) dǗcaX0F;XbYU,4dMʀ2@@*[P2Pe !Ք<0!=IENDB`ic09}PNG  IHDRx$iCCPICC Profile8UoT>oR? XGůUS[IJ*$:7鶪O{7@Hkk?<kktq݋m6nƶد-mR;`zv x#=\% oYRڱ#&?>ҹЪn_;j;$}*}+(}'}/LtY"$].9⦅%{_a݊]hk5'SN{<_ t jM{-4%TńtY۟R6#v\喊x:'HO3^&0::m,L%3:qVE t]~Iv6Wٯ) |ʸ2]G4(6w‹$"AEv m[D;Vh[}چN|3HS:KtxU'D;77;_"e?Yqxl+ pHYs  @IDATx WyYZ[]yq0!b$b dqٞ`@|&l 7ںrӥ{ֽ,uyn-=o{mll,brN/]]]mmmSNu.CŇ><޽{;3gmծ~ t^}5Y &|Q-Ѷ?FZU9a@q톀NJݿߑ#G_U߮]y-Y ]lYwkNۙ3gnlooz-#h4toڴ齷zkߓO>93;tms>‚_Ȕ)SKF7xc N>@xs@8L:lMw>і-[P$3ҩ;%* fٳ'#DC&xb aFԗAӶm" \,aq0Fٳg4^?^XrEɠ;w$>oD/Rwھ >BA/&?LCF˫xPу(  ;k\ǛZǺfIwdi&>I@C(>MK/}UKgeUO|ITA((f^N ٮ `IHH]Y+  H%  @9 0(gV$@$@$J@*$  r`PveHHH T<`W]ӦM_V!;eC @T$v];wnى~q4i?ݖFavhw3~`Kxf @2߳gO|[I:Cμth:hEGOӬ3Jk`Xb 6HO]> @Ț{n޽{{d@VR;rQCՀU=wvp O?壣;l]k-87>wHq022owuuE[eG λ? ܱ7KƵkަ];y/۸9kfm۶<͛76.2:L~3gN~7\x+ ~嗯-ܥ;u6^'mW~h {^f3կ~w*$k暭nO>Zm09&q).dLF훸7&^D) T"j1!F-JeҫdP&.t" :寏+1iN6.3l]Cc;KY>àzKTٵ~@ ]Ɲꫯ: ٳgGx'횶Vx|a5e,/֮];*:Wo۶ ,ǼbUXC3f'6frHCFp~wwb[&ȝR9@} cy& 4]|q|gq7=p 4<奎]Ht_k6mڴ:U-izǠ+Ztirʘ+lEq~%|l~'z2zzOާm-jV.*40vwȹ j2οO:ڿz,*WXщ;{,^M'[a9dm .h޸qc '+YTL8q'|r$@aÆhj9EL0S;_ MwqGԗdZ4ZuG0u)Dׯ~ IV6q]7o&,m¬/}ѢEѷN jyb^m;ZDCr1OD[lI=חǝK/=JձdɒX֭[#8MmI=A@`r'uwwǁZDЌ:~!q|.z0kKF]Y!S3]3t+wB47|gۈ>P+DƸ %!Ǵ98cTyJxwF&l1bԈ:]sW-D}*E~Ӟ}ڳZvuo6ZT=C͗G-XdUԚ\BG;1]$_6t[J㮶1- \iZZ m_ZVj&_pKR !e/X}rc: X%֘ @]N&J MXu25.m TKmY`wZ`#PmZ|hNL~v;iah39r K}`틳zTcs}Y'9<9Eoo& NJ!4# Kou=ݛ [=armeݼk@NU p4: %Ջ<9S TS5&?m@NZ>֪3$'XBJzd2j FB ej6 ( hwЉ>C.5 d% +) 9˂ٱ!;ɖhgn4Kד @hL$@$@`,A^O$@$@``Q2 4K@y= H@F$@$@$,$@$@$ 6% @4Kד @hL$@$@`,A^O$@$@``Q2 4K@y= H@F$@$@$,$@$@$ 6% @4Kד @h>InkkINsCЎAԷ :oDc"f0X5%So`.mn` ӧOjp͢``Ămuf}|O8w:&9(G022NpX+=1i6ԯM|!Z@}F2GM w$ɚǘL>kV g4k֬8P:izj^EU揁jA~ttTOX9;,lhХڱA,H Ѝ5j^w!] Ysg5e`=Ct)a: 2Tr:ufktA9Lf=S/Su֓,:(/l zYuC–6|јM¬gZ~EKT(,Y?,+:3I,X%:y9swϏPZ';{X3'hV tX0wܘ3f)"<NP}.p769ToYgܭ̙3c7[k?-Îx…U~a ۀ>˄A_i(c!F"0jQ1ZF={وSYeJ8@դ&NJwv-/^|,j#L f(SҪ5lQų]]tiY_S7ej{2IUQ\ૌ<hoe:sϾ}f?+RCX^u2ШLhF%lu^$`mg z'ò*] h w{tޮZ QTgV.:v{{{/=ФT-vM3!É8^ug͹CQyvo<իWES69`r_3Lu-`8J w}NN @^M@=\FgM#’'z4:awmo{X'L=eTg{z;87afݫmnuVEO_׋y䑵`Ё5CmE=k+.铟Jl۶m,W?s S&, _|qm=neNbŊgF__ߠtwn[{wD?p_tPmG֫~=^KϏN>A/~Hl;>pk;hF _~9o{ž<~Fu'Q#Nq.|*vmsH(3/dʕq}FvkPlNZ)'A8Z\(K&PzʆqS`Aƍ{.:zWǠΝ;;DJN]; DrG1u]kd9/-UgLm;< Z||[F_ÌW\1$oOiA%3Zѣ>3f]Z | A;͛7G=PimVK!2OQ7 5("oyܳp0TmJ:m-ZCҫ3VZgO&a[.΅LFx r/k:dU&`:=CЦԡ?$ !=Pugsrbmjˡw c5;R<Yo5!i pk+h~gl_֫t_$An\^_o iU o<毄`M'k^h$_sn}f!9eM)] vYa߶n8)H߸֩5O1h4Ϻ6A^'-?_bfS>љWk88PHZqON|R++MC±nt| ysi s)eeySCWcɫFA :`ln6arUXXӶKȄi|7JW34 _;mk`y~@s2jYoR[0yOMᓮ4-h0VЎ.HH\`:$  8nO$@$@.0pAe c 7'  2IHH1œ  \Pg$@$@$ IHH.L  pL`$@$@$Y& 8&qx  pA ,HH`X< uI$@$@ 0p,HH\(u0uTL[-Go ۮؘ"Y F d{_WW:prL چ멯ndd gn'?cB ѧJM J:w?|CUi ows`i -(t 6s!ghNH:D<:9[]#m¯dQ{ԣƠ#NZfR(]p$*ߋU[Hr!;3_ΌKFBƼ9"&Q@`ȃϨCLC14 @Nty]d^2;dE1aQ,|^t@H(A$<$kA*qA!^hK r YwVZ۔.@eCqx FExIk,_·LC2RNC [6={ "-WKY uy&~MjV_TX.Kqص=(M;L}OܥwIgY*S';8^Y2e \ɉ☏ ~x@l>8jF8ػ}j kTU6LUg¬CSL:z zcGD<22Q!\!vK5q:6H.8Nott4Ǔ} ݰ}K%gVA e# c[,Z3aX0߿?&'$깨c hGϲ= zK aZ^,HpB҅1L޾b2dJ4M}% Hf@!4aϦMXWocc[ub [~8,ڂ SGpK.9`ۧ]IϲeˢX3pOcAGC3&=$gϞge8T]/ a'LϜ93D#,3AKj җ l1ќERX(0XqiK,Yw'Fo~uפ5Ju20tTj9Dw׿ Q'$Eԑ}IDp<MEIּe"=G,ҙ,^+; ବMhj( \a(NUV 8ͮ8p.lD|l&,sѹ;Qz- y޼yYg_bBL []#u\yC$&cϨ.TmkV [/2tGwCIUok H 6-F/_>w֭W=E{ϡ#zO=ԯ]|#[Zy/<6m' @( Ba15ZOK.'ܡV҅}[W+8H0;M-Ӕu!| Zt6:A-… # >|6B9(;Ι3'?x9쳣?>Ўvuhf$bWW&08 #=3psXdP} m{;v5) ,dj2E, a:< <9Zj>!~z,Rm -\4*r4Y1Tzшڐs| ݸӁGIM૶>;KhGE,S8M}Op:C=FOm9\a׾۲@I?"lo gP}Юc`-5åP|8'n 6щ1|OЊ}2hT<J%azן厺R\/TSD!u K(NF \A)`i!VJB߃o(ېja} iӾXM+,\s F   0&  R`Pfd%HHH> ųIHHY   xl ̷3^H,``6"  _0%HH,``6"F 5zBSҏmY?  @@(E$@$@e'- @ *@.  (;eoa֏HH*`P w @ 0({ ~$@$@$P PHHN@[#  T]$@$@$Pv ¬ T "  `PfHHHp 0G$@$@0HHHY?  @@[[[*s C`ll,R=7'j?>58tPySNjʔ)Ç#lBc#GfPkv+4tb qV8vKH=#(F$0A)|GD%JQTif"(3%U~P vF\4XNՔJ@ Y@8PuÓCdc4oӥAݩenoo{XzV DLOP  R(U;572M0݂;55)Nj%@v\@kM!uhI/ 44m@LC6-wmǚOWzZyYn(K$h`QZ9M՛\Ց#[21]u`Ϟ=ݣC8 "hxx8N/u1uC8p E^&`{H$BoF2|2߿l 9x`l7*E.3G/N UUn{g[JCA?0]Wj2."AUƧksS}>#I OU9sѼyOmaDX41A3N=mVZ5KY -$mZ~4m v C"tu.R?1@}`5tvuuMkq3|LLA,MIz]r Z44 U[%8sN6 `X\$ Z.3w ev\g~vewYgm닮ޗ^z)66=JcrҥKN;-:ӣ^xa p ;:h}~-[88Ndɒ8I<^|`X7'|rz H׼F6a Ip^fMSu t;?{8餓YSO=5V`FM=1ƢE>Yŋ~AM khW =H/X/΃f 6d=[бp3Έ5\3 Ɔ?B|ݠqJͪ!uxq8a4g[ 0,RNrʕj+t79'ɓtBPЊGWKi۶m㋬ j+s] *CĢI T?c~Ֆ,2Vv|wpFHЩ^3}.2Љ:3۷wISz ЬU_^<A7G31/9ܹ3l:ڡK!hyk_b0ʷZ>EGj-b?C17k_JBʆ} 38bA@1Et矿AmϕyHI! hEXXჇ;#}],ȩC>j:q;ŐoG~{: B:wwqw֗rG^^>PX;O뭝WbŊկ~u裏FtDdHN詧8 .t' v<Եo[.,;3z'9 \& ަ?6[N _BϥjLDg6nϴh`P6iڢ[s=7vl۪ ɬ/16id۴g^0k!PoodS.Uq,r|soD7|D@O"6wp T dfT!mS#u$QQh0 hx@lX&aÀqlf-"7DpYEs8GSs΍| NUYCWgM[W8zŴ^f6@NClz iĹ̓lhSbcRI-fۘzp, #!3A[$k( vvU~9Zhok?hk#jRrV88B aclAtXdKG&t~a:pV1 iM1uɲ\t2z` XL֨G2iݒl2> ;F2}FRy6>k`kЕV4B/nL1q+jf -GE P"V9~h{Ӝ6Y  dʒyЈ'k6%U+:sh |CC /՜y_ZU/0u7tWf]#kRs@BbL$PHՎ?4++RRr Q  -Ԭ( %( n @`2M͊ Q  -Ԭ( %( n @`2M͊ Q  -Ԭ( %( n @`2M͊ Q  -Ԭ( %( n @`2M͊ Q  -Ԭ( %( n @`2M͊ Q  -Ԭ( %( n @`2M͊ Q  @hkk cccjpRCE4.; 4uT;Xʑ#G",$287MO3mڴ s2%սLzCmB9 u]>lKy_VN0(tttj' L![ 6|v@cSΡ NtÇ2iu% 6l1ڹci*1ֱ0K#>9, 4K|?'`+dHr9fM}zk Շu0 fl.56~GofC@ IG҆-[RqmP\! ]1Nqk^N:}SWj `fեw.sus`:ۢ˱ثYC"ND=ISlWjCca ,uޘﺓl|@alYWCu4C_^TOkhLڅ'մT!pVÞ\/bvWjKtH1: #= !88C{GGw.8ws0¶li{3fx7 `h%u1`I 1i30ִ 6d箖U"!i i5 㬃p::Dpv,WI]ЪA@+ff0lY510M>}žuozM=` p;߃BsȒioLªccPm[-3}6ϣ a݋%l9u@IO - mmܙ@yF[Sf.tYh޽\\!xwGo=/&G|YV17| ͵RՇ3g?tG=\ʌ:PNZu@?%:a㏟.͏LC}}}QoooalHO 1X":cgk׮?zUm>M6?/\07o^NvMGk0ӶV`z)L"~6PfkB/S===ܹs3GM|ѫ^ fϵ^FR-[VSV@*QcgЈjPۮ`A'8 &z~JS׻pֶ^|yjժqA _L;f}ʕ+#!54㼤Լe4~T Yfvpꩧ6'?444)6Qz  Ḁ^:)rRT v@큺h'k5_ꊃ-[63YjXLZxbgs.]۹M]͖%= et;\l7 RZwjDp߭}"l\T4j墝ͲWLgQIzZsΉL!1 Z E4mwa2?,}2}z<^ !$L/) }rYnze@, nr3p1Y]'hKf̈3oPІ1;K:س;dݞ KA _\ L"4;.eP1zfU9XF~w!k5y xK@,cNsWhs] 3\h|:fW15XXU<N-68˜NRCNzkUާ`@ |WIhŷ+> b 7AotFA*c]Y`i뇪*zD0*)DJUĉ6-zdP5_"4pI֭>Ϝ-: бBqtc Ыa\ 0K&iuL ,;bNǏ[$ ` XxtdI]? 4o:5Ƙwix,-"D>7i:GCIjBgHjg(?A}M95Ak |}\%rs?5@Å`00Nv :Il7Dot IcL &޳!AoH P,w$0h|RQk) sBXPn.7 @5 O2۲X(Ob$@$@G 08ʂ[u4zע*t (-mZVHH`P @i 0(mӲb$@$@$PlxHHJK@i#  Tg#$@$@$PZ J۴ T':!  `PڦeHHH: 6-+F$@$@ 0ΆGHHHiY1  N@u6g+m 00]t$@ %gqz.׵ &õO茬cIj\C P[f]_GBhPemq(!eTO@@ˇC'-R~ִv qGUj<0*$hDG1c@ 8xu72lͦsHk0?ߠAlRM$c,Z)5L:1(!iѐɤqrџ z9sD3g4Ztyu畟:{v5kV^Y3 f}p߾}tsl P!%V>Xnt;Mo#Q&qשw̋>R{Y/e)_-uY-T)A75@`@ % ͧ"X?!njQQK Txxъ+K_OOO4Nm3^|yՅ':3B2h}Rt'lQE#ZsUݩzxph}xְW <:m]Ǽ/v#vҹdɒ f tDv F[04]Ec!x5y2VFr6%K.Mr*/t&3Іc6P.[ +Wn3kmaZ(CK]6^:7o^\#ި[}5)4WvB{!Z{SZ]μ^ZlhCtb,He3-RJ4A]%>a=,-bylڥZLDwǬ9"Љ>:3㸰,gݡ R 0|H4%cag=qӗJ5 08GG@BϺpGuK}fH h\ASN駟-[L X=r)b?ٳuE?|iӦ :Q/8)$EK_Rt焠l$(.\!X6nm߾Y\ŝwy{f+%rW'ӟ4׾61SgM@6GtG u^{K..WC樴Oy(QfemBy. H,oֻWhzqׄiR al.m_g :eVu څe7b3vȚ`+'F}xgf,<-mdPϤ,pJH>;N8xOEwR_sRuZGhsV}Y,a˒z3;L`O[$m0 2@ kujc6=>(w&sm~ dӎ%GA> {tJ]o)(6;iyj`Pg"ideBӛ0A0T)8l^M~-?US(1&g/"> Amµ4 ݵ$PgQ<ѓ罞H(OE,ԙ+ز~| PH̔\ @ )pxH5 L:5+Z-ܭ[Z,CS9Sd8/"$СC(ѼCV48Zn@y 0(o۲f @6mZƳyZ-ӧOuwǓ!V N,L$P7u#:n:sjZ%gjrҠ30 h>j`B3g>I s!`:y&1 ͪ۬Nt@B'OLo|M= ])`x0,Du`P72^p722;t :VpnjF`ڕzʕ;8pрP@ۡ>|hÀ1::ZtM{b=&R72^0NGўh.8Q HUO;c:ib{ƌ'u֕d5kV e@?XXcW: 3~]q=!"A(1Z _-EUώwD]vYN NVRGW,Ӝ^AhΜ9Ck׮8:?>\Ќ _+eiW`t 'D+Vsy Z׬Ysŋ{?.uKK\kT&6s9k^^ EC5ER&СI3X@Aq@Z+x" ضmۛwqLrYeccABvЯ[j緵)>[o޼y=g疝,X`mZ)S4O>qnX>#аV\WCW5w[vуqiU:VvEK>0+>A3fLS%#X+fr#`pHೱH/rm '* 8o9ayYֽrw҉AKV>`: ۝O46>#}]oTh90aKʚ̻SLuY-~ ;%(X+`۰ge[._I 0$  в>`cP LCIHH2`O#  2Zʰ.$@$@+-z#XuN2J?#KKi $-Ȭ" xDZ{EABkNfmWR>$|FMUoEEk`PQhg|׿uK/!_!j wao;M X\)؇5ΕԎCVq^z@ɮK/mrQ;?zwS^)rF~נߦQВ$'L|="0@~! 7pT.ewcj-R nn ? iWU82SD.O' 9dVE`hh({gVs|@4s4D2h9BTitxoQ.mL}{$"kSȯ|AI|\1I/qB! n7_D 5w@v2a`sRD #G(Vn(*ު9L$8f e>^<=8  [n ,;凹B csh2WO,Y|.ù4FL;D& / luQ5P. Kn-zίT$,,LS-9wjt a b[BN91%K}{~w#1b# Ȍ PNWB}O pfX|8-:'Pg1 v֎4ZaF|zQ]^?GX ޽{>5s-wA>s ۯ]L ۩2z>//|Aq'z.B!BT~U l/lUH-3xxP r?b 8O#>҆oFGG/\ 5Kk=(| Q,w6~M*G?Ql}P??xQVbbb`vZQ ẙu :h~@~mdh.j v2X|l8֝>mj^pȑSկmAkjeriog}oaARJyH;2YV Vje_Պ@@{{0̭+ẃSE]l yQ^mpM~;XUT"I8`c@K)"}@ܝz.ӌϹm|ȋr#^F kZ"8Tzfi<dW"9Cί:υk2.Oe ٯcTN Ņ;Xǵ6 8*opBr 6" /X ,ǒf91s9kfW6D=8VT)w63 {C"hQPㅕ+W} qlNv[岜pũBGU==p4~(&1džzEf=&| 1'9wڵ8\W9l&+j W|>|p3 Jz _/AJv$QB>@@_үx0jժhٲe%'r<[ q*dG)@@Mlʗr/~^f1N<49O_{F{8[ q ,k#(e#vJ y$u¦wBoa2*OKx 6OwX.k%06(V,/1E7yع($S>T9m R+5if@&ӵr&x>1ϊd:% @nUU/CAf_x]Aڢ7 ȺD֒!KXm'VbLQ6گG((ҷ~;n= ^z%~ѢEx?MGsmK-cmb̢8`oF(du3y Yo$w8JEuJsl8X8| f>rH)6u]վkEr mAH駟_M;1@*@-B/:Fb-#[Z ϔw" P~a/Jދd r /. Ry#jZ ד7N_+24.=*$֯_R}< &(X{^fkTXpOORz %^??ϟ%xqP|`4mD6l(w}7-k(rM|/ 򽰐:+5rcPvfP6-M^y_luNzFZ I95F'?\^|-u\s N @-P-v@;,Ȭ=zN%ƶ1 \]|ѠoȠ ^!_ ' A = "g̘1ӂn 0|W/|Y{2kQAfy6y"&uyNW9' ^HIPUy 0 :/B˾} tK+ȿQ;N̚}-Eh*|Bf- Q܊zŷmql6pW<'z/ZK QeSr 'F6d 6/Ӡ.+U>o}//^?fۖlȞ]}gu]W9K.;7{鞃NKgL(F>(Z,@aoEO&˷e,PgVy>k3ȻaU2g? ]WW#ƆǩѶJaJ+{a ͓eʀn~6u\###$6G̨rd P˻ᄏ"3o yЦѶΉ@K2#T4Wr,2[fSg4y}ǎ;"奞K|u]e7"B3 dٴJ0C@%],2B;w6kYF;qA@XJſոB{$[%8UEO ONL\_y2P׍vDz.?pzq9ui]_ FR63|%4R ,{ef&#US=2,x𢢭VAF9^2 m6vRgBYg&#UkK˃i\X|JG9dɅX&SL/M4g>;hqVu64z6֟O[ ~.k34;809Nٶ &Xpa$88m͇& JG8Yu)Up/~ [irl#XnFA&}{_$P46Uo,6R;qvY_Ԃ-Xʟ@L0>1 Fhmm͑@1 !ٞSL֩.h7ep!keլ5O@SMomFrO`FjxR2zbɔyySGq~bptwjV|RȂ$sd Uak9WtVyM["Vrp=l5*hs6prQܰ2.ɣ~|s_6E* JʣmB:[)dꪫl52 VaR΅_8YxY^n~E6=H ~j~جJJ \̹(FGM5oHJvoֿ o*: >Aܓx;ldӼbsR8Wy"fS^gњ5k_h/ڸw_5ē˖/Ko: ?l#Ph.\ tcq$ͫ+uAZH_SyuZ-xAN\Zf>L5]ri~(͌߶,/Z:.A?JI8^IW#s/<9v n%~e7<}{O:x2S>r]G'I{Q@Zp[l%zH{Bʰ_UbWv_y啶Y;%eLW-̘ϯ2itT`׀4OM~IMD-xY2p~K_R֟ǁ Swt3fkddiXM8կXQ|e˖L:6NK+mkoos6Zp?.a"󘹍<5887!ph9۰~衇5ڻ3&ʕZozӛ~n -6U7oۻCv,/,T]yGe%ˢJ9_<h";,]/e_2c_k@+Uma UOOѽ'R7)Aj%(b/ow]i7,6;",y\l>ioݺ5ZhrN^ߏ-wK~^ˣA NFi7 v) -g"sLzr<3g~'('/:*޽Rw(S9?=϶Q\7@ndy~rOrOF.s%rmTvu<3_G>ge뿋c2WwPK" V%yw"4'^$e֬Y|ի2W_VY"8^Hq "au-:N7S2q|v/ަR w@"lpN睇k-M xy^.y_bL`ڴi,_78y/?(|E~0P׮-ҭQ8yZ7\mB[^Wަ|xy9+ ҪUPv3~,x2:d|B~,#oX\d=KPV!-@0gwΦr =Tw1>1wh 3^x.o S>UD 4_Q *˯Yp*mFFzhHJ/}(?ٍ7ƿ4PM 4_Q #3cx"zQ&~F?r*mBJ{+34,ۯڷڵ+˿ZZu';r[V$&H`p@@x҂uꢱu}o}x2GOH I 4_Q^WXoF/0~fIIrs|\)`lD7( !1Toty ]rX#{"yW=\kn.,?> 6,,;­'k6DmZ?S.gu֡|_69O~6R t0@ݵ+Y| ճc,>lM]Y_䇎׈$ {6 |`!:0'/oN;g`x'/^dItC6Yn?+?t/ɬM 4_Q #}jH] eqa[Y_Zv)YNݲY駟tmZpa=z饗v_nY>"n +Əؘ?7n?,dy>0'І;Xx 'K͛gq~X(tꩧF23#ݏIwY_i,cRNY`tc{w0 Ea|8F}Y:9` HKۖ/7hf3B> B?!/)_u ׏Rt!UxJhfUz®봻+˲LRu%|7Qg,Ǒ24@(3s]f(Q3E<[;+NV7uo; UJ!  Pw[xKQ!@ϖ3# <  Pd8h2 # @-# *@*H>  \&pIENDB`ic07PNG  IHDR>a$iCCPICC Profile8UoT>oR? XGůUS[IJ*$:7鶪O{7@Hkk?<kktq݋m6nƶد-mR;`zv x#=\% oYRڱ#&?>ҹЪn_;j;$}*}+(}'}/LtY"$].9⦅%{_a݊]hk5'SN{<_ t jM{-4%TńtY۟R6#v\喊x:'HO3^&0::m,L%3:qVE t]~Iv6Wٯ) |ʸ2]G4(6w‹$"AEv m[D;Vh[}چN|3HS:KtxU'D;77;_"e?Yqxl+ pHYs  4IDATx]}UG BP,Rki /m4~JcSͦP56?`cjFJZ@4B(P( [ˮc}3s{gwp9sΙsΝ̼ٖRtԩ.Zkꫯݺu}{#AϘ15|K{Wɐ!Cs᦭@\Ç8x8<פзiMӸh(mR_7.mR_7.mR_7.mCJJ ^KKKp:](mX 6|ҥK#\ھqoGnׯ Q6> y9 W0@wC-9{f{$EL&<ۤ!}Y/}=GryR`p`eG p(g0T0c },@UMDpDjKds +Q@]]]çİ*=zOGG$Eŋ!36iE7ٛ#.\P䦼LY:~^+FW%q B8= , .Ƈĸ֭^b\]vI&|$O]m)oO#XI>R$>$xGK0P AHI4W/E( ҚId}) ҚI)2XU՜j۝E]<}31`0 xw{ܰc7&Ǎ'`#_@*oD0 h:(m6DsνY OY0Q)k׊d իWq鰐f,3HdYF,ǦM^}o[&Fp'X$)4l\*H]dDј7 o KFE23HJm"HCtw띐}S8y9i9䚧* iT xV|pr* @4K U8@:U\jIʕ1f7{#e}:p} <|ĩQ@D3[V%G&^x|¨فLQ r R{VGٲW}B/uX.5,DmvmeOBKڲpǎߗiO>FɓrYk,h*~.^x< <U6zjDq>cƌ97u: Oc݋V\t֬Yw-ۗM$:B"oe.88MDeJ~q j;Uۄ~0dɓozfh\t(74!@j< x6TA240m4 Y8@86j߿yHyy_.k,.NU|6EyqDҍg+Kj-uMSQ|HMjTC{͛p↵=#F̙óqwY T>裋Ȧ0>uՖ||xj[dI Ľaԉ'>\bH7JS+vm%w6Ǐ/-]T:ZrafWb_Ξ=K6|cßZZKmgKc+BˡY6a9@!RiWV| !͋ˈg[i"0X]vI]|͟Jh襁j pK]u5Ʌ:8 $LEjZ|yH ;4ˬ Mhp&0b.F{Mжp&0b.F{Mжp&0b.40X ViE[M:?J:WQ:i'{Վ"hH+Mכ킭oX5jT;iKҴi=G (cr,8ǡ˥e˖¥_|yy&RkVlL[\#GWID$OZJ;B"iKvP:)m1<)ģ9ztA|XΝ;š`a8[|?I檞!BIT(e̙ߌ4F+N mît5 DZKy(=ˑ'h*^<ËAfT#4є:DGd5^5 ,T cAl|W$/֕TV2Jd е%0lP)y[ʸBʡUeh#ڡ 68sD 6؞~IE餺G&x1aT1WM ,s'˂^ ԓb1錓×n;>@}$}K8C2_2~ꩧ8 [U9r}!romZ)֤0ŚŨ KM#c:P#@\Q]+ԩQk@]oF#ZlXϹ4Ib?UFe4 K02'cҁDtm89A ;]Ȝ0ٖ8<:iu@ї_LዯDŽd_BO۝+aGy6-A7}pѲ :@(QY}:ms>mdNR;NO'սOm vJ롇c T a8ϘpETX덍jQ,(ig<' (cR<:NWdr[SW[yfd50qkP*9sפI!{}h%X:-:T_j=园~ xt;BW)m`Y>r/"6IENDB`il32Z@@@@x? u@ t@tBu@t?tut99 @@@@x? u@ t@tBu@t?tut99 @@@@x? u@ t@tBu@t?tut99 l8mk /(" (*O]b]][]]\]]i]R``===>bɷ鷷Z}}v((((}]h}\g}[h}]h}gEWRPRR32RRPRT«N_b`4f;j;v<9v;d6v:=4w:iG2w9aXQ|0{9b y09cC{Mfecba@`%`@NPlib/jb2plm.pl0000644000175000017500000000551012240711455013655 0ustar mquinsonmquinson#! /usr/bin/perl use strict; ## Get the mission while (<>) { last if //; next if /other tests/; s/
/; } my $mission = $_; while (<>) { last if /

/; $mission .= $_; } $mission =~ s/<[^>]*>//g; ## Get the package name my $package = `pwd`; chomp $package; $package =~ s|/$||; $package =~ s|.*/||; ## Get the prototype of the function to run while (<>) { last if /spellcheck="false"/} chomp; my $proto = $_; $proto =~ s/<[^>]*>//g; $proto =~ s/public //; ## Get the tests while (<>) { last if /Expected/;} my $name; my @worlds; while (<>) { chomp; next unless /
([^(]*)\(//; #) if (defined $name && $1 ne $name) { die "name redefined from $name to $1\n"; } $name=$1; s/&.*//; s/{/new int[] {/g; # print "w:$_\n"; push @worlds,$_; } my $upname= ucfirst $name; print "Write $upname.java\n"; open J,">$upname.java" || die "Cannot open $upname.java: $!\n"; print J "/* automatically converted from the Nick Parlante's excellent exercising site http://javabat.com/ */\n\n"; print J "package lessons.bat.$package;\n"; print J "import plm.lesson.Lesson;\n"; print J "import plm.universe.World;\n"; print J "import universe.bat.BatExercise;\n"; print J "import universe.bat.BatWorld;\n\n"; print J "public class $upname extends BatExercise {\n"; print J " public $upname(Lesson lesson) {\n"; print J " super(lesson);\n"; print J " \n"; my $count = scalar @worlds; print J ' World[] myWorlds = new BatWorld['.$count."];\n"; for (my $i=0;$i0); print J "($_)w.getParameter($argcount)"; $argcount++; } print J ");\n"; print J " }\n"; print J " /* END SKEL */\n\n"; print J " /* BEGIN TEMPLATE */\n"; print J "$proto\n"; print J " /* BEGIN SOLUTION */\n"; print J " /* END SOLUTION */\n"; print J "}\n"; print J " /* END TEMPLATE */\n"; print J "}\n"; close J; print "Write $upname.html\n"; open H,">$upname.html" || die "Cannot open $upname.html: $!\n"; print H "

$upname

\n"; print H "$mission\n"; print H "\n

This exercise was converted to PLM from the excellent exercising site http://javabat.com/

\n"; close H; lib/doc/0000755000175000017500000000000012240711455012676 5ustar mquinsonmquinsonlib/doc/MainWindow.fr.html0000644000175000017500000001154212240711455016251 0ustar mquinsonmquinson

La fenêtre principale de PLM

L'environnement de travail de PLM devrait être immédiat à maîtriser, en particulier avec les bulles d'aide qui apparaissent quand votre souris survole les éléments. Voici une petite explication des composants au cas où quelque chose vous échappe. La fenêtre principale est faite de 5 composants majeurs :