diff -u -r -N sugar-0.88.1.original.con.parches/bin/sugar-session sugar-0.88.1/bin/sugar-session<br>--- sugar-0.88.1.original.con.parches/bin/sugar-session    2010-06-02 09:33:43.000000000 -0300<br>+++ sugar-0.88.1/bin/sugar-session    2010-06-21 11:48:06.837182011 -0300<br>
@@ -1,6 +1,7 @@<br> #!/usr/bin/env python<br> # Copyright (C) 2006, Red Hat, Inc.<br> # Copyright (C) 2009, One Laptop Per Child Association Inc<br>+# Copyright (C) 2010, Plan Ceibal &lt;<a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a>&gt;<br>
 #<br> # This program is free software; you can redistribute it and/or modify<br> # it under the terms of the GNU General Public License as published by<br>@@ -190,6 +191,7 @@<br>     gobject.idle_add(setup_notification_service_cb)<br>
     gobject.idle_add(setup_file_transfer_cb)<br>     gobject.idle_add(show_software_updates_cb)<br>+    gobject.idle_add(setup_accessibility_cb)<br> <br>     if sys.modules.has_key(&#39;xklavier&#39;):<br>         gobject.idle_add(setup_keyboard_cb)<br>
@@ -201,6 +203,11 @@<br>     settings = gtk.settings_get_default()<br>     settings.set_property(&quot;gtk-font-name&quot;, &quot;%s %f&quot; % (face, size))<br> <br>+def setup_accessibility_cb():<br>+    from jarabe.model import accessibility<br>
+    accessibility_manager = accessibility.AccessibilityManager()<br>+    accessibility_manager.setup_accessibility()<br>+<br> def main():<br>     try:<br>         from sugar import env<br>diff -u -r -N sugar-0.88.1.original.con.parches/<a href="http://configure.ac">configure.ac</a> sugar-0.88.1/<a href="http://configure.ac">configure.ac</a><br>
--- sugar-0.88.1.original.con.parches/<a href="http://configure.ac">configure.ac</a>    2010-06-21 11:39:19.902054000 -0300<br>+++ sugar-0.88.1/<a href="http://configure.ac">configure.ac</a>    2010-06-21 11:44:16.697208930 -0300<br>
@@ -50,6 +50,7 @@<br> data/Makefile<br> data/sugar-emulator.desktop<br> extensions/cpsection/aboutcomputer/Makefile<br>+extensions/cpsection/accessibility/Makefile<br> extensions/cpsection/aboutme/Makefile<br> extensions/cpsection/datetime/Makefile<br>
 extensions/cpsection/frame/Makefile<br>diff -u -r -N sugar-0.88.1.original.con.parches/data/icons/Makefile.am sugar-0.88.1/data/icons/Makefile.am<br>--- sugar-0.88.1.original.con.parches/data/icons/Makefile.am    2010-06-21 11:39:19.902054000 -0300<br>
+++ sugar-0.88.1/data/icons/Makefile.am    2010-06-21 11:54:27.040055731 -0300<br>@@ -3,6 +3,7 @@<br> sugar_DATA =                        \<br>     module-about_me.svg             \<br>     module-about_my_computer.svg    \<br>
+    module-accessibility.svg        \<br>     module-date_and_time.svg        \<br>     module-frame.svg                \<br>     module-journalmanagement.svg    \<br>diff -u -r -N sugar-0.88.1.original.con.parches/data/icons/module-accessibility.svg sugar-0.88.1/data/icons/module-accessibility.svg<br>
--- sugar-0.88.1.original.con.parches/data/icons/module-accessibility.svg    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/data/icons/module-accessibility.svg    2010-06-02 14:57:19.214840000 -0300<br>@@ -0,0 +1,279 @@<br>
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;<br>+&lt;!-- Created with Inkscape (<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>) --&gt;<br>+<br>+&lt;svg<br>+   xmlns:dc=&quot;<a href="http://purl.org/dc/elements/1.1/">http://purl.org/dc/elements/1.1/</a>&quot;<br>
+   xmlns:cc=&quot;<a href="http://creativecommons.org/ns#">http://creativecommons.org/ns#</a>&quot;<br>+   xmlns:rdf=&quot;<a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a>&quot;<br>
+   xmlns:svg=&quot;<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>&quot;<br>+   xmlns=&quot;<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>&quot;<br>+   xmlns:sodipodi=&quot;<a href="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd">http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd</a>&quot;<br>
+   xmlns:inkscape=&quot;<a href="http://www.inkscape.org/namespaces/inkscape">http://www.inkscape.org/namespaces/inkscape</a>&quot;<br>+   width=&quot;55&quot;<br>+   height=&quot;55&quot;<br>+   id=&quot;svg795&quot;<br>
+   sodipodi:version=&quot;0.32&quot;<br>+   inkscape:version=&quot;0.46+devel&quot;<br>+   version=&quot;1.0&quot;<br>+   sodipodi:docname=&quot;acc79.svg&quot;<br>+   inkscape:output_extension=&quot;org.inkscape.output.svg.inkscape&quot;&gt;<br>
+  &lt;defs<br>+     id=&quot;defs797&quot;&gt;<br>+    &lt;inkscape:perspective<br>+       sodipodi:type=&quot;inkscape:persp3d&quot;<br>+       inkscape:vp_x=&quot;0 : 526.18109 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>
+       inkscape:vp_z=&quot;744.09448 : 526.18109 : 1&quot;<br>+       inkscape:persp3d-origin=&quot;372.04724 : 350.78739 : 1&quot;<br>+       id=&quot;perspective803&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective813&quot;<br>
+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>
+    &lt;inkscape:perspective<br>+       id=&quot;perspective813-2&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>
+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective1380&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>
+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>
+       id=&quot;perspective1380-3&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>
+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective1448&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>
+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective1448-2&quot;<br>
+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>
+    &lt;inkscape:perspective<br>+       id=&quot;perspective1479&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>
+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective1501&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>
+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>
+       id=&quot;perspective1523&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>
+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective1545&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>
+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective1567&quot;<br>
+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>
+    &lt;inkscape:perspective<br>+       id=&quot;perspective1589&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>
+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective1617&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>
+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>
+       id=&quot;perspective51&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>
+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective97&quot;<br>+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>
+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>+    &lt;inkscape:perspective<br>+       id=&quot;perspective53&quot;<br>
+       inkscape:persp3d-origin=&quot;0.5 : 0.33333333 : 1&quot;<br>+       inkscape:vp_z=&quot;1 : 0.5 : 1&quot;<br>+       inkscape:vp_y=&quot;0 : 1000 : 0&quot;<br>+       inkscape:vp_x=&quot;0 : 0.5 : 1&quot;<br>+       sodipodi:type=&quot;inkscape:persp3d&quot; /&gt;<br>
+  &lt;/defs&gt;<br>+  &lt;sodipodi:namedview<br>+     id=&quot;base&quot;<br>+     pagecolor=&quot;#ffffff&quot;<br>+     bordercolor=&quot;#666666&quot;<br>+     borderopacity=&quot;1.0&quot;<br>+     inkscape:pageopacity=&quot;0.0&quot;<br>
+     inkscape:pageshadow=&quot;2&quot;<br>+     inkscape:zoom=&quot;7.9195959&quot;<br>+     inkscape:cx=&quot;39.65323&quot;<br>+     inkscape:cy=&quot;29.255214&quot;<br>+     inkscape:document-units=&quot;px&quot;<br>
+     inkscape:current-layer=&quot;layer1&quot;<br>+     showgrid=&quot;false&quot;<br>+     inkscape:object-paths=&quot;true&quot;<br>+     inkscape:snap-nodes=&quot;true&quot;<br>+     inkscape:object-nodes=&quot;false&quot;<br>
+     inkscape:snap-bbox=&quot;true&quot;<br>+     inkscape:snap-global=&quot;false&quot;<br>+     showguides=&quot;true&quot;<br>+     inkscape:guide-bbox=&quot;true&quot;<br>+     inkscape:window-width=&quot;1440&quot;<br>
+     inkscape:window-height=&quot;829&quot;<br>+     inkscape:window-x=&quot;0&quot;<br>+     inkscape:window-y=&quot;25&quot;&gt;<br>+    &lt;sodipodi:guide<br>+       orientation=&quot;0,1&quot;<br>+       position=&quot;27.021581,50.002551&quot;<br>
+       id=&quot;guide1605&quot; /&gt;<br>+    &lt;sodipodi:guide<br>+       orientation=&quot;0,1&quot;<br>+       position=&quot;27.021581,6.0609153&quot;<br>+       id=&quot;guide1607&quot; /&gt;<br>+  &lt;/sodipodi:namedview&gt;<br>
+  &lt;metadata<br>+     id=&quot;metadata800&quot;&gt;<br>+    &lt;rdf:RDF&gt;<br>+      &lt;cc:Work<br>+         rdf:about=&quot;&quot;&gt;<br>+        &lt;dc:format&gt;image/svg+xml&lt;/dc:format&gt;<br>+        &lt;dc:type<br>
+           rdf:resource=&quot;<a href="http://purl.org/dc/dcmitype/StillImage">http://purl.org/dc/dcmitype/StillImage</a>&quot; /&gt;<br>+        &lt;dc:title&gt;&lt;/dc:title&gt;<br>+      &lt;/cc:Work&gt;<br>+    &lt;/rdf:RDF&gt;<br>
+  &lt;/metadata&gt;<br>+  &lt;g<br>+     inkscape:label=&quot;Capa 1&quot;<br>+     inkscape:groupmode=&quot;layer&quot;<br>+     id=&quot;layer1&quot;&gt;<br>+    &lt;path<br>+       sodipodi:type=&quot;arc&quot;<br>+       style=&quot;fill:none;stroke:#ffffff&quot;<br>
+       id=&quot;path12&quot;<br>+       sodipodi:cx=&quot;-32.640553&quot;<br>+       sodipodi:cy=&quot;30.440666&quot;<br>+       sodipodi:rx=&quot;8.901969&quot;<br>+       sodipodi:ry=&quot;11.301082&quot;<br>+       d=&quot;m -23.738584,30.440666 a 8.901969,11.301082 0 1 1 -17.803937,0 8.901969,11.301082 0 1 1 17.803937,0 z&quot;<br>
+       transform=&quot;matrix(1.2765958,0,0,1.0558659,19.192898,-13.127946)&quot; /&gt;<br>+    &lt;path<br>+       style=&quot;fill:none;stroke:#ffffff;stroke-width:1.44962609;stroke-opacity:1&quot;<br>+       d=&quot;m 30.145644,37.823484 c -0.583589,6.659344 -6.7511,11.52268 -13.775517,10.862567 C 9.3457054,48.02594 4.1243814,42.092348 4.7079694,35.433004 5.2915594,28.773661 20.67887,20.597949 14.885997,24.011638 -12.777062,40.313232 24.43362,62.068174 30.145644,37.823484 z&quot;<br>
+       id=&quot;path1405-0&quot;<br>+       sodipodi:nodetypes=&quot;csssc&quot; /&gt;<br>+    &lt;rect<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50547338;stroke-opacity:1&quot;<br>
+       id=&quot;rect1438-8&quot;<br>+       width=&quot;2.916333&quot;<br>+       height=&quot;21.188446&quot;<br>+       x=&quot;18.332197&quot;<br>+       y=&quot;13.76814&quot;<br>+       ry=&quot;1.3939767&quot; /&gt;<br>
+    &lt;rect<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.41987956;stroke-opacity:1&quot;<br>+       id=&quot;rect1438-1-87&quot;<br>+       width=&quot;2.8716421&quot;<br>+       height=&quot;19.140917&quot;<br>
+       x=&quot;-35.091366&quot;<br>+       y=&quot;-38.207035&quot;<br>+       ry=&quot;1.259271&quot;<br>+       transform=&quot;matrix(0,-1,-1,0,0,0)&quot; /&gt;<br>+    &lt;rect<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.21988189;stroke-opacity:1&quot;<br>
+       id=&quot;rect1438-0-4&quot;<br>+       width=&quot;2.5733202&quot;<br>+       height=&quot;15.766372&quot;<br>+       x=&quot;-5.4068875&quot;<br>+       y=&quot;-65.997124&quot;<br>+       ry=&quot;1.0372615&quot;<br>
+       transform=&quot;matrix(-0.55477829,0.83199823,-0.68762037,-0.72607041,0,0)&quot; /&gt;<br>+    &lt;rect<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.98759735;stroke-opacity:1&quot;<br>
+       id=&quot;rect1438-0-1-8&quot;<br>+       width=&quot;2.0588&quot;<br>+       height=&quot;12.916228&quot;<br>+       x=&quot;6.7647386&quot;<br>+       y=&quot;-38.278324&quot;<br>+       ry=&quot;0.84975183&quot;<br>
+       transform=&quot;matrix(-0.21998034,0.97550431,-0.88967727,-0.45658992,0,0)&quot; /&gt;<br>+    &lt;rect<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.69142139;stroke-opacity:1&quot;<br>
+       id=&quot;rect1438-1-8-5&quot;<br>+       width=&quot;0.98179615&quot;<br>+       height=&quot;13.275604&quot;<br>+       x=&quot;-30.243309&quot;<br>+       y=&quot;-41.495876&quot;<br>+       ry=&quot;0.87339497&quot;<br>
+       transform=&quot;matrix(0,-1,-1,0,0,0)&quot; /&gt;<br>+    &lt;rect<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.64177793;stroke-opacity:1&quot;<br>+       id=&quot;rect1438-1-8-0-0&quot;<br>
+       width=&quot;0.97070193&quot;<br>+       height=&quot;11.568416&quot;<br>+       x=&quot;50.822704&quot;<br>+       y=&quot;-8.6089849&quot;<br>+       ry=&quot;0.76108003&quot;<br>+       transform=&quot;matrix(0.89791652,0.44016579,0.56230073,-0.82693282,0,0)&quot; /&gt;<br>
+    &lt;rect<br>+       style=&quot;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.68172067;stroke-opacity:1&quot;<br>+       id=&quot;rect1438-0-1-7-7&quot;<br>+       width=&quot;1.6299056&quot;<br>+       height=&quot;7.7739253&quot;<br>
+       x=&quot;72.759727&quot;<br>+       y=&quot;35.364716&quot;<br>+       ry=&quot;0.51144254&quot;<br>+       transform=&quot;matrix(0.9888174,0.14913131,-0.60877492,0.79334299,0,0)&quot; /&gt;<br>+    &lt;path<br>+       sodipodi:type=&quot;arc&quot;<br>
+       style=&quot;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-opacity:1&quot;<br>+       id=&quot;path1603-2&quot;<br>+       sodipodi:cx=&quot;76.392784&quot;<br>+       sodipodi:cy=&quot;18.634508&quot;<br>
+       sodipodi:rx=&quot;3.2829957&quot;<br>+       sodipodi:ry=&quot;3.0304577&quot;<br>+       d=&quot;m 79.67578,18.634508 a 3.2829957,3.0304577 0 1 1 -6.565992,0 3.2829957,3.0304577 0 1 1 6.565992,0 z&quot;<br>+       transform=&quot;matrix(1.5397454,0,0,1.4719643,-97.932275,-17.750188)&quot; /&gt;<br>
+  &lt;/g&gt;<br>+&lt;/svg&gt;<br>diff -u -r -N sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/__init__.py sugar-0.88.1/extensions/cpsection/accessibility/__init__.py<br>--- sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/__init__.py    1969-12-31 21:00:00.000000000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/accessibility/__init__.py    2010-06-02 15:00:27.328970000 -0300<br>@@ -0,0 +1,25 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>
+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>
+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>+<br>+from gettext import gettext as _<br>+<br>+CLASS = &#39;accessibility&#39;<br>+ICON = &#39;module-accessibility&#39;<br>
+TITLE = _(&#39;Accessibility&#39;)<br>+<br>diff -u -r -N sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.am sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am<br>--- sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.am    1969-12-31 21:00:00.000000000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am    2010-06-02 15:00:27.329800000 -0300<br>@@ -0,0 +1,6 @@<br>+sugardir = $(pkgdatadir)/extensions/cpsection/accessibility<br>+<br>+sugar_PYTHON =         \<br>
+    __init__.py    \<br>+    model.py    \<br>+    view.py        <br>diff -u -r -N sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.in sugar-0.88.1/extensions/cpsection/accessibility/Makefile.in<br>
--- sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.in    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/Makefile.in    2010-06-02 15:00:27.306799000 -0300<br>
@@ -0,0 +1,423 @@<br>+# Makefile.in generated by automake 1.11 from Makefile.am.<br>+# @configure_input@<br>+<br>+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,<br>+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,<br>
+# Inc.<br>+# This Makefile.in is free software; the Free Software Foundation<br>+# gives unlimited permission to copy and/or distribute it,<br>+# with or without modifications, as long as this notice is preserved.<br>+<br>
+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without<br>+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A<br>+# PARTICULAR PURPOSE.<br>
+<br>+@SET_MAKE@<br>+VPATH = @srcdir@<br>+pkgdatadir = $(datadir)/@PACKAGE@<br>+pkgincludedir = $(includedir)/@PACKAGE@<br>+pkglibdir = $(libdir)/@PACKAGE@<br>+pkglibexecdir = $(libexecdir)/@PACKAGE@<br>+am__cd = CDPATH=&quot;$${ZSH_VERSION+.}$(PATH_SEPARATOR)&quot; &amp;&amp; cd<br>
+install_sh_DATA = $(install_sh) -c -m 644<br>+install_sh_PROGRAM = $(install_sh) -c<br>+install_sh_SCRIPT = $(install_sh) -c<br>+INSTALL_HEADER = $(INSTALL_DATA)<br>+transform = $(program_transform_name)<br>+NORMAL_INSTALL = :<br>
+PRE_INSTALL = :<br>+POST_INSTALL = :<br>+NORMAL_UNINSTALL = :<br>+PRE_UNINSTALL = :<br>+POST_UNINSTALL = :<br>+subdir = extensions/cpsection/accessibility<br>+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \<br>
+    $(sugar_PYTHON)<br>+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4<br>+am__aclocal_m4_deps = $(top_srcdir)/<a href="http://configure.ac">configure.ac</a><br>+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \<br>
+    $(ACLOCAL_M4)<br>+mkinstalldirs = $(install_sh) -d<br>+CONFIG_CLEAN_FILES =<br>+CONFIG_CLEAN_VPATH_FILES =<br>+SOURCES =<br>+DIST_SOURCES =<br>+am__vpath_adj_setup = srcdirstrip=`echo &quot;$(srcdir)&quot; | sed &#39;s|.|.|g&#39;`;<br>
+am__vpath_adj = case $$p in \<br>+    $(srcdir)/*) f=`echo &quot;$$p&quot; | sed &quot;s|^$$srcdirstrip/||&quot;`;; \<br>+    *) f=$$p;; \<br>+  esac;<br>+am__strip_dir = f=`echo $$p | sed -e &#39;s|^.*/||&#39;`;<br>+am__install_max = 40<br>
+am__nobase_strip_setup = \<br>+  srcdirstrip=`echo &quot;$(srcdir)&quot; | sed &#39;s/[].[^$$\\*|]/\\\\&amp;/g&#39;`<br>+am__nobase_strip = \<br>+  for p in $$list; do echo &quot;$$p&quot;; done | sed -e &quot;s|$$srcdirstrip/||&quot;<br>
+am__nobase_list = $(am__nobase_strip_setup); \<br>+  for p in $$list; do echo &quot;$$p $$p&quot;; done | \<br>+  sed &quot;s| $$srcdirstrip/| |;&quot;&#39; / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,&#39; | \<br>+  $(AWK) &#39;BEGIN { files[&quot;.&quot;] = &quot;&quot; } { files[$$2] = files[$$2] &quot; &quot; $$1; \<br>
+    if (++n[$$2] == $(am__install_max)) \<br>+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = &quot;&quot; } } \<br>+    END { for (dir in files) print dir, files[dir] }&#39;<br>+am__base_list = \<br>+  sed &#39;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g&#39; | \<br>
+  sed &#39;$$!N;$$!N;$$!N;$$!N;s/\n/ /g&#39;<br>+am__installdirs = &quot;$(DESTDIR)$(sugardir)&quot;<br>+py_compile = $(top_srcdir)/py-compile<br>+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)<br>+ACLOCAL = @ACLOCAL@<br>
+ALL_LINGUAS = @ALL_LINGUAS@<br>+AMTAR = @AMTAR@<br>+AUTOCONF = @AUTOCONF@<br>+AUTOHEADER = @AUTOHEADER@<br>+AUTOMAKE = @AUTOMAKE@<br>+AWK = @AWK@<br>+CATALOGS = @CATALOGS@<br>+CATOBJEXT = @CATOBJEXT@<br>+CC = @CC@<br>+CCDEPMODE = @CCDEPMODE@<br>
+CFLAGS = @CFLAGS@<br>+CPP = @CPP@<br>+CPPFLAGS = @CPPFLAGS@<br>+CYGPATH_W = @CYGPATH_W@<br>+DATADIRNAME = @DATADIRNAME@<br>+DEFS = @DEFS@<br>+DEPDIR = @DEPDIR@<br>+ECHO_C = @ECHO_C@<br>+ECHO_N = @ECHO_N@<br>+ECHO_T = @ECHO_T@<br>
+EGREP = @EGREP@<br>+EXEEXT = @EXEEXT@<br>+GCONFTOOL = @GCONFTOOL@<br>+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@<br>+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@<br>+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@<br>
+GMOFILES = @GMOFILES@<br>+GMSGFMT = @GMSGFMT@<br>+GREP = @GREP@<br>+INSTALL = @INSTALL@<br>+INSTALL_DATA = @INSTALL_DATA@<br>+INSTALL_PROGRAM = @INSTALL_PROGRAM@<br>+INSTALL_SCRIPT = @INSTALL_SCRIPT@<br>+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@<br>
+INSTOBJEXT = @INSTOBJEXT@<br>+INTLLIBS = @INTLLIBS@<br>+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@<br>+INTLTOOL_MERGE = @INTLTOOL_MERGE@<br>+INTLTOOL_PERL = @INTLTOOL_PERL@<br>+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@<br>+LDFLAGS = @LDFLAGS@<br>
+LIBOBJS = @LIBOBJS@<br>+LIBS = @LIBS@<br>+LTLIBOBJS = @LTLIBOBJS@<br>+MAINT = @MAINT@<br>+MAKEINFO = @MAKEINFO@<br>+MKDIR_P = @MKDIR_P@<br>+MKINSTALLDIRS = @MKINSTALLDIRS@<br>+MSGFMT = @MSGFMT@<br>+MSGFMT_OPTS = @MSGFMT_OPTS@<br>
+MSGMERGE = @MSGMERGE@<br>+OBJEXT = @OBJEXT@<br>+PACKAGE = @PACKAGE@<br>+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@<br>+PACKAGE_NAME = @PACKAGE_NAME@<br>+PACKAGE_STRING = @PACKAGE_STRING@<br>+PACKAGE_TARNAME = @PACKAGE_TARNAME@<br>
+PACKAGE_VERSION = @PACKAGE_VERSION@<br>+PATH_SEPARATOR = @PATH_SEPARATOR@<br>+PKG_CONFIG = @PKG_CONFIG@<br>+POFILES = @POFILES@<br>+POSUB = @POSUB@<br>+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@<br>+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@<br>
+PYTHON = @PYTHON@<br>+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@<br>+PYTHON_PLATFORM = @PYTHON_PLATFORM@<br>+PYTHON_PREFIX = @PYTHON_PREFIX@<br>+PYTHON_VERSION = @PYTHON_VERSION@<br>+SET_MAKE = @SET_MAKE@<br>+SHELL = @SHELL@<br>
+SHELL_CFLAGS = @SHELL_CFLAGS@<br>+SHELL_LIBS = @SHELL_LIBS@<br>+STRIP = @STRIP@<br>+SUCROSE_VERSION = @SUCROSE_VERSION@<br>+USE_NLS = @USE_NLS@<br>+VERSION = @VERSION@<br>+XGETTEXT = @XGETTEXT@<br>+abs_builddir = @abs_builddir@<br>
+abs_srcdir = @abs_srcdir@<br>+abs_top_builddir = @abs_top_builddir@<br>+abs_top_srcdir = @abs_top_srcdir@<br>+ac_ct_CC = @ac_ct_CC@<br>+am__include = @am__include@<br>+am__leading_dot = @am__leading_dot@<br>+am__quote = @am__quote@<br>
+am__tar = @am__tar@<br>+am__untar = @am__untar@<br>+bindir = @bindir@<br>+build_alias = @build_alias@<br>+builddir = @builddir@<br>+datadir = @datadir@<br>+datarootdir = @datarootdir@<br>+docdir = @docdir@<br>+dvidir = @dvidir@<br>
+exec_prefix = @exec_prefix@<br>+host_alias = @host_alias@<br>+htmldir = @htmldir@<br>+includedir = @includedir@<br>+infodir = @infodir@<br>+install_sh = @install_sh@<br>+libdir = @libdir@<br>+libexecdir = @libexecdir@<br>
+localedir = @localedir@<br>+localstatedir = @localstatedir@<br>+mandir = @mandir@<br>+mkdir_p = @mkdir_p@<br>+oldincludedir = @oldincludedir@<br>+pdfdir = @pdfdir@<br>+pkgpyexecdir = @pkgpyexecdir@<br>+pkgpythondir = @pkgpythondir@<br>
+prefix = @prefix@<br>+program_transform_name = @program_transform_name@<br>+psdir = @psdir@<br>+pyexecdir = @pyexecdir@<br>+pythondir = @pythondir@<br>+sbindir = @sbindir@<br>+sharedstatedir = @sharedstatedir@<br>+srcdir = @srcdir@<br>
+sysconfdir = @sysconfdir@<br>+target_alias = @target_alias@<br>+top_build_prefix = @top_build_prefix@<br>+top_builddir = @top_builddir@<br>+top_srcdir = @top_srcdir@<br>+sugardir = $(pkgdatadir)/extensions/cpsection/accessibility<br>
+sugar_PYTHON = \<br>+    __init__.py    \<br>+    model.py    \<br>+    view.py        <br>+<br>+all: all-am<br>+<br>+.SUFFIXES:<br>+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)<br>
+    @for dep in $?; do \<br>+      case &#39;$(am__configure_deps)&#39; in \<br>+        *$$dep*) \<br>+          ( cd $(top_builddir) &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \<br>+            &amp;&amp; { if test -f $@; then exit 0; else break; fi; }; \<br>
+          exit 1;; \<br>+      esac; \<br>+    done; \<br>+    echo &#39; cd $(top_srcdir) &amp;&amp; $(AUTOMAKE) --foreign extensions/cpsection/accessibility/Makefile&#39;; \<br>+    $(am__cd) $(top_srcdir) &amp;&amp; \<br>
+      $(AUTOMAKE) --foreign extensions/cpsection/accessibility/Makefile<br>+.PRECIOUS: Makefile<br>+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status<br>+    @case &#39;$?&#39; in \<br>+      *config.status*) \<br>
+        cd $(top_builddir) &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \<br>+      *) \<br>+        echo &#39; cd $(top_builddir) &amp;&amp; $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)&#39;; \<br>+        cd $(top_builddir) &amp;&amp; $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \<br>
+    esac;<br>+<br>+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)<br>+    cd $(top_builddir) &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) am--refresh<br>+<br>+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)<br>
+    cd $(top_builddir) &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) am--refresh<br>+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)<br>+    cd $(top_builddir) &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) am--refresh<br>+$(am__aclocal_m4_deps):<br>
+install-sugarPYTHON: $(sugar_PYTHON)<br>+    @$(NORMAL_INSTALL)<br>+    test -z &quot;$(sugardir)&quot; || $(MKDIR_P) &quot;$(DESTDIR)$(sugardir)&quot;<br>+    @list=&#39;$(sugar_PYTHON)&#39;; dlist=; list2=; test -n &quot;$(sugardir)&quot; || list=; \<br>
+    for p in $$list; do \<br>+      if test -f &quot;$$p&quot;; then b=; else b=&quot;$(srcdir)/&quot;; fi; \<br>+      if test -f $$b$$p; then \<br>+        $(am__strip_dir) \<br>+        dlist=&quot;$$dlist $$f&quot;; \<br>
+        list2=&quot;$$list2 $$b$$p&quot;; \<br>+      else :; fi; \<br>+    done; \<br>+    for file in $$list2; do echo $$file; done | $(am__base_list) | \<br>+    while read files; do \<br>+      echo &quot; $(INSTALL_DATA) $$files &#39;$(DESTDIR)$(sugardir)&#39;&quot;; \<br>
+      $(INSTALL_DATA) $$files &quot;$(DESTDIR)$(sugardir)&quot; || exit $$?; \<br>+    done || exit $$?; \<br>+    if test -n &quot;$$dlist&quot;; then \<br>+      if test -z &quot;$(DESTDIR)&quot;; then \<br>+        PYTHON=$(PYTHON) $(py_compile) --basedir &quot;$(sugardir)&quot; $$dlist; \<br>
+      else \<br>+        PYTHON=$(PYTHON) $(py_compile) --destdir &quot;$(DESTDIR)&quot; --basedir &quot;$(sugardir)&quot; $$dlist; \<br>+      fi; \<br>+    else :; fi<br>+<br>+uninstall-sugarPYTHON:<br>+    @$(NORMAL_UNINSTALL)<br>
+    @list=&#39;$(sugar_PYTHON)&#39;; test -n &quot;$(sugardir)&quot; || list=; \<br>+    files=`for p in $$list; do echo $$p; done | sed -e &#39;s|^.*/||&#39;`; \<br>+    test -n &quot;$$files&quot; || exit 0; \<br>+    filesc=`echo &quot;$$files&quot; | sed &#39;s|$$|c|&#39;`; \<br>
+    fileso=`echo &quot;$$files&quot; | sed &#39;s|$$|o|&#39;`; \<br>+    echo &quot; ( cd &#39;$(DESTDIR)$(sugardir)&#39; &amp;&amp; rm -f&quot; $$files &quot;)&quot;; \<br>+    cd &quot;$(DESTDIR)$(sugardir)&quot; &amp;&amp; rm -f $$files || exit $$?; \<br>
+    echo &quot; ( cd &#39;$(DESTDIR)$(sugardir)&#39; &amp;&amp; rm -f&quot; $$filesc &quot;)&quot;; \<br>+    cd &quot;$(DESTDIR)$(sugardir)&quot; &amp;&amp; rm -f $$filesc || exit $$?; \<br>+    echo &quot; ( cd &#39;$(DESTDIR)$(sugardir)&#39; &amp;&amp; rm -f&quot; $$fileso &quot;)&quot;; \<br>
+    cd &quot;$(DESTDIR)$(sugardir)&quot; &amp;&amp; rm -f $$fileso<br>+tags: TAGS<br>+TAGS:<br>+<br>+ctags: CTAGS<br>+CTAGS:<br>+<br>+<br>+distdir: $(DISTFILES)<br>+    @srcdirstrip=`echo &quot;$(srcdir)&quot; | sed &#39;s/[].[^$$\\*]/\\\\&amp;/g&#39;`; \<br>
+    topsrcdirstrip=`echo &quot;$(top_srcdir)&quot; | sed &#39;s/[].[^$$\\*]/\\\\&amp;/g&#39;`; \<br>+    list=&#39;$(DISTFILES)&#39;; \<br>+      dist_files=`for file in $$list; do echo $$file; done | \<br>+      sed -e &quot;s|^$$srcdirstrip/||;t&quot; \<br>
+          -e &quot;s|^$$topsrcdirstrip/|$(top_builddir)/|;t&quot;`; \<br>+    case $$dist_files in \<br>+      */*) $(MKDIR_P) `echo &quot;$$dist_files&quot; | \<br>+               sed &#39;/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,&#39; | \<br>
+               sort -u` ;; \<br>+    esac; \<br>+    for file in $$dist_files; do \<br>+      if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \<br>+      if test -d $$d/$$file; then \<br>+        dir=`echo &quot;/$$file&quot; | sed -e &#39;s,/[^/]*$$,,&#39;`; \<br>
+        if test -d &quot;$(distdir)/$$file&quot;; then \<br>+          find &quot;$(distdir)/$$file&quot; -type d ! -perm -700 -exec chmod u+rwx {} \;; \<br>+        fi; \<br>+        if test -d $(srcdir)/$$file &amp;&amp; test $$d != $(srcdir); then \<br>
+          cp -fpR $(srcdir)/$$file &quot;$(distdir)$$dir&quot; || exit 1; \<br>+          find &quot;$(distdir)/$$file&quot; -type d ! -perm -700 -exec chmod u+rwx {} \;; \<br>+        fi; \<br>+        cp -fpR $$d/$$file &quot;$(distdir)$$dir&quot; || exit 1; \<br>
+      else \<br>+        test -f &quot;$(distdir)/$$file&quot; \<br>+        || cp -p $$d/$$file &quot;$(distdir)/$$file&quot; \<br>+        || exit 1; \<br>+      fi; \<br>+    done<br>+check-am: all-am<br>+check: check-am<br>
+all-am: Makefile<br>+installdirs:<br>+    for dir in &quot;$(DESTDIR)$(sugardir)&quot;; do \<br>+      test -z &quot;$$dir&quot; || $(MKDIR_P) &quot;$$dir&quot;; \<br>+    done<br>+install: install-am<br>+install-exec: install-exec-am<br>
+install-data: install-data-am<br>+uninstall: uninstall-am<br>+<br>+install-am: all-am<br>+    @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am<br>+<br>+installcheck: installcheck-am<br>+install-strip:<br>+    $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=&quot;$(INSTALL_STRIP_PROGRAM)&quot; \<br>
+      install_sh_PROGRAM=&quot;$(INSTALL_STRIP_PROGRAM)&quot; INSTALL_STRIP_FLAG=-s \<br>+      `test -z &#39;$(STRIP)&#39; || \<br>+        echo &quot;INSTALL_PROGRAM_ENV=STRIPPROG=&#39;$(STRIP)&#39;&quot;` install<br>+mostlyclean-generic:<br>
+<br>+clean-generic:<br>+<br>+distclean-generic:<br>+    -test -z &quot;$(CONFIG_CLEAN_FILES)&quot; || rm -f $(CONFIG_CLEAN_FILES)<br>+    -test . = &quot;$(srcdir)&quot; || test -z &quot;$(CONFIG_CLEAN_VPATH_FILES)&quot; || rm -f $(CONFIG_CLEAN_VPATH_FILES)<br>
+<br>+maintainer-clean-generic:<br>+    @echo &quot;This command is intended for maintainers to use&quot;<br>+    @echo &quot;it deletes files that may require special tools to rebuild.&quot;<br>+clean: clean-am<br>+<br>+clean-am: clean-generic mostlyclean-am<br>
+<br>+distclean: distclean-am<br>+    -rm -f Makefile<br>+distclean-am: clean-am distclean-generic<br>+<br>+dvi: dvi-am<br>+<br>+dvi-am:<br>+<br>+html: html-am<br>+<br>+html-am:<br>+<br>+info: info-am<br>+<br>+info-am:<br>
+<br>+install-data-am: install-sugarPYTHON<br>+<br>+install-dvi: install-dvi-am<br>+<br>+install-dvi-am:<br>+<br>+install-exec-am:<br>+<br>+install-html: install-html-am<br>+<br>+install-html-am:<br>+<br>+install-info: install-info-am<br>
+<br>+install-info-am:<br>+<br>+install-man:<br>+<br>+install-pdf: install-pdf-am<br>+<br>+install-pdf-am:<br>+<br>+install-ps: install-ps-am<br>+<br>+install-ps-am:<br>+<br>+installcheck-am:<br>+<br>+maintainer-clean: maintainer-clean-am<br>
+    -rm -f Makefile<br>+maintainer-clean-am: distclean-am maintainer-clean-generic<br>+<br>+mostlyclean: mostlyclean-am<br>+<br>+mostlyclean-am: mostlyclean-generic<br>+<br>+pdf: pdf-am<br>+<br>+pdf-am:<br>+<br>+ps: ps-am<br>
+<br>+ps-am:<br>+<br>+uninstall-am: uninstall-sugarPYTHON<br>+<br>+.MAKE: install-am install-strip<br>+<br>+.PHONY: all all-am check check-am clean clean-generic distclean \<br>+    distclean-generic distdir dvi dvi-am html html-am info info-am \<br>
+    install install-am install-data install-data-am install-dvi \<br>+    install-dvi-am install-exec install-exec-am install-html \<br>+    install-html-am install-info install-info-am install-man \<br>+    install-pdf install-pdf-am install-ps install-ps-am \<br>
+    install-strip install-sugarPYTHON installcheck installcheck-am \<br>+    installdirs maintainer-clean maintainer-clean-generic \<br>+    mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \<br>+    uninstall-am uninstall-sugarPYTHON<br>
+<br>+<br>+# Tell versions [3.59,3.63) of GNU make to not export all variables.<br>+# Otherwise a system limit (for SysV at least) may be exceeded.<br>+.NOEXPORT:<br>diff -u -r -N sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/model.py sugar-0.88.1/extensions/cpsection/accessibility/model.py<br>
--- sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/model.py    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/model.py    2010-06-03 11:12:50.057315000 -0300<br>
@@ -0,0 +1,55 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>
+<br>+import subprocess<br>+import gconf<br>+<br>+from gettext import gettext as _<br>+from jarabe.model import accessibility<br>+<br>+keyboard = accessibility.Keyboard()<br>+<br>+KEYWORDS = [&#39;mouse_keys&#39;, &#39;sticky_keys&#39;, &#39;bounce_keys&#39;]<br>
+<br>+def get_mouse_keys():<br>+    return keyboard.get_mouse_keys()<br>+<br>+def set_mouse_keys(activar):<br>+    keyboard.set_mouse_keys(activar)<br>+<br>+def print_mouse_keys():<br>+    print str(get_mouse_keys())<br>+<br>
+def get_sticky_keys():    <br>+    return keyboard.get_sticky_keys()<br>+<br>+def set_sticky_keys(activar):<br>+    keyboard.set_sticky_keys(activar)<br>+<br>+def print_sticky_keys():<br>+    print str(get_sticky_keys())<br>
+<br>+def get_bounce_keys():<br>+    return keyboard.get_bounce_keys()<br>+<br>+def set_bounce_keys(activar):<br>+    keyboard.set_bounce_keys(activar)<br>+<br>+def print_bounce_keys():<br>+    print str(get_bounce_keys())<br>
diff -u -r -N sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/view.py sugar-0.88.1/extensions/cpsection/accessibility/view.py<br>--- sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/view.py    1969-12-31 21:00:00.000000000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/accessibility/view.py    2010-06-02 15:00:27.316801000 -0300<br>@@ -0,0 +1,114 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>
+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>
+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>+<br>+<br>+import gtk<br>+from gettext import gettext as _<br>+<br>+from sugar.graphics import style<br>
+<br>+from jarabe import config<br>+from jarabe.controlpanel.sectionview import SectionView<br>+from jarabe.controlpanel.inlinealert import InlineAlert<br>+<br>+class accessibility(SectionView):<br>+    def __init__(self, model, alerts=None):<br>
+        SectionView.__init__(self)<br>+<br>+        self._model = model<br>+        self.set_border_width(style.DEFAULT_SPACING * 2)<br>+        self.set_spacing(style.DEFAULT_SPACING)<br>+        group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)<br>
+     <br>+        separator_pm = gtk.HSeparator()<br>+        self.pack_start(separator_pm, expand=False)<br>+        separator_pm.show()<br>+<br>+        label_pm_teclado = gtk.Label(_(&#39;Keyboard&#39;))<br>+        label_pm_teclado.set_alignment(0, 0)<br>
+        self.pack_start(label_pm_teclado, expand=False)<br>+        label_pm_teclado.show()<br>+<br>+        self.box_pm = gtk.VBox()<br>+        self.box_pm.set_border_width(style.DEFAULT_SPACING * 2)<br>+        self.box_pm.set_spacing(style.DEFAULT_SPACING)       <br>
+<br>+        self._view_mouse_keys()<br>+        self._view_sticky_keys()<br>+        self._view_bounce_keys()<br>+<br>+        self.pack_start(self.box_pm, expand=False)<br>+        self.box_pm.show()<br>+    <br>+    def _set_mouse_keys(self, widget):<br>
+        state = widget.get_active()<br>+        self._model.set_mouse_keys(state)<br>+<br>+    def _set_sticky_keys(self, widget):<br>+        state = widget.get_active()<br>+        self._model.set_sticky_keys(state)<br>
+<br>+    def _set_bounce_keys(self, widget):<br>+        state = widget.get_active()<br>+        self._model.set_bounce_keys(state)<br>+<br>+    def undo(self):<br>+        self._model.set_mouse_keys(self.init_state_mouse_keys)<br>
+        self._model.set_sticky_keys(self.init_state_sticky_keys)<br>+        self._model.set_bounce_keys(self.init_state_bounce_keys)<br>+<br>+    def _view_mouse_keys(self):<br>+        self.btn_mouse_keys = gtk.CheckButton(_(&#39;Mouse Keys&#39;))<br>
+        self._mouse_pm_change_handler = self.btn_mouse_keys.connect(&quot;toggled&quot;, self._set_mouse_keys)<br>+        self.init_state_mouse_keys = self._model.get_mouse_keys() <br>+        self.btn_mouse_keys.set_active(self.init_state_mouse_keys)            <br>
+        self.box_pm.pack_start(self.btn_mouse_keys, True, True, 2)<br>+        self.btn_mouse_keys.show()<br>+<br>+        lbl_mouse = gtk.Label(_(&#39;Move the mouse pointer with keyboard number.&#39;))<br>+        lbl_mouse.set_alignment(0, 0)<br>
+        self.box_pm.pack_start(lbl_mouse, True, True, 2)<br>+        lbl_mouse.show()<br>+<br>+    def _view_sticky_keys(self):<br>+        self.btn_sticky_keys = gtk.CheckButton(_(&#39;Sticky Keys&#39;))<br>+        self._sticky_pm_change_handler = self.btn_sticky_keys.connect(&quot;toggled&quot;, self._set_sticky_keys)<br>
+        self.init_state_sticky_keys = self._model.get_sticky_keys()<br>+        self.btn_sticky_keys.set_active(self.init_state_sticky_keys)<br>+        self.box_pm.pack_start(self.btn_sticky_keys, True, True, 2)<br>+        self.btn_sticky_keys.show()<br>
+<br>+        lbl_sticky = gtk.Label(_(&#39;Instead of having to press two keys at once (such as CTRL + Q), you can press one key at a time.&#39;))<br>+        lbl_sticky.set_line_wrap(True)<br>+        lbl_sticky.set_alignment(0, 0)<br>
+        self.box_pm.pack_start(lbl_sticky, True, True, 2)<br>+        lbl_sticky.show()<br>+<br>+    def _view_bounce_keys(self):<br>+        self.btn_bounce_keys = gtk.CheckButton(_(&#39;Bounce Keys&#39;))<br>+        self._bounce_pm_change_handler = self.btn_bounce_keys.connect(&quot;toggled&quot;, self._set_bounce_keys)<br>
+        self.init_state_bounce_keys = self._model.get_bounce_keys()<br>+        self.btn_bounce_keys.set_active(self.init_state_bounce_keys)<br>+        self.box_pm.pack_start(self.btn_bounce_keys, True, True, 2)<br>+        self.btn_bounce_keys.show()<br>
+<br>+        lbl_bounce = gtk.Label(_(&#39;Ignore rapid, repeated keypresses of the same key.&#39;))<br>+        lbl_bounce.set_alignment(0, 0)<br>+        self.box_pm.pack_start(lbl_bounce, True, True, 2)<br>+        lbl_bounce.show()<br>
diff -u -r -N sugar-0.88.1.original.con.parches/extensions/cpsection/Makefile.am sugar-0.88.1/extensions/cpsection/Makefile.am<br>--- sugar-0.88.1.original.con.parches/extensions/cpsection/Makefile.am    2010-06-21 11:39:19.903055000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/Makefile.am    2010-06-21 13:17:52.794055895 -0300<br>@@ -1,6 +1,7 @@<br> SUBDIRS = \<br>     aboutme \<br>     aboutcomputer \<br>+    accessibility \<br>     datetime \<br>     frame \<br>
     journalmanagement \<br>diff -u -r -N sugar-0.88.1.original.con.parches/po/es.po sugar-0.88.1/po/es.po<br>--- sugar-0.88.1.original.con.parches/po/es.po    2010-06-21 11:38:52.234179000 -0300<br>+++ sugar-0.88.1/po/es.po    2010-06-21 12:14:22.363180560 -0300<br>
@@ -1313,6 +1313,33 @@<br> &quot;Para aplicar la restauración del Diario, se requiere reiniciar. \n\n&quot;<br> &quot;Se restaurará el respado realizado para este equipo &quot;<br> <br>+#: ../extensions/cpsection/accessibility/__init__.py:24<br>
+msgid &quot;Accessibility&quot;<br>+msgstr &quot;Accesibilidad&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:77<br>+msgid &quot;Mouse Keys&quot;<br>+msgstr &quot;Teclas del ratón&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:84<br>
+msgid &quot;Move the mouse pointer with keyboard number.&quot;<br>+msgstr &quot;Mover el puntero del ratón con un teclado numérico o con las teclas de juego.&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:90<br>
+msgid &quot;Sticky Keys&quot;<br>+msgstr &quot;Teclas pegajosas&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:97<br>+msgid &quot;Instead of having to press two keys at once (such as CTRL + Q), you can press one key at a time.&quot;<br>
+msgstr &quot;En lugar de tener que pulsar dos teclas a la vez (por ejemplo, CTRL + Q), permite pulsar una tecla a la vez.&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:104<br>+msgid &quot;Bounce Keys&quot;<br>
+msgstr &quot;Teclas de rebote&quot;<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:111<br>+msgid &quot;Ignore rapid, repeated keypresses of the same key.&quot;<br>+msgstr &quot;Ignora la presión rápida y repetida de una tecla.&quot;<br>
 <br> #~ msgid &quot;Cannot obtain data needed for registration.&quot;<br> #~ msgstr &quot;No se puede obtener datos necesarios para el registro&quot;<br>diff -u -r -N sugar-0.88.1.original.con.parches/src/jarabe/model/accessibility.py sugar-0.88.1/src/jarabe/model/accessibility.py<br>
--- sugar-0.88.1.original.con.parches/src/jarabe/model/accessibility.py    1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/src/jarabe/model/accessibility.py    2010-06-03 11:12:48.819190000 -0300<br>@@ -0,0 +1,76 @@<br>
+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias &lt;<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>&gt;<br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program.  If not, see &lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.<br>
+<br>+import subprocess<br>+import gconf<br>+<br>+from gettext import gettext as _<br>+<br>+class Keyboard:<br>+<br>+    def get_mouse_keys(self):<br>+        client = gconf.client_get_default()<br>+        return client.get_bool(&quot;/desktop/gnome/accessibility/keyboard/mousekeys_enable&quot;)<br>
+<br>+    def set_mouse_keys(self, activar):<br>+        client = gconf.client_get_default()<br>+        client.set_bool(&quot;/desktop/gnome/accessibility/keyboard/mousekeys_enable&quot;, activar)<br>+        self.run_config_keyboard()<br>
+<br>+    def get_sticky_keys(self):    <br>+        client = gconf.client_get_default()<br>+        return client.get_bool(&quot;/desktop/gnome/accessibility/keyboard/stickykeys_enable&quot;)<br>+<br>+    def set_sticky_keys(self, activar):<br>
+        client = gconf.client_get_default()<br>+        client.set_bool(&quot;/desktop/gnome/accessibility/keyboard/stickykeys_enable&quot;, activar)<br>+        self.run_config_keyboard()<br>+<br>+    def get_bounce_keys(self):<br>
+        client = gconf.client_get_default()<br>+        return client.get_bool(&quot;/desktop/gnome/accessibility/keyboard/bouncekeys_enable&quot;)<br>+<br>+    def set_bounce_keys(self, activar):<br>+        client = gconf.client_get_default()<br>
+        client.set_bool(&quot;/desktop/gnome/accessibility/keyboard/bouncekeys_enable&quot;, activar)<br>+        self.run_config_keyboard()<br>+<br>+    def run_config_keyboard(self):<br>+        cmd = [&#39;ax&#39;]<br>
+        if self.get_sticky_keys():<br>+            cmd.append(&#39;+stickykeys&#39;)<br>+        else:<br>+            cmd.append(&#39;-stickykeys&#39;)<br>+        if self.get_bounce_keys():<br>+            cmd.append(&#39;+bouncekeys&#39;)<br>
+        else:<br>+            cmd.append(&#39;-bouncekeys&#39;)<br>+        if self.get_mouse_keys():<br>+            cmd += [&#39;+mousekeys&#39;, &#39;mousemaxspeed&#39;, &#39;3000&#39;, &#39;mousetimetomax&#39;, &#39;1000&#39;, &#39;-timeout&#39;, &#39;-repeatkeys&#39;]<br>
+        else:<br>+            cmd += [&#39;-mousekeys&#39;, &#39;mousemaxspeed&#39;, &#39;3000&#39;, &#39;mousetimetomax&#39;, &#39;1000&#39;, &#39;+timeout&#39;, &#39;+repeatkeys&#39;]<br>+        subprocess.call(cmd)<br>
+<br>+class AccessibilityManager:<br>+    def setup_accessibility(self):<br>+        client = gconf.client_get_default()<br>+        is_accessibility = client.dir_exists(&quot;/desktop/gnome/accessibility&quot;)<br>+        if is_accessibility:<br>
+            keyboard = Keyboard()<br>+        keyboard.run_config_keyboard()<br>diff -u -r -N sugar-0.88.1.original.con.parches/src/jarabe/model/Makefile.am sugar-0.88.1/src/jarabe/model/Makefile.am<br>--- sugar-0.88.1.original.con.parches/src/jarabe/model/Makefile.am    2010-06-21 11:38:48.943180000 -0300<br>
+++ sugar-0.88.1/src/jarabe/model/Makefile.am    2010-06-21 11:45:58.165181239 -0300<br>@@ -1,6 +1,7 @@<br> sugardir = $(pythondir)/jarabe/model<br> sugar_PYTHON =            \<br>     __init__.py        \<br>+    accessibility.py        \<br>
     buddy.py        \<br>     bundleregistry.py    \<br>     filetransfer.py        \<br><br>
<div class="im"><div class="im">----------------------------------------------<div class="im">Dependency: <a href="http://koji.fedoraproject.org/koji/taskinfo?taskID=2268468" target="_blank">http://koji.fedoraproject.org/koji/taskinfo?taskID=2268468</a></div>
<div class="im"><br></div></div></div><br><br><br>