debian/0000775000000000000000000000000011660020355007166 5ustar debian/gromit.10000664000000000000000000000760211622730713010562 0ustar .\" Hey, vim: ft=nroff .TH GROMIT 1 "January 16, 2005" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME Gromit \- Presentation helper to make annotations on screen .SH SYNOPSIS .B gromit .RI [ options ] .br .SH DESCRIPTION \fBGromit\fP enables you to make annotations on your screen. It can run in the background and be activated on demand to let you draw over all your currently running applications. The drawing will stay on screen as long as you want, you can continue to use your applications while the drawing is visible. .br \fBGromit\fP is XInput-Aware, so if you have a graphic tablet you can draw lines with different strength, color, erase things, etc. .br Since you typically want to use the program you are demonstrating and highlighting something is a short interruption of you workflow, Gromit is activated by either a hotkey or a repeated invokation of Gromit (the latter can e.g. used by other applications or your windowmanager). .br .SH KEYBOARD CONTROL By default, Gromit grabs the "Pause" key (this can be change using the "\-\-key" option), making it unavailable to other application. The available shortcuts are: .TP .B Pause toggle painting .TP .B SHIFT-Pause clear screen .TP .B CTRL-Pause toggle visibility .TP .B ALT-Pause quit Gromit .PP .SH OPTIONS (STARTUP) A short summary of the available commandline arguments for invoking Gromit, see below for the options to control an already running Gromit process: .TP .B \-a, \-\-active start Gromit and immediately activate it. .TP .B \-k , \-\-key will change the key used to grab the mouse. can e.g. be "Pause", "F12", "Control_R" or "Print". To determine the keysym for different keys you can use the \fBxev\fP(1) command. You can specify "none" to prevent Gromit from grabbing a key. .TP .B \-K , \-\-keycode will change the key used to grab the mouse. Under rare circumstances identifying the key with the keysym can fail. You can then use the keycode to specify the key uniquely. To determine the keycode for different keys you can use the \fBxev\fP(1) command. .TP .B \-d, \-\-debug gives some debug output. .SH OPTIONS (CONTROL) A sort summary of the available commandline arguments to control an already running Gromit process, see above for the options available to start Gromit. .TP .B \-q, \-\-quit will cause the main Gromit process to quit. .TP .B \-t, \-\-toggle will toggle the grabbing of the cursor. .TP .B \-v, \-\-visibility will toggle the visibility of the window. .TP .B \-c, \-\-clear will clear the screen. .SH BUGS Gromit may drastically slow down your X-Server, especially when you draw very thin lines. It makes heavily use of the shape extension, which is quite expensive if you paint a complex pattern on screen. Especially terminal-programs tend to scroll incredibly slow if something is painted over their window. There is nothing I can do about this. .br Gromit partially disables DnD, since it lays a transparent window across the whole screen and everything gets "dropped" to this (invisible) window. Gromit tries to minimize this effect: When you clear the screen the shaped window will be hidden. It will be resurrected, when you want to paint something again. However: The window does not hide, if you erase everything with the eraser tool, you have to clear the screen explicitly with the "gromit \-\-clear" command or hide Gromit with "gromit \-\-visibility". .SH AUTHOR Simon Budig .PP This manual page was written by Pierre Chifflier and Simon Budig. debian/gromit.menu0000664000000000000000000000042611657575626011405 0ustar ?package(gromit): \ needs="X11" \ section="Applications/Graphics" \ title="Gromit" \ command="/usr/bin/gromit" \ description="On screen display annotator" \ hints="X11" \ icon="/usr/share/pixmaps/gromit.xpm" \ longtitle="Gromit Presentation Helper" debian/watch0000664000000000000000000000011411535433720010220 0ustar version=3 http://www.home.unix-ag.org/simon/gromit/ ./gromit-(\d*)\.tar\.gz debian/patches/0000755000000000000000000000000011660020355010613 5ustar debian/patches/series0000644000000000000000000000001711660020355012026 0ustar debian-changes debian/patches/debian-changes0000644000000000000000000002360111660020355013370 0ustar Description: TODO: Put a short summary on the line above and replace this paragraph with a longer explanation of this change. Complete the meta-information with other relevant fields (see below for details). To make it easier, the information below has been extracted from the changelog. Adjust it or drop it. . gromit (20041213-9) unstable; urgency=low . * create and install scalable icon * refresh xpm icon from scalable icon * add gromit.desktop file * Makefile tweak to link math library Author: Barak A. Pearlmutter --- The information above should follow the Patch Tagging Guidelines, please checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here are templates for supplementary fields that you might want to add: Origin: , Bug: Bug-Debian: http://bugs.debian.org/ Bug-Ubuntu: https://launchpad.net/bugs/ Forwarded: Reviewed-By: Last-Update: --- gromit-20041213.orig/gromit.c +++ gromit-20041213/gromit.c @@ -29,6 +29,8 @@ #include #include +int debug = 0; + #include "paint_cursor.xbm" #include "paint_cursor_mask.xbm" #include "erase_cursor.xbm" @@ -93,6 +95,7 @@ typedef struct GdkPixmap *pixmap; GdkDisplay *display; GdkScreen *screen; + gboolean xinerama; GdkWindow *root; gchar *hot_keyval; guint hot_keycode; @@ -403,29 +406,6 @@ gromit_acquire_grab (GromitData *data) } -void -gromit_toggle_grab (GromitData *data) -{ - if (data->hard_grab) - gromit_release_grab (data); - else - gromit_acquire_grab (data); -} - - -void -gromit_clear_screen (GromitData *data) -{ - gdk_gc_set_foreground (data->shape_gc, data->transparent); - gdk_draw_rectangle (data->shape, data->shape_gc, 1, - 0, 0, data->width, data->height); - gtk_widget_shape_combine_mask (data->win, data->shape, 0,0); - if (!data->hard_grab) - gromit_hide_window (data); - data->painted = 0; -} - - gint reshape (gpointer user_data) { @@ -449,6 +429,32 @@ reshape (gpointer user_data) void +gromit_toggle_grab (GromitData *data) +{ + if (data->hard_grab) { + gtk_timeout_remove (data->timeout_id); + gromit_release_grab (data); + } else { + data->timeout_id = gtk_timeout_add (20, reshape, data); + gromit_acquire_grab (data); + } +} + + +void +gromit_clear_screen (GromitData *data) +{ + gdk_gc_set_foreground (data->shape_gc, data->transparent); + gdk_draw_rectangle (data->shape, data->shape_gc, 1, + 0, 0, data->width, data->height); + gtk_widget_shape_combine_mask (data->win, data->shape, 0,0); + if (!data->hard_grab) + gromit_hide_window (data); + data->painted = 0; +} + + +void gromit_select_tool (GromitData *data, GdkDevice *device, guint state) { guint buttons = 0, modifier = 0, len = 0; @@ -527,6 +533,15 @@ gromit_draw_line (GromitData *data, gint gint x2, gint y2) { GdkRectangle rect; + static gint prev_x1=0, prev_y1=0, prev_x2=0, prev_y2=0; + + if (debug) fprintf(stderr, "line (%d,%d) (%d,%d)\n", x1, y1, x2, y2); + + // strange left-corner line bugfix + if (x1) prev_x1 = x1; else x1 = prev_x1; + if (y1) prev_y1 = y1; else y1 = prev_y1; + if (x2) prev_x2 = x2; else x2 = prev_x2; + if (y2) prev_y2 = y2; else y2 = prev_y2; rect.x = MIN (x1,x2) - data->maxwidth / 2; rect.y = MIN (y1,y2) - data->maxwidth / 2; @@ -731,7 +746,7 @@ paintto (GtkWidget *win, &coords, &nevents); /* g_printerr ("Got %d coords\n", nevents); */ - if (coords) + if (!data->xinerama && nevents > 0) { for (i=0; i < nevents; i++) { @@ -991,10 +1006,10 @@ parse_name (GScanner *scanner) { if (token == G_TOKEN_SYMBOL) { - if ((guint) scanner->value.v_symbol < 11) - buttons |= 1 << ((guint) scanner->value.v_symbol - 1); + if ((gulong) scanner->value.v_symbol < 11) + buttons |= 1 << ((gulong) scanner->value.v_symbol - 1); else - modifier |= 1 << ((guint) scanner->value.v_symbol - 11); + modifier |= 1 << ((gulong) scanner->value.v_symbol - 11); } else if (token == G_TOKEN_INT) { @@ -1043,9 +1058,17 @@ parse_config (GromitData *data) if (file < 0) { - g_printerr ("Could not open %s: %s\n", filename, g_strerror (errno)); + /* try global config file */ g_free (filename); - return; + filename = g_strdup ("/etc/gromit/gromitrc"); + file = open (filename, O_RDONLY); + + if (file < 0) + { + g_printerr ("Could not open %s: %s\n", filename, g_strerror (errno)); + g_free (filename); + return; + } } scanner = g_scanner_new (NULL); @@ -1152,7 +1175,7 @@ parse_config (GromitData *data) { if (token == G_TOKEN_SYMBOL) { - if ((guint) scanner->value.v_symbol == 1) + if ((gulong) scanner->value.v_symbol == 1) { token = g_scanner_get_next_token (scanner); if (token != G_TOKEN_EQUAL_SIGN) @@ -1168,7 +1191,7 @@ parse_config (GromitData *data) } width = (guint) (scanner->value.v_float + 0.5); } - else if ((guint) scanner->value.v_symbol == 2) + else if ((gulong) scanner->value.v_symbol == 2) { token = g_scanner_get_next_token (scanner); if (token != G_TOKEN_EQUAL_SIGN) @@ -1207,7 +1230,7 @@ parse_config (GromitData *data) } color = NULL; } - else if ((guint) scanner->value.v_symbol == 3) + else if ((gulong) scanner->value.v_symbol == 3) { token = g_scanner_get_next_token (scanner); if (token != G_TOKEN_EQUAL_SIGN) @@ -1306,6 +1329,7 @@ setup_client_app (GromitData *data) { data->display = gdk_display_get_default (); data->screen = gdk_display_get_default_screen (data->display); + data->xinerama = gdk_screen_get_n_monitors (data->screen) > 1; data->root = gdk_screen_get_root_window (data->screen); data->width = gdk_screen_get_width (data->screen); data->height = gdk_screen_get_height (data->screen); @@ -1420,7 +1444,7 @@ setup_main_app (GromitData *data, gboole data->painted = 0; gromit_hide_window (data); - data->timeout_id = gtk_timeout_add (20, reshape, data); + /* data->timeout_id = gtk_timeout_add (20, reshape, data); */ data->coordlist = NULL; data->modified = 0; @@ -1529,7 +1553,6 @@ app_parse_args (int argc, char **argv, G gchar *arg; gboolean wrong_arg = FALSE; gboolean activate = FALSE; - gboolean dump = FALSE; data->hot_keyval = "Pause"; data->hot_keycode = 0; @@ -1545,7 +1568,7 @@ app_parse_args (int argc, char **argv, G else if (strcmp (arg, "-d") == 0 || strcmp (arg, "--debug") == 0) { - dump = TRUE; + debug += 1; } else if (strcmp (arg, "-k") == 0 || strcmp (arg, "--key") == 0) @@ -1579,13 +1602,13 @@ app_parse_args (int argc, char **argv, G } else { - g_printerr ("Unknown Option: \"%s\"\n", arg); + g_printerr ("Unknown Option for Gromit startup: \"%s\"\n", arg); wrong_arg = TRUE; } if (!wrong_arg) { - if (dump) + if (debug >= 2) { g_printerr ("\n-----------------------------\n"); g_hash_table_foreach (data->tool_config, parse_print_help, NULL); @@ -1594,7 +1617,7 @@ app_parse_args (int argc, char **argv, G } else { - g_printerr ("Please see the Gromit README for the correct usage\n"); + g_printerr ("Please see the Gromit manpage for the correct usage\n"); exit (1); } } @@ -1641,7 +1664,7 @@ main_client (int argc, char **argv, Grom } else { - g_printerr ("Unknown Option: \"%s\"\n", arg); + g_printerr ("Unknown Option to control a running Gromit process: \"%s\"\n", arg); wrong_arg = TRUE; } @@ -1653,7 +1676,7 @@ main_client (int argc, char **argv, Grom } else { - g_printerr ("Please see the Gromit README for the correct usage\n"); + g_printerr ("Please see the Gromit manpage for the correct usage\n"); return 1; } } --- gromit-20041213.orig/Makefile +++ gromit-20041213/Makefile @@ -1,10 +1,18 @@ all: gromit -proptest: proptest.c - gcc -o proptest proptest.c `gtk-config --libs --cflags` +CPPFLAGS += -DG_DISABLE_DEPRECATED +CPPFLAGS += -DGDK_PIXBUF_DISABLE_DEPRECATED +# CPPFLAGS += -DGDK_DISABLE_DEPRECATED +CPPFLAGS += -DPANGO_DISABLE_DEPRECATED +CPPFLAGS += -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -propertywatch: propertywatch.c - gcc -o propertywatch propertywatch.c `gtk-config --libs --cflags` +CPPFLAGS += $(shell pkg-config --cflags-only-I gtk+-2.0 x11) -gromit: gromit.c Makefile - gcc -DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -o gromit gromit.c -Wall `pkg-config --libs --cflags gtk+-2.0` +CFLAGS += -Wall -Wno-pointer-sign +CFLAGS += -O2 +CFLAGS += -g + +CFLAGS += $(shell pkg-config --cflags-only-other gtk+-2.0 x11) + +LOADLIBES += $(shell pkg-config --libs gtk+-2.0 x11) +LOADLIBES += -lm debian/gromit.desktop0000664000000000000000000000026011660020054012054 0ustar [Desktop Entry] Type=Application Name=gromit GenericName=gromit Comment=draw freehand screen annotations Icon=gromit Exec=gromit Terminal=false Categories=GTK;Office;Graphics; debian/compat0000664000000000000000000000000211535433720010371 0ustar 8 debian/rules0000775000000000000000000000051011660020054010236 0ustar #!/usr/bin/make -f %: dh $@ --parallel debian/gromit_32.png: debian/gromit.svg; rsvg-convert -w 32 -h 32 $< > $@ debian/gromit_64.png: debian/gromit.svg; rsvg-convert -w 64 -h 64 $< > $@ debian/gromit_128.png: debian/gromit.svg; rsvg-convert -w 128 -h 128 $< > $@ debian/gromit.xpm: debian/gromit_32.png convert $< $@ debian/gromit.docs0000664000000000000000000000001711521025003011326 0ustar AUTHORS README debian/changelog0000664000000000000000000000573311660020274011050 0ustar gromit (20041213-9) unstable; urgency=low * create and install scalable icon * refresh xpm icon from scalable icon * add gromit.desktop file * Makefile tweak to link math library -- Barak A. Pearlmutter Sun, 13 Nov 2011 19:53:59 +0000 gromit (20041213-8) unstable; urgency=low * bump standards version * silence lintian with single debian patch source format option * silence lintian back slash dash man page hash whining * silence some GCC warnings by dispabling -DGDK_DISABLE_DEPRECATED -- Barak A. Pearlmutter Wed, 17 Aug 2011 14:35:06 +0200 gromit (20041213-7) unstable; urgency=low * make --debug a bit useful * brute-force fix for horz/vert bug by squashing zeros, and revert performance-sapping fix from NMU -4.1 -- Barak A. Pearlmutter Wed, 09 Mar 2011 20:38:33 +0000 gromit (20041213-6) unstable; urgency=low * Simplify Makefile * Add -Wno-pointer-sign quashing pointless signed vs unsigned char * warnings -- Barak A. Pearlmutter Tue, 08 Mar 2011 11:34:24 +0000 gromit (20041213-5) unstable; urgency=low * Changes to packaging info (debian/control) - add BAP as uploader - bump standards version - point to collab-maint git repo - pointer to home page * Watch file to version 3 (debian/watch) * Update to dh8 (debian/rules etc) * Accept NMU patch * dpkg source format 3.0 (quilt) * Point to correct version of GPL (debian/copyright) * Update to new heirarchy (debian/gromit.menu) * Patch for power friendliness from Alexander Clouter (closes: #487692) * Patch, silence some "cast pointer to integer of different size" warnings (closes: #572980) * Add x11 to Makefile pkg-config, quashing gold link error (closes: #554745) -- Barak A. Pearlmutter Fri, 21 Jan 2011 16:00:14 +0000 gromit (20041213-4.1) unstable; urgency=medium * Non-maintainer upload. * Fix "Line appears from draw start to upper left corner of screen." by restricting the time-range of the event-history. Thanks to Rafael Cunha de Almeida , who did the patch with me. (Closes: #571748) -- Marco TĂșlio Gontijo e Silva Thu, 11 Mar 2010 16:14:30 -0300 gromit (20041213-4) unstable; urgency=low * Updated Standards-Version to 3.6.2 (no changes) -- Pierre Chifflier Mon, 12 Sep 2005 11:32:11 +0200 gromit (20041213-3) unstable; urgency=low * Applied patch to fix bug on multihead displays (Closes: #302108) -- Pierre Chifflier Thu, 14 Apr 2005 10:53:56 +0200 gromit (20041213-2) unstable; urgency=low * Corrected typo in package description (Closes: #303513) * Updated manpage (Closes: #301593) * Added watchfile, menu entry and xpm -- Pierre Chifflier Mon, 11 Apr 2005 15:24:49 +0200 gromit (20041213-1) unstable; urgency=low * Initial Release (Closes: #289545) -- Pierre Chifflier Mon, 17 Jan 2005 11:51:44 +0100 debian/gromit.svg0000664000000000000000000001364211660020064011213 0ustar image/svg+xml debian/gromit.install0000664000000000000000000000027111660020064012054 0ustar gromitrc /etc/gromit/ gromit /usr/bin/ debian/gromit.xpm /usr/share/pixmaps/ debian/gromit.svg /usr/share/icons/hicolor/scalable/apps/ debian/gromit.desktop /usr/share/applications/ debian/copyright0000664000000000000000000000161411535433720011130 0ustar This package was debianized by Pierre Chifflier on Sun, 9 Jan 2005 16:43:34 +0100. It was downloaded from http://www.home.unix-ag.org/simon/gromit/ Copyright: Upstream Author: Simon Budig License: Copyright (C) 2000 Simon Budig 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 2 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. On Debian systems, the complete text of the GNU General Public License version 2 can be found in `/usr/share/common-licenses/GPL-2'. debian/gromit.manpages0000664000000000000000000000002011521025003012163 0ustar debian/gromit.1 debian/control0000664000000000000000000000146711622727037010612 0ustar Source: gromit Section: x11 Priority: optional Maintainer: Pierre Chifflier Uploaders: Barak A. Pearlmutter Build-Depends: debhelper (>= 8), libgtk2.0-dev Standards-Version: 3.9.2 Homepage: http://www.home.unix-ag.org/simon/gromit/ Vcs-Git: git://git.debian.org/git/collab-maint/gromit.git Vcs-Browser: http://git.debian.org/?p=collab-maint/gromit.git Package: gromit Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: GTK based tool to make annotations on screen Gromit enables you to make annotations on your screen. . This is especially useful when making presentations, to highlight things or point out things of interest. . Gromit is XInput-Aware, so if you have a graphic tablet you can draw lines with different strength, color, erase things, etc. debian/source/0000775000000000000000000000000011640645327010500 5ustar debian/source/format0000664000000000000000000000001411516327436011706 0ustar 3.0 (quilt) debian/gromit.xpm0000664000000000000000000001063111660020054011212 0ustar /* XPM */ static char *gromit[] = { /* columns rows colors chars-per-pixel */ "32 32 139 2", " c #000000", ". c #010000", "X c #020000", "o c #030000", "O c #040000", "+ c #050000", "@ c #060000", "# c #070000", "$ c #080000", "% c #090000", "& c #0A0000", "* c #0B0000", "= c #0C0000", "- c #0D0000", "; c #0E0000", ": c #0F0000", "> c #100000", ", c #110000", "< c #120000", "1 c #130000", "2 c #140000", "3 c #150000", "4 c #160000", "5 c #170000", "6 c #180000", "7 c #190000", "8 c #1B0000", "9 c #1D0000", "0 c #1F0000", "q c #250000", "w c #280000", "e c #2A0000", "r c #2B0000", "t c #2C0000", "y c #2E0000", "u c #2F0000", "i c #300000", "p c #330000", "a c #360000", "s c #3C0000", "d c #3D0000", "f c #400000", "g c #410000", "h c #430000", "j c #440000", "k c #460000", "l c #480000", "z c #4A0000", "x c #4C0000", "c c #4E0000", "v c #4F0000", "b c #530000", "n c #630000", "m c #660000", "M c #6A0000", "N c #6C0000", "B c #6D0000", "V c #6E0000", "C c #730000", "Z c #750000", "A c #760000", "S c #770000", "D c #790000", "F c #7A0000", "G c #7C0000", "H c #7E0000", "J c #7F0000", "K c #800000", "L c #860000", "P c #920000", "I c #940000", "U c #950000", "Y c #980000", "T c #990000", "R c #9A0000", "E c #9E0000", "W c #9F0000", "Q c #A00000", "! c #A10000", "~ c #A30000", "^ c #A50000", "/ c #A60000", "( c #AA0000", ") c #AD0000", "_ c #B20000", "` c #B50000", "' c #B70000", "] c #B80000", "[ c #BA0000", "{ c #BC0000", "} c #BD0000", "| c #C00000", " . c #C10000", ".. c #C30000", "X. c #C40000", "o. c #C50000", "O. c #C60000", "+. c #C70000", "@. c #C80000", "#. c #C90000", "$. c #CA0000", "%. c #CC0000", "&. c #CF0000", "*. c #D20000", "=. c #D30000", "-. c #D50000", ";. c #D80000", ":. c #D90000", ">. c #DA0000", ",. c #DB0000", "<. c #DC0000", "1. c #DF0000", "2. c #E00000", "3. c #E10000", "4. c #E20000", "5. c #E50000", "6. c #E60000", "7. c #E70000", "8. c #E80000", "9. c #E90000", "0. c #EB0000", "q. c #EC0000", "w. c #ED0000", "e. c #EE0000", "r. c #EF0000", "t. c #F10000", "y. c #F20000", "u. c #F40000", "i. c #F50000", "p. c #F60000", "a. c #F70000", "s. c #F80000", "d. c #F90000", "f. c #FA0000", "g. c #FB0000", "h. c #FD0000", "j. c #FE0000", "k. c #FF0000", "l. c None", /* pixels */ "l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.X , ; * * ; ; l.l.l.l.l.l.", "l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.; * z ~ -.8.r.=.J , ; l.l.l.l.", "l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.# * B 8.k.g.@.E ~ O.k.r.j , l.l.l.", "l.l.l.l.l.l.l.l.l.l.l.l.l.l.; y >.k.t.D , , , , ; , L <.X l.l.l.", "l.l.l.l.l.l.l.l.l.l.l.l.l.; A g.k.U ; ; l.l.l.l.l.l.; * 2 l.l.l.", "l.l.l.l.l.l.l.l.l.l.l.l.* / k.r.z ; l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.l.l.l.l.l.; .k.2.9 * l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.l.l.l.l.; O.k.-., * l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.l.l.l.* .k.O.; X l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.l.l.* ~ k.@.; X l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.l.; A k.>., # l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.# y k.a.w * l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.* >.k.M ; l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.; A k.=.* l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.; t.k.f * l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.* D k._ ; l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.* 6.k.d * l.l.l.l.l.l.l.l.l.l.l.* * 6 w * l.l.l.l.l.l.l.", "l.l.l.l.y k.<.* l.l.l.l.l.l.l.l.l.l.; * C >.k.k.-.2 l.l.l.l.l.l.", "l.l.l.* L k.J * l.l.l.l.l.l.l.l.; 2 U a.k.k.g.k.k.P ; l.l.l.l.l.", "l.l.l., } k.i * l.l.l.l.l.l.; y ) k.k.r.U , X b k.@., l.l.l.l.l.", "l.l.l.* 8.k.# l.l.l.l.l.l.2 [ k.k.8.B * ; s , X k.=., l.l.l.l.l.", "l.l.l.X k.r.* l.l.l.l.l.* 2.k.6.B * ; l.* a.A # k. .2 l.l.l.l.l.", "l.l.l.* k.2.; l.l.l.l.l.* K j * ; l.l.l.c k.n 2 k.E , l.l.l.l.l.", "l.l.l.X k.t.# l.l.l.l.l.l.# l.l.l.l.l., ( k.q z k.M l.l.l.l.l.l.", "l.l.l.* 6.k.; l.l.l.l.l.l.l.l.l.l.l.l., g.>.* R k.w l.l.l.l.l.l.", "l.l.l., [ k.c * l.l.l.l.l.l.l.l.l.l.; [ k.m ; [ a.* l.l.l.l.l.l.", "l.l.l.* B k.` ; l.l.l.l.l.l.l.l.# * E k.%.* ; >._ 2 l.l.l.l.l.l.", "l.l.l.l.; a.k.f ; l.l.l.l.l.# ; 2 [ k.6.6 X , ~ f l.l.l.l.l.l.l.", "l.l.l.l., D k.r.s ; , , , # a R g.k.} , * l.l.2 ; l.l.l.l.l.l.l.", "l.l.l.l.l.; / k.k.%.E ( } t.k.k.O.j ; l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.* m 2.k.k.k.g. .J q ; X l.l.l.l.l.l.l.l.l.l.l.l.l.l.", "l.l.l.l.l.l.l.* * 2 9 , # , * l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l." };