Issue 314

17th November 2013 by KDE Commit-Digest Team


Marta Rybczynska
Alex Fikl
Giacomo Barazzetti

This Week...

In KDE Frameworks 5, multiple modules and applications ported, including the Locale Systemsettings module. Plasma Calendar now uses lazy loading. Multiple improvements in Kate plugins, especially in the Python ones. Kooka sees improvements in the Auto Select user interface and the scan previewer. New Calendar Applet in KDE Frameworks. In Krita, various improvements to the crop tool, improved and faster device mirroring. More improvements in the dialog for organizing collections in Amarok.


Commits 2245 by 165 developers
Open Bugs 21300
Open Wishes 15925
Bugs Opened 283 in the last 7 days
Bugs Closed 260 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Aaron J. Seigo
David Edmundson
Boudewijn Rempt
David Faure
Harald Sitter
Aleix Pol Gonzalez
Burkhard Lück
Martin Klapetek
Alex Turbov

Internationalization (i18n) Status

Language Percentage Complete
French (fr)
German (de)
Dutch (nl)
Estonian (et)
Galician (gl)
Italian (it)
Hungarian (hu)
Danish (da)
Catalan (ca)
Greek (el)

Bug Killers

Person Bugs Closed
Jekyll Wu
Christoph Feck
Chao Feng
Andrea Iacovitti
Alex Fiestas
Thomas Lübking
Boudewijn Rempt
Gilles Caulier
Joris Steyn
Ralf Habacker

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] []    


[] []    



KDE Base

[] [] [] [] []


[] [] []   


[] []    




[] [] []   []

Networking Tools

  [] []   

User Interface





[] []    


  []    []

There are 74 selections this week

Bug Fixes

Development Tools

Joris Steyn committed changes in [umbrello] umbrello/umlobject.cpp:

Fix crash loading XMI

Do assign parent when loading XMI. Commit 1bfad17 regressed the loading of (for
example) RefactoringAssistant.xmi. This fix makes loadFromXmi() only determine
a new parent when pasting (so, when not loading a file) like it was before.

Joris Steyn committed changes in [umbrello] /clipboard:

Fix copy/paste of folders

Copying folders in the tree view now works as described. Nested folders and
pasting to other instances of Umbrello work fine as well.

Ideally, when copying a folder, the XMI clip only contains the UML:Package node
and all child items are contained and loaded from Namespace.ownedElements. But,
loadFromXMI() does not support that. This fix makes a paste operation ignore
ownedElements completely and uses the "flat" list of all children to create the

Lasse Liehu committed changes in [lokalize] src/xlifftextedit.cpp:

Fix spell check for dictionaries without country code

FIXED-IN: 4.12

Joris Steyn committed changes in [umbrello] umbrello/clipboard/umlclipboard.cpp:

Fix selectedItem / currentItem mixup

Kevin Funk committed changes in [kdevelop/4.6] /:

Really fix all file templates

REVIEW: 113797


Joris Steyn committed changes in [umbrello] umbrello/clipboard/umlclipboard.cpp:
Chao Feng committed changes in [lokalize] src/filesearch/filesearchtab.cpp:

Check search result size before insert it.

Joris Steyn committed changes in [umbrello] /:

Restore drag&drop in the tree view

This change allows moving items in the tree view into other items. For example:
move diagrams and classes to folders, move operations to other classes, etc.

It's also possible to copy/paste items by holding ctrl while dragging.

Chao Feng committed changes in [lokalize] src/tm/tmview.cpp:

Fix Bug 243503 - Lokalize shows over 100% compatibility


Dennis Nienhüser committed changes in [marble/KDE/4.11] src/lib/BookmarkManager.cpp:

Fix regression introduced in 9e630ca

Parsing a broken/non-existing KML document returns a null
GeoDocument, so we need to recreate a bookmark document in order
to prevent crashes later on.

FIXED-IN: 4.11.5
(cherry picked from commit 7603ee9e386ed7a6e638bdf5cf7a450b04a752b4)

KDE Base

Thomas Lübking committed changes in [kde-workspace/KDE/4.11] kwin/effects/desktopgrid/desktopgrid.cpp:

clamp timeline time for highlighted desktop

FIXED-IN: 4.11.4

Dawit Alemayehu committed changes in [kdelibs/KDE/4.11] kio/bookmarks/

Fixed Mozilla bookmark import

REVIEW: 113785
FIXED-IN: 4.11.4

Simon Paul St James committed changes in [kate] /:

Replace the current selection (if any) in Visual Mode when pasting.

Martin Gräßlin committed changes in [kde-workspace] kwin/events.cpp:

[kwin] Do not filter out button release events for moving clients

The QWidget of the window decoration is otherwise still thinking that
the button is pressed and waits for a release. Thus the next click on
the decoration doesn't trigger the move mode.

Thomas Lübking committed changes in [kde-workspace/KDE/4.11] kwin/useractions.cpp:

fix shortcut available check

and bypass idempotent shortcut setting

FIXED-IN: 4.11.4
REVIEW: 113807

Dan Vratil committed changes in [kscreen] kcm/src/kcm_kscreen.cpp:

Correctly position output identifiers on rotated screens

FIXED-IN: 1.0.2

Alex Turbov committed changes in [kate] /kate/pate/src:

Do not add plugins' directory into PYTHONPATH to avoid module names
clash. Add 'katepate_' prefix to all .desktop files installed (also
to avoid possible names conflict). Partucular plugins' .desktop file
now contain Python module name instead of .py filename. Added support
for directory based plugins.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision e0f448a...


Allen Winter committed changes in [kdepim-runtime] agents/nepomukfeeder/findunindexeditemsjob.cpp:

Don't trigger a collection sync in the resource in the find unindexed items job.

This indirectly fixes the huge memory usage of the mixedmaildir resource,
because it was loading all the indexes for all the folders. Now it
only loads stuff on demand, as intended, when the user clicks on a folder.

Jan Kundrát committed changes in [trojita] /Gui:

Add UI hints and prevent saving a configuration which definitely is not going to work

v2: Check more fields -- thanks to Caspar for review.

REVIEW: 113886

Ingo Klöcker committed changes in [kdepim/KDE/4.11] /core:

Use dedicated slots for handling exactly the actions they should handle

Previously, all actions in the header context menu were handled by the
same method slotHeaderContextMenuTriggered(), even actions in submenus
which was clearly not intended. For example, selecting sorting
By Date/Time of Most Recent in Subtree in the Sorting submenu did also
enable the Sender column (because the action for showing/hiding the
Sender column had the same index set as user data as the action for
sorting By Date/Time of Most Recent in Subtree). Usage of dedicated
slots attached to the actions' signals instead of a single slot
attached to the menu's triggered() signal (which is also emitted for
actions in submenus) fixes this.

FIXED-IN: 4.11.4
REVIEW: 113901


Filipe Saraiva committed changes in [cantor] /backends/scilab:

Fixed Expression Error status in Scilab backend

Dmitry Kazakov committed changes in [calligra] /ui/tool:

Fix the cursor of all the non-brush tools

The cursor/outline switching code has been moved to KisToolFreehand,
which means that the settings will be applied to it only. The rest of
the tools will show its default cursor.

Boudewijn Rempt committed changes in [calligra] libs/pigment/KoColorSpaceRegistry.cpp:

If we cannot establish a profileName, do not create a colorspace

Dmitry Kazakov committed changes in [calligra] krita/image/brushengine/kis_paintop_settings.cpp:

Fix the outline of the tools that do not provide one

Tomas Mecir committed changes in [calligra] /:

Array values improvements

- Fix a crash when using array values.
- Make array values render correctly when used (ctrl+alt+enter)

Tomas Mecir committed changes in [calligra] sheets/dialogs/CSVDialog.cpp:


Mark Kretschmann committed changes in [amarok] /:

Fix sound glitch with "fade-out on pause" with GStreamer.

This is really just an ugly workaround for an issue with
(Phonon-)GStreamer. Essentially there is no way to flush the audio
buffers, so that implementing fade-out in combination with pausing
becomes a bit of a gamble.

Please test, as I cannot reproduce the sound glitch on my system!

FIXED-IN: 2.8.1

Harald Sitter committed changes in [phonon-gstreamer/4.7] gstreamer/CMakeLists.txt:

use backend_version define as option for automoc + debug API target

otherwise classes may get moced with the wrong interface version setup.
also imported API target debug from VLC to make it obvious in the cmake
output what API target will be used.

FIXED-IN: 4.7.1

Matěj Laitl committed changes in [amarok] /:

OrganizeCollectionDialog: hide complex options behind a button

In commit 7c780bf5, Ralf addressed bug 283361 by only showing the preview
table when the screen is large enough, which I believe went too far.

This is a bit different approach, the file scheme and other options are
hidden behind the Options button when the dialog is shown, making it much
more cleaner. The rationale is that the user usually sets up the options
once, not every time (and beginner users may be happy with the default
schema right away).



Jakob Gruber committed changes in [picmi] /:

New levels by Frank Uebbing

Diffs: 1, 2, 3, 4 Revision 21a31d7...


Development Tools

Joris Steyn committed changes in [umbrello] /:

Support nesting of class in class

GUI support was removed in 4.11.3 for no valid reason. This commit adds it back
and also works with drag/drop operations.

Additional fix: don't lose stereotype of package when nested in class.

Ralf Habacker committed changes in [umbrello] /widgets:

Add shape() reimplementation for drawing interface widgets.


Jaime Torres Amate committed changes in [kgeography] src/mapchooser.cpp:

filter the list of maps

using KListWidgetSearchLine it is just adding the class to the vertical
layout. thanks to Albert for telling me about this class.

FIXED-IN: 4.13
REVIEW: 113660

Filipe Saraiva committed changes in [cantor] /backends/scilab:

Save/Load variables working in Scilab backend

Jaime Torres Amate committed changes in [kgeography] /:

qgraphicsview handles the map and divisions

Using addPixmap to a QGraphicsView, just let the view handle the zoom,
moves.... Just handling all the view events to move the division

FIXED-IN: 4.12
REVIEW: 113425

Dennis Nienhüser committed changes in [marble] /lib/marble/cloudsync:


Jonathan Marten committed changes in [kooka] /:

Improve the Auto Select user interface and the scan previewer

Move the autoselect controls to an AutoSelectBar below the preview
image, only displayed when auto select is turned on. Move the
scanner background combo box, along with the previously hidden
dust size slider and a new margin slider to a new AutoSelectDialog
accessed from the bar.

Add an application action (in the scan toolbar by default) to
turn on auto selection and show the bar, along with an icon
for it (currently a bit crude).

Change the threshold and dust size sliders to a KScanSlider to
provide a spin box for the value. Fix KScanSlider (and other
similar controls) being able to take keyboard focus in this
dialogue and elsewhere.

Centralise the auto selection constants (apart from the config
keys which are only used by Previewer) in a new AutoSelectData
namespace and header file.

Also move the scan size display and file size indicator to the
application status bar, eliminating the waste of horizontal space
caused by it alongside the preview area.

Centralise all status bar handling and item display in a new class
StatusBarManager, instead of being split between Kooka and KookaView.
Gallery image and scan area each have their own status bar indicators,
consistently formatted.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision a3f4aa4...

KDE Base

Alex Fiestas committed changes in [libkscreen] /:

Add support for adding outputs

New intel driver adds virtual outputs, it starts with VIRUTAL1, when
it is activated when it creates VIRTUAL2 and so on.

This patch only adds "outputAdded", outputRemoved will come after.

Diffs: 1, 2, 3, 4, 5, 6 Revision f9be907...
Alex Turbov committed changes in [kate] /kate/pate:

REVIEW: 113720

* Search installed Python plugins via trader
* Introduce `Kate/PythonPlugin` service type and .desktop files for plugins
* Make plugins management look-n-feel of C++ plugins management
* Enabled plugins now are per session (stored under "Enabled Plugins" key of the pate
config group), so it is possible to have different plugins in different sessions
(just like C++ plugins).
* Introduce per session configuration storage for python plugins (in addition to
a "global" one)
* Provide little more details if pate engine failed to load

... a lot of internal refactorings also have been done.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 16 more) Revision 0f7eb94...
Frank Reininghaus committed changes in [kde-baseapps/KDE/4.12] dolphin/src/panels/places/placesitem.cpp:

Update the Places Panel entries when switching the language

Before this commit, we stored the translated "Places" in
.kde4/share/apps/kfileplaces/bookmarks.xml. This was not intentional -
it only happened because
PlacesItem::updateBookmarkForRole(const QByteArray& role) always stored
the translated text (returned by PlacesItem::text()) in the KBookmark.

This is be fixed by first checking if the text() is equal to the
translation of the text that is already stored in the KBookmark, and
not updating it in that case.

Note that we have to make sure that all "Places"-related use the same
context "KFile System Bookmarks" to make that work.

Thanks to Burkhard Lück and Albert Astals Cid for helping to fix this

FIXED-IN: 4.12.0
REVIEW: 113850

Sebastian Kügler committed changes in [kde-workspace] /generic/applets:

New Calendar Applet

Very basic applet that shows the calendar view. It uses the
org.kde.plasma.calendar import in plasma-framework.

Huzzah for code sharing!

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 94eff77...
Alex Fiestas committed changes in [bluedevil/bluez5] /kio/obexftp:

Implemented copy from device to local file system !

The only thing not working is setting the size of the file, but
the transfer itself works !

Diffs: 1, 2, 3, 4 Revision a6b35fd...
Aaron J. Seigo committed changes in [kde-workspace/KDE/4.11] /desktop/shell/scripting:

implement min/max sizes for panel length in the scripting

should be forward ported to plasma2's panel system

Alex Turbov committed changes in [kate] /kate/pate/src:

Add support for X-Python-Dependencies property of a kate/pate plugins'
.desktop file w/ a simple list of dependencies. "Simple" means this
list may contain only module/package names, cuz checker just tries to
import given name. If failed to load, the plugin gets disabled w/ appropriate
tooltip text in a plugins manager page.

Diffs: 1, 2, 3 Revision d0a61b9...
Sebastian Kügler committed changes in [kde-workspace] plasma/generic/applets/digital-clock/contents/ui/main.qml:

Delay calendar initialization in digital clock

We use a Loader now to encapsulate the whole Calendar shebang, saving
hugely in startup time. Also, as the calendar is really only loaded
on-demand, it won't use any memory if you don't use it. This also means
that we can prevent Akonadi from autostarting on login, at least as far
as the Calendar is concered.

Unrelated: CompactRepresentation is now called DigitalClock.qml, as
that's exactly what it is.

DIGEST: lazy loading of Plasma Calendar

R +8 -2 plasma/generic/applets/digital-clock/contents/ui/DigitalClock.qml [from: plasma/generic/applets/digital-clock/contents/ui/CompactRepresentation.qml - 093% similarity]

Alex Fiestas committed changes in [kscreen] /:

Add a generic cloning method that works for workstations and laptops

the new cloneOutputs method adds extra checks like making sure the
picked resolution is not bigger than the bigger allowed resolution.


Laurent Montel committed changes in [kdepim] /:

Big change to support synchronize resources.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 0a43821...
Laurent Montel committed changes in [kdepim] /:
Laurent Montel committed changes in [kdepim] kmail/configuredialog/configurecomposerpage.cpp:

continue to implement kiosk support


Klaas Freitag committed changes in [kraft] /:

Hide price fields depending on the attribute value 'HidePrices'.

This allows to create documents like notes of delivery which do
not display a price but only articles.

Diffs: 1, 2, 3, 4, 5 Revision 522f30d...
Dmitry Kazakov committed changes in [calligra] /:

Rewrite the device mirroring code

This patch does effectively three things:

1) Implements new mirroring algorithm, which
+ doesn't have rounding bugs of the previous one
+ works 4-5 times faster that the previous one
+ is the same for Horizontal and Vertical mirroring

2) Ports mirroring to the Strokes Framework (implements
new KisMirrorProcessingVisitor)

3) Fixes exact bounds cache reset in KisPaintDevice

Filipe Saraiva committed changes in [cantor] /backends/octave:

Added syntax highlighting for OctaveScriptExtension

Filipe Saraiva committed changes in [cantor] /backends/R:

Added syntax highlighting for RScriptExtension

Boudewijn Rempt committed changes in [calligra] /plugins/tools/tool_crop:

Various improvements to the crop tool

Patch by Michael Martini. Thanks!

In addition a new decoration type has been added called crosshair. In
summary two new checkboxes have been added. One that allows the user to
either limit the crop to the current image size or grow the crop selection
beyond the image boundaries. The second checkbox enables center growing /
symmetric resizing of the crop bounds.


Shantanu Tushar Jha committed changes in [plasma-mediacenter] /common:

Allow right click to show menus on the media items

Networking Tools

Vishesh Handa committed changes in [ktp-text-ui] lib/notify-filter.cpp:

Let the chat notifications timeout instead of being persistent

Reviewed-By: David Edmundson

Jan Grulich committed changes in [libmm-qt] /:

Implement creating of messages with basic arguments
Make getting of messages asynchronous


Alexander Schuch committed changes in [konquest] /:

Make "current standings" dialogue dockable.

The dialogue "current standings" is replaced by a dockable widget. This way
the player is able to see the standings all the time without the need to
open/close the dialogue at the beginning of each turn.

The dockable widget can also be made floating, so it can be used almost the
same as the modal dialogue before.

REVIEW: 113782

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 6e75b6b...


Albert Vaca Cintora committed changes in [kdeconnect-kde] /:

Plasmoid now displays the devices' battery

Dominik Haumann committed changes in [tikzkit] /:

add draw color and fill color functions


KDE Base

David Faure committed changes in [kdelibs/KDE/4.12] /config:

KConfigXT performance fix: no need to reparse when nothing to save

Somehow I forgot to commit this after review 103166 was approved
(for KDE/4.7, in 2011 !!!). Not sure why it was "marked as submitted",
I couldn't find this commit in any branches.

Closing a kmail composer window takes a very long time, because it's calling
writeConfig() on 7 kconfigskeleton objects (see KMKernel::slotSyncConfig), and
each of them calls KConfig::sync() [that's ok, it doesn't do anything if there's
no change to save, i.e. no dirty entry] followed by readConfig(), which calls
KConfig::reparseConfiguration(). That's a lot of config file parsing, for a
case where *nothing has changed*.

Looking into the history of the kconfigskeleton code didn't help finding out
why writeConfig calls readConfig, this was added by Waldo in the initial
code in 2003.

A real sync() with dirty entries triggers a reparsing (to merge changes on-disk
with changes in memory), so it makes sense to propagate the changes from KConfig
to the KConfigSkeleton member variables after a sync. But not when sync does
nothing at all.

Diffs: 1, 2, 3 Revision 7af829a...
Harsh Kumar committed changes in [kate] /:

Single characters made QChar instead of QString

Making single characters as QChar when they are added to a QString.
Adding single characters to a QString is faster if the characters are
QChars and not QStrings.

Same holds for arguments to QString::startsWith(), QString::endsWith(),
QString::remove() and QString::section()
Changes made to in these function calls as well

REVIEW: 113859

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision decc1d7...


David Faure committed changes in [kdepim-runtime/KDE/4.12] resources/mixedmaildir/retrieveitemsjob.cpp:

Save memory by never holding two copies of the items.

Instead we modify the items "in place" in the result list.

Dan Vratil committed changes in [akonadi/parttable-optimization] server/src/storage/dbupdater.cpp:

Use update-during-copy-and-just-swap-tables approach to update PartTable

We create a PartTable_new with the new layout, populate
PartTypeTable, then we copy all data from PartTable to
PartTable_new and we modify the data on flight using
'INSERT INTO ... SELECT FROM ...' and then we just
rename PartTable_new to PartTable and drop the old one

This speeds up migration on MySQL by 50% as it avoids
copying the entire table twice for ALTER TABLE and also
works on SQLite


Matěj Laitl committed changes in [amarok] /:

OrganizeCollectionDialog: further improve usability

* Remember dialog size
* Make the preview sortable
* Factor out common track paths of both preview and original to the
header to save horizontal space
* Prevent edits to the preview
* Don't repaint the table when you only toggle overwrite mode

Diffs: 1, 2, 3, 4 Revision c85c18a...

Networking Tools

Siddhartha Sahu committed changes in [ktp-text-ui] lib/chat-widget.cpp:

Small optimization for loading contact's icon

Reviewed-by: David Edmundson


KDE Base

Aleix Pol Gonzalez committed changes in [kdelibs/frameworks] /:

Move KIO to tier3

Removes staging/CMakeLists.txt as well.

REVIEW: 113820

Diffs: 1, 2, 3 Revision 43fba68...


Jonathan Riddell committed changes in [kde-runtime/frameworks] /icons:

Port icons kcm to KF 5

Switching icon themes and effects works but the changes do not
seem to be picked up at run-time.

Also the KColorButton widgets don't seem to work, you select a colour
but the widget doesn't show the selection.


Diffs: 1, 2, 3 Revision dbff985...
Martin Klapetek committed changes in [kde-runtime/frameworks] /:

Port KTimeZoned to Qt5/KF5

Originally I wanted to port KTimeZoned 1:1 to Qt5/KF5, but then I found
out that all the stuff KTZD was doing was added in QTimeZone, that
includes reading correct system files/env variables to obtain the
timezone and returning the proper system zone (KTZD did all this by
itself). It also doesn't need to parse the timezone files itself or
watch for their changes as QTimeZone objects are not stored.

So now it's just a thin module watching /etc/timezone (used by Debian-
based distros) and /etc/localtime (used by eg. Fedora or Suse, but also
by Debian in conjunction with /etc/timezone) for changes and if it
detects a change, it checks if the new timezone is really different and
if it is, it sends out a DBus signal "timeZoneChange". I changed it from
"configChanged" as I think "timeZoneChanged" makes way more sense.

Besides that it also watches the timezone database and emits signal
"timeZoneDatabaseUpdated" in case the database itself is changed.

REVIEW: 113260

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 53e8e43...
Sebastian Kügler committed changes in [kde-runtime/frameworks] /:

Port Locale systemsettings module

This is a basic port, it builds and seems to basically function.

There's still a lot of KDE4Support stuff in there, and the
calendarsystem is disabled for now, as that part of the API changed a
bit. One issue I've seen is that the Plasma clock doesn't seem to pick
up the time format change, will need further investigation, possibly a
fix in Plasma.

Still, one more step towards a working desktop. :)


DIGEST:Port Locale Systemsettings module

Diffs: 1, 2, 3, 4, 5 Revision 5368c74...
David Faure committed changes in [kdelibs/frameworks] /:

Remove <QtDBus/QtDBus> includes.

QtDBus/QtDBus includes QtCore/QtCore, i.e. all of QtCore.
We don't want that, it slows down compilation and muddies include dependencies.

This meant adding lots of includes from QtCore and QtDBus manually.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 69 more) Revision a9b121b...
Martin Gräßlin committed changes in [kde-runtime/frameworks] /:

Bring back drkonqi

Reporting is deactivated as that requires kxmlrpcclient. Also tests
are currently disabled, otherwise it works just fine and provides us
a good looking backtrace on crash.

Diffs: 1, 2, 3 Revision adbf524...


Casian Andrei committed changes in [phonon/five] /:

Begin refactoring Source, major clean up

Initial cleanup round for Source

Remove ifdef blocks about abstractmediastream

Horde of build fixes including fixes for AbstractMediaStream

Put prefix for SourcePrivate members

Virtual destructor for Source

Reorder Source copy constructor, remove friends

Device name from string to byte array

Rename (rhs) parameter to (other)

Reorganize includes for Source

Replace DiscType with Source::DeviceType

Add SourceControl skeleton code

Standardize header guards for Source related headers

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision 65543cb...


Kevin Funk committed changes in [kdewin] /:

Add Windows Driver Kit headers

On behalf of Patrick Spendrin, he probably forgot to upstream this patch
from portage.

Diffs: 1, 2, 3, 4, 5, 6 Revision 08d4204...