summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeemant Kulleen <seemant@gentoo.org>2003-12-01 16:24:33 +0000
committerSeemant Kulleen <seemant@gentoo.org>2003-12-01 16:24:33 +0000
commit20692d70efb462e4f500e4bb86a164e0bcc3da32 (patch)
treea72cb22efb6d4111c9a91ad66053225d30d28787 /media-sound
parentdebloat (diff)
downloadgentoo-2-20692d70efb462e4f500e4bb86a164e0bcc3da32.tar.gz
gentoo-2-20692d70efb462e4f500e4bb86a164e0bcc3da32.tar.bz2
gentoo-2-20692d70efb462e4f500e4bb86a164e0bcc3da32.zip
debloat
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/xmms/ChangeLog12
-rw-r--r--media-sound/xmms/Manifest4
-rw-r--r--media-sound/xmms/files/digest-xmms-1.2.82
-rw-r--r--media-sound/xmms/files/digest-xmms-1.2.8-r12
-rw-r--r--media-sound/xmms/files/digest-xmms-1.2.8-r22
-rw-r--r--media-sound/xmms/files/digest-xmms-1.2.8-r31
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-dtd.patch1977
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-jump.patch76
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-mpg123j.patch319
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-random.patch30
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-russian-charset-csa20.patch4366
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-russian-charset.patch2174
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-shadow.patch47
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-sid-songpos.patch267
-rw-r--r--media-sound/xmms/files/xmms-1.2.8-sigterm.patch31
-rw-r--r--media-sound/xmms/xmms-1.2.8-r1.ebuild141
-rw-r--r--media-sound/xmms/xmms-1.2.8-r2.ebuild160
-rw-r--r--media-sound/xmms/xmms-1.2.8-r3.ebuild27
-rw-r--r--media-sound/xmms/xmms-1.2.8.ebuild159
19 files changed, 29 insertions, 9768 deletions
diff --git a/media-sound/xmms/ChangeLog b/media-sound/xmms/ChangeLog
index bc36f732cb49..c4e75f03eedb 100644
--- a/media-sound/xmms/ChangeLog
+++ b/media-sound/xmms/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for media-sound/xmms
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/ChangeLog,v 1.77 2003/11/21 16:42:01 mholzer Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/ChangeLog,v 1.78 2003/12/01 16:24:26 seemant Exp $
+
+ 01 Dec 2003; Seemant Kulleen <seemant@gentoo.org> xmms-1.2.8-r1.ebuild,
+ xmms-1.2.8-r2.ebuild, xmms-1.2.8-r3.ebuild, xmms-1.2.8.ebuild,
+ files/xmms-1.2.8-dtd.patch, files/xmms-1.2.8-jump.patch,
+ files/xmms-1.2.8-mpg123j.patch, files/xmms-1.2.8-random.patch,
+ files/xmms-1.2.8-russian-charset-csa20.patch,
+ files/xmms-1.2.8-russian-charset.patch, files/xmms-1.2.8-shadow.patch,
+ files/xmms-1.2.8-sid-songpos.patch, files/xmms-1.2.8-sigterm.patch:
+ removed older 1.2.8 ebuilds and moved the patches into a patch tarball on the
+ mirrors instead of bloating up files/
21 Nov 2003; Martin Holzer <mholzer@gentoo.org> xmms-1.2.8-r3.ebuild,
files/xmms-1.2.8-shadow.patch:
diff --git a/media-sound/xmms/Manifest b/media-sound/xmms/Manifest
index 70ab9f81cc69..c38d98cd49b4 100644
--- a/media-sound/xmms/Manifest
+++ b/media-sound/xmms/Manifest
@@ -1,8 +1,8 @@
MD5 67719e9afde51fc778b8882f48bebfc2 xmms-1.2.7-r23.ebuild 5233
MD5 1f4fb5fbbf7591ead0b68071825b2de3 xmms-1.2.7-r25.ebuild 5652
MD5 5013cb7f0010b3daa8efd1548cbe83b4 xmms-1.2.7-r20.ebuild 4923
-MD5 386450631eae9d67dc0f9c68045330fe ChangeLog 14739
-MD5 876b56e00cc2cdbc597951b4e8f8588c xmms-1.2.8-r3.ebuild 4789
+MD5 bdb2a69ceb759457ae32a3e2ec86146d ChangeLog 15314
+MD5 3940bbf8f22e49e4d93de8a532a6c4c9 xmms-1.2.8-r3.ebuild 4789
MD5 a1eaeb2ae801daeb712c90c060e922dc metadata.xml 158
MD5 e7e0c91780b115aaad1a1ed534bf7ae8 files/xmms-ipv6-20020408-mmx.patch 9210
MD5 7ab233f0953be4760d3e5b784cc0bba4 files/xmms-fhs-skinsdir.patch 372
diff --git a/media-sound/xmms/files/digest-xmms-1.2.8 b/media-sound/xmms/files/digest-xmms-1.2.8
deleted file mode 100644
index 737c2f506433..000000000000
--- a/media-sound/xmms/files/digest-xmms-1.2.8
+++ /dev/null
@@ -1,2 +0,0 @@
-MD5 d523735b59232f0eedd45dc2b7a4f5ad xmms-1.2.8.tar.bz2 2322808
-MD5 a68edd5b03d650c366f09852a8414ee2 gentoo_ice.zip 68458
diff --git a/media-sound/xmms/files/digest-xmms-1.2.8-r1 b/media-sound/xmms/files/digest-xmms-1.2.8-r1
deleted file mode 100644
index 737c2f506433..000000000000
--- a/media-sound/xmms/files/digest-xmms-1.2.8-r1
+++ /dev/null
@@ -1,2 +0,0 @@
-MD5 d523735b59232f0eedd45dc2b7a4f5ad xmms-1.2.8.tar.bz2 2322808
-MD5 a68edd5b03d650c366f09852a8414ee2 gentoo_ice.zip 68458
diff --git a/media-sound/xmms/files/digest-xmms-1.2.8-r2 b/media-sound/xmms/files/digest-xmms-1.2.8-r2
deleted file mode 100644
index 2255674abb75..000000000000
--- a/media-sound/xmms/files/digest-xmms-1.2.8-r2
+++ /dev/null
@@ -1,2 +0,0 @@
-MD5 d523735b59232f0eedd45dc2b7a4f5ad xmms-1.2.8.tar.bz2 2322808
-MD5 41eababfa8bad11e9e34e467cdfb86be gentoo_ice-xmms-0.2.tar.bz2 51839
diff --git a/media-sound/xmms/files/digest-xmms-1.2.8-r3 b/media-sound/xmms/files/digest-xmms-1.2.8-r3
index 2255674abb75..cbf94b0044f2 100644
--- a/media-sound/xmms/files/digest-xmms-1.2.8-r3
+++ b/media-sound/xmms/files/digest-xmms-1.2.8-r3
@@ -1,2 +1,3 @@
MD5 d523735b59232f0eedd45dc2b7a4f5ad xmms-1.2.8.tar.bz2 2322808
MD5 41eababfa8bad11e9e34e467cdfb86be gentoo_ice-xmms-0.2.tar.bz2 51839
+MD5 be8880efc3e880d58d3f1f99002f2208 xmms-1.2.8-r3-gentoo-patches.tar.bz2 89769
diff --git a/media-sound/xmms/files/xmms-1.2.8-dtd.patch b/media-sound/xmms/files/xmms-1.2.8-dtd.patch
deleted file mode 100644
index a41528d3c43e..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-dtd.patch
+++ /dev/null
@@ -1,1977 +0,0 @@
-diff -ruN dtd-old/AUTHORS dtd-new/AUTHORS
---- dtd-old/AUTHORS 2003-01-07 15:50:08.000000000 +0100
-+++ dtd-new/AUTHORS 2003-09-08 13:46:19.000000000 +0200
-@@ -42,6 +42,7 @@
- Chris Wilson
- Dave Yearke
- Stephan K. Zitz
-+ Johan Walles (Dynamic Taste Detection)
-
- Default skin: Leonard "Blayde" Tan
- Robin Sylvestre (Equalizer and Playlist)
-diff -ruN dtd-old/README dtd-new/README
---- dtd-old/README 2003-09-04 23:00:18.000000000 +0200
-+++ dtd-new/README 2003-09-08 13:46:19.000000000 +0200
-@@ -57,6 +57,7 @@
- 5. Features
- 5.1 Supported File formats
- 5.2 Supported Features
-+ 5.2.1 Dynamic Taste Detection
- 6. Obtaining XMMS
- 7. Misc
- 7.1 Shoutcast support
-@@ -1121,6 +1122,34 @@
- Compiles and works on other UNIX's
- Proxy authentication support
-
-+5.2.1 Dynamic Taste Detection
-+-----------------------------
-+Basically, Dynamic Taste Detection collects statistics on how you
-+listen to songs, and then adapts the shuffle play and randomize
-+playlist functions to better follow your taste. It takes care of
-+itself entirely, so that's all you really need to know about it ;-).
-+
-+For those of you who are curious, here is how it works. Two kinds of
-+statistics are collected:
-+
-+- What songs you don't like
-+- What songs you like to hear next to each other
-+
-+The first one is easy. When you skip a song, it looses a point.
-+Songs with low scores are placed at the end of the playlist.
-+
-+What songs you want to hear next to each other are a bit more
-+intricate. Let's say you have two songs, A and B. A (or any song
-+above it in the playlist) is playing. You move song B to the position
-+right after A. A finishes playing, and B starts. This is interpreted
-+as "you want to hear A and B next to each other".
-+
-+In this example, A and B will then *tend* to (i.e. not always) end up
-+next to each other in the playlist (though not necessarily in that
-+order).
-+
-+To explicitly change your opinion of a song, or disconnect one song
-+from another, you can do so from the right-click menu in the playlist.
-
- 6. Obtaining XMMS
- -------------------
-diff -ruN dtd-old/xmms/Makefile.am dtd-new/xmms/Makefile.am
---- dtd-old/xmms/Makefile.am 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/Makefile.am 2003-09-08 13:46:19.000000000 +0200
-@@ -34,6 +34,7 @@
- menurow.c menurow.h \
- hslider.c hslider.h \
- monostereo.c monostereo.h \
-+dtd.c dtd.h \
- vis.c vis.h \
- svis.c svis.h \
- number.c number.h \
-diff -ruN dtd-old/xmms/dtd.c dtd-new/xmms/dtd.c
---- dtd-old/xmms/dtd.c 1970-01-01 01:00:00.000000000 +0100
-+++ dtd-new/xmms/dtd.c 2003-09-08 14:37:21.000000000 +0200
-@@ -0,0 +1,624 @@
-+/* XMMS - Cross-platform multimedia player
-+ * Copyright (C) 2001 Johan Walles, d92-jwa@nada.kth.se
-+ *
-+ * 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.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/* Hint: DTD = Dynamic Taste Detection */
-+
-+#include <assert.h>
-+
-+#include "xmms.h"
-+
-+static GList *dtd_recommendations_list;
-+
-+static DtdNextSong *dtd_find_next_song(DtdStartSong *start_song,
-+ const gchar *filename)
-+{
-+ GList *iterator;
-+
-+ for (iterator = start_song->next_song;
-+ iterator != NULL;
-+ iterator = g_list_next(iterator))
-+ {
-+ if (strcmp(((DtdNextSong *)(iterator->data))->filename,
-+ filename) == 0)
-+ {
-+ return (DtdNextSong *)(iterator->data);
-+ }
-+ }
-+
-+ return NULL;
-+}
-+
-+static DtdStartSong *dtd_find_start_song(const gchar *filename)
-+{
-+ GList *iterator;
-+
-+ if (filename == NULL)
-+ {
-+ return NULL;
-+ }
-+
-+ for (iterator = dtd_recommendations_list;
-+ iterator != NULL;
-+ iterator = g_list_next(iterator))
-+ {
-+ if (strcmp(((DtdStartSong *)(iterator->data))->filename,
-+ filename) == 0)
-+ {
-+ return (DtdStartSong *)(iterator->data);
-+ }
-+ }
-+
-+ return NULL;
-+}
-+
-+/*
-+ * Memorize that after playing the file named start, the user might
-+ * want to hear the file named follow.
-+ */
-+static void __dtd_recommend_next(int weight, const gchar *start, const gchar *follow)
-+{
-+ DtdStartSong *start_song;
-+ DtdNextSong *next_song;
-+
-+ /* Check if the start song already has recommendations. */
-+ if ((start_song = dtd_find_start_song(start)) ==
-+ NULL)
-+ {
-+ /* Nope, create a new recommendation start node */
-+ start_song = g_new(DtdStartSong, 1);
-+
-+ start_song->filename = g_strdup(start);
-+ start_song->next_song = NULL;
-+ start_song->score = 0;
-+
-+ /* Add the recommendation start node to the
-+ recommendation start node list. */
-+ dtd_recommendations_list =
-+ g_list_append(dtd_recommendations_list,
-+ start_song);
-+ }
-+
-+ /* Check if the next song is already recommended for this
-+ start song */
-+ if ((next_song = dtd_find_next_song(start_song,
-+ follow)) == NULL)
-+ {
-+ /* It's not. Create a recommendation next node */
-+ next_song = g_new(DtdNextSong, 1);
-+
-+ next_song->filename = g_strdup(follow);
-+
-+ next_song->weight = 0;
-+
-+ /* Add the new recommendation to the start node */
-+ start_song->next_song =
-+ g_list_append(start_song->next_song,
-+ next_song);
-+ }
-+
-+ next_song->weight += weight;
-+}
-+
-+/*
-+ * Memorize that after playing the file named start, the user might
-+ * want to hear the file named follow.
-+ */
-+void dtd_recommend_next(const gchar *start, const gchar *follow)
-+{
-+ /* Recommend symmetrically */
-+ __dtd_recommend_next(1, start, follow);
-+ __dtd_recommend_next(1, follow, start);
-+}
-+
-+void __dtd_dissociate(const gchar *file1, const gchar *file2)
-+{
-+ DtdStartSong *startSong;
-+ DtdNextSong *nextSong = NULL;
-+ GList *nextSongIterator;
-+
-+ // Find the start pointer for file1
-+ startSong = dtd_find_start_song(file1);
-+ if (startSong == NULL)
-+ {
-+ // No such recommendation exists
-+ return;
-+ }
-+
-+ // Find its next pointer for file2
-+ for (nextSongIterator = startSong->next_song;
-+ nextSongIterator != NULL;
-+ nextSongIterator = g_list_next(nextSongIterator))
-+ {
-+ nextSong = (DtdNextSong *)(nextSongIterator->data);
-+ if (strcmp(file2, nextSong->filename) == 0)
-+ {
-+ break;
-+ }
-+ }
-+ if (nextSong == NULL)
-+ {
-+ // No such recommendation exists
-+ return;
-+ }
-+
-+ // Remove the next pointer
-+ startSong->next_song =
-+ g_list_remove_link(startSong->next_song, nextSongIterator);
-+ g_free(nextSong->filename);
-+ g_free(nextSong);
-+ g_list_free_1(nextSongIterator);
-+}
-+
-+void dtd_dissociate(const gchar *file1, const gchar *file2)
-+{
-+ // The slave's chain is heavy in both ends, so let's set 'em
-+ // both free :-)
-+ __dtd_dissociate(file1, file2);
-+ __dtd_dissociate(file2, file1);
-+}
-+
-+/*
-+ * Modify a song's score.
-+ */
-+void dtd_set_score(const gchar *filename, gint score)
-+{
-+ DtdStartSong *start_song = dtd_find_start_song(filename);
-+
-+ if (start_song == NULL)
-+ {
-+ start_song = g_new(DtdStartSong, 1);
-+
-+ start_song->filename = g_strdup(filename);
-+ start_song->next_song = NULL;
-+ start_song->score = 0;
-+
-+ /* Add the new recommendation start node to the
-+ recommendation start node list. */
-+ dtd_recommendations_list =
-+ g_list_append(dtd_recommendations_list,
-+ start_song);
-+ }
-+
-+ start_song->score = score;
-+ /* Scores > 0 means "always put this song at the start of the
-+ list". Probably we don't want that.
-+ */
-+ if (start_song->score > 0)
-+ {
-+ start_song->score = 0;
-+ }
-+}
-+
-+void dtd_change_score(const gchar *filename, gint delta)
-+{
-+ DtdStartSong *start_song = dtd_find_start_song(filename);
-+
-+ if (start_song == NULL)
-+ {
-+ start_song = g_new(DtdStartSong, 1);
-+
-+ start_song->filename = g_strdup(filename);
-+ start_song->next_song = NULL;
-+ start_song->score = 0;
-+
-+ /* Add the new recommendation start node to the
-+ recommendation start node list. */
-+ dtd_recommendations_list =
-+ g_list_append(dtd_recommendations_list,
-+ start_song);
-+ }
-+
-+ /* Scores > 0 means "always put this song at the start of the
-+ list". Probably we don't want that.
-+ */
-+ start_song->score += delta;
-+ if (start_song->score > 0)
-+ {
-+ start_song->score = 0;
-+ }
-+}
-+
-+/*
-+ * Retrieve a song's score.
-+ */
-+gint dtd_get_score(const gchar *filename)
-+{
-+ DtdStartSong *start_song = dtd_find_start_song(filename);
-+
-+ if (start_song == NULL)
-+ {
-+ return 0;
-+ }
-+ else
-+ {
-+ return start_song->score;
-+ }
-+}
-+
-+const GList *dtd_get_recommendations(const gchar *start)
-+{
-+ DtdStartSong *dtdStartSong = dtd_find_start_song(start);
-+
-+ return dtdStartSong ? dtdStartSong->next_song : NULL;
-+}
-+
-+static void __dtd_set_score(gchar *filename, gint score)
-+{
-+ DtdStartSong *start_song = dtd_find_start_song(filename);
-+
-+ if (start_song == NULL)
-+ {
-+ start_song = g_new(DtdStartSong, 1);
-+
-+ start_song->filename = g_strdup(filename);
-+ start_song->next_song = NULL;
-+ start_song->score = 0;
-+
-+ /* Add the new recommendation start node to the
-+ recommendation start node list. */
-+ dtd_recommendations_list =
-+ g_list_append(dtd_recommendations_list,
-+ start_song);
-+ }
-+
-+ start_song->score = score;
-+}
-+
-+static guint dtd_sum_recommendations(DtdStartSong *start_song)
-+{
-+ GList *iterator;
-+ guint sum = 0;
-+
-+ assert(start_song != NULL);
-+
-+ for (iterator = start_song->next_song;
-+ iterator != NULL;
-+ iterator = g_list_next(iterator))
-+ {
-+ sum += ((DtdNextSong *)(iterator->data))->weight;
-+ }
-+
-+ assert(sum != 0);
-+
-+ return sum;
-+}
-+
-+static const gchar *dtd_get_nth_recommendation(DtdStartSong *start_song,
-+ guint n)
-+{
-+ GList *iterator;
-+ guint sum = 0;
-+
-+ assert(start_song != NULL);
-+
-+ if (n == 0)
-+ return NULL;
-+
-+ for (iterator = start_song->next_song;
-+ iterator != NULL;
-+ iterator = g_list_next(iterator))
-+ {
-+ sum += ((DtdNextSong *)(iterator->data))->weight;
-+
-+ if (sum >= n)
-+ return ((DtdNextSong *)(iterator->data))->filename;
-+ }
-+
-+ /* If we get here then the n passed to this function was too
-+ large. It can be no larger than the number calculated by
-+ dtd_sum_recommendations(). */
-+ assert(FALSE);
-+
-+ return NULL;
-+}
-+
-+/*
-+ Try to recommend a song to play after first_filename. NULL means
-+ that no recommendation is given (for whatever reason).
-+
-+ FIXME: This method should accept a list of songs *not* to choose
-+ between. If the user has asked for a recommendation and received an
-+ answer that is not in the current playlist, they must be able to try
-+ again.
-+*/
-+const gchar *dtd_get_recommendation(const gchar *first_filename)
-+{
-+ DtdStartSong *start_song;
-+ guint recommendation_total;
-+
-+ if (first_filename == NULL)
-+ {
-+ return NULL;
-+ }
-+
-+ if ((start_song = dtd_find_start_song(first_filename)) ==
-+ NULL)
-+ {
-+ /* There are no recommendations for first_filename */
-+ return NULL;
-+ }
-+
-+ if (start_song->next_song == NULL)
-+ {
-+ return NULL;
-+ }
-+
-+ recommendation_total = dtd_sum_recommendations(start_song);
-+
-+ return dtd_get_nth_recommendation(start_song,
-+ rand() % (recommendation_total + 1));
-+}
-+
-+static void dtd_clear(void)
-+{
-+ GList *start_iterator;
-+ GList *next_iterator;
-+
-+ if (dtd_recommendations_list == NULL)
-+ {
-+ return;
-+ }
-+
-+ /* Free all memory used by the recommendations */
-+ for (start_iterator = dtd_recommendations_list;
-+ start_iterator != NULL;
-+ start_iterator = g_list_next(start_iterator))
-+ {
-+ /* Free all file names in the next list */
-+ for (next_iterator = ((DtdStartSong *)(start_iterator->data))->next_song;
-+ next_iterator != NULL;
-+ next_iterator = g_list_next(next_iterator))
-+ {
-+ free(((DtdNextSong *)(next_iterator->data))->filename);
-+ ((DtdNextSong *)(next_iterator->data))->filename = NULL;
-+
-+ free(next_iterator->data);
-+ next_iterator->data = NULL;
-+ }
-+ /* Free the next list */
-+ g_list_free(((DtdStartSong *)(start_iterator->data))->next_song);
-+ ((DtdStartSong *)(start_iterator->data))->next_song = NULL;
-+
-+ /* Free the file name */
-+ free(((DtdStartSong *)(start_iterator->data))->filename);
-+ ((DtdStartSong *)(start_iterator->data))->filename = NULL;
-+
-+ /* Free the struct */
-+ free(start_iterator->data);
-+ start_iterator->data = NULL;
-+ }
-+ g_list_free(dtd_recommendations_list);
-+ dtd_recommendations_list = NULL;
-+}
-+
-+void dtd_init(void)
-+{
-+ gchar *dtd_data_file_name;
-+ FILE *dtd_data_file;
-+
-+ gchar start[950], follow[950];
-+ gchar line[999];
-+ int weight;
-+
-+ enum { NEXT, SCORES } section = NEXT;
-+
-+ gboolean failure = FALSE;
-+
-+ /* We have no recommendations to begin with */
-+ dtd_recommendations_list = NULL;
-+
-+ /* Make up a filename for the dtd data file */
-+ dtd_data_file_name = g_strconcat(g_get_home_dir(),
-+ "/.xmms/",
-+ DTD_DATA_FILE_NAME,
-+ NULL);
-+
-+ /* Open the dtd data file for input */
-+ dtd_data_file = fopen(dtd_data_file_name,
-+ "r");
-+ if (dtd_data_file == NULL)
-+ {
-+ return;
-+ }
-+
-+ /* Parse the dtd data file */
-+ start[0] = '\0';
-+ while (!feof(dtd_data_file))
-+ {
-+ if (fgets(line, 990, dtd_data_file) != NULL)
-+ {
-+ if (sscanf(line, "%d %940[^\n]\n", &weight, follow) == 2)
-+ {
-+ /* Found a line with both number and name */
-+
-+ switch (section)
-+ {
-+ case NEXT:
-+ if (start[0] != '\0')
-+ {
-+ if (weight < 0)
-+ {
-+ failure= TRUE;
-+ }
-+ else if (weight > 0)
-+ {
-+ __dtd_recommend_next(weight, start, follow);
-+ }
-+ }
-+ else
-+ {
-+ /* Parse error! */
-+ failure = TRUE;
-+ }
-+ break;
-+
-+ case SCORES:
-+ if (weight != 0)
-+ {
-+ __dtd_set_score(follow, weight);
-+ }
-+ break;
-+ }
-+
-+ if (failure) break;
-+ }
-+ else if (sscanf(line, "%940[^\n]\n", start) == 1)
-+ {
-+ if (strcmp(start, "scores") == 0)
-+ {
-+ /* The scores section starts here */
-+ section = SCORES;
-+ start[0] = '\0';
-+ }
-+ else
-+ {
-+ /* New start song read OK */
-+ section = NEXT;
-+ }
-+ }
-+ else
-+ {
-+ /* Parse error! */
-+ failure = TRUE;
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (failure)
-+ {
-+ /* Free all space occupied by the recommendations list
-+ in favour of remembering a broken list. */
-+ dtd_clear();
-+ }
-+
-+ fclose(dtd_data_file);
-+ dtd_data_file = NULL;
-+}
-+
-+void dtd_persist(void)
-+{
-+ gchar *dtd_data_file_name;
-+ FILE *dtd_data_file;
-+
-+ GList *start_iterator;
-+ GList *next_iterator;
-+
-+ gboolean failure = FALSE;
-+
-+ /* Are there any recommendations to store */
-+ if (dtd_recommendations_list == NULL)
-+ {
-+ /* Nope. */
-+ return;
-+ }
-+
-+ /* Make up a filename for the dtd data file */
-+ dtd_data_file_name = g_strconcat(g_get_home_dir(),
-+ "/.xmms/",
-+ DTD_DATA_FILE_NAME,
-+ NULL);
-+
-+ /* Open the dtd data file for output */
-+ dtd_data_file = fopen(dtd_data_file_name,
-+ "w");
-+ if (dtd_data_file == NULL)
-+ {
-+ /* FIXME: We fail silently. Should we output a
-+ * warning somehow? */
-+ return;
-+ }
-+
-+ /* Loop through all recommendation starts, storing their
-+ recommended followers */
-+ for (start_iterator = dtd_recommendations_list;
-+ start_iterator != NULL;
-+ start_iterator = g_list_next(start_iterator))
-+ {
-+ if (((DtdStartSong *)(start_iterator->data))->next_song == NULL)
-+ {
-+ /* Don't store songs with only a score (yet). */
-+ continue;
-+ }
-+
-+ if (failure ||
-+ (fprintf(dtd_data_file,
-+ "%s\n",
-+ ((DtdStartSong *)(start_iterator->data))->filename) == 0))
-+ {
-+ failure = TRUE;
-+ break;
-+ }
-+
-+ for (next_iterator = ((DtdStartSong *)(start_iterator->data))->next_song;
-+ next_iterator != NULL;
-+ next_iterator = g_list_next(next_iterator))
-+ {
-+ if (fprintf(dtd_data_file, "%d %s\n",
-+ ((DtdNextSong *)(next_iterator->data))->weight,
-+ ((DtdNextSong *)(next_iterator->data))->filename) == 0)
-+ {
-+ failure = TRUE;
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (!failure)
-+ {
-+ /* Output the "here starts the scoring section" marker. */
-+ if (fprintf(dtd_data_file, "scores\n") == 0)
-+ {
-+ failure = TRUE;
-+ }
-+
-+ /* Output all (non-zero) scores */
-+ for (start_iterator = dtd_recommendations_list;
-+ start_iterator != NULL;
-+ start_iterator = g_list_next(start_iterator))
-+ {
-+ if (((DtdStartSong *)(start_iterator->data))->score == 0)
-+ {
-+ /* Don't store songs with zero score. */
-+ continue;
-+ }
-+
-+ if (failure ||
-+ (fprintf(dtd_data_file,
-+ "%d %s\n",
-+ ((DtdStartSong *)(start_iterator->data))->score,
-+ ((DtdStartSong *)(start_iterator->data))->filename) == 0))
-+ {
-+ failure = TRUE;
-+ break;
-+ }
-+ }
-+ }
-+
-+ fclose(dtd_data_file);
-+ dtd_data_file = NULL;
-+
-+ if (failure)
-+ {
-+ /* If writing of the data file failed, attempt to
-+ remove it rather than leaving a broken data file
-+ behind. */
-+
-+ unlink(dtd_data_file_name);
-+ }
-+}
-diff -ruN dtd-old/xmms/dtd.h dtd-new/xmms/dtd.h
---- dtd-old/xmms/dtd.h 1970-01-01 01:00:00.000000000 +0100
-+++ dtd-new/xmms/dtd.h 2003-09-08 14:38:32.000000000 +0200
-@@ -0,0 +1,73 @@
-+/* XMMS - Cross-platform multimedia player
-+ * Copyright (C) 2001 Johan Walles, d92-jwa@nada.kth.se
-+ *
-+ * 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.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/* Hint: DTD = Dynamic Taste Detection */
-+
-+/* FIXME: Should lists prove to be too slow we could use balanced
-+ trees for the DtdStartSong collection. The DtdNextSong is scanned
-+ through however, so tree-ifying will do no good. */
-+
-+#ifndef DTD_H
-+#define DTD_H
-+
-+#define DTD_DATA_FILE_NAME "dtd-stats"
-+
-+typedef struct
-+{
-+ gchar *filename;
-+ guint weight;
-+}
-+DtdNextSong;
-+
-+typedef struct
-+{
-+ gchar *filename;
-+ gint score;
-+ GList *next_song;
-+}
-+DtdStartSong;
-+
-+void dtd_init(void);
-+void dtd_persist(void);
-+
-+// Tell DTD that after start, the user tends to want to hear follow
-+void dtd_recommend_next(const gchar *start,
-+ const gchar *follow);
-+
-+// Tell DTD to break the association between file1 and file2 (if one
-+// exists)
-+void dtd_dissociate(const gchar *file1,
-+ const gchar *file2);
-+
-+
-+// Let DTD recommend what to play after start. NULL = No
-+// recommendation = anything goes.
-+const gchar *dtd_get_recommendation(const gchar *start);
-+
-+// Change the absolute score for a file
-+void dtd_change_score(const gchar *filename, gint delta);
-+void dtd_set_score(const gchar *filename, gint score);
-+
-+// Get the score for a file. Unknown file = score 0.
-+gint dtd_get_score(const gchar *filename);
-+
-+// Get the list of recommendations for a given file. NULL = no
-+// recommendations for that file.
-+const GList *dtd_get_recommendations(const gchar *start);
-+
-+#endif
-diff -ruN dtd-old/xmms/main.c dtd-new/xmms/main.c
---- dtd-old/xmms/main.c 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/main.c 2003-09-08 13:49:16.000000000 +0200
-@@ -476,6 +476,8 @@
- }
- }
- xmms_cfg_read_string(cfgfile, "xmms", "generic_title_format", &cfg.gentitle_format);
-+
-+ xmms_cfg_read_boolean(cfgfile, "xmms", "dynamic_taste_detection", &cfg.dynamic_taste_detection);
-
- xmms_cfg_free(cfgfile);
- }
-@@ -674,6 +676,8 @@
- g_free(str);
- }
- xmms_cfg_write_string(cfgfile, "xmms", "generic_title_format", cfg.gentitle_format);
-+
-+ xmms_cfg_write_boolean(cfgfile, "xmms", "dynamic_taste_detection", cfg.dynamic_taste_detection);
-
- xmms_cfg_write_file(cfgfile, filename);
- xmms_cfg_free(cfgfile);
-@@ -903,6 +907,7 @@
- playlist_clear();
- cleanup_plugins();
- sm_cleanup();
-+ dtd_persist();
- gtk_exit(0);
- }
-
-@@ -3608,6 +3614,10 @@
- mainwin_timeout_tag = gtk_timeout_add(10, idle_func, NULL);
- playlist_start_get_info_thread();
-
-+
-+ /* Initialize dynamic taste detection */
-+ dtd_init();
-+
- enable_x11r5_session_management(argc, argv);
- sm_init(argc, argv, options.previous_session_id);
- gtk_main();
-diff -ruN dtd-old/xmms/main.h dtd-new/xmms/main.h
---- dtd-old/xmms/main.h 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/main.h 2003-09-08 13:51:48.000000000 +0200
-@@ -64,6 +64,7 @@
- gint pause_between_songs_time;
- gboolean pause_between_songs, show_wm_decorations;
- gint mouse_change;
-+ gboolean dynamic_taste_detection;
- gboolean playlist_transparent;
- gchar *gentitle_format;
-
-diff -ruN dtd-old/xmms/playlist.c dtd-new/xmms/playlist.c
---- dtd-old/xmms/playlist.c 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/playlist.c 2003-09-08 14:12:58.000000000 +0200
-@@ -23,6 +23,7 @@
- #include "charset.h"
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <assert.h>
-
- GList *playlist = NULL;
- GList *shuffle_list = NULL;
-@@ -653,6 +654,17 @@
-
- plist_pos_list = find_playlist_position_list();
-
-+ if ((plist_pos_list != NULL) &&
-+ (cfg.repeat || (g_list_next(plist_pos_list) != NULL)))
-+ {
-+ /*
-+ The user is skipping a song. We interpret this as
-+ meaning "I don't like this song".
-+ */
-+ dtd_change_score(((PlaylistEntry *)(plist_pos_list->data))->filename,
-+ -1);
-+ }
-+
- if (!cfg.repeat && !g_list_next(plist_pos_list))
- {
- PL_UNLOCK();
-@@ -725,7 +737,18 @@
-
- plist_pos_list = find_playlist_position_list();
- if (g_list_previous(plist_pos_list))
-- playlist_position = plist_pos_list->prev->data;
-+ {
-+ playlist_position =
-+ g_list_previous(plist_pos_list)->data;
-+
-+ /*
-+ The user has gone back to a song. We interpret that
-+ as meaning "I like this song so much that I want to
-+ hear it again".
-+ */
-+ dtd_change_score(playlist_position->filename,
-+ 1);
-+ }
- else if (cfg.repeat)
- {
- GList *node;
-@@ -740,7 +763,7 @@
- }
- PL_UNLOCK();
- playlist_check_pos_current();
--
-+
- if (restart_playing)
- playlist_play();
- else
-@@ -856,6 +879,7 @@
-
- playlist_position = node->data;
- PL_UNLOCK();
-+ ((PlaylistEntry *)playlist_position)->moved = FALSE;
- playlist_check_pos_current();
-
- if (restart_playing)
-@@ -875,12 +899,19 @@
-
- void playlist_eof_reached(void)
- {
-+ /*
-+ * This function is called whenever a song ends and the next
-+ * one should start playing.
-+ */
-+
- GList *plist_pos_list;
-+ GList *previous_plist_pos;
-
- input_stop();
-
- PL_LOCK();
- plist_pos_list = find_playlist_position_list();
-+ previous_plist_pos = plist_pos_list->data;
-
- if (cfg.no_playlist_advance)
- {
-@@ -912,6 +943,25 @@
- else
- playlist_position = plist_pos_list->next->data;
- PL_UNLOCK();
-+
-+ if (!cfg.shuffle && (((PlaylistEntry *)playlist_position)->moved))
-+ {
-+ /*
-+ * Song A has stopped playing. Song B will start
-+ * playing now. Song B had moved. Thus, we conclude
-+ * that the user wants to hear Song B after song A.
-+ * Therefore, Song B should be added to Song A's
-+ * next-song-preferences.
-+ *
-+ * Song A is previous_plist_pos. Song B is
-+ * playlist_position. */
-+
-+ dtd_recommend_next(((PlaylistEntry *)previous_plist_pos)->filename,
-+ ((PlaylistEntry *)playlist_position)->filename);
-+
-+ ((PlaylistEntry *)playlist_position)->moved = FALSE;
-+ }
-+
- playlist_check_pos_current();
- playlist_play();
- mainwin_set_info_text();
-@@ -1146,6 +1196,7 @@
- ext = strrchr(filename, '.');
- if (ext && !strcasecmp(ext, ".pls"))
- {
-+ /* It's a playlist, let's parse it. */
- int noe, i;
- char key[10];
-
-@@ -1283,6 +1334,11 @@
- char *ret;
- PlaylistEntry *entry;
- GList *node;
-+
-+ if (pos < 0)
-+ {
-+ return NULL;
-+ }
-
- PL_LOCK();
- if (!playlist)
-@@ -1290,6 +1346,11 @@
- PL_UNLOCK();
- return NULL;
- }
-+ if (pos >= __get_playlist_length())
-+ {
-+ PL_UNLOCK();
-+ return NULL;
-+ }
- node = g_list_nth(playlist, pos);
- if (!node)
- {
-@@ -1355,6 +1416,84 @@
- return title;
- }
-
-+int playlist_get_score(gint pos)
-+{
-+ PlaylistEntry *entry;
-+ GList *node;
-+ gint score;
-+
-+ PL_LOCK();
-+ if (!playlist)
-+ {
-+ PL_UNLOCK();
-+ return 0;
-+ }
-+ node = g_list_nth(playlist, pos);
-+ if (!node)
-+ {
-+ PL_UNLOCK();
-+ return 0;
-+ }
-+ entry = node->data;
-+ score = dtd_get_score(entry->filename);
-+ PL_UNLOCK();
-+
-+ return score;
-+}
-+
-+void playlist_set_score(gint pos, gint score)
-+{
-+ PlaylistEntry *entry;
-+ GList *node;
-+
-+ PL_LOCK();
-+ if (!playlist)
-+ {
-+ PL_UNLOCK();
-+ return;
-+ }
-+ node = g_list_nth(playlist, pos);
-+ if (!node)
-+ {
-+ PL_UNLOCK();
-+ return;
-+ }
-+ entry = node->data;
-+ dtd_set_score(entry->filename, score);
-+ PL_UNLOCK();
-+}
-+
-+const gchar* playlist_filename2songtitle(const gchar *filename)
-+{
-+ GList *iterator;
-+
-+ if (filename == NULL)
-+ {
-+ return NULL;
-+ }
-+
-+ // Scan loaded songs for filename
-+ PL_LOCK();
-+ for (iterator = get_playlist();
-+ iterator != NULL;
-+ iterator = g_list_next(iterator))
-+ {
-+ PlaylistEntry *currentEntry =
-+ (PlaylistEntry *)(iterator->data);
-+
-+ if (strcmp(currentEntry->filename, filename) == 0)
-+ {
-+ // FIXME: Race condition
-+ PL_UNLOCK();
-+ return currentEntry->title;
-+ }
-+ }
-+ PL_UNLOCK();
-+
-+ // Not found / don't know
-+ return NULL;
-+}
-+
- gint playlist_get_songtime(gint pos)
- {
- int retval = -1;
-@@ -1616,6 +1755,26 @@
- PL_UNLOCK();
- }
-
-+static guint playlist_filename_to_index(PlaylistEntry *playlist_entries[],
-+ guint n_entries,
-+ const gchar *filename)
-+{
-+ guint i;
-+
-+ for (i = 0; i < n_entries; i++)
-+ {
-+ if (strcmp(playlist_entries[i]->filename,
-+ filename) == 0)
-+ {
-+ return i;
-+ }
-+ }
-+
-+ return -1;
-+}
-+
-+/* This function is used by the qsort() call in
-+ smart_playlist_shuffle_list() (below). */
- void playlist_sort_selected_by_date(void)
- {
- PL_LOCK();
-@@ -1630,7 +1789,20 @@
- PL_UNLOCK();
- }
-
--static GList *playlist_shuffle_list(GList *list)
-+static int playlist_entry_score_comparator(const void *a,
-+ const void *b)
-+{
-+
-+ int score_a = dtd_get_score((*((PlaylistEntry **)a))->filename);
-+ int score_b = dtd_get_score((*((PlaylistEntry **)b))->filename);
-+
-+ /* We want high scores before low, so if score_a > score_b we
-+ want to return something negative. */
-+
-+ return score_b - score_a;
-+}
-+
-+static GList *smart_playlist_shuffle_list(GList *list)
- {
- /* Caller should hold playlist mutex */
- /*
-@@ -1639,43 +1811,213 @@
- * fuction is run.
- */
- int len = g_list_length(list);
-- int i, j;
-- GList *node, **ptrs;
-+ gint i;
-+ gint next_score_section = -1;
-+ GList *iterator;
-+ PlaylistEntry **ptrs;
-
-- if (!len)
-+ if (len == 0)
- return NULL;
-
-- ptrs = g_new(GList *, len);
-+ ptrs = g_new(PlaylistEntry *, len);
-
-- for (node = list, i = 0; i < len; node = g_list_next(node), i++)
-- ptrs[i] = node;
-+ /* Convert the list into an array of pointers */
-+ for (iterator = list, i = 0; i < len; iterator = g_list_next(iterator), i++)
-+ {
-+ ptrs[i] = (PlaylistEntry *)(iterator->data);
-+
-+ // Shuffling songs voids information about user listening preferences
-+ ptrs[i]->moved = FALSE;
-+ }
-+ g_list_free(list);
-+ list = NULL;
-+
-+ /* Sort the array by score */
-+ qsort(ptrs, len, sizeof(PlaylistEntry *), playlist_entry_score_comparator);
-+
-+ /* Shuffle the pointer array */
-+ for (i = 0; i < len; i++)
-+ {
-+ PlaylistEntry *swap_ptr;
-+ gint j;
-+
-+ const gchar *previous_filename;
-+ const gchar *new_filename;
-+
-+ if (i >= next_score_section)
-+ {
-+ /* We are in a new score section; find out
-+ where the next one starts */
-+ gint current_score =
-+ dtd_get_score(ptrs[i]->filename);
-+
-+ for (next_score_section = i;
-+ next_score_section < len;
-+ next_score_section++)
-+ {
-+ if (dtd_get_score(ptrs[next_score_section]->filename) !=
-+ current_score)
-+ {
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (i == 0)
-+ {
-+ previous_filename = NULL;
-+ }
-+ else
-+ {
-+ previous_filename = ptrs[i - 1]->filename;
-+ }
-+
-+ /* Find out from which index we should get the next song */
-+ do {
-+ if ((new_filename = dtd_get_recommendation(previous_filename)) !=
-+ NULL)
-+ {
-+ j = playlist_filename_to_index(&(ptrs[i]),
-+ len - i,
-+ new_filename);
-+ if (j != -1)
-+ j += i;
-+ }
-+ else
-+ {
-+ /* Only find new songs in our current
-+ score section */
-+ j = (rand() % (next_score_section - i)) + i;
-+
-+ assert(j < next_score_section);
-+ }
-+ } while (j == -1);
-+
-+ assert(j < len);
-+ assert(j >= i);
-+
-+ if (j < next_score_section)
-+ {
-+ /* Swap pointer #i and pointer #j */
-+ swap_ptr = ptrs[i];
-+ ptrs[i] = ptrs[j];
-+ ptrs[j] = swap_ptr;
-+ }
-+ else
-+ {
-+ /*
-+ We need to preserve the score section
-+ ordering, so we do it the slow way if i and
-+ j are in different scoring sections.
-+ */
-+ gint k;
-+ swap_ptr = ptrs[i];
-+ ptrs[i] = ptrs[j];
-+
-+ for (k = j; k >= (i + 2); k--)
-+ {
-+ ptrs[k] = ptrs[k - 1];
-+ }
-+
-+ ptrs[i + 1] = swap_ptr;
-+ }
-+ }
-+
-+ /* Create a new list from the pointer array */
-+ for (i = 0; i < len; i++)
-+ {
-+ list = g_list_append(list, ptrs[i]);
-+ }
-
-- j = random() % len;
-- list = ptrs[j];
-- ptrs[j]->next = NULL;
-- ptrs[j] = ptrs[0];
-+ g_free(ptrs);
-
-- for (i = 1; i < len; i++)
-- {
-- j = random() % (len - i);
-- list->prev = ptrs[i + j];
-- ptrs[i + j]->next = list;
-- list = ptrs[i + j];
-- ptrs[i + j] = ptrs[i];
-- }
-- list->prev = NULL;
-+ return list;
-+}
-+
-+static GList *old_playlist_shuffle_list(GList *list)
-+{
-+ /* Caller should hold playlist mutex */
-+ /*
-+ * Note that this doesn't make a copy of the original list.
-+ * The pointer to the original list is not valid after this
-+ * fuction is run.
-+ */
-+ int len = g_list_length(list);
-+ gint i;
-+ GList *iterator;
-+ PlaylistEntry **ptrs;
-+
-+ if (len == 0)
-+ return NULL;
-+
-+ ptrs = g_new(PlaylistEntry *, len);
-+
-+ /* Convert the list into an array of pointers */
-+ for (iterator = list, i = 0; i < len; iterator = g_list_next(iterator), i++)
-+ {
-+ ptrs[i] = (PlaylistEntry *)(iterator->data);
-+
-+ // Shuffling songs voids information about user listening preferences
-+ ptrs[i]->moved = FALSE;
-+ }
-+ g_list_free(list);
-+ list = NULL;
-+
-+ /* Shuffle the pointer array */
-+ for (i = 0; i < len; i++)
-+ {
-+ PlaylistEntry *swap_ptr;
-+ gint j;
-+
-+ /* Pick a random song among the ones that are left */
-+ j = (rand() % (len - i)) + i;
-+
-+ /* Swap pointer #i and pointer #j */
-+ swap_ptr = ptrs[i];
-+ ptrs[i] = ptrs[j];
-+ ptrs[j] = swap_ptr;
-+ }
-+
-+ /* Create a new list from the pointer array */
-+ for (i = 0; i < len; i++)
-+ {
-+ list = g_list_append(list, ptrs[i]);
-+ }
-
- g_free(ptrs);
-
- return list;
- }
-
-+static GList *playlist_shuffle_list(GList *list)
-+{
-+ if (cfg.dynamic_taste_detection)
-+ {
-+ return smart_playlist_shuffle_list(list);
-+ }
-+ else
-+ {
-+ return old_playlist_shuffle_list(list);
-+ }
-+}
-+
- void playlist_random(void)
- {
-+ GList *for_each;
-+
- PL_LOCK();
-
- playlist = playlist_shuffle_list(playlist);
-
-+ /* Remove all moved-marks from the playlist */
-+
-+ for (for_each = playlist;
-+ for_each != NULL;
-+ for_each = g_list_next(for_each))
-+ {
-+ ((PlaylistEntry *) for_each->data)->moved = FALSE;
-+ }
-+
- PL_UNLOCK();
- }
-
-@@ -1710,7 +2052,52 @@
- PL_UNLOCK();
- return num;
- }
--
-+
-+gint playlist_get_single_selection(void)
-+{
-+ // Returns the playlist position of the current selection. If
-+ // 0 or > 1 songs are selected, this method returns -1.
-+ GList *iterator;
-+ gint currentPos;
-+
-+ gint selectedPos = -1;
-+
-+ for (iterator = get_playlist(), currentPos = 0;
-+ iterator != NULL;
-+ iterator = g_list_next(iterator), currentPos++)
-+ {
-+ if (((PlaylistEntry *)(iterator->data))->selected)
-+ {
-+ if (selectedPos == -1)
-+ {
-+ // First selected song found
-+ selectedPos = currentPos;
-+ }
-+ else
-+ {
-+ // > 1 selected song found
-+ return -1;
-+ }
-+ }
-+ }
-+
-+ return selectedPos;
-+}
-+
-+gboolean playlist_is_selected(gint pos)
-+{
-+ GList *node;
-+ gboolean isSelected = 0;
-+
-+ PL_LOCK();
-+ if ((node = g_list_nth(get_playlist(), pos)) != NULL)
-+ {
-+ isSelected = ((PlaylistEntry *)(node->data))->selected;
-+ }
-+ PL_UNLOCK();
-+
-+ return isSelected;
-+}
-
- static void playlist_generate_shuffle_list(void)
- {
-diff -ruN dtd-old/xmms/playlist.h dtd-new/xmms/playlist.h
---- dtd-old/xmms/playlist.h 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/playlist.h 2003-09-08 14:14:13.000000000 +0200
-@@ -26,7 +26,8 @@
- gchar *title;
- gchar *sort;
- gint length;
-- gboolean selected;
-+ gboolean selected;
-+ gboolean moved;
- }
- PlaylistEntry;
-
-@@ -81,10 +82,15 @@
- void playlist_delete_filenames(GList *filenames);
- gchar* playlist_get_filename(gint pos);
- gchar* playlist_get_songtitle(gint pos);
-+gint playlist_get_score(gint pos);
-+void playlist_set_score(gint pos, gint score);
-+const gchar* playlist_filename2songtitle(const gchar *filename);
- gint playlist_get_songtime(gint pos);
- GList * playlist_get_selected(void);
- GList * playlist_get_selected_list(void);
- int playlist_get_num_selected(void);
-+gboolean playlist_is_selected(gint pos);
-+gint playlist_get_single_selection(void);
- void playlist_get_total_time(gulong *total_time, gulong *selection_time, gboolean *total_more, gboolean *selection_more);
- void playlist_select_all(gboolean set);
- void playlist_select_range(int min, int max, gboolean sel);
-diff -ruN dtd-old/xmms/playlist_list.c dtd-new/xmms/playlist_list.c
---- dtd-old/xmms/playlist_list.c 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/playlist_list.c 2003-09-08 13:46:19.000000000 +0200
-@@ -24,6 +24,8 @@
- #endif
- #include <X11/Xatom.h>
-
-+static gint playlist_move_delta = 0;
-+static PlaylistEntry *playlist_last_moved_song = NULL;
- static GdkFont *playlist_list_font = NULL;
-
- static int playlist_list_auto_drag_down_func(gpointer data)
-@@ -61,24 +63,35 @@
- GList *list;
-
- PL_LOCK();
-+
-+ /* If the first song is selected... */
- if ((list = get_playlist()) == NULL)
- {
- PL_UNLOCK();
- return;
- }
-+
- if (((PlaylistEntry *) list->data)->selected)
- {
-- /* We are at the top */
-+ /* ... don't move. */
- PL_UNLOCK();
- return;
- }
-- while (list)
-+
-+ while (list)
- {
-- if (((PlaylistEntry *) list->data)->selected)
-+ if (((PlaylistEntry *) list->data)->selected)
-+ {
-+ playlist_last_moved_song =
-+ (PlaylistEntry *) list->data;
- glist_moveup(list);
-+ }
- list = g_list_next(list);
- }
- PL_UNLOCK();
-+
-+ playlist_move_delta--;
-+
- if (pl->pl_prev_selected != -1)
- pl->pl_prev_selected--;
- if (pl->pl_prev_min != -1)
-@@ -92,24 +105,36 @@
- GList *list;
-
- PL_LOCK();
-+
-+ /* If the last song is selected... */
- if ((list = g_list_last(get_playlist())) == NULL)
- {
- PL_UNLOCK();
- return;
- }
-+
- if (((PlaylistEntry *) list->data)->selected)
- {
-- /* We are at the bottom */
-+ /* ... don't move. */
- PL_UNLOCK();
- return;
- }
-+
- while (list)
- {
- if (((PlaylistEntry *) list->data)->selected)
-+ {
-+ playlist_last_moved_song =
-+ (PlaylistEntry *) list->data;
- glist_movedown(list);
-+ }
- list = g_list_previous(list);
- }
-+
- PL_UNLOCK();
-+
-+ playlist_move_delta++;
-+
- if (pl->pl_prev_selected != -1)
- pl->pl_prev_selected++;
- if (pl->pl_prev_min != -1)
-@@ -177,6 +202,7 @@
- playlist_play();
- }
- pl->pl_dragging = TRUE;
-+ playlist_move_delta = 0;
- playlistwin_update_list();
- }
- }
-@@ -244,11 +270,36 @@
- }
- }
-
-+int playlist_n_selected_songs(void)
-+{
-+ int n_selected = 0;
-+ GList *list;
-+
-+ for (list = get_playlist();
-+ list != NULL;
-+ list = g_list_next(list))
-+ {
-+ if (((PlaylistEntry *) list->data)->selected)
-+ n_selected++;
-+ }
-+
-+ return n_selected;
-+}
-+
- void playlist_list_button_release_cb(GtkWidget * widget, GdkEventButton * event, PlayList_List * pl)
- {
- pl->pl_dragging = FALSE;
- pl->pl_auto_drag_down = FALSE;
- pl->pl_auto_drag_up = FALSE;
-+
-+ if ((playlist_move_delta < 0) && (playlist_n_selected_songs() == 1))
-+ {
-+ /* Exactly one song has been moved upwards, mark it as moved. */
-+ playlist_last_moved_song->moved = TRUE;
-+ }
-+
-+ playlist_move_delta = 0;
-+ playlist_last_moved_song = NULL;
- }
-
- #ifdef HAVE_WCHAR_H
-diff -ruN dtd-old/xmms/playlistwin.c dtd-new/xmms/playlistwin.c
---- dtd-old/xmms/playlistwin.c 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/playlistwin.c 2003-09-08 14:16:39.000000000 +0200
-@@ -17,6 +17,7 @@
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-+#include <assert.h>
- #include "xmms.h"
- #include "libxmms/dirbrowser.h"
- #include "libxmms/util.h"
-@@ -24,7 +25,7 @@
- GtkWidget *playlistwin;
- static GtkWidget *playlistwin_url_window = NULL;
- static GtkItemFactory *playlistwin_sort_menu, *playlistwin_sub_menu;
--static GtkItemFactory *playlistwin_popup_menu, *playlistwin_save_menu;
-+static GtkItemFactory *playlistwin_popup_menu, *playlistwin_save_menu, *playlistwin_dtd_menu;
-
- static GdkPixmap *playlistwin_bg;
- static GdkBitmap *playlistwin_mask;
-@@ -68,13 +69,15 @@
- SEL_INV, SEL_ZERO, SEL_ALL,
- MISC_SORT, MISC_FILEINFO, MISC_MISCOPTS,
- PLIST_NEW, PLIST_SAVE, PLIST_LOAD,
-- SEL_LOOKUP,
-+ SEL_LOOKUP, DTD_GOODSONG, DTD_BADSONG,
-+ DTD_DISSOCIATE
- };
-
- void playlistwin_sort_menu_callback(gpointer cb_data, guint action, GtkWidget * w);
- void playlistwin_sub_menu_callback(gpointer cb_data, guint action, GtkWidget * w);
- void playlistwin_save_type_cb(gpointer cb_data, guint action, GtkWidget * w);
- void playlistwin_set_hints(void);
-+void playlistwin_dissociate_callback(GtkMenuItem *menuitem, gpointer ignored);
-
- enum
- {
-@@ -151,7 +154,11 @@
- GtkItemFactoryEntry playlistwin_popup_menu_entries[] =
- {
- {N_("/View File Info"), NULL, playlistwin_popup_menu_callback, MISC_FILEINFO, "<Item>"},
-+
- {N_("/-"), NULL, NULL, 0, "<Separator>"},
-+
-+ {N_("/Dynamic Taste Detection"), NULL, NULL, 0, "<Item>"},
-+
- {N_("/Add"), NULL, NULL, 0, "<Branch>"},
- {N_("/Add/File"), NULL, playlistwin_popup_menu_callback, ADD_FILE, "<Item>"},
- {N_("/Add/Directory"), NULL, playlistwin_popup_menu_callback, ADD_DIR, "<Item>"},
-@@ -182,6 +189,21 @@
- sizeof(playlistwin_popup_menu_entries) /
- sizeof(playlistwin_popup_menu_entries[0]);
-
-+GtkItemFactoryEntry playlistwin_dtd_menu_entries[] =
-+{
-+ {N_("/I Like this Song"),
-+ NULL, playlistwin_popup_menu_callback, DTD_GOODSONG,
-+ "<RadioItem>"},
-+ {N_("/I Don't Like this Song"),
-+ NULL, playlistwin_popup_menu_callback, DTD_BADSONG,
-+ /* <RadioItem> */ "/I Like this Song"},
-+ {N_("/Dissociate From"), NULL, NULL, 0, "<Item>"}
-+};
-+
-+static const int playlistwin_dtd_menu_entries_num =
-+ sizeof(playlistwin_dtd_menu_entries) /
-+ sizeof(playlistwin_dtd_menu_entries[0]);
-+
- void playlistwin_draw_frame(void);
-
- static void playlistwin_update_info(void)
-@@ -1030,6 +1052,35 @@
- case PLIST_LOAD:
- playlistwin_show_load_filesel();
- break;
-+
-+ /* DTD button */
-+ case DTD_GOODSONG: {
-+ gint score;
-+ gint selected_playlist_pos = playlist_get_single_selection();
-+
-+ assert(selected_playlist_pos > -1);
-+ score = playlist_get_score(selected_playlist_pos);
-+ if (score < 0)
-+ {
-+ playlist_set_score(selected_playlist_pos, 0);
-+ }
-+
-+ break;
-+ }
-+
-+ case DTD_BADSONG: {
-+ gint score;
-+ gint selected_playlist_pos = playlist_get_single_selection();
-+
-+ assert(selected_playlist_pos > -1);
-+ score = playlist_get_score(selected_playlist_pos);
-+ if (score >= 0)
-+ {
-+ playlist_set_score(selected_playlist_pos, -1);
-+ }
-+
-+ break;
-+ }
- }
- }
-
-@@ -1053,6 +1104,133 @@
- inside_widget(x, y, playlistwin_sscroll_down));
- }
-
-+gchar *playlistwin_fileName2songName(const gchar *fileName)
-+{
-+ const gchar *afterLastSlash, *beforeLastDot, *c;
-+ gchar *returnMe;
-+ gint i;
-+ const gchar *loadedTitle =
-+ playlist_filename2songtitle(fileName);
-+
-+ if (loadedTitle != NULL)
-+ {
-+ return g_strdup(loadedTitle);
-+ }
-+
-+ // Ditch the last slash and everything before it, as well as
-+ // the last dot and everything after it before returning it.
-+ afterLastSlash = strrchr(fileName, '/');
-+ if (afterLastSlash != NULL)
-+ {
-+ afterLastSlash++;
-+ }
-+ else
-+ {
-+ afterLastSlash = fileName;
-+ }
-+
-+ beforeLastDot = strrchr(fileName, '.');
-+ if ((beforeLastDot != NULL) && (beforeLastDot > afterLastSlash))
-+ {
-+ beforeLastDot--;
-+ }
-+ else
-+ {
-+ beforeLastDot = fileName + strlen(fileName) - 1;
-+ }
-+
-+ if ((afterLastSlash >= beforeLastDot) ||
-+ (beforeLastDot <= fileName) ||
-+ ((afterLastSlash - fileName) >= strlen(fileName)))
-+ {
-+ return g_strdup(fileName);
-+ }
-+
-+ // Copy from after last slash to before last dot
-+ returnMe = g_new(gchar, (beforeLastDot - afterLastSlash) + 1);
-+ i = 0;
-+ for (c = afterLastSlash; c <= beforeLastDot; c++)
-+ {
-+ returnMe[i++] = *c;
-+ }
-+ returnMe[i] = '\0';
-+
-+ return returnMe;
-+}
-+
-+void playlistwin_remove_dissociation_menu(GtkMenuItem *attachPoint)
-+{
-+ // Nuke any previous dissociations menu
-+
-+ // FIXME: I have absolutely no clue to how GTK+ refcounting
-+ // works. This implementation may or may not leak memory.
-+ // Candidates for memory leaks are the user_data fields of the
-+ // labels (they should be freed).
-+ // /Johan Walles - jan 05 / 2002
-+ gtk_menu_item_remove_submenu(attachPoint);
-+}
-+
-+void playlistwin_setup_dissociation_menu(GtkMenuItem *attachPoint,
-+ gint selected_playlist_pos)
-+{
-+ const GList *recommendations = NULL;
-+ const gchar *filename = playlist_get_filename(selected_playlist_pos);
-+
-+ // Ditch the previous dissociations menu (if any)
-+ playlistwin_remove_dissociation_menu(attachPoint);
-+
-+ recommendations =
-+ dtd_get_recommendations(filename);
-+
-+ if (recommendations != NULL)
-+ {
-+ // Create a new menu
-+ GtkWidget *dissociateMenu = gtk_menu_new();
-+ const GList *iterator;
-+
-+ // Associate it with the selected song
-+ gtk_object_set_user_data(GTK_OBJECT(dissociateMenu), g_strdup(filename));
-+
-+ // For all recommendations...
-+ for (iterator = recommendations;
-+ iterator != NULL;
-+ iterator = g_list_next(iterator))
-+ {
-+ const gchar *filename = ((DtdNextSong *)(iterator->data))->filename;
-+ gchar *songName = playlistwin_fileName2songName(filename);
-+ GtkWidget *newMenuItem;
-+
-+ // ... create a new menu entry...
-+ newMenuItem = gtk_menu_item_new_with_label(songName);
-+ g_free(songName);
-+
-+ // ... with its user_data set to point
-+ // to the associated file name...
-+ gtk_object_set_user_data(GTK_OBJECT(newMenuItem), g_strdup(filename));
-+
-+ // ... tell it what to do on receiving a click...
-+ gtk_signal_connect(GTK_OBJECT(newMenuItem),
-+ "activate",
-+ GTK_SIGNAL_FUNC(playlistwin_dissociate_callback),
-+ NULL);
-+
-+ // ... and add it to the new menu.
-+ gtk_menu_append(GTK_MENU(dissociateMenu), newMenuItem);
-+ }
-+
-+ // Enable our new dissociations menu
-+ gtk_widget_show_all(dissociateMenu);
-+ gtk_menu_item_set_submenu(attachPoint, dissociateMenu);
-+ gtk_widget_set_sensitive(GTK_WIDGET(attachPoint), 1);
-+ }
-+ else
-+ {
-+ // ... or disable the dissociation menu heading
-+ // if there is nothing to dissociate from.
-+ gtk_widget_set_sensitive(GTK_WIDGET(attachPoint), 0);
-+ }
-+}
-+
- #define REGION_L(x1,x2,y1,y2) \
- (event->x >= (x1) && event->x < (x2) && \
- event->y >= cfg.playlist_height - (y1) && \
-@@ -1227,18 +1405,101 @@
- else if (event->button == 3 &&
- inside_widget(event->x, event->y, playlistwin_list))
- {
-- int pos, sensitive;
-+ // FIXME: This block is much too long, put it in its
-+ // own function
-+
-+ gint clicked_playlist_pos, selected_playlist_pos;
-+ gboolean sensitive;
-+
- GtkWidget *w;
-- pos = playlist_list_get_playlist_position(playlistwin_list,
-- event->x, event->y);
-- sensitive = pos != -1;
-+
-+ clicked_playlist_pos =
-+ playlist_list_get_playlist_position(playlistwin_list,
-+ event->x, event->y);
-+
-+ // Unless the clicked song is part of a (multiple)
-+ // selection...
-+ if (!playlist_is_selected(clicked_playlist_pos))
-+ {
-+ // ... select just the current song before
-+ // displaying the menu
-+ playlist_select_all(0);
-+ playlist_select_range(clicked_playlist_pos, clicked_playlist_pos, 1);
-+ playlistwin_update_list();
-+ }
-+
-+ selected_playlist_pos = playlist_get_single_selection();
-+ sensitive = (selected_playlist_pos != -1);
-+
-+ // Disable "View File Info" if not exactly one song is selected
- w = gtk_item_factory_get_widget(playlistwin_popup_menu,
- "/View File Info");
- gtk_widget_set_sensitive(w, sensitive);
-+
-+ // Disable the DTD menu hierarchy if not exactly one
-+ // song is selected
-+ // FIXME: or if it's disabled in the prefs
-+ w = gtk_item_factory_get_widget(playlistwin_popup_menu,
-+ "/Dynamic Taste Detection");
-+ gtk_widget_set_sensitive(w, sensitive);
-+
-+ if (sensitive)
-+ {
-+ GtkWidget *playlistwin_dtd_menu_widget =
-+ gtk_item_factory_get_widget(playlistwin_dtd_menu, "<Main>");
-+
-+ gtk_widget_show_all(playlistwin_dtd_menu_widget);
-+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(w), playlistwin_dtd_menu_widget);
-+ }
-+ else
-+ {
-+ gtk_menu_item_remove_submenu(GTK_MENU_ITEM(w));
-+ gtk_widget_hide_all(gtk_item_factory_get_widget(playlistwin_dtd_menu, "<Main>"));
-+ }
-+
-+ if (selected_playlist_pos != -1)
-+ {
-+ // Enable either "/I Like this Song" (if the
-+ // song scores >= 0) or "Bad Song" (if the
-+ // song scores < 0).
-+ gint score = dtd_get_score(playlist_get_filename(selected_playlist_pos));
-+
-+ w = gtk_item_factory_get_widget(playlistwin_dtd_menu,
-+ "/I Like this Song");
-+ if (score >= 0)
-+ {
-+ gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(w), 1);
-+ }
-+ gtk_widget_set_sensitive(w, 1);
-+ w = gtk_item_factory_get_widget(playlistwin_dtd_menu,
-+ "/I Don't Like this Song");
-+ if (score < 0)
-+ {
-+ gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(w), 1);
-+ }
-+ gtk_widget_set_sensitive(w, 1);
-+ }
-+ else
-+ {
-+ // We don't do ratings of multiple songs at once
-+ w = gtk_item_factory_get_widget(playlistwin_dtd_menu,
-+ "/I Like this Song");
-+ gtk_widget_set_sensitive(w, 0);
-+ gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(w), 0);
-+ w = gtk_item_factory_get_widget(playlistwin_dtd_menu,
-+ "/I Don't Like this Song");
-+ gtk_widget_set_sensitive(w, 0);
-+ gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(w), 0);
-+ }
-
-+ // Create the dissociation menu
-+ w = gtk_item_factory_get_widget(playlistwin_dtd_menu,
-+ "/Dissociate From");
-+ playlistwin_setup_dissociation_menu(GTK_MENU_ITEM(w), selected_playlist_pos);
-+
- playlistwin_set_sensitive_sortmenu();
- util_item_factory_popup_with_data(playlistwin_popup_menu,
-- GINT_TO_POINTER(pos), NULL,
-+ GINT_TO_POINTER(selected_playlist_pos), NULL,
- event->x_root,
- event->y_root + 5,
- 3, event->time);
-@@ -1946,6 +2207,11 @@
- cfg.playlist_height,
- gdk_rgb_get_visual()->depth);
-
-+ playlistwin_dtd_menu = gtk_item_factory_new(GTK_TYPE_MENU, "<Main>", NULL);
-+ gtk_item_factory_create_items(GTK_ITEM_FACTORY(playlistwin_dtd_menu),
-+ playlistwin_dtd_menu_entries_num,
-+ playlistwin_dtd_menu_entries, NULL);
-+
- playlistwin_popup_menu =
- gtk_item_factory_new(GTK_TYPE_MENU, "<Main>", NULL);
- gtk_item_factory_set_translate_func(playlistwin_popup_menu,
-@@ -2022,6 +2288,23 @@
- tbutton_set_toggled(mainwin_pl, FALSE);
- }
-
-+void playlistwin_dissociate_callback(GtkMenuItem *menuitem,
-+ gpointer ignored)
-+{
-+ gchar *first, *second;
-+
-+ // Find out "first" by checking the user data of the menuitem
-+ // that was activated
-+ first = (gchar *)gtk_object_get_user_data(GTK_OBJECT(menuitem));
-+
-+ // Find out "second" by checking the user data of the menu
-+ // that is the parent of the menuitem that was activated
-+ second = (gchar *)gtk_object_get_user_data(GTK_OBJECT(GTK_WIDGET(menuitem)->parent));
-+
-+ dtd_dissociate(first, second);
-+}
-+
-+
- void playlistwin_popup_menu_callback(gpointer cb_data, guint action, GtkWidget * w)
- {
- int pos = GPOINTER_TO_INT(gtk_item_factory_popup_data_from_widget(w));
-@@ -2034,6 +2317,17 @@
- case SEL_LOOKUP:
- playlist_read_info_selection();
- break;
-+ case DTD_DISSOCIATE:
-+
-+ break;
-+ case DTD_GOODSONG:
-+ case DTD_BADSONG:
-+ // Act only upon the active item
-+ if (GTK_CHECK_MENU_ITEM(w)->active)
-+ {
-+ playlistwin_popup_handler(action);
-+ }
-+ break;
- default:
- playlistwin_popup_handler(action);
- }
-diff -ruN dtd-old/xmms/prefswin.c dtd-new/xmms/prefswin.c
---- dtd-old/xmms/prefswin.c 2003-09-08 13:31:40.000000000 +0200
-+++ dtd-new/xmms/prefswin.c 2003-09-08 13:46:19.000000000 +0200
-@@ -1042,6 +1042,8 @@
-
- gtk_notebook_append_page(GTK_NOTEBOOK(prefswin_notebook), prefswin_options_vbox, gtk_label_new(_("Options")));
-
-+ prefswin_option_new_with_label_to_table(&cfg.dynamic_taste_detection, _("Dynamic taste detection"), GTK_TABLE(options_table), 1, 10);
-+
- /*
- * Fonts page
- */
-diff -ruN dtd-old/xmms/xmms.h dtd-new/xmms/xmms.h
---- dtd-old/xmms/xmms.h 2001-03-14 15:06:39.000000000 +0100
-+++ dtd-new/xmms/xmms.h 2003-09-08 13:46:19.000000000 +0200
-@@ -81,6 +81,7 @@
- #include "sm.h"
- #include "dnd.h"
- #include "urldecode.h"
-+#include "dtd.h"
-
- #include "config.h"
-
diff --git a/media-sound/xmms/files/xmms-1.2.8-jump.patch b/media-sound/xmms/files/xmms-1.2.8-jump.patch
deleted file mode 100644
index 5ebd59b3d08a..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-jump.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-diff -Naur xmms-1.2.8/libxmms/xmmsctrl.c xmms-1.2.8-new/libxmms/xmmsctrl.c
---- xmms-1.2.8/libxmms/xmmsctrl.c 2003-09-04 15:48:34.000000000 +0200
-+++ xmms-1.2.8-new/libxmms/xmmsctrl.c 2003-09-06 18:18:53.000000000 +0200
-@@ -381,6 +381,11 @@
- remote_cmd(session, CMD_PLAY_PAUSE);
- }
-
-+void xmms_remote_show_jump_box(gint session)
-+{
-+ remote_cmd(session, CMD_SHOW_JUMP_BOX);
-+}
-+
- gboolean xmms_remote_is_playing(gint session)
- {
- return remote_get_gboolean(session, CMD_IS_PLAYING);
-diff -Naur xmms-1.2.8/libxmms/xmmsctrl.h xmms-1.2.8-new/libxmms/xmmsctrl.h
---- xmms-1.2.8/libxmms/xmmsctrl.h 2003-06-09 15:22:10.000000000 +0200
-+++ xmms-1.2.8-new/libxmms/xmmsctrl.h 2003-09-06 18:18:53.000000000 +0200
-@@ -61,6 +61,7 @@
- gboolean xmms_remote_is_pl_win(gint session);
- gboolean xmms_remote_is_eq_win(gint session);
- void xmms_remote_show_prefs_box(gint session);
-+void xmms_remote_show_jump_box(gint session);
- void xmms_remote_toggle_aot(gint session, gboolean ontop);
- void xmms_remote_eject(gint session);
- void xmms_remote_playlist_prev(gint session);
-diff -Naur xmms-1.2.8/xmms/controlsocket.c xmms-1.2.8-new/xmms/controlsocket.c
---- xmms-1.2.8/xmms/controlsocket.c 2003-09-04 15:48:34.000000000 +0200
-+++ xmms-1.2.8-new/xmms/controlsocket.c 2003-09-06 18:18:53.000000000 +0200
-@@ -506,6 +506,9 @@
- case CMD_SET_SKIN:
- load_skin(data);
- break;
-+ case CMD_SHOW_JUMP_BOX:
-+ show_jump_to_file();
-+ break;
- case CMD_PL_WIN_TOGGLE:
- tbool = *((gboolean *) data);
- playlistwin_show(!!tbool);
-diff -Naur xmms-1.2.8/xmms/controlsocket.h xmms-1.2.8-new/xmms/controlsocket.h
---- xmms-1.2.8/xmms/controlsocket.h 2003-06-09 15:22:10.000000000 +0200
-+++ xmms-1.2.8-new/xmms/controlsocket.h 2003-09-06 18:18:53.000000000 +0200
-@@ -46,6 +46,7 @@
- CMD_GET_EQ, CMD_GET_EQ_PREAMP, CMD_GET_EQ_BAND,
- CMD_SET_EQ, CMD_SET_EQ_PREAMP, CMD_SET_EQ_BAND,
- CMD_QUIT, CMD_PLAYLIST_INS_URL_STRING, CMD_PLAYLIST_INS, CMD_PLAY_PAUSE,
-+ CMD_SHOW_JUMP_BOX
- };
-
- typedef struct
-diff -Naur xmms-1.2.8/xmms/main.c xmms-1.2.8-new/xmms/main.c
---- xmms-1.2.8/xmms/main.c 2003-09-02 15:01:40.000000000 +0200
-+++ xmms-1.2.8-new/xmms/main.c 2003-09-06 18:18:53.000000000 +0200
-@@ -1847,6 +1847,11 @@
- GTK_CLIST(clist)->focus_row = GPOINTER_TO_INT(GTK_CLIST(clist)->selection->data);
- }
-
-+void show_jump_to_file(void)
-+{
-+ mainwin_jump_to_file();
-+}
-+
- static gboolean mainwin_configure(GtkWidget * window, GdkEventConfigure *event, gpointer data)
- {
- if (!GTK_WIDGET_VISIBLE(window))
-diff -Naur xmms-1.2.8/xmms/main.h xmms-1.2.8-new/xmms/main.h
---- xmms-1.2.8/xmms/main.h 2002-10-06 18:35:27.000000000 +0200
-+++ xmms-1.2.8-new/xmms/main.h 2003-09-06 18:18:53.000000000 +0200
-@@ -117,6 +117,7 @@
- void mainwin_set_shade_menu_cb(gboolean shaded);
- void mainwin_set_shade(gboolean shaded);
- void mainwin_shade_toggle(void);
-+void show_jump_to_file(void);
-
- #define PLAYER_HEIGHT ((cfg.player_shaded ? 14 : 116) * (cfg.doublesize + 1))
- #define PLAYER_WIDTH (275 * (cfg.doublesize + 1))
diff --git a/media-sound/xmms/files/xmms-1.2.8-mpg123j.patch b/media-sound/xmms/files/xmms-1.2.8-mpg123j.patch
deleted file mode 100644
index a91ff339319c..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-mpg123j.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-diff -urN xmms-1.2.8/Input/mpg123/common.c xmms-1.2.8-jp/Input/mpg123/common.c
---- xmms-1.2.8/Input/mpg123/common.c 2003-03-17 06:49:07.000000000 -0800
-+++ xmms-1.2.8-jp/Input/mpg123/common.c 2003-09-12 09:22:37.000000000 -0700
-@@ -8,6 +8,16 @@
-
- #include "config.h"
-
-+#ifdef HAVE_ICONV_OPEN
-+#include <iconv.h>
-+#endif
-+
-+#include <errno.h>
-+
-+#ifdef HAVE_CODESET
-+#include <langinfo.h>
-+#endif
-+
- #include "mpg123.h"
- #include "id3.h"
- #include "id3_header.h"
-@@ -15,6 +25,13 @@
- /* max = 1728 */
- #define MAXFRAMESIZE 1792
-
-+/* Japanese charset list for mpg123_Iconv() */
-+#define MAXCHARSET 6
-+char *mpg123_lconv_from[MAXCHARSET] =
-+{
-+ "ISO-2022-JP", "SJIS", "EUCJP", "UTF8", "UTF16", "UTF16BE"
-+};
-+
- const int tabsel_123[2][3][16] = {
- {{0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,},
- {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,},
-@@ -505,3 +522,95 @@
- return 0;
- return ((double) stream_tell()) / mpg123_info->filesize;
- }
-+
-+gchar *mpg123_lconv(char *string, char *outto, size_t allow_trunc)
-+{
-+#if !defined(HAVE_ICONV_OPEN) || !defined(HAVE_CODESET)
-+ return g_strdup(string);
-+#else
-+ size_t length, bufsize, outleft, inleft, ret;
-+ iconv_t cd;
-+ char *out, *outptr, *inptr;
-+ char *from, *to, *froml;
-+ int i;
-+
-+ if (!string)
-+ return NULL;
-+ length = strlen(string);
-+
-+ if (outto) {
-+ froml = nl_langinfo(CODESET);
-+ to = outto;
-+ } else {
-+ froml = NULL;
-+ to = nl_langinfo(CODESET);
-+ }
-+ if ((outto && !froml) || (!outto && !to)) {
-+ g_warning("mpg123_lconv(): Cannot get current character set.");
-+ return g_strdup(string);
-+ }
-+
-+ /* Iconv() requires extra work area to outbuf.
-+ Round outbuf_size up to 3 multiple of 4 */
-+ bufsize = (length + 11) & ~3;
-+ out = g_malloc(bufsize);
-+ if (!out) {
-+ g_warning("mpg123_lconv(): Cannot allocate %d bytes buffer.",
-+ bufsize);
-+ return NULL;
-+ }
-+
-+ /* One shot for froml, or loop for mpg123_lconv_from[] */
-+ for (i=0, from = froml ? froml : mpg123_lconv_from[i];
-+ from && i < MAXCHARSET;
-+ from = froml ? NULL : mpg123_lconv_from[++i])
-+ {
-+ inptr = string;
-+ inleft = length;
-+ outptr = out;
-+ outleft = bufsize - 1;
-+
-+ cd = iconv_open(to, from);
-+ if (cd == (iconv_t)-1) {
-+ g_warning("mpg123_lconv(): iconv_open %s %s -> %s",
-+ strerror(errno), from, to);
-+ continue;
-+ }
-+
-+ ret = iconv(cd, &inptr, &inleft, &outptr, &outleft);
-+ if (ret == (size_t)-1) {
-+ switch (errno) {
-+ case E2BIG:
-+ g_warning("mpg123_lconv(): iconv err %d; %s -> %s \"%s\"",
-+ errno, from, to, string);
-+ iconv_close(cd);
-+ continue;
-+ case EINVAL:
-+ case EILSEQ:
-+ if (inleft > allow_trunc) {
-+ iconv_close(cd);
-+ continue;
-+ }
-+ /* Truncate trailing incomplete or invalid */
-+ g_message("xmms mpg123: Truncate %d byte.",
-+ inleft);
-+ break;
-+ default:
-+ g_warning("mpg123_lconv(): iconv err %d; %s -> %s \"%s\"",
-+ errno, from, to, string);
-+ iconv_close(cd);
-+ continue;
-+ }
-+ }
-+ /* Conversion suceeded */
-+ *outptr = '\0';
-+ iconv_close(cd);
-+ return out;
-+ }
-+ /* All Conversion failed */
-+ g_warning("mpg123_lconv(): Failed to convert to %s. \"%s\"",
-+ outto ? outto : "locale", string);
-+ g_free(out);
-+ return g_strdup(string);
-+#endif
-+}
-diff -urN xmms-1.2.8/Input/mpg123/fileinfo.c xmms-1.2.8-jp/Input/mpg123/fileinfo.c
---- xmms-1.2.8/Input/mpg123/fileinfo.c 2003-07-14 06:24:28.000000000 -0700
-+++ xmms-1.2.8-jp/Input/mpg123/fileinfo.c 2003-09-12 09:13:39.000000000 -0700
-@@ -26,6 +26,10 @@
- #include <libxmms/xentry.h>
- #include "mpg123.h"
-
-+#ifdef HAVE_CODESET
-+#include <langinfo.h>
-+#endif
-+
- static GtkWidget *window = NULL;
- static GtkWidget *filename_entry, *id3_frame;
- static GtkWidget *title_entry, *artist_entry, *album_entry, *year_entry, *tracknum_entry, *comment_entry;
-@@ -45,21 +49,29 @@
- static void set_entry_tag(GtkEntry * entry, gchar * tag, gint length)
- {
- gint stripped_len;
-- gchar *text;
-+ gchar *text, *tmp;
-
- stripped_len = mpg123_strip_spaces(tag, length);
-- text = g_strdup_printf("%-*.*s", stripped_len, stripped_len, tag);
-- gtk_entry_set_text(entry, text);
-+ text = g_strndup(tag, stripped_len);
-+ tmp = mpg123_lconv(text, NULL, 0);
-+ gtk_entry_set_text(entry, tmp);
-+ g_free(tmp);
- g_free(text);
- }
-
- static void get_entry_tag(GtkEntry * entry, gchar * tag, gint length)
- {
-- gchar *text;
-+ gchar *text, *tmp;
-
- text = gtk_entry_get_text(entry);
-+ tmp = g_strndup(text, length);
-+ if (strlen(text) - strlen(tmp) > 0)
-+ g_message("xmms mpg123: Truncate to \"%s\"", tmp);
-+ text = mpg123_lconv(tmp, "SJIS", 1);
- memset(tag, ' ', length);
- memcpy(tag, text, strlen(text) > length ? length : strlen(text));
-+ g_free(text);
-+ g_free(tmp);
- }
-
- static gint find_genre_id(gchar * text)
-diff -urN xmms-1.2.8/Input/mpg123/id3_frame_content.c xmms-1.2.8-jp/Input/mpg123/id3_frame_content.c
---- xmms-1.2.8/Input/mpg123/id3_frame_content.c 2002-09-30 07:03:18.000000000 -0700
-+++ xmms-1.2.8-jp/Input/mpg123/id3_frame_content.c 2003-09-12 09:17:13.000000000 -0700
-@@ -51,12 +51,18 @@
- /* Check if frame is compressed */
- if (id3_decompress_frame(frame) == -1)
- return NULL;
--
-- if (*(guint8 *) frame->fr_data == ID3_ENCODING_ISO_8859_1)
-- text_beg = text = g_strdup((char *) frame->fr_data + 1);
-- else
-- text_beg = text =
-- id3_utf16_to_ascii((char *) frame->fr_data + 1);
-+
-+ switch( *(guint8 *) frame->fr_data ) {
-+ case ID3_ENCODING_ISO_8859_1:
-+ case ID3_ENCODING_UTF8:
-+ text_beg = text = g_strdup((char *) frame->fr_data + 1);
-+ break;
-+ case ID3_ENCODING_UTF16:
-+ case ID3_ENCODING_UTF16BE:
-+ default:
-+ text_beg = text =
-+ id3_utf16_to_ascii((char *) frame->fr_data + 1);
-+ }
-
- /*
- * If content is just plain text, return it.
-diff -urN xmms-1.2.8/Input/mpg123/id3_frame_text.c xmms-1.2.8-jp/Input/mpg123/id3_frame_text.c
---- xmms-1.2.8/Input/mpg123/id3_frame_text.c 2002-10-28 07:24:23.000000000 -0800
-+++ xmms-1.2.8-jp/Input/mpg123/id3_frame_text.c 2003-09-12 09:20:55.000000000 -0700
-@@ -127,28 +127,36 @@
- char *id3_get_text(struct id3_frame *frame)
- {
- /* Type check */
-- if ( frame->fr_desc->fd_idstr[0] != 'T' )
-+ if ( frame->fr_desc->fd_idstr[0] != 'T' &&
-+ frame->fr_desc->fd_id != ID3_COMM )
- return NULL;
-
- /* Check if frame is compressed */
- if (id3_decompress_frame(frame) == -1)
- return NULL;
-
-- if ( frame->fr_desc->fd_id == ID3_TXXX ) {
-+ if ( frame->fr_desc->fd_id == ID3_TXXX ||
-+ frame->fr_desc->fd_id == ID3_COMM )
-+ {
- /*
- * This is a user defined text frame. Skip the description.
- */
- switch ( *(guint8 *) frame->fr_data ) {
- case ID3_ENCODING_ISO_8859_1:
-+ case ID3_ENCODING_UTF8:
- {
- char *text = (char *) frame->fr_data + 1;
-+ guint len = frame->fr_size - 1;
-
-- while ( *text != 0 )
-+ while ( *text != 0 ) {
- text++;
-+ len--;
-+ }
-
-- return g_strdup(++text);
-+ return g_strndup(++text,--len);
- }
- case ID3_ENCODING_UTF16:
-+ case ID3_ENCODING_UTF16BE:
- {
- char *text16 = (char *) frame->fr_data + 1;
-
-@@ -161,11 +169,15 @@
- return NULL;
- }
- }
--
-- if (*(guint8 *) frame->fr_data == ID3_ENCODING_ISO_8859_1)
-- return g_strdup((char *) frame->fr_data + 1);
-- else
-- return id3_utf16_to_ascii(((char *) frame->fr_data + 1));
-+ switch (*(guint8 *) frame->fr_data) {
-+ case ID3_ENCODING_ISO_8859_1:
-+ case ID3_ENCODING_UTF8:
-+ return g_strdup((char *) frame->fr_data + 1);
-+ case ID3_ENCODING_UTF16:
-+ case ID3_ENCODING_UTF16BE:
-+ default:
-+ return id3_utf16_to_ascii(((char *) frame->fr_data + 1));
-+ }
- }
-
-
-diff -urN xmms-1.2.8/Input/mpg123/mpg123.c xmms-1.2.8-jp/Input/mpg123/mpg123.c
---- xmms-1.2.8/Input/mpg123/mpg123.c 2003-07-10 06:12:19.000000000 -0700
-+++ xmms-1.2.8-jp/Input/mpg123/mpg123.c 2003-09-12 09:13:39.000000000 -0700
-@@ -556,6 +556,33 @@
-
- if (tag)
- {
-+ gchar *tmp;
-+
-+ tmp = mpg123_lconv(tag->artist, NULL, 0);
-+ strncpy(tag->artist, tmp, sizeof(tag->artist)-1);
-+ tag->artist[sizeof(tag->artist)-1] = '\0';
-+ g_free(tmp);
-+
-+ tmp = mpg123_lconv(tag->album, NULL, 0);
-+ strncpy(tag->album, tmp, sizeof(tag->album)-1);
-+ tag->album[sizeof(tag->album)-1] = '\0';
-+ g_free(tmp);
-+
-+ tmp = mpg123_lconv(tag->title, NULL, 0);
-+ strncpy(tag->title, tmp, sizeof(tag->title)-1);
-+ tag->title[sizeof(tag->title)-1] = '\0';
-+ g_free(tmp);
-+
-+ tmp = mpg123_lconv(tag->genre, NULL, 0);
-+ strncpy(tag->genre, tmp, sizeof(tag->genre)-1);
-+ tag->genre[sizeof(tag->genre)-1] = '\0';
-+ g_free(tmp);
-+
-+ tmp = mpg123_lconv(tag->comment, NULL, 0);
-+ strncpy(tag->comment, tmp, sizeof(tag->comment)-1);
-+ tag->comment[sizeof(tag->comment)-1] = '\0';
-+ g_free(tmp);
-+
- input->performer = mpg123_getstr(tag->artist);
- input->album_name = mpg123_getstr(tag->album);
- input->track_name = mpg123_getstr(tag->title);
-diff -urN xmms-1.2.8/Input/mpg123/mpg123.h xmms-1.2.8-jp/Input/mpg123/mpg123.h
---- xmms-1.2.8/Input/mpg123/mpg123.h 2003-09-04 06:48:34.000000000 -0700
-+++ xmms-1.2.8-jp/Input/mpg123/mpg123.h 2003-09-12 09:13:39.000000000 -0700
-@@ -299,6 +299,7 @@
- void mpg123_get_id3v2(struct id3_tag * id3d, struct id3tag_t *tag);
- gchar *mpg123_format_song_title(struct id3tag_t *tag, gchar *filename);
- double mpg123_relative_pos(void);
-+gchar *mpg123_lconv(char *string, char *to, size_t allow_trunc);
-
-
-
diff --git a/media-sound/xmms/files/xmms-1.2.8-random.patch b/media-sound/xmms/files/xmms-1.2.8-random.patch
deleted file mode 100644
index e3364bcd7a93..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-random.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- xmms/playlist.c.old 2003-09-14 00:39:21.000000000 -0700
-+++ xmms/playlist.c 2003-09-14 00:45:40.000000000 -0700
-@@ -545,7 +545,8 @@
- /* If there are entries */
- if (g_list_length(skinlist)) {
- /* Get a random value to select the skin to use */
-- int randval = random() % (g_list_length(skinlist) + 1);
-+ int len = (g_list_length(skinlist) + 1);
-+ int randval = (int)((double)random() / RAND_MAX * len);
- /* If the random value is 0, use the default skin */
- /* Otherwise subtract 1 from the random value and */
- /* select the skin */
-@@ -1887,7 +1888,7 @@
- {
- /* Only find new songs in our current
- score section */
-- j = (rand() % (next_score_section - i)) + i;
-+ j = (gint)((double)random() / RAND_MAX * (next_score_section - i)) + i;
-
- assert(j < next_score_section);
- }
-@@ -1970,7 +1971,7 @@
- gint j;
-
- /* Pick a random song among the ones that are left */
-- j = (rand() % (len - i)) + i;
-+ j = (gint)((double)random() / RAND_MAX * len);
-
- /* Swap pointer #i and pointer #j */
- swap_ptr = ptrs[i];
diff --git a/media-sound/xmms/files/xmms-1.2.8-russian-charset-csa20.patch b/media-sound/xmms/files/xmms-1.2.8-russian-charset-csa20.patch
deleted file mode 100644
index 2efb507eab28..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-russian-charset-csa20.patch
+++ /dev/null
@@ -1,4366 +0,0 @@
-diff -dPNur xmms-1.2.8/Input/mpg123/fileinfo.c xmms-1.2.8-patched/Input/mpg123/fileinfo.c
---- xmms-1.2.8/Input/mpg123/fileinfo.c 2003-07-14 15:24:28.000000000 +0200
-+++ xmms-1.2.8-patched/Input/mpg123/fileinfo.c 2003-10-22 11:44:14.000000000 +0200
-@@ -26,6 +26,10 @@
- #include <libxmms/xentry.h>
- #include "mpg123.h"
-
-+#include "libxmms/charset.h"
-+#include <gdk/gdkkeysyms.h>
-+#include "xmms/xmms.h"
-+
- static GtkWidget *window = NULL;
- static GtkWidget *filename_entry, *id3_frame;
- static GtkWidget *title_entry, *artist_entry, *album_entry, *year_entry, *tracknum_entry, *comment_entry;
-@@ -46,20 +50,35 @@
- {
- gint stripped_len;
- gchar *text;
-+ gchar *ctag;
-+ gint clength;
-
-+ ctag=xmms_charset_recode_id3(tag,length,&clength);
-+ if (ctag) {
-+ tag=ctag;
-+ length=clength;
-+ }
-+
- stripped_len = mpg123_strip_spaces(tag, length);
- text = g_strdup_printf("%-*.*s", stripped_len, stripped_len, tag);
- gtk_entry_set_text(entry, text);
- g_free(text);
-+ if (ctag) g_free(ctag);
- }
-
- static void get_entry_tag(GtkEntry * entry, gchar * tag, gint length)
- {
- gchar *text;
-+ gchar *ctext;
-
- text = gtk_entry_get_text(entry);
-+ ctext = xmms_charset_recode_output(text,0,NULL);
-+ if (ctext) text=ctext;
-+
- memset(tag, ' ', length);
- memcpy(tag, text, strlen(text) > length ? length : strlen(text));
-+
-+ if (ctext) g_free(ctext);
- }
-
- static gint find_genre_id(gchar * text)
-@@ -225,6 +244,31 @@
- }
- }
-
-+static int restore_focus;
-+
-+gboolean mpg123_keypress_cb(GtkWidget * w, GdkEventKey * event, gpointer save) {
-+ switch(event->keyval) {
-+ case GDK_Return:
-+ restore_focus=1;
-+ gtk_signal_emit_by_name(GTK_OBJECT(save), "clicked", NULL);
-+ break;
-+ case GDK_Escape:
-+ restore_focus=1;
-+ break;
-+ }
-+ return TRUE;
-+}
-+
-+void gtk_widget_destroyed_focus(GtkWidget *widget, GtkWidget **widget_pointer) {
-+ gtk_widget_destroyed(widget,widget_pointer);
-+ if (restore_focus) {
-+ gtk_widget_hide(playlistwin);
-+ gtk_widget_show(playlistwin);
-+// playlistwin_real_hide();
-+// playlistwin_real_show();
-+ }
-+}
-+
- void mpg123_file_info_box(char *filename)
- {
- gint i;
-@@ -233,7 +277,10 @@
- gchar *tmp, *title;
- const gchar *emphasis[4];
- const gchar *bool_label[2];
-+ gchar *cfilename;
-
-+ restore_focus=0;
-+
- emphasis[0] = _("None");
- emphasis[1] = _("50/15 ms");
- emphasis[2] = "";
-@@ -247,10 +294,11 @@
- GtkWidget *mpeg_frame, *mpeg_box;
- GtkWidget *label, *filename_hbox;
- GtkWidget *bbox, *save, *remove_id3, *cancel;
-+ GtkAccelGroup *ag;
-
- window = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
-- gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &window);
-+ gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed_focus), &window);
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
-
- vbox = gtk_vbox_new(FALSE, 10);
-@@ -392,6 +440,18 @@
- gtk_label_set_justify(GTK_LABEL(mpeg_fileinfo), GTK_JUSTIFY_LEFT);
- gtk_box_pack_start(GTK_BOX(mpeg_box), mpeg_fileinfo, FALSE, FALSE, 0);
-
-+ ag = gtk_accel_group_new();
-+ gtk_accel_group_add(ag, GDK_Escape, 0, 0, GTK_OBJECT(cancel), "clicked");
-+ gtk_accel_group_add(ag, GDK_Return, 0, 0, GTK_OBJECT(save), "clicked");
-+ gtk_window_add_accel_group(GTK_WINDOW(window), ag);
-+/* gtk_signal_connect(GTK_OBJECT(title_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(artist_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(album_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(comment_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(year_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(tracknum_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);*/
-+ gtk_signal_connect(GTK_OBJECT(window),"key_press_event",GTK_SIGNAL_FUNC(mpg123_keypress_cb),save);
-+
- gtk_widget_show_all(window);
- }
-
-@@ -399,6 +459,9 @@
- g_free(current_filename);
- current_filename = g_strdup(filename);
-
-+ cfilename=xmms_charset_recode_fsout(filename,0,NULL);
-+ if (cfilename) filename=cfilename;
-+
- title = g_strdup_printf(_("File Info - %s"), g_basename(filename));
- gtk_window_set_title(GTK_WINDOW(window), title);
- g_free(title);
-@@ -412,6 +475,8 @@
- gtk_entry_set_text(GTK_ENTRY(title_entry), title);
- g_free(title);
-
-+ if (cfilename) g_free(cfilename);
-+
- gtk_entry_set_text(GTK_ENTRY(artist_entry), "");
- gtk_entry_set_text(GTK_ENTRY(album_entry), "");
- gtk_entry_set_text(GTK_ENTRY(year_entry), "");
-diff -dPNur xmms-1.2.8/Input/mpg123/mpg123.c xmms-1.2.8-patched/Input/mpg123/mpg123.c
---- xmms-1.2.8/Input/mpg123/mpg123.c 2003-07-10 15:12:19.000000000 +0200
-+++ xmms-1.2.8-patched/Input/mpg123/mpg123.c 2003-10-22 11:44:14.000000000 +0200
-@@ -551,6 +551,7 @@
- {
- gchar *ret = NULL, *path, *temp;
- TitleInput *input;
-+ gint len;
-
- XMMS_NEW_TITLEINPUT(input);
-
-@@ -582,9 +583,18 @@
- /*
- * Format according to filename.
- */
-+ ret = xmms_charset_recode_fs(g_basename(filename),0,&len);
-+ if (ret) {
-+ for (;len>=0;len--)
-+ if (ret[len]=='.') {
-+ ret[len]=0;
-+ break;
-+ }
-+ } else {
- ret = g_strdup(g_basename(filename));
- if (extname(ret) != NULL)
- *(extname(ret) - 1) = '\0'; /* removes period */
-+ }
- }
-
- return ret;
-diff -dPNur xmms-1.2.8/Input/vorbis/utf8.c xmms-1.2.8-patched/Input/vorbis/utf8.c
---- xmms-1.2.8/Input/vorbis/utf8.c 2003-01-07 15:50:09.000000000 +0100
-+++ xmms-1.2.8-patched/Input/vorbis/utf8.c 2003-10-23 20:52:06.000000000 +0200
-@@ -33,7 +33,7 @@
- #include <langinfo.h>
- #endif
-
--
-+#include "libxmms/charset.h"
-
- static char* get_current_charset(void)
- {
-@@ -47,7 +47,8 @@
- if (!charset)
- charset = "US-ASCII";
-
-- return charset;
-+// return charset;
-+ return charset_get_output_charset();
- }
-
-
-diff -dPNur xmms-1.2.8/Input/vorbis/vorbis.c xmms-1.2.8-patched/Input/vorbis/vorbis.c
---- xmms-1.2.8/Input/vorbis/vorbis.c 2003-07-14 15:24:28.000000000 +0200
-+++ xmms-1.2.8-patched/Input/vorbis/vorbis.c 2003-10-22 11:44:14.000000000 +0200
-@@ -47,6 +47,7 @@
- #include "libxmms/util.h"
- #include "libxmms/configfile.h"
- #include "libxmms/titlestring.h"
-+#include "libxmms/charset.h"
- #include <xmms/i18n.h>
-
- #include "vorbis.h"
-@@ -668,6 +669,8 @@
- gchar *displaytitle = NULL, *tmp, *path, *temp;
- vorbis_comment *comment;
- TitleInput *input;
-+ gint len;
-+ gchar *rtitle;
-
- XMMS_NEW_TITLEINPUT(input);
- path = g_strdup(fn);
-@@ -705,10 +708,26 @@
-
- if (!displaytitle)
- {
-- if (!vorbis_is_streaming)
-- displaytitle = g_strdup_printf("%s", g_basename(fn));
-- else
-+ if (!vorbis_is_streaming) {
-+ displaytitle = xmms_charset_recode_fs(g_basename(fn),0,&len);
-+ if (displaytitle) {
-+ for (;len>=0;len--)
-+ if (displaytitle[len]=='.') {
-+ displaytitle[len]=0;
-+ break;
-+ }
-+ } else {
-+ displaytitle = g_strdup_printf("%s", g_basename(fn));
-+ }
-+ } else {
- displaytitle = vorbis_http_get_title(fn);
-+ }
-+ } else {
-+ rtitle = xmms_charset_recode_output(displaytitle,0,0);
-+ if (rtitle) {
-+ g_free(displaytitle);
-+ displaytitle=rtitle;
-+ }
- }
-
- return displaytitle;
-diff -dPNur xmms-1.2.8/libxmms/charset_auto_russian.h xmms-1.2.8-patched/libxmms/charset_auto_russian.h
---- xmms-1.2.8/libxmms/charset_auto_russian.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/charset_auto_russian.h 2003-10-24 18:22:39.000000000 +0200
-@@ -0,0 +1,592 @@
-+/*
-+Originaly stealed from GPPL's (http://gppl.terminal.ru) autorecode-xmms1.2.7 patch,
-+
-+csa8: changed to support limited size strings
-+
-+csa18:
-+ Fixed error in binary search algorithm (start and end of the table realy wasn't used)
-+ UTF-8 support integrated
-+ New tables, new algorithm to detect even upercase phrases (~99.7% of right answers)
-+
-+csa19:
-+ CP866 support
-+*/
-+
-+typedef struct lng_stat {
-+ unsigned char a;
-+ unsigned char b;
-+ int rate;
-+} lng_stat;
-+
-+//statistics calculated from "Moskva-Petushki"
-+static const lng_stat win[]={
-+{'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',8}, {'','',2}, {'','',2}, {'','',1}, {'','',4}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',1},
-+{'','',1}, {'','',1}, {'','',6}, {'','',60}, {'','',5}, {'','',7}, {'','',23}, {'','',2}, {'','',6}, {'','',4}, {'','',1}, {'','',27}, {'','',15}, {'','',10}, {'','',25}, {'','',21},
-+{'','',51}, {'','',12}, {'','',13}, {'','',31}, {'','',15}, {'','',1}, {'','',6}, {'','',17}, {'','',8}, {'','',20}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',2},
-+{'','',16}, {'','',1}, {'','',4}, {'','',3}, {'','',25}, {'','',10}, {'','',9}, {'','',8}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',8}, {'','',2}, {'','',1}, {'','',2},
-+{'','',15}, {'','',2}, {'','',3}, {'','',5}, {'','',98}, {'','',5}, {'','',7}, {'','',5}, {'','',8}, {'','',7}, {'','',6}, {'','',107}, {'','',18}, {'','',2}, {'','',74}, {'','',6},
-+{'','',1}, {'','',3}, {'','',39}, {'','',8}, {'','',2}, {'','',6}, {'','',16}, {'','',26}, {'','',4}, {'','',3}, {'','',1}, {'','',31}, {'','',7}, {'','',2}, {'','',167}, {'','',6},
-+{'','',17}, {'','',3}, {'','',7}, {'','',3}, {'','',1}, {'','',20}, {'','',9}, {'','',19}, {'','',2}, {'','',1}, {'','',1}, {'','',9}, {'','',1}, {'','',1}, {'','',1}, {'','',5},
-+{'','',2}, {'','',19}, {'','',69}, {'','',1}, {'','',1}, {'','',5}, {'','',5}, {'','',1}, {'','',14}, {'','',5}, {'','',2}, {'','',1}, {'','',1}, {'','',31}, {'','',3}, {'','',1},
-+{'','',2}, {'','',23}, {'','',2}, {'','',12}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',2}, {'','',2}, {'','',8}, {'','',78}, {'','',7}, {'','',20}, {'','',7}, {'','',1},
-+{'','',17}, {'','',3}, {'','',27}, {'','',15}, {'','',11}, {'','',21}, {'','',26}, {'','',21}, {'','',4}, {'','',21}, {'','',37}, {'','',5}, {'','',2}, {'','',3}, {'','',8}, {'','',1},
-+{'','',2}, {'','',12}, {'','',3}, {'','',100}, {'','',4}, {'','',1}, {'','',14}, {'','',4}, {'','',62}, {'','',2}, {'','',24}, {'','',10}, {'','',62}, {'','',1}, {'','',1}, {'','',2},
-+{'','',7}, {'','',11}, {'','',4}, {'','',12}, {'','',15}, {'','',3}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',31}, {'','',3}, {'','',1}, {'','',10}, {'','',44},
-+{'','',1}, {'','',19}, {'','',93}, {'','',1}, {'','',6}, {'','',29}, {'','',2}, {'','',1}, {'','',3}, {'','',56}, {'','',111}, {'','',47}, {'','',2}, {'','',98}, {'','',100}, {'','',1},
-+{'','',2}, {'','',6}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',18}, {'','',1}, {'','',4}, {'','',20}, {'','',2}, {'','',2}, {'','',7}, {'','',9}, {'','',2}, {'','',96},
-+{'','',5}, {'','',17}, {'','',16}, {'','',21}, {'','',35}, {'','',13}, {'','',1}, {'','',6}, {'','',3}, {'','',18}, {'','',148}, {'','',11}, {'','',9}, {'','',186}, {'','',43}, {'','',38},
-+{'','',4}, {'','',1}, {'','',22}, {'','',13}, {'','',5}, {'','',13}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',19}, {'','',1}, {'','',4}, {'','',1}, {'','',56},
-+{'','',16}, {'','',22}, {'','',11}, {'','',12}, {'','',6}, {'','',26}, {'','',6}, {'','',6}, {'','',3}, {'','',35}, {'','',4}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',1},
-+{'','',4}, {'','',1}, {'','',1}, {'','',1}, {'','',79}, {'','',1}, {'','',18}, {'','',17}, {'','',34}, {'','',11}, {'','',31}, {'','',55}, {'','',2}, {'','',3}, {'','',2}, {'','',3},
-+{'','',1}, {'','',3}, {'','',2}, {'','',4}, {'','',4}, {'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',9}, {'','',5}, {'','',1}, {'','',1}, {'','',9}, {'','',8}, {'','',2},
-+{'','',1}, {'','',1}, {'','',1}, {'','',7}, {'','',2}, {'','',1}, {'','',16}, {'','',2}, {'','',1}, {'','',8}, {'','',1}, {'','',3}, {'','',20}, {'','',14}, {'','',7}, {'','',3},
-+{'','',1}, {'','',1}, {'','',1}, {'','',46}, {'','',60}, {'','',8}, {'','',1}, {'','',1}, {'','',3}, {'','',7}, {'','',8}, {'','',8}, {'','',7}, {'','',1}, {'','',1}, {'','',5},
-+{'','',1}, {'','',1}, {'','',4}, {'','',1}, {'','',10}, {'','',1}, {'','',61}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',4}, {'','',49}, {'','',5}, {'','',8}, {'','',9},
-+{'','',2}, {'','',12}, {'','',4}, {'','',10}, {'','',5}, {'','',6}, {'','',28}, {'','',24}, {'','',39}, {'','',4}, {'','',30}, {'','',7}, {'','',5}, {'','',3}, {'','',4}, {'','',3},
-+{'','',3}, {'','',56}, {'','',18}, {'','',48}, {'','',9}, {'','',26}, {'','',12}, {'','',7}, {'','',11}, {'','',53}, {'','',59}, {'','',9}, {'','',21}, {'','',32}, {'','',27}, {'','',52},
-+{'','',7}, {'','',21}, {'','',42}, {'','',10}, {'','',1}, {'','',4}, {'','',16}, {'','',2}, {'','',7}, {'','',22}, {'','',69}, {'','',257}, {'','',701}, {'','',218}, {'','',548}, {'','',328},
-+{'','',262}, {'','',626}, {'','',225}, {'','',194}, {'','',1285}, {'','',1288}, {'','',771}, {'','',911}, {'','',166}, {'','',421}, {'','',368}, {'','',802}, {'','',874}, {'','',98}, {'','',38}, {'','',228},
-+{'','',24}, {'','',300}, {'','',121}, {'','',27}, {'','',63}, {'','',238}, {'','',384}, {'','',1}, {'','',1}, {'','',1}, {'','',199}, {'','',6}, {'','',13}, {'','',6}, {'','',420}, {'','',2},
-+{'','',142}, {'','',7}, {'','',137}, {'','',7}, {'','',31}, {'','',327}, {'','',4}, {'','',172}, {'','',18}, {'','',1}, {'','',288}, {'','',11}, {'','',3}, {'','',2}, {'','',1}, {'','',32},
-+{'','',561}, {'','',10}, {'','',7}, {'','',1}, {'','',134}, {'','',11}, {'','',1}, {'','',6}, {'','',7}, {'','',5}, {'','',5}, {'','',6}, {'','',14}, {'','',2}, {'','',9}, {'','',13},
-+{'','',17}, {'','',51}, {'','',7}, {'','',18}, {'','',4}, {'','',2}, {'','',8}, {'','',1}, {'','',2}, {'','',7}, {'','',2}, {'','',4}, {'','',989}, {'','',26}, {'','',62}, {'','',43},
-+{'','',74}, {'','',911}, {'','',26}, {'','',88}, {'','',387}, {'','',1}, {'','',105}, {'','',122}, {'','',65}, {'','',231}, {'','',1220}, {'','',118}, {'','',97}, {'','',851}, {'','',123}, {'','',116},
-+{'','',1}, {'','',9}, {'','',11}, {'','',47}, {'','',53}, {'','',2}, {'','',518}, {'','',33}, {'','',44}, {'','',3}, {'','',48}, {'','',3}, {'','',1}, {'','',3}, {'','',1}, {'','',3},
-+{'','',3}, {'','',4}, {'','',1}, {'','',4}, {'','',3}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',210}, {'','',18}, {'','',6}, {'','',3}, {'','',191},
-+{'','',83}, {'','',2}, {'','',103}, {'','',20}, {'','',205}, {'','',3}, {'','',62}, {'','',1340}, {'','',7}, {'','',180}, {'','',13}, {'','',4}, {'','',88}, {'','',1}, {'','',15}, {'','',1},
-+{'','',4}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',795},
-+{'','',7}, {'','',165}, {'','',6}, {'','',14}, {'','',839}, {'','',8}, {'','',7}, {'','',487}, {'','',1}, {'','',79}, {'','',78}, {'','',10}, {'','',289}, {'','',613}, {'','',17}, {'','',195},
-+{'','',62}, {'','',41}, {'','',417}, {'','',1}, {'','',11}, {'','',138}, {'','',6}, {'','',111}, {'','',200}, {'','',6}, {'','',68}, {'','',30}, {'','',8}, {'','',33}, {'','',7}, {'','',34},
-+{'','',13}, {'','',1}, {'','',6}, {'','',21}, {'','',21}, {'','',4}, {'','',13}, {'','',20}, {'','',21}, {'','',31}, {'','',2}, {'','',13}, {'','',10}, {'','',7}, {'','',4}, {'','',2},
-+{'','',1}, {'','',9}, {'','',2}, {'','',11}, {'','',1}, {'','',25}, {'','',44}, {'','',463}, {'','',704}, {'','',592}, {'','',613}, {'','',281}, {'','',136}, {'','',444}, {'','',177}, {'','',297},
-+{'','',398}, {'','',926}, {'','',982}, {'','',1512}, {'','',206}, {'','',524}, {'','',1231}, {'','',1082}, {'','',1607}, {'','',103}, {'','',15}, {'','',182}, {'','',66}, {'','',308}, {'','',235}, {'','',137},
-+{'','',79}, {'','',24}, {'','',87}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',3}, {'','',187}, {'','',4}, {'','',9}, {'','',1}, {'','',145}, {'','',690}, {'','',4}, {'','',1},
-+{'','',214}, {'','',35}, {'','',1}, {'','',8}, {'','',96}, {'','',13}, {'','',14}, {'','',7}, {'','',4}, {'','',8}, {'','',69}, {'','',1}, {'','',1}, {'','',6}, {'','',2}, {'','',7},
-+{'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',4}, {'','',3}, {'','',1}, {'','',8}, {'','',4}, {'','',2}, {'','',1}, {'','',2}, {'','',2}, {'','',889}, {'','',39},
-+{'','',147}, {'','',67}, {'','',174}, {'','',56}, {'','',18}, {'','',11}, {'','',113}, {'','',16}, {'','',33}, {'','',64}, {'','',302}, {'','',109}, {'','',31}, {'','',53}, {'','',21}, {'','',7},
-+{'','',109}, {'','',3}, {'','',11}, {'','',4}, {'','',71}, {'','',20}, {'','',4}, {'','',43}, {'','',39}, {'','',10}, {'','',46}, {'','',5}, {'','',25}, {'','',11}, {'','',2}, {'','',1},
-+{'','',30}, {'','',24}, {'','',5}, {'','',36}, {'','',39}, {'','',25}, {'','',49}, {'','',3}, {'','',22}, {'','',25}, {'','',8}, {'','',3}, {'','',4}, {'','',2}, {'','',4}, {'','',3},
-+{'','',7}, {'','',28}, {'','',90}, {'','',242}, {'','',658}, {'','',153}, {'','',435}, {'','',280}, {'','',87}, {'','',388}, {'','',301}, {'','',216}, {'','',492}, {'','',888}, {'','',573}, {'','',958},
-+{'','',216}, {'','',335}, {'','',275}, {'','',668}, {'','',949}, {'','',108}, {'','',17}, {'','',324}, {'','',123}, {'','',363}, {'','',134}, {'','',36}, {'','',39}, {'','',22}, {'','',234}, {'','',20},
-+{'','',6}, {'','',20}, {'','',6}, {'','',16}, {'','',6}, {'','',2}, {'','',22}, {'','',18}, {'','',2}, {'','',12}, {'','',13}, {'','',15}, {'','',13}, {'','',7}, {'','',9}, {'','',15},
-+{'','',3}, {'','',1}, {'','',1}, {'','',1}, {'','',7}, {'','',8}, {'','',21}, {'','',36}, {'','',112}, {'','',26}, {'','',100}, {'','',15}, {'','',21}, {'','',30}, {'','',88}, {'','',1},
-+{'','',87}, {'','',25}, {'','',47}, {'','',117}, {'','',55}, {'','',133}, {'','',42}, {'','',162}, {'','',131}, {'','',17}, {'','',6}, {'','',7}, {'','',11}, {'','',69}, {'','',20}, {'','',2},
-+{'','',15}, {'','',16}, {'','',11}, {'','',13}, {'','',7}, {'','',4}, {'','',2}, {'','',1}, {'','',5}, {'','',8}, {'','',9}, {'','',2}, {'','',5}, {'','',20}, {'','',7}, {'','',9},
-+{'','',7}, {'','',9}, {'','',4}, {'','',1}, {'','',1}, {'','',4}, {'','',2}, {'','',8}, {'','',1358}, {'','',49}, {'','',147}, {'','',15}, {'','',48}, {'','',93}, {'','',22}, {'','',55},
-+{'','',678}, {'','',28}, {'','',81}, {'','',22}, {'','',151}, {'','',1337}, {'','',64}, {'','',273}, {'','',131}, {'','',238}, {'','',384}, {'','',7}, {'','',10}, {'','',5}, {'','',31}, {'','',2},
-+{'','',2}, {'','',13}, {'','',25}, {'','',20}, {'','',2}, {'','',25}, {'','',5}, {'','',14}, {'','',3}, {'','',1}, {'','',19}, {'','',12}, {'','',2}, {'','',14}, {'','',31}, {'','',20},
-+{'','',20}, {'','',1}, {'','',20}, {'','',10}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',4}, {'','',19}, {'','',758}, {'','',34}, {'','',102}, {'','',35}, {'','',55},
-+{'','',675}, {'','',33}, {'','',23}, {'','',1300}, {'','',1}, {'','',114}, {'','',21}, {'','',45}, {'','',111}, {'','',947}, {'','',83}, {'','',18}, {'','',320}, {'','',61}, {'','',264}, {'','',5},
-+{'','',7}, {'','',2}, {'','',66}, {'','',1}, {'','',146}, {'','',642}, {'','',21}, {'','',159}, {'','',299}, {'','',11}, {'','',2}, {'','',14}, {'','',8}, {'','',10}, {'','',1}, {'','',5},
-+{'','',12}, {'','',10}, {'','',6}, {'','',23}, {'','',12}, {'','',12}, {'','',1}, {'','',9}, {'','',16}, {'','',2}, {'','',2}, {'','',3}, {'','',1}, {'','',1}, {'','',10}, {'','',447},
-+{'','',69}, {'','',119}, {'','',33}, {'','',41}, {'','',838}, {'','',27}, {'','',38}, {'','',484}, {'','',2}, {'','',71}, {'','',74}, {'','',96}, {'','',497}, {'','',761}, {'','',132}, {'','',41},
-+{'','',137}, {'','',74}, {'','',411}, {'','',5}, {'','',13}, {'','',4}, {'','',46}, {'','',3}, {'','',3}, {'','',207}, {'','',33}, {'','',17}, {'','',82}, {'','',11}, {'','',5}, {'','',8},
-+{'','',3}, {'','',4}, {'','',7}, {'','',10}, {'','',1}, {'','',2}, {'','',6}, {'','',2}, {'','',9}, {'','',2}, {'','',2}, {'','',6}, {'','',1}, {'','',1}, {'','',6}, {'','',1},
-+{'','',2}, {'','',2}, {'','',1706}, {'','',28}, {'','',55}, {'','',48}, {'','',97}, {'','',1870}, {'','',5}, {'','',20}, {'','',1319}, {'','',84}, {'','',7}, {'','',11}, {'','',331}, {'','',1483},
-+{'','',54}, {'','',27}, {'','',133}, {'','',165}, {'','',480}, {'','',14}, {'','',4}, {'','',65}, {'','',55}, {'','',3}, {'','',31}, {'','',385}, {'','',196}, {'','',7}, {'','',30}, {'','',396},
-+{'','',34}, {'','',5}, {'','',44}, {'','',9}, {'','',16}, {'','',16}, {'','',4}, {'','',17}, {'','',43}, {'','',17}, {'','',3}, {'','',23}, {'','',49}, {'','',23}, {'','',40}, {'','',6},
-+{'','',14}, {'','',19}, {'','',4}, {'','',7}, {'','',4}, {'','',2}, {'','',12}, {'','',5}, {'','',27}, {'','',34}, {'','',652}, {'','',1590}, {'','',915}, {'','',946}, {'','',457}, {'','',437},
-+{'','',279}, {'','',291}, {'','',602}, {'','',498}, {'','',923}, {'','',1073}, {'','',1281}, {'','',241}, {'','',588}, {'','',921}, {'','',1264}, {'','',1536}, {'','',152}, {'','',35}, {'','',137}, {'','',51},
-+{'','',459}, {'','',223}, {'','',56}, {'','',89}, {'','',81}, {'','',154}, {'','',2}, {'','',1}, {'','',1}, {'','',252}, {'','',1}, {'','',1}, {'','',364}, {'','',356}, {'','',8}, {'','',189},
-+{'','',11}, {'','',1543}, {'','',6}, {'','',845}, {'','',6}, {'','',23}, {'','',202}, {'','',2}, {'','',33}, {'','',122}, {'','',149}, {'','',3}, {'','',4}, {'','',3}, {'','',6}, {'','',2},
-+{'','',1}, {'','',2}, {'','',1}, {'','',5}, {'','',8}, {'','',10}, {'','',2}, {'','',4}, {'','',2}, {'','',1}, {'','',2}, {'','',3}, {'','',6}, {'','',1264}, {'','',29}, {'','',98},
-+{'','',53}, {'','',129}, {'','',936}, {'','',41}, {'','',20}, {'','',777}, {'','',1}, {'','',54}, {'','',29}, {'','',39}, {'','',181}, {'','',1126}, {'','',38}, {'','',34}, {'','',76}, {'','',122},
-+{'','',355}, {'','',8}, {'','',36}, {'','',23}, {'','',9}, {'','',49}, {'','',5}, {'','',169}, {'','',98}, {'','',7}, {'','',59}, {'','',159}, {'','',6}, {'','',4}, {'','',2}, {'','',2},
-+{'','',1}, {'','',1}, {'','',4}, {'','',2}, {'','',3}, {'','',4}, {'','',5}, {'','',3}, {'','',3}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',306},
-+{'','',33}, {'','',259}, {'','',18}, {'','',41}, {'','',973}, {'','',8}, {'','',11}, {'','',295}, {'','',691}, {'','',519}, {'','',222}, {'','',236}, {'','',403}, {'','',274}, {'','',58}, {'','',222},
-+{'','',1721}, {'','',146}, {'','',18}, {'','',34}, {'','',6}, {'','',48}, {'','',20}, {'','',2}, {'','',79}, {'','',401}, {'','',10}, {'','',27}, {'','',680}, {'','',29}, {'','',5}, {'','',25},
-+{'','',3}, {'','',11}, {'','',9}, {'','',2}, {'','',5}, {'','',16}, {'','',21}, {'','',20}, {'','',24}, {'','',10}, {'','',23}, {'','',2}, {'','',10}, {'','',13}, {'','',2}, {'','',2},
-+{'','',3}, {'','',11}, {'','',1}, {'','',3}, {'','',1}, {'','',16}, {'','',1225}, {'','',56}, {'','',436}, {'','',25}, {'','',67}, {'','',864}, {'','',17}, {'','',33}, {'','',758}, {'','',1},
-+{'','',180}, {'','',52}, {'','',65}, {'','',329}, {'','',2625}, {'','',119}, {'','',616}, {'','',337}, {'','',117}, {'','',398}, {'','',1}, {'','',24}, {'','',10}, {'','',87}, {'','',3}, {'','',4},
-+{'','',398}, {'','',1292}, {'','',37}, {'','',13}, {'','',103}, {'','',22}, {'','',4}, {'','',19}, {'','',4}, {'','',20}, {'','',3}, {'','',2}, {'','',25}, {'','',9}, {'','',6}, {'','',12},
-+{'','',18}, {'','',13}, {'','',18}, {'','',1}, {'','',18}, {'','',12}, {'','',2}, {'','',2}, {'','',5}, {'','',6}, {'','',3}, {'','',5}, {'','',17}, {'','',45}, {'','',142}, {'','',184},
-+{'','',161}, {'','',445}, {'','',83}, {'','',269}, {'','',75}, {'','',111}, {'','',40}, {'','',169}, {'','',251}, {'','',322}, {'','',195}, {'','',50}, {'','',258}, {'','',203}, {'','',380}, {'','',442},
-+{'','',24}, {'','',5}, {'','',97}, {'','',241}, {'','',302}, {'','',37}, {'','',19}, {'','',156}, {'','',31}, {'','',1}, {'','',2}, {'','',21}, {'','',45}, {'','',47}, {'','',14}, {'','',2},
-+{'','',24}, {'','',20}, {'','',4}, {'','',5}, {'','',8}, {'','',6}, {'','',4}, {'','',1}, {'','',2}, {'','',7}, {'','',7}, {'','',4}, {'','',3}, {'','',3}, {'','',5}, {'','',4},
-+{'','',2}, {'','',1}, {'','',10}, {'','',5}, {'','',7}, {'','',4}, {'','',5}, {'','',3}, {'','',5}, {'','',2}, {'','',5}, {'','',135}, {'','',21}, {'','',72}, {'','',27}, {'','',21},
-+{'','',25}, {'','',4}, {'','',13}, {'','',75}, {'','',16}, {'','',43}, {'','',49}, {'','',83}, {'','',450}, {'','',70}, {'','',19}, {'','',39}, {'','',27}, {'','',42}, {'','',3}, {'','',4},
-+{'','',2}, {'','',18}, {'','',8}, {'','',1}, {'','',6}, {'','',7}, {'','',9}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1},
-+{'','',179}, {'','',1}, {'','',11}, {'','',162}, {'','',5}, {'','',75}, {'','',6}, {'','',5}, {'','',1}, {'','',2}, {'','',29}, {'','',4}, {'','',2}, {'','',4}, {'','',4}, {'','',41},
-+{'','',2}, {'','',41}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',3}, {'','',2}, {'','',1}, {'','',294}, {'','',1}, {'','',6}, {'','',874}, {'','',319},
-+{'','',76}, {'','',9}, {'','',4}, {'','',158}, {'','',10}, {'','',3}, {'','',8}, {'','',2}, {'','',536}, {'','',101}, {'','',7}, {'','',37}, {'','',49}, {'','',1}, {'','',1}, {'','',150},
-+{'','',5}, {'','',388}, {'','',188}, {'','',201}, {'','',68}, {'','',4}, {'','',78}, {'','',53}, {'','',8}, {'','',3}, {'','',2}, {'','',17}, {'','',45}, {'','',1}, {'','',1}, {'','',200},
-+{'','',1}, {'','',1}, {'','',1}, {'','',68}, {'','',242}, {'','',96}, {'','',7}, {'','',1}, {'','',1}, {'','',3}, {'','',20}, {'','',2}, {'','',14}, {'','',6}, {'','',28}, {'','',4},
-+{'','',8}, {'','',6}, {'','',1}, {'','',4}, {'','',12}, {'','',10}, {'','',2}, {'','',15}, {'','',16}, {'','',13}, {'','',6}, {'','',3}, {'','',7}, {'','',10}, {'','',1}, {'','',1},
-+{'','',4}, {'','',5}, {'','',1}, {'','',10}, {'','',10}, {'','',66}, {'','',248}, {'','',37}, {'','',65}, {'','',138}, {'','',21}, {'','',45}, {'','',74}, {'','',264}, {'','',83}, {'','',305},
-+{'','',164}, {'','',141}, {'','',34}, {'','',231}, {'','',61}, {'','',189}, {'','',148}, {'','',35}, {'','',1}, {'','',146}, {'','',3}, {'','',63}, {'','',80}, {'','',1}, {'','',9}, {'','',10},
-+{'','',44}, {'','',8}, {'','',45}, {'','',7}, {'','',18}, {'','',12}, {'','',1}, {'','',4}, {'','',29}, {'','',19}, {'','',18}, {'','',36}, {'','',25}, {'','',42}, {'','',4}, {'','',25},
-+{'','',24}, {'','',10}, {'','',1}, {'','',3}, {'','',14}, {'','',1}, {'','',4}, {'','',21}, {'','',38}, {'','',63}, {'','',196}, {'','',35}, {'','',110}, {'','',154}, {'','',11}, {'','',58},
-+{'','',194}, {'','',1}, {'','',324}, {'','',36}, {'','',124}, {'','',321}, {'','',92}, {'','',164}, {'','',41}, {'','',302}, {'','',152}, {'','',48}, {'','',5}, {'','',20}, {'','',15}, {'','',88},
-+{'','',85}, {'','',1}, {'','',27}, {'','',88}, {'','',110}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',6}, {'','',9}, {'','',6}, {'','',3}, {'','',8}, {'','',4},
-+{'','',531}, {'','',2}, {'','',1}, {'','',2}, {'','',10}, {'','',1}, {'','',10}, {'','',1}, {'','',3}, {'','',1}, {'','',2}, {'','',17}, {'','',4}, {'','',2}, {'','',3}, {'','',16},
-+{'','',4}, {'','',5}, {'','',1}, {'','',3}, {'','',2}, {'','',2}, {'','',3}, {'','',1}, {'','',2}, {'','',2}, {'','',9}, {'','',15}, {'','',73}, {'','',37}, {'','',12}, {'','',72},
-+{'','',12}, {'','',6}, {'','',11}, {'','',45}, {'','',1}, {'','',30}, {'','',9}, {'','',28}, {'','',58}, {'','',17}, {'','',58}, {'','',14}, {'','',71}, {'','',139}, {'','',10}, {'','',5},
-+{'','',5}, {'','',3}, {'','',42}, {'','',11}, {'','',27}, {'','',2}, {'','',10}, {'','',20}, {'','',18}, {'','',5}, {'','',28}, {'','',2}, {'','',23}, {'','',6}, {'','',2}, {'','',3},
-+{'','',15}, {'','',14}, {'','',3}, {'','',10}, {'','',23}, {'','',22}, {'','',26}, {'','',5}, {'','',12}, {'','',17}, {'','',1}, {'','',2}, {'','',1}, {'','',7}, {'','',2}, {'','',10},
-+{'','',18}, {'','',23}, {'','',85}, {'','',260}, {'','',44}, {'','',170}, {'','',70}, {'','',63}, {'','',114}, {'','',146}, {'','',7}, {'','',145}, {'','',137}, {'','',108}, {'','',275}, {'','',110},
-+{'','',204}, {'','',43}, {'','',259}, {'','',457}, {'','',64}, {'','',2}, {'','',37}, {'','',18}, {'','',75}, {'','',13}, {'','',33}, {'','',22}, {'','',31}, {'','',47}
-+};
-+
-+static const lng_stat koi[]={
-+{'','',10}, {'','',15}, {'','',73}, {'','',3}, {'','',72}, {'','',12}, {'','',5}, {'','',12}, {'','',5}, {'','',45}, {'','',1}, {'','',30}, {'','',9}, {'','',28}, {'','',58}, {'','',17},
-+{'','',58}, {'','',20}, {'','',14}, {'','',71}, {'','',139}, {'','',10}, {'','',6}, {'','',37}, {'','',11}, {'','',11}, {'','',2}, {'','',27}, {'','',42}, {'','',10}, {'','',1}, {'','',3},
-+{'','',1}, {'','',3}, {'','',17}, {'','',4}, {'','',2}, {'','',3}, {'','',16}, {'','',4}, {'','',5}, {'','',9}, {'','',1}, {'','',3}, {'','',2}, {'','',2}, {'','',1}, {'','',10},
-+{'','',2}, {'','',2}, {'','',2}, {'','',1}, {'','',238}, {'','',69}, {'','',257}, {'','',24}, {'','',548}, {'','',328}, {'','',38}, {'','',218}, {'','',228}, {'','',225}, {'','',194}, {'','',1285},
-+{'','',1288}, {'','',771}, {'','',911}, {'','',166}, {'','',421}, {'','',384}, {'','',368}, {'','',802}, {'','',874}, {'','',98}, {'','',262}, {'','',701}, {'','',626}, {'','',121}, {'','',63}, {'','',27},
-+{'','',300}, {'','',56}, {'','',18}, {'','',26}, {'','',12}, {'','',1}, {'','',9}, {'','',4}, {'','',53}, {'','',59}, {'','',9}, {'','',21}, {'','',32}, {'','',27}, {'','',52}, {'','',22},
-+{'','',7}, {'','',21}, {'','',42}, {'','',10}, {'','',7}, {'','',48}, {'','',11}, {'','',2}, {'','',7}, {'','',16}, {'','',1}, {'','',199}, {'','',6}, {'','',3}, {'','',6}, {'','',420},
-+{'','',11}, {'','',142}, {'','',7}, {'','',137}, {'','',7}, {'','',31}, {'','',327}, {'','',4}, {'','',134}, {'','',172}, {'','',18}, {'','',1}, {'','',288}, {'','',13}, {'','',10}, {'','',561},
-+{'','',2}, {'','',1}, {'','',7}, {'','',32}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',179}, {'','',1}, {'','',162}, {'','',75}, {'','',6}, {'','',5}, {'','',1}, {'','',2},
-+{'','',29}, {'','',4}, {'','',2}, {'','',4}, {'','',4}, {'','',41}, {'','',11}, {'','',41}, {'','',5}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',1},
-+{'','',1}, {'','',1}, {'','',1}, {'','',795}, {'','',7}, {'','',138}, {'','',14}, {'','',839}, {'','',1}, {'','',6}, {'','',11}, {'','',487}, {'','',1}, {'','',79}, {'','',78}, {'','',10},
-+{'','',289}, {'','',613}, {'','',17}, {'','',68}, {'','',195}, {'','',62}, {'','',41}, {'','',417}, {'','',8}, {'','',165}, {'','',200}, {'','',111}, {'','',7}, {'','',6}, {'','',6}, {'','',1},
-+{'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',24}, {'','',44}, {'','',463},
-+{'','',66}, {'','',613}, {'','',281}, {'','',15}, {'','',592}, {'','',182}, {'','',177}, {'','',297}, {'','',398}, {'','',926}, {'','',982}, {'','',1512}, {'','',206}, {'','',524}, {'','',87}, {'','',1231},
-+{'','',1082}, {'','',1607}, {'','',103}, {'','',136}, {'','',704}, {'','',444}, {'','',235}, {'','',79}, {'','',137}, {'','',308}, {'','',1}, {'','',30}, {'','',8}, {'','',1}, {'','',34}, {'','',13},
-+{'','',4}, {'','',7}, {'','',2}, {'','',21}, {'','',21}, {'','',4}, {'','',13}, {'','',20}, {'','',21}, {'','',31}, {'','',25}, {'','',2}, {'','',13}, {'','',10}, {'','',7}, {'','',1},
-+{'','',33}, {'','',6}, {'','',2}, {'','',11}, {'','',9}, {'','',2}, {'','',21}, {'','',45}, {'','',6}, {'','',47}, {'','',14}, {'','',2}, {'','',24}, {'','',20}, {'','',4}, {'','',5},
-+{'','',8}, {'','',1}, {'','',4}, {'','',2}, {'','',1}, {'','',210}, {'','',18}, {'','',191}, {'','',83}, {'','',3}, {'','',1}, {'','',103}, {'','',20}, {'','',205}, {'','',3}, {'','',62},
-+{'','',1340}, {'','',7}, {'','',4}, {'','',180}, {'','',13}, {'','',4}, {'','',88}, {'','',6}, {'','',2}, {'','',1}, {'','',15}, {'','',3}, {'','',1}, {'','',1}, {'','',3}, {'','',4},
-+{'','',1}, {'','',4}, {'','',3}, {'','',2}, {'','',1}, {'','',2}, {'','',2}, {'','',3}, {'','',3}, {'','',1}, {'','',1}, {'','',135}, {'','',21}, {'','',2}, {'','',21}, {'','',25},
-+{'','',3}, {'','',27}, {'','',4}, {'','',75}, {'','',16}, {'','',43}, {'','',49}, {'','',83}, {'','',450}, {'','',70}, {'','',9}, {'','',19}, {'','',39}, {'','',27}, {'','',42}, {'','',4},
-+{'','',72}, {'','',6}, {'','',1}, {'','',13}, {'','',8}, {'','',7}, {'','',18}, {'','',7}, {'','',4}, {'','',3}, {'','',5}, {'','',4}, {'','',2}, {'','',1}, {'','',10}, {'','',5},
-+{'','',7}, {'','',5}, {'','',4}, {'','',5}, {'','',3}, {'','',7}, {'','',5}, {'','',2}, {'','',3}, {'','',22}, {'','',90}, {'','',242}, {'','',123}, {'','',435}, {'','',280}, {'','',17},
-+{'','',153}, {'','',324}, {'','',301}, {'','',216}, {'','',492}, {'','',888}, {'','',573}, {'','',958}, {'','',216}, {'','',335}, {'','',234}, {'','',275}, {'','',668}, {'','',949}, {'','',108}, {'','',87},
-+{'','',658}, {'','',388}, {'','',134}, {'','',39}, {'','',36}, {'','',363}, {'','',39}, {'','',10}, {'','',2}, {'','',25}, {'','',11}, {'','',3}, {'','',5}, {'','',4}, {'','',30}, {'','',24},
-+{'','',5}, {'','',36}, {'','',39}, {'','',25}, {'','',49}, {'','',28}, {'','',3}, {'','',22}, {'','',25}, {'','',8}, {'','',2}, {'','',46}, {'','',1}, {'','',3}, {'','',7}, {'','',4},
-+{'','',21}, {'','',36}, {'','',11}, {'','',100}, {'','',15}, {'','',6}, {'','',26}, {'','',7}, {'','',88}, {'','',1}, {'','',87}, {'','',25}, {'','',47}, {'','',117}, {'','',55}, {'','',133},
-+{'','',16}, {'','',42}, {'','',162}, {'','',131}, {'','',17}, {'','',21}, {'','',112}, {'','',30}, {'','',20}, {'','',15}, {'','',2}, {'','',69}, {'','',20}, {'','',6}, {'','',16}, {'','',6},
-+{'','',1}, {'','',6}, {'','',1}, {'','',22}, {'','',18}, {'','',2}, {'','',12}, {'','',13}, {'','',15}, {'','',13}, {'','',8}, {'','',7}, {'','',9}, {'','',15}, {'','',3}, {'','',20},
-+{'','',2}, {'','',7}, {'','',1}, {'','',1358}, {'','',49}, {'','',5}, {'','',48}, {'','',93}, {'','',7}, {'','',15}, {'','',10}, {'','',678}, {'','',28}, {'','',81}, {'','',22}, {'','',151},
-+{'','',1337}, {'','',64}, {'','',25}, {'','',273}, {'','',131}, {'','',238}, {'','',384}, {'','',22}, {'','',147}, {'','',2}, {'','',55}, {'','',2}, {'','',13}, {'','',31}, {'','',11}, {'','',1},
-+{'','',4}, {'','',2}, {'','',7}, {'','',1}, {'','',8}, {'','',9}, {'','',2}, {'','',5}, {'','',20}, {'','',7}, {'','',9}, {'','',8}, {'','',7}, {'','',9}, {'','',4}, {'','',1},
-+{'','',13}, {'','',5}, {'','',2}, {'','',4}, {'','',159}, {'','',758}, {'','',34}, {'','',2}, {'','',55}, {'','',675}, {'','',5}, {'','',35}, {'','',7}, {'','',1300}, {'','',1}, {'','',114},
-+{'','',21}, {'','',45}, {'','',111}, {'','',947}, {'','',83}, {'','',299}, {'','',18}, {'','',320}, {'','',61}, {'','',264}, {'','',33}, {'','',102}, {'','',642}, {'','',146}, {'','',23}, {'','',1},
-+{'','',21}, {'','',66}, {'','',20}, {'','',2}, {'','',1}, {'','',14}, {'','',3}, {'','',1}, {'','',5}, {'','',1}, {'','',19}, {'','',12}, {'','',2}, {'','',14}, {'','',31}, {'','',20},
-+{'','',20}, {'','',19}, {'','',1}, {'','',20}, {'','',10}, {'','',1}, {'','',1}, {'','',25}, {'','',4}, {'','',2}, {'','',447}, {'','',69}, {'','',4}, {'','',41}, {'','',838}, {'','',5},
-+{'','',33}, {'','',13}, {'','',484}, {'','',2}, {'','',71}, {'','',74}, {'','',96}, {'','',497}, {'','',761}, {'','',132}, {'','',82}, {'','',41}, {'','',137}, {'','',74}, {'','',411}, {'','',27},
-+{'','',119}, {'','',33}, {'','',207}, {'','',38}, {'','',3}, {'','',17}, {'','',3}, {'','',46}, {'','',11}, {'','',2}, {'','',10}, {'','',1}, {'','',8}, {'','',2}, {'','',12}, {'','',10},
-+{'','',6}, {'','',23}, {'','',12}, {'','',12}, {'','',10}, {'','',1}, {'','',9}, {'','',16}, {'','',2}, {'','',14}, {'','',5}, {'','',1}, {'','',1}, {'','',3}, {'','',30}, {'','',1706},
-+{'','',28}, {'','',65}, {'','',97}, {'','',1870}, {'','',14}, {'','',48}, {'','',4}, {'','',1319}, {'','',84}, {'','',7}, {'','',11}, {'','',331}, {'','',1483}, {'','',54}, {'','',396}, {'','',27},
-+{'','',133}, {'','',165}, {'','',480}, {'','',5}, {'','',55}, {'','',196}, {'','',385}, {'','',20}, {'','',3}, {'','',7}, {'','',31}, {'','',55}, {'','',11}, {'','',1}, {'','',3}, {'','',4},
-+{'','',8}, {'','',7}, {'','',10}, {'','',1}, {'','',2}, {'','',6}, {'','',2}, {'','',9}, {'','',2}, {'','',2}, {'','',2}, {'','',6}, {'','',1}, {'','',5}, {'','',1}, {'','',2},
-+{'','',6}, {'','',81}, {'','',34}, {'','',652}, {'','',51}, {'','',946}, {'','',457}, {'','',35}, {'','',915}, {'','',137}, {'','',291}, {'','',602}, {'','',498}, {'','',923}, {'','',1073}, {'','',1281},
-+{'','',241}, {'','',588}, {'','',154}, {'','',921}, {'','',1264}, {'','',1536}, {'','',152}, {'','',437}, {'','',1590}, {'','',279}, {'','',223}, {'','',89}, {'','',56}, {'','',459}, {'','',34}, {'','',5},
-+{'','',2}, {'','',16}, {'','',16}, {'','',7}, {'','',9}, {'','',4}, {'','',43}, {'','',17}, {'','',3}, {'','',23}, {'','',49}, {'','',23}, {'','',40}, {'','',27}, {'','',6}, {'','',14},
-+{'','',19}, {'','',4}, {'','',4}, {'','',44}, {'','',17}, {'','',5}, {'','',12}, {'','',252}, {'','',1}, {'','',364}, {'','',356}, {'','',8}, {'','',189}, {'','',11}, {'','',1543}, {'','',6},
-+{'','',149}, {'','',845}, {'','',6}, {'','',23}, {'','',202}, {'','',1}, {'','',122}, {'','',33}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',31}, {'','',23}, {'','',85}, {'','',18},
-+{'','',170}, {'','',70}, {'','',2}, {'','',44}, {'','',37}, {'','',146}, {'','',7}, {'','',145}, {'','',137}, {'','',108}, {'','',275}, {'','',110}, {'','',204}, {'','',47}, {'','',43}, {'','',259},
-+{'','',457}, {'','',64}, {'','',63}, {'','',260}, {'','',114}, {'','',13}, {'','',22}, {'','',33}, {'','',75}, {'','',18}, {'','',5}, {'','',1}, {'','',23}, {'','',6}, {'','',2}, {'','',2},
-+{'','',15}, {'','',14}, {'','',3}, {'','',10}, {'','',23}, {'','',22}, {'','',26}, {'','',18}, {'','',5}, {'','',12}, {'','',17}, {'','',1}, {'','',2}, {'','',28}, {'','',3}, {'','',2},
-+{'','',10}, {'','',7}, {'','',59}, {'','',1264}, {'','',29}, {'','',23}, {'','',129}, {'','',936}, {'','',8}, {'','',53}, {'','',36}, {'','',777}, {'','',1}, {'','',54}, {'','',29}, {'','',39},
-+{'','',181}, {'','',1126}, {'','',38}, {'','',159}, {'','',34}, {'','',76}, {'','',122}, {'','',355}, {'','',41}, {'','',98}, {'','',98}, {'','',169}, {'','',20}, {'','',49}, {'','',7}, {'','',5},
-+{'','',9}, {'','',3}, {'','',4}, {'','',6}, {'','',2}, {'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',5}, {'','',8}, {'','',10}, {'','',6}, {'','',2}, {'','',4}, {'','',3},
-+{'','',1}, {'','',3}, {'','',2}, {'','',27}, {'','',306}, {'','',33}, {'','',6}, {'','',41}, {'','',973}, {'','',18}, {'','',18}, {'','',34}, {'','',295}, {'','',691}, {'','',519}, {'','',222},
-+{'','',236}, {'','',403}, {'','',274}, {'','',680}, {'','',58}, {'','',222}, {'','',1721}, {'','',146}, {'','',8}, {'','',259}, {'','',401}, {'','',79}, {'','',11}, {'','',20}, {'','',10}, {'','',2},
-+{'','',48}, {'','',6}, {'','',2}, {'','',2}, {'','',4}, {'','',2}, {'','',3}, {'','',4}, {'','',5}, {'','',3}, {'','',3}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',1},
-+{'','',4}, {'','',1}, {'','',3}, {'','',1}, {'','',13}, {'','',1225}, {'','',56}, {'','',10}, {'','',67}, {'','',864}, {'','',1}, {'','',25}, {'','',24}, {'','',758}, {'','',1}, {'','',180},
-+{'','',52}, {'','',65}, {'','',329}, {'','',2625}, {'','',119}, {'','',103}, {'','',616}, {'','',337}, {'','',117}, {'','',398}, {'','',17}, {'','',436}, {'','',1292}, {'','',398}, {'','',33}, {'','',3},
-+{'','',37}, {'','',4}, {'','',87}, {'','',1}, {'','',29}, {'','',5}, {'','',11}, {'','',9}, {'','',2}, {'','',3}, {'','',3}, {'','',16}, {'','',21}, {'','',20}, {'','',24}, {'','',10},
-+{'','',23}, {'','',16}, {'','',2}, {'','',10}, {'','',13}, {'','',2}, {'','',2}, {'','',25}, {'','',5}, {'','',1}, {'','',3}, {'','',11}, {'','',156}, {'','',45}, {'','',142}, {'','',445},
-+{'','',83}, {'','',5}, {'','',161}, {'','',97}, {'','',111}, {'','',40}, {'','',169}, {'','',251}, {'','',322}, {'','',195}, {'','',50}, {'','',258}, {'','',31}, {'','',203}, {'','',380}, {'','',442},
-+{'','',24}, {'','',269}, {'','',184}, {'','',75}, {'','',302}, {'','',19}, {'','',37}, {'','',241}, {'','',22}, {'','',4}, {'','',20}, {'','',3}, {'','',2}, {'','',4}, {'','',5}, {'','',25},
-+{'','',9}, {'','',6}, {'','',12}, {'','',18}, {'','',13}, {'','',18}, {'','',17}, {'','',1}, {'','',18}, {'','',12}, {'','',2}, {'','',19}, {'','',2}, {'','',3}, {'','',5}, {'','',6},
-+{'','',187}, {'','',4}, {'','',145}, {'','',690}, {'','',1}, {'','',1}, {'','',214}, {'','',35}, {'','',1}, {'','',8}, {'','',96}, {'','',13}, {'','',14}, {'','',7}, {'','',7}, {'','',4},
-+{'','',8}, {'','',69}, {'','',4}, {'','',9}, {'','',6}, {'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',3}, {'','',989}, {'','',26},
-+{'','',11}, {'','',74}, {'','',911}, {'','',1}, {'','',43}, {'','',9}, {'','',387}, {'','',1}, {'','',105}, {'','',122}, {'','',65}, {'','',231}, {'','',1220}, {'','',118}, {'','',48}, {'','',97},
-+{'','',851}, {'','',123}, {'','',116}, {'','',26}, {'','',62}, {'','',33}, {'','',518}, {'','',88}, {'','',53}, {'','',44}, {'','',2}, {'','',47}, {'','',11}, {'','',1}, {'','',1}, {'','',5},
-+{'','',5}, {'','',7}, {'','',8}, {'','',6}, {'','',14}, {'','',2}, {'','',9}, {'','',13}, {'','',17}, {'','',51}, {'','',4}, {'','',7}, {'','',18}, {'','',4}, {'','',2}, {'','',6},
-+{'','',7}, {'','',2}, {'','',2}, {'','',88}, {'','',38}, {'','',63}, {'','',15}, {'','',110}, {'','',154}, {'','',5}, {'','',35}, {'','',20}, {'','',194}, {'','',1}, {'','',324}, {'','',36},
-+{'','',124}, {'','',321}, {'','',92}, {'','',164}, {'','',110}, {'','',41}, {'','',302}, {'','',152}, {'','',48}, {'','',11}, {'','',196}, {'','',58}, {'','',85}, {'','',27}, {'','',1}, {'','',88},
-+{'','',44}, {'','',8}, {'','',18}, {'','',12}, {'','',1}, {'','',7}, {'','',3}, {'','',29}, {'','',19}, {'','',18}, {'','',36}, {'','',25}, {'','',42}, {'','',21}, {'','',4}, {'','',25},
-+{'','',24}, {'','',10}, {'','',1}, {'','',45}, {'','',4}, {'','',1}, {'','',4}, {'','',14}, {'','',10}, {'','',66}, {'','',3}, {'','',65}, {'','',138}, {'','',1}, {'','',37}, {'','',146},
-+{'','',74}, {'','',264}, {'','',83}, {'','',305}, {'','',164}, {'','',141}, {'','',34}, {'','',231}, {'','',10}, {'','',61}, {'','',189}, {'','',148}, {'','',35}, {'','',21}, {'','',248}, {'','',45},
-+{'','',80}, {'','',9}, {'','',1}, {'','',63}, {'','',1}, {'','',14}, {'','',6}, {'','',8}, {'','',6}, {'','',1}, {'','',4}, {'','',12}, {'','',10}, {'','',2}, {'','',15}, {'','',16},
-+{'','',13}, {'','',6}, {'','',10}, {'','',3}, {'','',7}, {'','',10}, {'','',1}, {'','',1}, {'','',28}, {'','',4}, {'','',5}, {'','',4}, {'','',889}, {'','',39}, {'','',174}, {'','',56},
-+{'','',67}, {'','',3}, {'','',113}, {'','',16}, {'','',33}, {'','',64}, {'','',302}, {'','',109}, {'','',31}, {'','',43}, {'','',53}, {'','',21}, {'','',7}, {'','',109}, {'','',18}, {'','',147},
-+{'','',20}, {'','',71}, {'','',11}, {'','',4}, {'','',4}, {'','',11}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',4}, {'','',3}, {'','',1}, {'','',8}, {'','',2}, {'','',4},
-+{'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',150}, {'','',1}, {'','',388}, {'','',1}, {'','',188}, {'','',201}, {'','',68}, {'','',4}, {'','',78}, {'','',53}, {'','',8}, {'','',3},
-+{'','',2}, {'','',17}, {'','',45}, {'','',5}, {'','',200}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',6}, {'','',9}, {'','',6}, {'','',3},
-+{'','',8}, {'','',4}, {'','',531}, {'','',1}, {'','',2}, {'','',1}, {'','',68}, {'','',242}, {'','',96}, {'','',7}, {'','',1}, {'','',1}, {'','',3}, {'','',20}, {'','',2}, {'','',1},
-+{'','',1}, {'','',294}, {'','',1}, {'','',874}, {'','',319}, {'','',76}, {'','',9}, {'','',4}, {'','',158}, {'','',10}, {'','',3}, {'','',1}, {'','',8}, {'','',2}, {'','',536}, {'','',101},
-+{'','',6}, {'','',49}, {'','',37}, {'','',7}, {'','',1}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',3}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',1},
-+{'','',6}, {'','',7}, {'','',23}, {'','',1}, {'','',5}, {'','',6}, {'','',4}, {'','',1}, {'','',27}, {'','',15}, {'','',10}, {'','',25}, {'','',21}, {'','',51}, {'','',20}, {'','',12},
-+{'','',13}, {'','',31}, {'','',15}, {'','',2}, {'','',60}, {'','',6}, {'','',8}, {'','',17}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',8}, {'','',2},
-+{'','',2}, {'','',1}, {'','',4}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',3}, {'','',16}, {'','',1}, {'','',4}, {'','',3}, {'','',25}, {'','',10},
-+{'','',9}, {'','',2}, {'','',8}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',7}, {'','',3}, {'','',1}, {'','',1}, {'','',1}, {'','',167}, {'','',17}, {'','',3}, {'','',7},
-+{'','',3}, {'','',1}, {'','',20}, {'','',9}, {'','',19}, {'','',6}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',5}, {'','',2}, {'','',19}, {'','',69}, {'','',9},
-+{'','',5}, {'','',2}, {'','',1}, {'','',1}, {'','',7}, {'','',2}, {'','',2}, {'','',1}, {'','',16}, {'','',1}, {'','',6}, {'','',16}, {'','',26}, {'','',4}, {'','',3}, {'','',1},
-+{'','',31}, {'','',7}, {'','',2}, {'','',2}, {'','',8}, {'','',3}, {'','',20}, {'','',14}, {'','',1}, {'','',1}, {'','',2}, {'','',8}, {'','',20}, {'','',7}, {'','',2}, {'','',7},
-+{'','',3}, {'','',3}, {'','',27}, {'','',15}, {'','',11}, {'','',21}, {'','',26}, {'','',21}, {'','',12}, {'','',4}, {'','',21}, {'','',37}, {'','',5}, {'','',1}, {'','',78}, {'','',17},
-+{'','',1}, {'','',2}, {'','',8}, {'','',1}, {'','',2}, {'','',2}, {'','',2}, {'','',1}, {'','',100}, {'','',4}, {'','',1}, {'','',14}, {'','',4}, {'','',62}, {'','',2}, {'','',24},
-+{'','',10}, {'','',62}, {'','',3}, {'','',3}, {'','',7}, {'','',11}, {'','',4}, {'','',12}, {'','',1}, {'','',15}, {'','',1}, {'','',1}, {'','',2}, {'','',31}, {'','',10}, {'','',1},
-+{'','',44}, {'','',1}, {'','',19}, {'','',93}, {'','',1}, {'','',6}, {'','',3}, {'','',29}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',56}, {'','',111}, {'','',47}, {'','',2},
-+{'','',98}, {'','',100}, {'','',2}, {'','',3}, {'','',1}, {'','',18}, {'','',20}, {'','',4}, {'','',2}, {'','',7}, {'','',9}, {'','',2}, {'','',96}, {'','',5}, {'','',17}, {'','',16},
-+{'','',21}, {'','',35}, {'','',1}, {'','',2}, {'','',6}, {'','',1}, {'','',13}, {'','',2}, {'','',6}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',18}, {'','',148},
-+{'','',11}, {'','',9}, {'','',186}, {'','',43}, {'','',38}, {'','',4}, {'','',3}, {'','',4}, {'','',8}, {'','',9}, {'','',5}, {'','',3}, {'','',4}, {'','',10}, {'','',5}, {'','',6},
-+{'','',28}, {'','',24}, {'','',39}, {'','',4}, {'','',30}, {'','',7}, {'','',5}, {'','',2}, {'','',49}, {'','',12}, {'','',3}, {'','',3}, {'','',4}, {'','',1}, {'','',22}, {'','',13},
-+{'','',5}, {'','',13}, {'','',1}, {'','',1}, {'','',1}, {'','',19}, {'','',1}, {'','',1}, {'','',56}, {'','',2}, {'','',16}, {'','',22}, {'','',11}, {'','',12}, {'','',6}, {'','',26},
-+{'','',6}, {'','',1}, {'','',6}, {'','',3}, {'','',35}, {'','',4}, {'','',4}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',3}, {'','',1}, {'','',79}, {'','',18}, {'','',17},
-+{'','',34}, {'','',3}, {'','',11}, {'','',31}, {'','',1}, {'','',2}, {'','',55}, {'','',4}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',3}, {'','',2}, {'','',1}, {'','',2},
-+{'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',9}, {'','',5}, {'','',1}, {'','',1}, {'','',9}, {'','',8}, {'','',4}, {'','',3}, {'','',4}, {'','',1}, {'','',1}, {'','',5},
-+{'','',1}, {'','',14}, {'','',5}, {'','',2}, {'','',1}, {'','',15}, {'','',5}, {'','',98}, {'','',3}, {'','',7}, {'','',5}, {'','',8}, {'','',7}, {'','',6}, {'','',107}, {'','',18},
-+{'','',2}, {'','',74}, {'','',6}, {'','',1}, {'','',2}, {'','',39}, {'','',5}, {'','',8}, {'','',3}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',8}, {'','',2},
-+{'','',2}, {'','',31}, {'','',1}, {'','',2}, {'','',23}, {'','',2}, {'','',12}, {'','',3}, {'','',1}, {'','',3}, {'','',7}, {'','',8}, {'','',8}, {'','',7}, {'','',1}, {'','',1},
-+{'','',5}, {'','',1}, {'','',1}, {'','',4}, {'','',1}, {'','',10}, {'','',1}, {'','',61}, {'','',1}, {'','',1}, {'','',46}, {'','',60}, {'','',8}, {'','',1}
-+};
-+
-+static int indexes=1680;
-+static int npow=2048;
-+
-+static int is_win_charset(char *txt, int len){
-+ const struct lng_stat *winptr, *koiptr;
-+ int j,ki=0,wi=0,d,l,ws,ks;
-+ unsigned long koi_stat=0,win_stat=0;
-+ unsigned char a,b;
-+ l=strlen(txt);
-+ if ((len)&&(l>len)) l=len;
-+ for(j=0;j<l-1;j++){
-+ a=txt[j];
-+ b=txt[j+1];
-+ //skip bottom half of table
-+ if(a<128 || b<128)
-+ continue;
-+ wi=npow>>1;
-+ ki=npow>>1;
-+ ws=0;
-+ ks=0;
-+ d=npow>>1;
-+ //binary search through lng_stats
-+ do{
-+ d>>=1;
-+
-+ if(!ws){
-+ if (wi>indexes) wi-=d;
-+ else {
-+ winptr=win+wi-1;
-+ if(a==winptr->a){
-+ if(b==winptr->b){
-+ ws=1;
-+ win_stat+=winptr->rate;
-+ }else if(b<winptr->b){
-+ wi-=d;
-+ }else{ //b>win[wi].b
-+ wi+=d;
-+ }
-+ }else if(a<winptr->a){
-+ wi-=d;
-+ }else{ //a>win[wi].a
-+ wi+=d;
-+ }
-+ }
-+ }
-+ if(!ks){
-+ if (ki>indexes) ki-=d;
-+ else {
-+ koiptr=koi+ki-1;
-+ if(a==koiptr->a){
-+ if(b==koiptr->b){
-+ ks=1;
-+ koi_stat+=koiptr->rate;
-+ }else if(b<koiptr->b){
-+ ki-=d;
-+ }else{ //b>win[wi].b
-+ ki+=d;
-+ }
-+ }else if(a<koiptr->a){
-+ ki-=d;
-+ }else{ //a>win[wi].a
-+ ki+=d;
-+ }
-+ }
-+ }
-+ }while(d);
-+ }
-+ if(win_stat>koi_stat)
-+ return 1;
-+ else
-+ return 0;
-+}
-+
-+#define NF_VALUE -2
-+#define max(a,b) ((a>b)?a:b)
-+#define min(a,b) ((a<b)?a:b)
-+#define bit(i) (1<<i)
-+
-+typedef struct lng_stat2 {
-+ unsigned char a;
-+ unsigned char b;
-+ double rate;
-+ double srate;
-+ double erate;
-+} lng_stat2;
-+
-+#include "russian_table.h"
-+
-+
-+static int end_symbol(char ch) {
-+ if (ch=='\r'||ch=='\n'||ch==0||ch==' '||ch=='\t'||ch==','||ch=='.'||ch=='!'||ch=='?'||ch==';'||ch=='-'||ch==':'||ch=='"'||ch=='\''||ch==')') return 1;
-+ return 0;
-+}
-+
-+static int start_symbol(char ch) {
-+ if ((ch=='\t')||ch=='\r'||ch=='\n'||(ch==' ')||(ch=='(')||(ch=='"')||(ch=='\'')) return 1;
-+ return 0;
-+}
-+
-+static void bfind(unsigned char *a, const void **w, const void **k, const void **al) {
-+ const struct lng_stat2 *winptr, *koiptr,*altptr;
-+ int ki,wi,ai,d,ws=0,ks=0,as=0;
-+ d=npow2>>1;
-+ wi=d;
-+ ki=d;
-+ ai=d;
-+ winptr=0;
-+ koiptr=0;
-+ altptr=0;
-+ do{
-+ d>>=1;
-+
-+ if(!ws){
-+ if (wi>indexes2) wi-=d;
-+ else {
-+ winptr=enc_win+wi-1;
-+ if(a[0]==winptr->a){
-+ if(a[1]==winptr->b){
-+ ws=1;
-+ }else if(a[1]<winptr->b){
-+ wi-=d;
-+ }else{ //b>win[wi].b
-+ wi+=d;
-+ }
-+ }else if(a[0]<winptr->a){
-+ wi-=d;
-+ }else{ //a>win[wi].a
-+ wi+=d;
-+ }
-+ }
-+ }
-+ if(!ks){
-+ if (ki>indexes2) ki-=d;
-+ else {
-+ koiptr=enc_koi+ki-1;
-+ if(a[0]==koiptr->a){
-+ if(a[1]==koiptr->b){
-+ ks=1;
-+ }else if(a[1]<koiptr->b){
-+ ki-=d;
-+ }else{ //b>win[wi].b
-+ ki+=d;
-+ }
-+ }else if(a[0]<koiptr->a){
-+ ki-=d;
-+ }else{ //a>win[wi].a
-+ ki+=d;
-+ }
-+ }
-+ }
-+ if(!as){
-+ if (ai>indexes2) ai-=d;
-+ else {
-+ altptr=enc_alt+ai-1;
-+ if(a[0]==altptr->a){
-+ if(a[1]==altptr->b){
-+ as=1;
-+ }else if(a[1]<altptr->b){
-+ ai-=d;
-+ }else{ //b>win[wi].b
-+ ai+=d;
-+ }
-+ }else if(a[0]<altptr->a){
-+ ai-=d;
-+ }else{ //a>win[wi].a
-+ ai+=d;
-+ }
-+ }
-+ }
-+ }while(d);
-+ if (ws) *w=winptr;
-+ else *w=NULL;
-+ if (ks) *k=koiptr;
-+ else *k=NULL;
-+ if (as) *al=altptr;
-+ else *al=NULL;
-+}
-+
-+static double calculate(double s, double m, double e) {
-+ return s+m+e;
-+}
-+
-+static int is_win_charset2(unsigned char *txt, int len){
-+ const struct lng_stat2 *winptr, *koiptr,*altptr;
-+ double winstep,koistep,altstep,winestep,koiestep,altestep,winsstep,koisstep,altsstep;
-+ double winstat=0,koistat=0,altstat=0,winestat=0,koiestat=0,altestat=0,winsstat=0,koisstat=0,altsstat=0;
-+ long j,l;
-+
-+ l=strlen(txt);
-+ if ((len)&&(l>len)) l=len;
-+#ifdef _AUTO_DEBUG
-+ fprintf(stderr,"Word: %s\n",txt);
-+#endif
-+ for(j=0;j<l-1;j++){
-+ //skip bottom half of table
-+ if(txt[j]<128 || txt[j+1]<128) continue;
-+#ifdef _AUTO_DEBUG
-+ fprintf(stderr,"Pair: %c%c",txt[j],txt[j+1]);
-+#endif
-+ bfind(txt+j,(const void**)&winptr,(const void**)&koiptr,(const void**)&altptr);
-+
-+ if ((j==0)||(start_symbol(txt[j-1]))) {
-+ if (winptr) winsstep=winptr->srate;
-+ else winsstep=NF_VALUE;
-+ if (koiptr) koisstep=koiptr->srate;
-+ else koisstep=NF_VALUE;
-+ if (altptr) altsstep=altptr->srate;
-+ else altsstep=NF_VALUE;
-+ winestep=0;
-+ koiestep=0;
-+ altestep=0;
-+ winstep=0;
-+ koistep=0;
-+ altstep=0;
-+#ifdef _AUTO_DEBUG
-+ fprintf(stderr,", Win %lf, Koi %lf, Alt: %lf\n",winsstep,koisstep,altsstep);
-+#endif
-+ } else if ((j==l-2)||(end_symbol(txt[j+2]))) {
-+ if (winptr) winestep=winptr->erate;
-+ else winestep=NF_VALUE;
-+ if (koiptr) koiestep=koiptr->erate;
-+ else koiestep=NF_VALUE;
-+ if (altptr) altestep=altptr->erate;
-+ else altestep=NF_VALUE;
-+ winsstep=0;
-+ koisstep=0;
-+ altsstep=0;
-+ winstep=0;
-+ koistep=0;
-+ altstep=0;
-+#ifdef _AUTO_DEBUG
-+ fprintf(stderr,", Win %lf, Koi %lf, Alt %lf\n",winestep,koiestep,altestep);
-+#endif
-+ } else {
-+ if (winptr) winstep=winptr->rate;
-+ else winstep=NF_VALUE;
-+ if (koiptr) koistep=koiptr->rate;
-+ else koistep=NF_VALUE;
-+ if (altptr) altstep=altptr->rate;
-+ else altstep=NF_VALUE;
-+ winsstep=0;
-+ winestep=0;
-+ koisstep=0;
-+ koiestep=0;
-+ altsstep=0;
-+ altestep=0;
-+#ifdef _AUTO_DEBUG
-+ fprintf(stderr,", Win %lf, Koi %lf, Alt %lf\n",winstep,koistep,altstep);
-+#endif
-+ }
-+
-+ winstat+=winstep;
-+ koistat+=koistep;
-+ altstat+=altstep;
-+ winsstat+=winsstep;
-+ koisstat+=koisstep;
-+ altsstat+=altsstep;
-+ winestat+=winestep;
-+ koiestat+=koiestep;
-+ altestat+=altestep;
-+ }
-+
-+#ifdef _AUTO_DEBUG
-+ fprintf(stderr,"Start. Win: %lf, Koi: %lf, Alt: %lf\n",winsstat,koisstat,altsstat);
-+ fprintf(stderr,"Middle. Win: %lf, Koi: %lf, Alt: %lf\n",winstat,koistat,altstat);
-+ fprintf(stderr,"End. Win: %lf, Koi: %lf, Alt: %lf\n",winestat,koiestat,altestat);
-+ fprintf(stderr,"Final. Win: %lf, Koi: %lf, Alt: %lf\n",calculate(winsstat,winstat,winestat),calculate(koisstat,koistat,koiestat),calculate(altsstat,altstat,altestat));
-+#endif
-+ if ((calculate(altsstat,altstat,altestat)>calculate(koisstat,koistat,koiestat))&&(calculate(altsstat,altstat,altestat)>calculate(winsstat,winstat,winestat))) return 3;
-+ if (calculate(koisstat,koistat,koiestat)>calculate(winsstat,winstat,winestat)) return 1;
-+ return 0;
-+}
-+
-+
-+static int check_utf8(unsigned char *buf, int len) {
-+ long i,j;
-+ int bytes=0,rflag=0;
-+ unsigned char tmp;
-+ int res=0;
-+ long l;
-+
-+ l=strlen(buf);
-+ if ((len)&&(l>len)) l=len;
-+
-+ for (i=0;i<l;i++) {
-+ if (buf[i]<128) continue;
-+
-+ if (bytes>0) {
-+ if ((buf[i]&0xC0)==0x80) {
-+ if (rflag) {
-+ tmp=buf[i]&0x3F;
-+ // Russian is 0x410-0x44F
-+ if ((rflag==1)&&(tmp>=0x10)) res++;
-+ else if ((rflag==2)&&(tmp<=0x0F)) res++;
-+ }
-+ bytes--;
-+ } else {
-+ res--;
-+ bytes=1-bytes;
-+ rflag=0;
-+ }
-+ } else {
-+ for (j=6;j>=0;j--)
-+ if ((buf[i]&bit(j))==0) break;
-+
-+ if ((j==0)||(j==6)) {
-+ if ((j==6)&&(bytes<0)) bytes++;
-+ else res--;
-+ continue;
-+ }
-+ bytes=6-j;
-+ if (bytes==1) {
-+ // Cyrrilic D0-D3, Russian - D0-D1
-+ if (buf[i]==0xD0) rflag=1;
-+ else if (buf[i]==0xD1) rflag=2;
-+ }
-+ }
-+
-+ if ((buf[i]==0xD0)||(buf[i]==0xD1)) {
-+ if (i+1==l) break;
-+
-+ }
-+ }
-+ return res;
-+}
-+
-+static int check_cp866(unsigned char *buf, int len) {
-+ long i;
-+ int res=0;
-+ long l;
-+
-+ l=strlen(buf);
-+ if ((len)&&(l>len)) l=len;
-+
-+ for (i=0;i<l;i++) {
-+ if ((buf[i]>=0x80)&&(buf[i]<=0x9F)) res++;
-+ else if ((buf[i]>=0xA0)&&(buf[i]<=0xAF)) res++;
-+ else if ((buf[i]>=0xC0)&&(buf[i]<0xE0)) res-=2;
-+ else if (buf[i]>0xF1) res-=1;
-+// else if ((buf[i]>127)&&(buf[i]<0xC0)) res--;
-+ }
-+ return res;
-+}
-+
-+int autocharset_russian(char *buf,int len) {
-+ if (check_utf8(buf,len)>1) return 2;
-+ if (check_cp866(buf,len)>1) return 3;
-+ if (is_win_charset(buf,len)) return 0;
-+ return 1;
-+}
-+
-+int autocharset_russian_uc(char *buf,int len) {
-+ if (check_utf8(buf,len)>1) return 2;
-+ return is_win_charset2(buf,len);
-+}
-diff -dPNur xmms-1.2.8/libxmms/charset.c xmms-1.2.8-patched/libxmms/charset.c
---- xmms-1.2.8/libxmms/charset.c 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/charset.c 2003-10-24 21:51:11.000000000 +0200
-@@ -0,0 +1,981 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <glib.h>
-+#include <iconv.h>
-+#include <locale.h>
-+#include <assert.h>
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+
-+
-+/*
-+#include "../config.h"
-+#ifdef HAVE_CODESET
-+#include <langinfo.h>
-+#endif
-+*/
-+
-+#include "charset.h"
-+#include "charset_config.h"
-+
-+#ifdef AUTO_ENCA_SUPPORT
-+#ifdef DYNAMIC_ENCA
-+#include <charset_fake_enca.h>
-+#else
-+#include <enca.h>
-+#endif
-+#endif
-+
-+#define LOCALE_STRING_LENGTH 64
-+static char charset_default[LOCALE_STRING_LENGTH];
-+static int current_language;
-+static char xmms_charset_tmp[CHARSET_MAX_STRING_SIZE];
-+
-+static int xmms_charset_changed = -1;
-+
-+static int xmms_charset_id3;
-+static int xmms_charset_output;
-+static int xmms_charset_fs;
-+static int xmms_charset_pl;
-+
-+static iconv_t iconv_id3=(iconv_t)-1; /* id3 to output */
-+static iconv_t iconv_output=(iconv_t)-1; /* output to id3 */
-+static iconv_t iconv_fs=(iconv_t)-1; /* fs to id3 */
-+static iconv_t iconv_fsout=(iconv_t)-1; /* fs to out */
-+static iconv_t iconv_utf=(iconv_t)-1; /* id3 to UTF-8 */
-+static iconv_t iconv_pl2fs=(iconv_t)-1; /* playlist to fs */
-+static iconv_t iconv_fs2pl=(iconv_t)-1; /* fs to playlist */
-+static iconv_t iconv_ct2out=(iconv_t)-1; /* LC_CTYPE to output */
-+
-+static int xmms_autocharset_mode = 0;
-+static int xmms_autocharset_fs = 1;
-+static int xmms_charset_fm = 1;
-+
-+static int xmms_autocharset_changed = -1;
-+static iconv_t *xmms_autocharset = NULL;
-+static iconv_t *xmms_autocharset_id2utf = NULL;
-+static iconv_t *xmms_autocharset_id2id = NULL;
-+static iconv_t *xmms_autocharset_id2fs = NULL;
-+static iconv_t *xmms_autocharset_fs2id = NULL;
-+static int xmms_autocharset_number = -1;
-+
-+//static int recode_fsout;
-+static int recode_fs2utf;
-+#include "charset_auto_russian.h"
-+
-+extern int errno;
-+
-+static int sure_default;
-+
-+#ifdef AUTO_ENCA_SUPPORT
-+static EncaAnalyser enca = NULL;
-+static int enca_pos=-1;
-+#endif
-+
-+/*
-+static PluginOptions *po = NULL;
-+*/
-+
-+const char *charset_get_output_charset() {
-+ if (xmms_charset_output) return charset_list[xmms_charset_output];
-+ else return charset_default;
-+}
-+
-+/*
-+PluginOptions default_po = {
-+ &xmms_charset_recode_fsout,
-+ NULL,
-+ NULL
-+};
-+
-+void *charset_set_current_options(PluginOptions *cpo) {
-+ po=cpo;
-+}
-+
-+PluginOptions *charset_get_current_options() {
-+ if (po) return po;
-+ else return &default_po;
-+}
-+*/
-+
-+/*****************************************************************************
-+************************ Auto Recoding ***************************************
-+*****************************************************************************/
-+static int xmms_autocharset_number_charsets(int m) {
-+ const char **encodings;
-+ int i;
-+
-+ if (!m) m=xmms_autocharset_mode;
-+ encodings=autocharset_list[m].encodings;
-+ for (i=0;encodings[i];i++);
-+ return i;
-+}
-+
-+
-+static void xmms_autocharset_iconv_close() {
-+ int i;
-+
-+ for (i=0;i<xmms_autocharset_number;i++) {
-+ if ((xmms_autocharset)&&(xmms_autocharset[i] != (iconv_t)-1)&&(xmms_autocharset[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset[i]);
-+ if ((xmms_autocharset_id2utf)&&(xmms_autocharset_id2utf[i] != (iconv_t)-1)&&(xmms_autocharset_id2utf[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset_id2utf[i]);
-+ if ((xmms_autocharset_id2id)&&(xmms_autocharset_id2id[i] != (iconv_t)-1)&&(xmms_autocharset_id2id[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset_id2id[i]);
-+ if ((xmms_autocharset_id2fs)&&(xmms_autocharset_id2fs[i] != (iconv_t)-1)&&(xmms_autocharset_id2fs[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset_id2fs[i]);
-+ if ((xmms_autocharset_fs2id)&&(xmms_autocharset_fs2id[i] != (iconv_t)-1)&&(xmms_autocharset_fs2id[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset_fs2id[i]);
-+ }
-+ if (xmms_autocharset) free(xmms_autocharset);
-+ if (xmms_autocharset_id2utf) free(xmms_autocharset_id2utf);
-+ if (xmms_autocharset_id2id) free(xmms_autocharset_id2id);
-+ if (xmms_autocharset_id2fs) free(xmms_autocharset_id2fs);
-+ if (xmms_autocharset_fs2id) free(xmms_autocharset_fs2id);
-+
-+ xmms_autocharset=NULL;
-+ xmms_autocharset_id2utf=NULL;
-+ xmms_autocharset_id2id=NULL;
-+ xmms_autocharset_id2fs=NULL;
-+ xmms_autocharset_fs2id=NULL;
-+ xmms_autocharset_number = -1;
-+}
-+
-+void xmms_autocharset_new_mode(int m, int fs, int fm) {
-+ xmms_autocharset_mode=m;
-+ xmms_autocharset_fs=fs;
-+ xmms_charset_fm=fm;
-+ xmms_autocharset_changed=1;
-+ xmms_charset_changed=1;
-+}
-+
-+
-+#ifdef DYNAMIC_ENCA
-+# include <dlfcn.h>
-+#ifndef RTLD_NOW
-+# define RTLD_NOW 0
-+#endif
-+static void *enca_handle = NULL;
-+static int dynamic_enca_initialised = 0;
-+
-+static void* open_dynamic_lib(char *filename)
-+{
-+ return dlopen(filename, RTLD_NOW);
-+}
-+
-+static void close_dynamic_lib(void* handle)
-+{
-+ dlclose(handle);
-+}
-+
-+static void* find_dynamic_symbol(void *handle, char *symbol)
-+{
-+#ifdef SYMBOL_PREFIX
-+ char *sym = g_strconcat(SYMBOL_PREFIX, symbol, NULL);
-+ void *symh = dlsym(handle, sym);
-+ g_free(sym);
-+ return symh;
-+#else
-+ return dlsym(handle, symbol);
-+#endif
-+}
-+#endif
-+/*
-+ enca_analyse_const(enca,buf,len);
-+ enca_charset_name(ee.charset, ENCA_NAME_STYLE_ICONV);
-+ enca_analyser_alloc(ltmp);
-+ enca_analyser_free(enca);
-+ enca_set_threshold(enca, 1);
-+ enca_set_multibyte(enca, 1);
-+ enca_set_ambiguity(enca, 1);
-+ enca_set_garbage_test(enca, 0);
-+ enca_set_filtering(enca, 0);
-+ enca_set_significant(enca,1);
-+ enca_set_termination_strictness(enca,0);
-+ enca_get_language_charsets (const char *langname,
-+ size_t *n);
-+*/
-+
-+#ifdef DYNAMIC_ENCA
-+static void charset_dynamic_enca_init() {
-+ if (dynamic_enca_initialised) return;
-+ dynamic_enca_initialised=1;
-+ enca_handle=open_dynamic_lib(ENCA_LIB);
-+ if (enca_handle) {
-+ enca_set_multibyte=find_dynamic_symbol(enca_handle,"enca_set_multibyte");
-+ enca_set_interpreted_surfaces=find_dynamic_symbol(enca_handle,"enca_set_interpreted_surfaces");
-+ enca_set_ambiguity=find_dynamic_symbol(enca_handle,"enca_set_ambiguity");
-+ enca_set_filtering=find_dynamic_symbol(enca_handle,"enca_set_filtering");
-+ enca_set_garbage_test=find_dynamic_symbol(enca_handle,"enca_set_garbage_test");
-+ enca_set_termination_strictness=find_dynamic_symbol(enca_handle,"enca_set_termination_strictness");
-+ enca_set_significant=find_dynamic_symbol(enca_handle,"enca_set_significant");
-+ enca_set_threshold=find_dynamic_symbol(enca_handle,"enca_set_threshold");
-+ enca_charset_name=find_dynamic_symbol(enca_handle,"enca_charset_name");
-+ enca_get_language_charsets=find_dynamic_symbol(enca_handle,"enca_get_language_charsets");
-+ enca_analyser_alloc=find_dynamic_symbol(enca_handle,"enca_analyser_alloc");
-+ enca_analyser_free=find_dynamic_symbol(enca_handle,"enca_analyser_free");
-+ enca_analyse_const=find_dynamic_symbol(enca_handle,"enca_analyse_const");
-+ if ((!enca_set_multibyte)||(!enca_set_interpreted_surfaces)||(!enca_set_ambiguity)||
-+ (!enca_set_filtering)||(!enca_set_garbage_test)||(!enca_set_termination_strictness)||
-+ (!enca_set_significant)||(!enca_set_threshold)||(!enca_charset_name)||
-+ (!enca_get_language_charsets)||(!enca_analyser_alloc)||(!enca_analyser_free)||
-+ (!enca_analyse_const)) {
-+ close_dynamic_lib(enca_handle);
-+ enca_handle=NULL;
-+ perror( "Enca dynamic: Incomplete function set" );
-+ }
-+ }
-+}
-+#endif
-+
-+
-+void xmms_autocharset_init(int m) {
-+ xmms_autocharset_mode=m;
-+ xmms_autocharset_changed=1;
-+#ifdef DYNAMIC_ENCA
-+ charset_dynamic_enca_init();
-+#endif
-+}
-+
-+void xmms_autocharset_free() {
-+#ifdef AUTO_ENCA_SUPPORT
-+ int i,j;
-+#endif
-+ xmms_autocharset_iconv_close();
-+#ifdef AUTO_ENCA_SUPPORT
-+#ifdef DYNAMIC_ENCA
-+ if (enca_handle) {
-+#endif
-+ for (i=0;i<autocharset_list_ni;i++)
-+ if (!strcmp(autocharset_list[i].title,"Enca Library")) {
-+ g_free(autocharset_list[i].title);
-+ for (j=0;autocharset_list[i].encodings[j];j++) g_free(autocharset_list[i].encodings[j]);
-+ autocharset_list[i].encodings[0]=NULL;
-+ autocharset_list_ni--;
-+ break;
-+ }
-+ if (enca) {
-+ enca_analyser_free(enca);
-+ enca=NULL;
-+ }
-+#ifdef DYNAMIC_ENCA
-+ }
-+ if (enca_handle) {
-+ close_dynamic_lib(enca_handle);
-+ enca_handle=NULL;
-+ }
-+ dynamic_enca_initialised=0;
-+#endif
-+#endif
-+}
-+
-+static void xmms_autocharset_iconv_open() {
-+ const char **encodings;
-+ const char *output, *id3, *fs;
-+ int i;
-+
-+ assert(xmms_autocharset_changed>=0);
-+
-+ if ((!xmms_autocharset_changed)&&(!xmms_charset_changed)) return;
-+ xmms_autocharset_iconv_close();
-+ xmms_autocharset_changed=0;
-+
-+ xmms_autocharset_number = xmms_autocharset_number_charsets(0);
-+ if (!xmms_autocharset_number) return;
-+ xmms_autocharset_changed=-1;
-+
-+ xmms_autocharset = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ xmms_autocharset_id2utf = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ xmms_autocharset_id2id = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ xmms_autocharset_id2fs = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ xmms_autocharset_fs2id = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ if ((!xmms_autocharset)||(!xmms_autocharset_id2id)||(!xmms_autocharset_id2fs)||(!xmms_autocharset_fs2id)||(!xmms_autocharset_id2utf)) {
-+ if (xmms_autocharset) {
-+ free(xmms_autocharset);
-+ xmms_autocharset=NULL;
-+ }
-+ if (xmms_autocharset_id2id) {
-+ free(xmms_autocharset_id2id);
-+ xmms_autocharset_id2id=NULL;
-+ }
-+ if (xmms_autocharset_id2utf) {
-+ free(xmms_autocharset_id2utf);
-+ xmms_autocharset_id2utf=NULL;
-+ }
-+ if (xmms_autocharset_id2fs) {
-+ free(xmms_autocharset_id2fs);
-+ xmms_autocharset_id2fs=NULL;
-+ }
-+ if (xmms_autocharset_fs2id) {
-+ free(xmms_autocharset_fs2id);
-+ xmms_autocharset_fs2id=NULL;
-+ }
-+ xmms_autocharset_number = -1;
-+ perror("iconv: allocate memory");
-+ return;
-+ }
-+
-+
-+ if (xmms_charset_output) output=charset_list[xmms_charset_output];
-+ else output=charset_default;
-+ if (xmms_charset_id3) id3=charset_list[xmms_charset_id3];
-+ else id3=charset_default;
-+ if (xmms_charset_fs) fs=charset_list[xmms_charset_fs];
-+ else fs=output;
-+
-+ encodings = autocharset_list[xmms_autocharset_mode].encodings;
-+
-+ for (i=0;encodings[i];i++) {
-+ if (strcmp(output,encodings[i]))
-+ xmms_autocharset[i] = iconv_open(output,encodings[i]);
-+ else
-+ xmms_autocharset[i] = (iconv_t)-2;
-+
-+ if (strcmp(id3,encodings[i]))
-+ xmms_autocharset_id2id[i] = iconv_open(id3,encodings[i]);
-+ else
-+ xmms_autocharset_id2id[i] = (iconv_t)-2;
-+
-+ if (strcmp("UTF-8",encodings[i]))
-+ xmms_autocharset_id2utf[i] = iconv_open("UTF-8",encodings[i]);
-+ else
-+ xmms_autocharset_id2utf[i] = (iconv_t)-2;
-+
-+ if (strcmp(fs,encodings[i])) {
-+ xmms_autocharset_id2fs[i] = iconv_open(fs,encodings[i]);
-+ xmms_autocharset_fs2id[i] = iconv_open(encodings[i],fs);
-+ } else {
-+ xmms_autocharset_id2fs[i] = (iconv_t)-2;
-+ xmms_autocharset_fs2id[i] = (iconv_t)-2;
-+
-+ }
-+ }
-+ xmms_autocharset_changed=0;
-+}
-+
-+
-+static iconv_t xmms_autocharset_get(char *buf, int len) {
-+ int i;
-+ xmms_autocharset_iconv_open();
-+ if (xmms_autocharset_changed<0) return (iconv_t)-1;
-+ if ((xmms_autocharset)&&(xmms_autocharset_number>0)) {
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) return xmms_autocharset[i];
-+ }
-+ return (iconv_t)-1;
-+}
-+
-+static iconv_t xmms_autocharset_get_id2id(char *buf, int len) {
-+ int i;
-+ xmms_autocharset_iconv_open();
-+ if (xmms_autocharset_changed<0) return (iconv_t)-1;
-+ if ((xmms_autocharset_id2id)&&(xmms_autocharset_number>0)) {
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) return xmms_autocharset_id2id[i];
-+ }
-+ return (iconv_t)-1;
-+}
-+
-+static iconv_t xmms_autocharset_get_id2utf(char *buf, int len) {
-+ int i;
-+ xmms_autocharset_iconv_open();
-+ if (xmms_autocharset_changed<0) return (iconv_t)-1;
-+ if ((xmms_autocharset_id2utf)&&(xmms_autocharset_number>0)) {
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) return xmms_autocharset_id2utf[i];
-+ }
-+ return (iconv_t)-1;
-+}
-+
-+static iconv_t xmms_autocharset_get_id2fs(char *buf, int len) {
-+ int i;
-+ xmms_autocharset_iconv_open();
-+ if (xmms_autocharset_changed<0) return (iconv_t)-1;
-+ if ((xmms_autocharset_id2fs)&&(xmms_autocharset_number>0)) {
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) return xmms_autocharset_id2fs[i];
-+ }
-+ return (iconv_t)-1;
-+}
-+
-+#ifdef AUTO_ENCA_SUPPORT
-+static int autocharset_enca(char *buf, int len) {
-+ char *charset;
-+ EncaEncoding ee;
-+ int i,l;
-+
-+ if (!enca) return 0;
-+ l=strlen(buf);
-+ if ((len)&&(l>len)) l=len;
-+ ee=enca_analyse_const(enca,buf,l);
-+ if (ee.charset<0) return 0;
-+ charset=enca_charset_name(ee.charset, ENCA_NAME_STYLE_ICONV);
-+ for (i=0;autocharset_list[enca_pos].encodings[i];i++) {
-+ if (!strcmp(autocharset_list[enca_pos].encodings[i],charset)) return i;
-+ }
-+ return 0;
-+}
-+#endif
-+
-+/*****************************************************************************
-+************************ Recoding ********************************************
-+*****************************************************************************/
-+
-+static void xmms_charset_iconv_close() {
-+ if (iconv_id3 != (iconv_t)-1) {
-+ if (iconv_close(iconv_id3)<0) perror("iconv close: id3");
-+ iconv_id3 = (iconv_t)-1;
-+ }
-+ if (iconv_output != (iconv_t)-1) {
-+ if (iconv_close(iconv_output)<0) perror("iconv close: output");
-+ iconv_output = (iconv_t)-1;
-+ }
-+ if (iconv_fs != (iconv_t)-1) {
-+ if (iconv_close(iconv_fs)<0) perror("iconv close: fs");
-+ iconv_fs = (iconv_t)-1;
-+ }
-+ if (iconv_fsout != (iconv_t)-1) {
-+ if (iconv_close(iconv_fsout)<0) perror("iconv close: fs2out");
-+ iconv_fsout = (iconv_t)-1;
-+ }
-+ if (iconv_fs2pl != (iconv_t)-1) {
-+ if (iconv_close(iconv_fs2pl)<0) perror("iconv close: fs2pl");
-+ iconv_fs2pl = (iconv_t)-1;
-+ }
-+ if (iconv_pl2fs != (iconv_t)-1) {
-+ if (iconv_close(iconv_pl2fs)<0) perror("iconv close: pl2fs");
-+ iconv_pl2fs = (iconv_t)-1;
-+ }
-+ if (iconv_utf != (iconv_t)-1) {
-+ if (iconv_close(iconv_utf)<0) perror("iconv close: utf");
-+ iconv_utf=(iconv_t)-1;
-+ }
-+ if (iconv_ct2out != (iconv_t)-1) {
-+ if (iconv_close(iconv_ct2out)<0) perror("iconv close: ct2out");
-+ iconv_ct2out=(iconv_t)-1;
-+ }
-+}
-+
-+static void xmms_charset_iconv_open() {
-+ const char *id3, *output, *fs, *pl;
-+ assert(xmms_charset_changed>=0);
-+ if (!xmms_charset_changed) return;
-+
-+ xmms_charset_iconv_close();
-+ if (xmms_charset_id3) id3=charset_list[xmms_charset_id3];
-+ else id3=charset_default;
-+ if (xmms_charset_output) output=charset_list[xmms_charset_output];
-+ else output=charset_default;
-+ if (xmms_charset_fs) fs=charset_list[xmms_charset_fs];
-+ else fs=output;
-+ if (xmms_charset_pl) pl=charset_list[xmms_charset_pl];
-+ else pl=id3;
-+
-+ if (sure_default) {
-+ if (strcmp(charset_default,output)) {
-+ iconv_ct2out = iconv_open(output,charset_default);
-+ }
-+ }
-+
-+
-+ if ((xmms_charset_id3 != xmms_charset_output)&&(strcmp(id3,output))) {
-+ iconv_id3 = iconv_open(output, id3);
-+ iconv_output = iconv_open(id3, output);
-+ }
-+
-+ if (strcmp(fs,id3)) {
-+ iconv_fs = iconv_open(id3, fs);
-+ }
-+ if ((xmms_charset_fs)&&(xmms_charset_fs!=xmms_charset_output)) {
-+ iconv_fsout = iconv_open(output, fs);
-+ }
-+
-+ if (strcmp(fs,pl)) {
-+ iconv_fs2pl = iconv_open(pl, fs);
-+ iconv_pl2fs = iconv_open(fs,pl);
-+ }
-+
-+ if (strcmp(id3, "UTF-8")) {
-+ iconv_utf = iconv_open("UTF-8",id3);
-+ }
-+
-+ if (strcmp(fs, "UTF-8")) {
-+ recode_fs2utf=1;
-+ } else {
-+ recode_fs2utf=0;
-+ }
-+
-+ xmms_charset_changed = 0;
-+}
-+
-+
-+static int xmms_charset_number(char *c) {
-+ int i;
-+ if (!c) return 0;
-+ for (i=0;charset_list[i];i++)
-+ if (strcmp(charset_list[i], c)==0) return i;
-+ return 0; /* Default, - if not found */
-+}
-+
-+static void xmms_charset_setdefault() {
-+ char *l;
-+ char ltmp[3];
-+ int i;
-+#ifdef AUTO_ENCA_SUPPORT
-+ int n_charsets;
-+ int *charsets;
-+#endif
-+
-+ // Detecting default charset
-+/*
-+My routine is better!
-+#ifdef HAVE_CODESET
-+ char *cs;
-+ cs=nl_langinfo(CODESET);
-+ if (cs) {
-+ strncpy(charset_default,cs,LOCALE_STRING_LENGTH);
-+ charset_default[LOCALE_STRING_LENGTH-1]=0;
-+ } else {
-+ strcpy(charset_default,"UTF-8");
-+ }
-+#else
-+*/
-+ char *str1, *str2;
-+ str1 = setlocale(ENV_VARIABLE,"");
-+ if (str1) {
-+ str2 = strrchr(str1,'.');
-+ if (str2) strncpy(charset_default,str2+1,LOCALE_STRING_LENGTH);
-+ else strncpy(charset_default,str1,LOCALE_STRING_LENGTH);
-+ charset_default[LOCALE_STRING_LENGTH-1]=0;
-+ str2 = strchr(charset_default,'@');
-+ if (str2) *str2 = 0;
-+ sure_default=1;
-+ } else {
-+ strcpy(charset_default,"UTF-8");
-+ sure_default=0;
-+ }
-+/* #endif */
-+
-+ ltmp[2]=0;
-+
-+ // Detecting language
-+ l=setlocale(ENV_VARIABLE,"");
-+ if (!l) current_language=-1;
-+ else if ((strcmp(l,"C")==0)||(strcmp(l,"POSIX")==0)) current_language=-1;
-+ else {
-+ for (i=0;language_aliases[i].alias;i++)
-+ if (strncmp(l,language_aliases[i].alias,5)==0) {
-+ strncpy(ltmp,language_aliases[i].lang,2);
-+ break;
-+ }
-+ if (!language_aliases[i].alias) strncpy(ltmp,l,2);
-+ for (i=0;languages[i].sn;i++)
-+ if (strcmp(ltmp,languages[i].sn)==0) {
-+ current_language=i;
-+ break;
-+ }
-+ if (!languages[i].sn) current_language=-1;
-+ }
-+
-+#ifdef AUTO_ENCA_SUPPORT
-+#ifdef DYNAMIC_ENCA
-+ if (enca_handle) {
-+#endif
-+ if (enca) {
-+ enca_analyser_free(enca);
-+ enca=NULL;
-+ }
-+#ifdef DYNAMIC_ENCA
-+ }
-+#endif
-+#endif
-+
-+ if (current_language>=0) {
-+ charset_list=languages[current_language].enc;
-+ autocharset_list_ni=languages[current_language].n_autoenc;
-+ autocharset_list=languages[current_language].autoenc;
-+#ifdef AUTO_ENCA_SUPPORT
-+#ifdef DYNAMIC_ENCA
-+ charset_dynamic_enca_init();
-+ if (enca_handle) {
-+#endif
-+ if (autocharset_list_ni<CHARSET_MAX_AUTOENCODINGS) {
-+ for (i=0;i<autocharset_list_ni;i++)
-+ if (!strcmp(autocharset_list[i].title,"Enca Library")) break;
-+ if (i==autocharset_list_ni) {
-+ enca=enca_analyser_alloc(ltmp);
-+ if (enca) {
-+ enca_set_threshold(enca, 1);
-+ enca_set_multibyte(enca, 1);
-+ enca_set_ambiguity(enca, 1);
-+ enca_set_garbage_test(enca, 0);
-+ enca_set_filtering(enca, 0);
-+ enca_set_significant(enca,1);
-+ enca_set_termination_strictness(enca,0);
-+
-+ autocharset_list[autocharset_list_ni].title=g_strdup("Enca Library");
-+ if (autocharset_list[autocharset_list_ni].title) {
-+ charsets=enca_get_language_charsets(ltmp, &n_charsets);
-+ if (charsets) {
-+ if (n_charsets+2>CHARSET_MAX_ENCODINGS) n_charsets=CHARSET_MAX_ENCODINGS;
-+ autocharset_list[autocharset_list_ni].encodings[0]="UTF-8";
-+ for (i=1;i<n_charsets+1;i++) {
-+ autocharset_list[autocharset_list_ni].encodings[i]=g_strdup(enca_charset_name(charsets[i-1], ENCA_NAME_STYLE_ICONV));
-+ }
-+ free(charsets);
-+ autocharset_list[autocharset_list_ni].encodings[n_charsets+1]=0;
-+ autocharset_list[autocharset_list_ni].func=&autocharset_enca;
-+ enca_pos=autocharset_list_ni++;
-+ } else autocharset_list[autocharset_list_ni].encodings[0]=0;
-+ } else {
-+ enca_analyser_free(enca);
-+ enca=NULL;
-+ }
-+ }
-+ }
-+ }
-+#ifdef DYNAMIC_ENCA
-+ }
-+#endif
-+#endif
-+ }
-+}
-+
-+void xmms_charset_init(char *id3, char *output, char *fs, char *pl) {
-+ if (xmms_charset_changed<0) xmms_charset_setdefault();
-+
-+ xmms_charset_changed = 1;
-+ xmms_charset_id3 = xmms_charset_number(id3);
-+ xmms_charset_output = xmms_charset_number(output);
-+ xmms_charset_fs = xmms_charset_number(fs);
-+ xmms_charset_pl = xmms_charset_number(pl);
-+}
-+
-+void xmms_charset_free() {
-+ xmms_charset_iconv_close();
-+}
-+
-+void xmms_charset_new_charsets(int id3, int output, int fs, int pl) {
-+ if (xmms_charset_changed<0)
-+ xmms_charset_setdefault();
-+ else
-+ if ((xmms_charset_id3==id3)&&(xmms_charset_output==output)&&(xmms_charset_fs==fs)&&(xmms_charset_pl==pl)) return;
-+
-+ xmms_charset_changed = 1;
-+ xmms_charset_id3 = id3;
-+ xmms_charset_output = output;
-+ xmms_charset_fs = fs;
-+ xmms_charset_pl = pl;
-+}
-+
-+// Multi-byte strings still unsupported
-+static void iconv_copysymbol(char **in_buf, int *in_left, char **out_buf, int *out_left) {
-+ if ((out_left>0)&&(in_left>0)) {
-+ (**out_buf)=(**in_buf);
-+ (*out_buf)++;
-+ (*in_buf)++;
-+ (*in_left)--;
-+ (*out_left)--;
-+ }
-+}
-+
-+static char *xmms_charset_recode(iconv_t icnv, char *buf, int len, int *rlen) {
-+ char *in_buf, *out_buf, *res, err;
-+ int in_left, out_left, olen;
-+ int errors=0;
-+
-+ assert(buf);
-+
-+ if (!len) {
-+ len=strlen(buf);
-+ } else {
-+ olen=strlen(buf);
-+ if (olen<len) len=olen;
-+ }
-+
-+ if (iconv(icnv, NULL, NULL, NULL, NULL) == -1) {
-+ perror( "iconv convert: initialize" );
-+ return NULL;
-+ }
-+
-+ in_buf = buf;
-+ in_left = len;
-+ out_buf = &xmms_charset_tmp;
-+ out_left = CHARSET_MAX_STRING_SIZE;
-+
-+loop:
-+ err=iconv(icnv, &in_buf, &in_left, &out_buf, &out_left);
-+// printf("%s, %i %u\n",buf,err,errno);
-+ if (err<0) {
-+ if (errno==E2BIG) {
-+ *(int*)(xmms_charset_tmp+(CHARSET_MAX_STRING_SIZE-sizeof(int)))=0;
-+ } else if (errno==EILSEQ) {
-+ if (errors<CHARSET_MAX_ERRORS) {
-+ errors++;
-+ iconv_copysymbol(&in_buf, &in_left, &out_buf, &out_left);
-+ if (in_left>0) goto loop;
-+ } else {
-+ perror("iconv convert: invalid encoding?");
-+ return NULL;
-+ }
-+ } else {
-+ perror("iconv convert: convert");
-+ return NULL;
-+ }
-+ }
-+
-+ olen = CHARSET_MAX_STRING_SIZE - out_left;
-+ res = g_malloc(olen+1);
-+ if (!res) {
-+ perror( "iconv convert: malloc" );
-+ return NULL;
-+ }
-+
-+ memcpy(res,xmms_charset_tmp,olen);
-+ res[olen]=0;
-+ if (rlen) *rlen=olen;
-+ return res;
-+}
-+
-+char *xmms_charset_recode_ct2out(char *buf, int len, int *rlen) {
-+ xmms_charset_iconv_open();
-+ if (iconv_ct2out != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_ct2out, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_id3(char *buf, int len, int *rlen) {
-+ iconv_t icnv;
-+
-+ xmms_charset_iconv_open();
-+ xmms_autocharset_iconv_open();
-+
-+ icnv = xmms_autocharset_get(buf,len);
-+
-+ if (icnv == (iconv_t)-2) return NULL;
-+
-+ if (icnv != (iconv_t)-1)
-+ return xmms_charset_recode(icnv, buf, len, rlen);
-+
-+ if (iconv_id3 != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_id3, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_output(char *buf, int len, int *rlen) {
-+ xmms_charset_iconv_open();
-+ if (iconv_output != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_output, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fs(char *buf, int len, int *rlen) {
-+ iconv_t icnv;
-+ char *tmp1, *tmp2;
-+
-+ xmms_charset_iconv_open();
-+
-+ if (xmms_autocharset_fs) {
-+ icnv = xmms_autocharset_get(buf,len);
-+ if (icnv != (iconv_t)-1) {
-+ if (icnv != (iconv_t)-2) {
-+ tmp1=xmms_charset_recode(icnv, buf, len, rlen);
-+ if (tmp1) {
-+ if (iconv_output != (iconv_t)-1) {
-+ tmp2=xmms_charset_recode(iconv_output,tmp1,0,rlen);
-+ free(tmp1);
-+ return tmp2;
-+ } else return tmp1;
-+ }
-+ }
-+ else if (iconv_output!=(iconv_t)-1) return xmms_charset_recode(iconv_output,buf,len,rlen);
-+ else return NULL;
-+ }
-+ }
-+ if (iconv_fs != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_fs, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fsout(char *buf, int len, int *rlen) {
-+ iconv_t icnv;
-+
-+ xmms_charset_iconv_open();
-+
-+ if (xmms_autocharset_fs) {
-+ icnv = xmms_autocharset_get(buf,len);
-+ if (icnv == (iconv_t)-2) return NULL;
-+ if (icnv != (iconv_t)-1) return xmms_charset_recode(icnv, buf, len, rlen);
-+ }
-+ if (iconv_fsout != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_fsout, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fs2pl(char *buf, int len, int *rlen) {
-+ iconv_t icnv;
-+ char *fs;
-+/*
-+ int i;
-+*/
-+ if (!xmms_charset_fm) return NULL;
-+ xmms_charset_iconv_open();
-+/*
-+ if (xmms_autocharset_fs) {
-+ xmms_autocharset_iconv_open();
-+ if (xmms_charset_fs) fs=charset_list[xmms_charset_fs];
-+ else {
-+ if (xmms_charset_output) fs=charset_list[xmms_charset_output];
-+ else fs=charset_default;
-+ }
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) {
-+ if (strcmp(charset_list[i],fs)) return NULL;
-+ }
-+ }
-+*/
-+ if (xmms_autocharset_fs) {
-+ icnv = xmms_autocharset_get_id2fs(buf,len);
-+ if (icnv!=(iconv_t)-2) {
-+ if (icnv!=(iconv_t)-1) {
-+ fs=xmms_charset_recode(icnv,buf,len,rlen);
-+ if (fs) {
-+ if (iconv_fs2pl != (iconv_t)-1) {
-+ buf=xmms_charset_recode(iconv_fs2pl, fs, 0, rlen);
-+ free(fs);
-+ return buf;
-+ } else
-+ return fs;
-+ } else return NULL;
-+ }
-+ }
-+ }
-+
-+ if (iconv_fs2pl != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_fs2pl, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_pl2fs(char *buf, int len, int *rlen) {
-+ iconv_t icnv;
-+
-+ if (!xmms_charset_fm) return NULL;
-+ xmms_charset_iconv_open();
-+
-+ icnv = xmms_autocharset_get_id2fs(buf,len);
-+
-+ if (icnv==(iconv_t)-2) return NULL;
-+
-+ if (icnv != (iconv_t)-1) {
-+ return xmms_charset_recode(icnv, buf, len, rlen);
-+ }
-+ if (iconv_pl2fs != (iconv_t)-1) {
-+ return xmms_charset_recode(iconv_pl2fs, buf, len, rlen);
-+ }
-+ return NULL;
-+}
-+
-+static int check_file(char *path, char *name) {
-+ struct stat st;
-+ char *temp;
-+
-+ temp = g_strdup_printf("%s/%s", path, name);
-+ if (!temp) return 0;
-+ stat(temp,&st);
-+ free(temp);
-+
-+ if (S_ISREG(st.st_mode)) return 1;
-+ return 0;
-+}
-+
-+char *xmms_charset_recode_fs2fs(char *path, char *buf) {
-+ int i,len;
-+ const char **encodings;
-+ char *tmp;
-+ if (!xmms_charset_fm) return NULL;
-+ if (!xmms_autocharset_fs) return NULL;
-+
-+ xmms_charset_iconv_open();
-+ xmms_autocharset_iconv_open();
-+ if (xmms_autocharset_changed<0) return NULL;
-+ if (!xmms_autocharset_fs2id) return NULL;
-+
-+ if (check_file(path,buf)) return NULL;
-+ encodings = autocharset_list[xmms_autocharset_mode].encodings;
-+
-+ len=strlen(buf);
-+ for (i=0;encodings[i];i++) {
-+ if ((xmms_autocharset_fs2id[i]!=(iconv_t)-1)&&(xmms_autocharset_fs2id[i]!=(iconv_t)-2)) {
-+ tmp=xmms_charset_recode(xmms_autocharset_fs2id[i],buf,len,0);
-+ if (tmp) {
-+ if (check_file(path,tmp)) return tmp;
-+ free(tmp);
-+ }
-+ }
-+ }
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_id2utf(char *buf, int len, int *rlen) {
-+ char *str = NULL;
-+ int olen;
-+ iconv_t icnv;
-+
-+ xmms_charset_iconv_open();
-+
-+ icnv = xmms_autocharset_get_id2id(buf,len);
-+ if ((icnv != (iconv_t)-1)&&(icnv != (iconv_t)-2)) {
-+ str = xmms_charset_recode(icnv, buf, len, &olen);
-+ if (!str) return NULL;
-+ len = olen;
-+ }
-+
-+ xmms_charset_iconv_open();
-+ if (iconv_utf != (iconv_t)-1) {
-+ buf=xmms_charset_recode(iconv_utf, str ? str : buf, len, rlen);
-+ if (str) free(str);
-+ return buf;
-+ }
-+
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fs2utf(char *buf, int len, int *rlen) {
-+ int olen;
-+ char *str = NULL;
-+ iconv_t icnv;
-+
-+ xmms_charset_iconv_open();
-+
-+ if (xmms_autocharset_fs) {
-+ icnv = xmms_autocharset_get_id2utf(buf,len);
-+ if (icnv==(iconv_t)-2) return NULL;
-+ if (icnv!=(iconv_t)-1) {
-+ str = xmms_charset_recode(icnv, buf, len, rlen);
-+ if (str) return str;
-+ }
-+ }
-+
-+ if (recode_fs2utf) {
-+ if (iconv_fs != (iconv_t)-1) {
-+ str = xmms_charset_recode(iconv_fs, buf, len, &olen);
-+ if (!str) return NULL;
-+ len=olen;
-+ }
-+ if (iconv_utf != (iconv_t)-1) {
-+ buf = xmms_charset_recode(iconv_utf, str ? str : buf, len, &olen);
-+ if (str) free(str);
-+ } else if (str) {
-+ buf = str;
-+ } else {
-+ buf = NULL;
-+ }
-+ if (rlen) *rlen=olen;
-+ return buf;
-+ }
-+ return NULL;
-+}
-+
-diff -dPNur xmms-1.2.8/libxmms/charset_config.h xmms-1.2.8-patched/libxmms/charset_config.h
---- xmms-1.2.8/libxmms/charset_config.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/charset_config.h 2003-10-24 13:31:47.000000000 +0200
-@@ -0,0 +1,37 @@
-+/* Misc configuration options */
-+
-+#define CHARSET_MAX_STRING_SIZE 1024 /* 256 symbols in UTF-32 */
-+#define CHARSET_MAX_ERRORS 3
-+
-+const struct language_alias_t language_aliases[] = {
-+ { "cs_SK", "sk" },
-+ { "ru_UA", "uk" },
-+ { NULL, NULL}
-+};
-+
-+struct language_t languages[] = {
-+{"ru","Russian",{"Default","KOI8-R","CP1251","UTF-8","IBM866","MACCYRILLIC","ISO8859-5", NULL},3,{
-+ {"Off", NULL, {NULL}},
-+ {"Russian", &autocharset_russian, {"CP1251","KOI8-R","UTF-8","IBM866"} },
-+ {"Russian UpCase",&autocharset_russian_uc, {"CP1251","KOI8-R","UTF-8","IBM866"} }
-+}},
-+{"uk","Ukrainian",{"Default","KOI8-U","CP1251","UTF-8","IBM855","MACCYRILLIC","ISO8859-5","CP1125", NULL},3,{
-+ {"Off", NULL, {NULL}},
-+ {"Russian", &autocharset_russian, {"CP1251","KOI8-R","UTF-8","IBM866"} },
-+ {"Russian UpCase",&autocharset_russian_uc, {"CP1251","KOI8-R","UTF-8","IBM866"} }
-+}},
-+{NULL,NULL,{NULL},0}
-+};
-+
-+const charset_list_t charset_list_default = { "Default", "KOI8-R", "CP1251", "CP866", "UTF-8", NULL };
-+const char **charset_list=charset_list_default;
-+
-+#define autocharset_list_ni_default 3
-+struct autocharset_list_t autocharset_list_default[] = {
-+ {"Off", NULL, {NULL}},
-+ {"Russian", &autocharset_russian, {"CP1251","KOI8-R","UTF-8","IBM866"} },
-+ {"Russian UpCase",&autocharset_russian_uc, {"CP1251","KOI8-R","UTF-8","IBM866"} }
-+};
-+
-+int autocharset_list_ni=autocharset_list_ni_default;
-+struct autocharset_list_t *autocharset_list=autocharset_list_default;
-diff -dPNur xmms-1.2.8/libxmms/charset_defines.h xmms-1.2.8-patched/libxmms/charset_defines.h
---- xmms-1.2.8/libxmms/charset_defines.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/charset_defines.h 2003-10-24 20:16:37.000000000 +0200
-@@ -0,0 +1,17 @@
-+#define DYNAMIC_ENCA
-+
-+#ifdef HPUX
-+#undef DYNAMIC_ENCA
-+#endif
-+
-+#ifdef DYNAMIC_ENCA
-+#define AUTO_ENCA_SUPPORT
-+#define ENCA_LIB "libenca.so.0"
-+#else
-+#undef AUTO_ENCA_SUPPORT
-+#endif
-+
-+
-+#define CHARSET_MAX_ENCODINGS 16
-+#define CHARSET_MAX_AUTOENCODINGS 5
-+#define ENV_VARIABLE LC_CTYPE
-diff -dPNur xmms-1.2.8/libxmms/charset_fake_enca.h xmms-1.2.8-patched/libxmms/charset_fake_enca.h
---- xmms-1.2.8/libxmms/charset_fake_enca.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/charset_fake_enca.h 2003-10-24 20:01:30.000000000 +0200
-@@ -0,0 +1,289 @@
-+/* This header file is in the public domain. */
-+#ifndef ENCA_H
-+#define ENCA_H
-+
-+#include <stdlib.h>
-+/* According to autoconf stdlib may not be enough for size_t */
-+#include <sys/types.h>
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif /* __cplusplus */
-+
-+/* Enumerated types */
-+
-+/**
-+ * EncaSurface:
-+ * @ENCA_SURFACE_EOL_CR: End-of-lines are represented with CR's.
-+ * @ENCA_SURFACE_EOL_LF: End-of-lines are represented with LF's.
-+ * @ENCA_SURFACE_EOL_CRLF: End-of-lines are represented with CRLF's.
-+ * @ENCA_SURFACE_EOL_MIX: Several end-of-line types, mixed.
-+ * @ENCA_SURFACE_EOL_BIN: End-of-line concept not applicable (binary data).
-+ * @ENCA_SURFACE_MASK_EOL: Mask for end-of-line surfaces.
-+ * @ENCA_SURFACE_PERM_21: Odd and even bytes swapped.
-+ * @ENCA_SURFACE_PERM_4321: Reversed byte sequence in 4byte words.
-+ * @ENCA_SURFACE_PERM_MIX: Chunks with both endianess, concatenated.
-+ * @ENCA_SURFACE_MASK_PERM: Mask for permutation surfaces.
-+ * @ENCA_SURFACE_QP: Quoted printables.
-+ * @ENCA_SURFACE_REMOVE: Recode `remove' surface.
-+ * @ENCA_SURFACE_UNKNOWN: Unknown surface.
-+ * @ENCA_SURFACE_MASK_ALL: Mask for all bits, withnout #ENCA_SURFACE_UNKNOWN.
-+ *
-+ * Surface flags.
-+ **/
-+typedef enum { /*< flags >*/
-+ ENCA_SURFACE_EOL_CR = 1 << 0,
-+ ENCA_SURFACE_EOL_LF = 1 << 1,
-+ ENCA_SURFACE_EOL_CRLF = 1 << 2,
-+ ENCA_SURFACE_EOL_MIX = 1 << 3,
-+ ENCA_SURFACE_EOL_BIN = 1 << 4,
-+ ENCA_SURFACE_MASK_EOL = (ENCA_SURFACE_EOL_CR
-+ | ENCA_SURFACE_EOL_LF
-+ | ENCA_SURFACE_EOL_CRLF
-+ | ENCA_SURFACE_EOL_MIX
-+ | ENCA_SURFACE_EOL_BIN),
-+ ENCA_SURFACE_PERM_21 = 1 << 5,
-+ ENCA_SURFACE_PERM_4321 = 1 << 6,
-+ ENCA_SURFACE_PERM_MIX = 1 << 7,
-+ ENCA_SURFACE_MASK_PERM = (ENCA_SURFACE_PERM_21
-+ | ENCA_SURFACE_PERM_4321
-+ | ENCA_SURFACE_PERM_MIX),
-+ ENCA_SURFACE_QP = 1 << 8,
-+ ENCA_SURFACE_REMOVE = 1 << 13,
-+ ENCA_SURFACE_UNKNOWN = 1 << 14,
-+ ENCA_SURFACE_MASK_ALL = (ENCA_SURFACE_MASK_EOL
-+ | ENCA_SURFACE_MASK_PERM
-+ | ENCA_SURFACE_QP
-+ | ENCA_SURFACE_REMOVE)
-+} EncaSurface;
-+
-+/**
-+ * EncaNameStyle:
-+ * @ENCA_NAME_STYLE_ENCA: Default, implicit charset name in Enca.
-+ * @ENCA_NAME_STYLE_RFC1345: RFC 1345 charset name.
-+ * @ENCA_NAME_STYLE_CSTOCS: Cstocs charset name.
-+ * @ENCA_NAME_STYLE_ICONV: Iconv charset name.
-+ * @ENCA_NAME_STYLE_HUMAN: Human comprehensible description.
-+ *
-+ * Charset naming styles and conventions.
-+ **/
-+typedef enum {
-+ ENCA_NAME_STYLE_ENCA,
-+ ENCA_NAME_STYLE_RFC1345,
-+ ENCA_NAME_STYLE_CSTOCS,
-+ ENCA_NAME_STYLE_ICONV,
-+ ENCA_NAME_STYLE_HUMAN
-+} EncaNameStyle;
-+
-+/**
-+ * EncaCharsetFlags:
-+ * @ENCA_CHARSET_7BIT: Characters are represented with 7bit characters.
-+ * @ENCA_CHARSET_8BIT: Characters are represented with bytes.
-+ * @ENCA_CHARSET_16BIT: Characters are represented with 2byte words.
-+ * @ENCA_CHARSET_32BIT: Characters are represented with 4byte words.
-+ * @ENCA_CHARSET_FIXED: One characters consists of one fundamental piece.
-+ * @ENCA_CHARSET_VARIABLE: One character consists of variable number of
-+ * fundamental pieces.
-+ * @ENCA_CHARSET_BINARY: Charset is binary from ASCII viewpoint.
-+ * @ENCA_CHARSET_REGULAR: Language dependent (8bit) charset.
-+ * @ENCA_CHARSET_MULTIBYTE: Multibyte charset.
-+ *
-+ * Charset properties.
-+ *
-+ * Flags %ENCA_CHARSET_7BIT, %ENCA_CHARSET_8BIT, %ENCA_CHARSET_16BIT,
-+ * %ENCA_CHARSET_32BIT tell how many bits a `fundamental piece' consists of.
-+ * This is different from bits per character; r.g. UTF-8 consists of 8bit
-+ * pieces (bytes), but character can be composed from 1 to 6 of them.
-+ **/
-+typedef enum { /*< flags >*/
-+ ENCA_CHARSET_7BIT = 1 << 0,
-+ ENCA_CHARSET_8BIT = 1 << 1,
-+ ENCA_CHARSET_16BIT = 1 << 2,
-+ ENCA_CHARSET_32BIT = 1 << 3,
-+ ENCA_CHARSET_FIXED = 1 << 4,
-+ ENCA_CHARSET_VARIABLE = 1 << 5,
-+ ENCA_CHARSET_BINARY = 1 << 6,
-+ ENCA_CHARSET_REGULAR = 1 << 7,
-+ ENCA_CHARSET_MULTIBYTE = 1 << 8
-+} EncaCharsetFlags;
-+
-+/**
-+ * EncaErrno:
-+ * @ENCA_EOK: OK.
-+ * @ENCA_EINVALUE: Invalid value (usually of an option).
-+ * @ENCA_EEMPTY: Sample is empty.
-+ * @ENCA_EFILTERED: After filtering, (almost) nothing remained.
-+ * @ENCA_ENOCS8: Mulitibyte tests failed and language contains no 8bit charsets.
-+ * @ENCA_ESIGNIF: Too few significant characters.
-+ * @ENCA_EWINNER: No clear winner.
-+ * @ENCA_EGARBAGE: Sample is garbage.
-+ *
-+ * Error codes.
-+ **/
-+typedef enum {
-+ ENCA_EOK = 0,
-+ ENCA_EINVALUE,
-+ ENCA_EEMPTY,
-+ ENCA_EFILTERED,
-+ ENCA_ENOCS8,
-+ ENCA_ESIGNIF,
-+ ENCA_EWINNER,
-+ ENCA_EGARBAGE
-+} EncaErrno;
-+
-+/**
-+ * ENCA_CS_UNKNOWN:
-+ *
-+ * Unknown character set id.
-+ *
-+ * Use enca_charset_is_known() to check for unknown charset instead of direct
-+ * comparsion.
-+ **/
-+#define ENCA_CS_UNKNOWN (-1)
-+
-+/**
-+ * ENCA_NOT_A_CHAR:
-+ *
-+ * Not-a-character in unicode tables.
-+ **/
-+#define ENCA_NOT_A_CHAR 0xffff
-+
-+/* Published (opaque) typedefs */
-+typedef struct _EncaAnalyserState *EncaAnalyser;
-+
-+/* Public (transparent) typedefs */
-+typedef struct _EncaEncoding EncaEncoding;
-+
-+/**
-+ * EncaEncoding:
-+ * @charset: Numeric charset identifier.
-+ * @surface: Surface flags.
-+ *
-+ * Encoding, i.e. charset and surface.
-+ *
-+ * This is what enca_analyse() and enca_analyse_const() return.
-+ *
-+ * The @charset field is an opaque numerical charset identifier, which has no
-+ * meaning outside Enca library.
-+ * You will probably want to use it only as enca_charset_name() argument.
-+ * It is only guaranteed not to change meaning
-+ * during program execution time; change of its interpretation (e.g. due to
-+ * addition of new charsets) is not considered API change.
-+ *
-+ * The @surface field is a combination of #EncaSurface flags. You may want
-+ * to ignore it completely; you should use enca_set_interpreted_surfaces()
-+ * to disable weird surfaces then.
-+ **/
-+struct _EncaEncoding { int charset; EncaSurface surface; };
-+
-+void (*enca_set_multibyte) (EncaAnalyser analyser, int multibyte);
-+void (*enca_set_interpreted_surfaces) (EncaAnalyser analyser, int interpreted_surfaces);
-+void (*enca_set_ambiguity) (EncaAnalyser analyser, int ambiguity);
-+void (*enca_set_filtering) (EncaAnalyser analyser, int filtering);
-+void (*enca_set_garbage_test) (EncaAnalyser analyser, int garabage_test);
-+void (*enca_set_termination_strictness) (EncaAnalyser analyser, int termination_strictness);
-+int (*enca_set_significant) (EncaAnalyser analyser, size_t significant);
-+int (*enca_set_threshold) (EncaAnalyser analyser, double threshold);
-+const char* (*enca_charset_name) (int charset, EncaNameStyle whatname);
-+int* (*enca_get_language_charsets) (const char *langname, size_t *n);
-+EncaAnalyser (*enca_analyser_alloc) (const char *langname);
-+void (*enca_analyser_free) (EncaAnalyser analyser);
-+EncaEncoding (*enca_analyse_const) (EncaAnalyser analyser,const unsigned char *buffer, size_t size);
-+
-+/**
-+ * enca_charset_is_known:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when the charset is known (i.e. it's not
-+ * ENCA_CS_UNKNOWN).
-+ **/
-+#define enca_charset_is_known(cs) \
-+ ((cs) != ENCA_CS_UNKNOWN)
-+
-+/**
-+ * enca_charset_is_7bit:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when characters are represented with 7bit characters.
-+ **/
-+#define enca_charset_is_7bit(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_7BIT)
-+
-+/**
-+ * enca_charset_is_8bit:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when characters are represented with bytes.
-+ **/
-+#define enca_charset_is_8bit(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_8BIT)
-+
-+/**
-+ * enca_charset_is_16bit:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when characters are represented with 2byte words.
-+ **/
-+#define enca_charset_is_16bit(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_16BIT)
-+
-+/**
-+ * enca_charset_is_32bit:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when characters are represented with 4byte words.
-+ **/
-+#define enca_charset_is_32bit(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_32BIT)
-+
-+/**
-+ * enca_charset_is_fixed:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when one characters consists of one fundamental piece.
-+ **/
-+#define enca_charset_is_fixed(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_FIXED)
-+
-+/**
-+ * enca_charset_is_variable:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when one character consists of variable number of
-+ * fundamental pieces.
-+ **/
-+#define enca_charset_is_variable(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_VARIABLE)
-+
-+/**
-+ * enca_charset_is_binary:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when charset is binary from ASCII viewpoint.
-+ **/
-+#define enca_charset_is_binary(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_BINARY)
-+
-+/**
-+ * enca_charset_is_regular:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when charset is language dependent (8bit) charset.
-+ **/
-+#define enca_charset_is_regular(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_REGULAR)
-+
-+/**
-+ * enca_charset_is_multibyte:
-+ * @cs: Charset id.
-+ *
-+ * Expands to nonzero when charset is multibyte.
-+ **/
-+#define enca_charset_is_multibyte(cs) \
-+ (enca_charset_properties(cs) & ENCA_CHARSET_MULTIBYTE)
-+
-+#ifdef __cplusplus
-+}
-+#endif /* __cplusplus */
-+
-+#endif
-diff -dPNur xmms-1.2.8/libxmms/charset.h xmms-1.2.8-patched/libxmms/charset.h
---- xmms-1.2.8/libxmms/charset.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/charset.h 2003-10-24 13:31:19.000000000 +0200
-@@ -0,0 +1,80 @@
-+#ifndef XMMS_CHARSET_H
-+#define XMMS_CHARSET_H
-+
-+#include "charset_defines.h"
-+
-+int autocharset_russian(char *buf,int len);
-+int autocharset_russian_uc(char *buf,int len);
-+
-+#ifdef AUTO_ENCA_SUPPORT
-+static int autocharset_enca(char *buf, int len);
-+#endif
-+
-+/*
-+typedef char *(*recode_function)(char *buf, int len, int *rlen);
-+
-+struct plugin_options_t {
-+ recode_function fs;
-+ recode_function tag;
-+ recode_function after;
-+};
-+
-+typedef struct plugin_options_t PluginOptions;
-+*/
-+
-+struct language_alias_t {
-+ char *alias;
-+ char *lang;
-+};
-+
-+typedef char *charset_list_t[CHARSET_MAX_ENCODINGS];
-+
-+struct autocharset_list_t {
-+ char *title;
-+ int (*func)(char *buf, int len);
-+ charset_list_t encodings;
-+};
-+
-+
-+struct language_t {
-+ char *sn;
-+ char *name;
-+ charset_list_t enc;
-+ unsigned int n_autoenc;
-+ struct autocharset_list_t autoenc[CHARSET_MAX_AUTOENCODINGS];
-+};
-+
-+extern const char **charset_list;
-+extern int autocharset_list_ni;
-+extern struct autocharset_list_t *autocharset_list;
-+
-+/* Data Support functions */
-+const char *charset_get_output_charset();
-+
-+/*
-+void *charset_set_current_options(PluginOptions *cpo);
-+PluginOptions *charset_get_current_options();
-+*/
-+
-+/* Initialization functions */
-+void xmms_autocharset_new_mode(int m, int fs, int fm);
-+void xmms_autocharset_init(int m);
-+void xmms_autocharset_free();
-+
-+void xmms_charset_init(char *id3, char *output, char *fs, char *pl);
-+void xmms_charset_free();
-+void xmms_charset_new_charsets(int id3, int output, int fs, int pl);
-+
-+/* Recoding functions */
-+char *xmms_charset_recode_ct2out(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_id3(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_output(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fs(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fsout(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_id2utf(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fs2utf(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fs2pl(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_pl2fs(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fs2fs(char *path, char *buf);
-+
-+#endif /* XMMS_CHARSET_H */
-diff -dPNur xmms-1.2.8/libxmms/Makefile.am xmms-1.2.8-patched/libxmms/Makefile.am
---- xmms-1.2.8/libxmms/Makefile.am 2003-09-04 23:00:18.000000000 +0200
-+++ xmms-1.2.8-patched/libxmms/Makefile.am 2003-10-22 11:44:14.000000000 +0200
-@@ -15,7 +15,8 @@
- formatter.c formatter.h \
- titlestring.c titlestring.h \
- xentry.c xentry.h \
--xconvert.c xconvert.h
-+xconvert.c xconvert.h \
-+charset.c charset.h charset_auto_russian.h charset_config.h russian_table.h
-
--xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h
-+xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h charset.h charset_auto_russian.h russian_table.h
-
-diff -dPNur xmms-1.2.8/libxmms/Makefile.in xmms-1.2.8-patched/libxmms/Makefile.in
---- xmms-1.2.8/libxmms/Makefile.in 2003-09-04 23:01:19.000000000 +0200
-+++ xmms-1.2.8-patched/libxmms/Makefile.in 2003-10-22 11:44:14.000000000 +0200
-@@ -101,10 +101,10 @@
- formatter.c formatter.h \
- titlestring.c titlestring.h \
- xentry.c xentry.h \
--xconvert.c xconvert.h
--
-+xconvert.c xconvert.h \
-+charset.c charset.h charset_auto_russian.h charset_config.h russian_table.h
-
--xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h
-+xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h charset.h charset_auto_russian.h charset_config.h russian_table.h
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
- mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
- CONFIG_HEADER = config.h
-@@ -118,7 +118,7 @@
- LIBS = @LIBS@
- libxmms_la_DEPENDENCIES =
- libxmms_la_OBJECTS = configfile.lo xmmsctrl.lo dirbrowser.lo util.lo \
--formatter.lo titlestring.lo xentry.lo xconvert.lo
-+formatter.lo titlestring.lo xentry.lo xconvert.lo charset.lo
- CFLAGS = @CFLAGS@
- COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-diff -dPNur xmms-1.2.8/libxmms/russian_table.h xmms-1.2.8-patched/libxmms/russian_table.h
---- xmms-1.2.8/libxmms/russian_table.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/russian_table.h 2003-10-22 17:38:01.000000000 +0200
-@@ -0,0 +1,899 @@
-+static const lng_stat2 enc_koi[]={
-+{'','',0.602060,-2.000000,1.959041}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.544068,0.778151,0.698970},
-+{'','',1.949390,-2.000000,0.698970}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394}, {'','',1.602060,0.602060,-2.000000}, {'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030},
-+{'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',2.187521,0.698970,-2.000000}, {'','',0.778151,0.698970,0.477121}, {'','',1.505150,-2.000000,0.477121}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',2.603144,-2.000000,1.204120},
-+{'','',3.235528,-2.000000,3.228144}, {'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',2.884795,1.301030,0.602060}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292}, {'','',2.269513,1.973128,2.103804}, {'','',3.408749,2.796574,1.973128},
-+{'','',3.176959,2.136721,3.241546}, {'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847}, {'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959}, {'','',2.056905,-2.000000,-2.000000},
-+{'','',3.446848,1.863323,1.278754}, {'','',2.975432,-2.000000,3.740994}, {'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093}, {'','',2.565848,0.903090,0.954243}, {'','',3.684756,1.591065,1.612784}, {'','',3.977312,1.838849,2.736397},
-+{'','',3.967501,1.698970,3.025715}, {'','',3.457125,-2.000000,2.478566}, {'','',2.012837,-2.000000,-2.000000}, {'','',2.847573,-2.000000,1.322219}, {'','',3.496653,-2.000000,1.939519}, {'','',0.778151,1.041393,-2.000000}, {'','',3.068557,3.068928,2.720986}, {'','',1.477121,-2.000000,-2.000000},
-+{'','',1.672098,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634}, {'','',0.954243,-2.000000,-2.000000}, {'','',2.064458,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060}, {'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000},
-+{'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453}, {'','',2.448706,-2.000000,3.211654}, {'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000}, {'','',3.124504,3.405176,2.411620},
-+{'','',2.071882,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',2.068186,1.724276,1.113943}, {'','',3.068186,3.948217,3.158965}, {'','',1.322219,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.859739,-2.000000,-2.000000},
-+{'','',1.568202,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',1.113943,-2.000000,0.301030}, {'','',3.072985,1.939519,3.070038}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.966142,2.863323,2.898176}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000},
-+{'','',2.882525,1.785330,0.954243}, {'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',-2.000000,0.477121,0.778151}, {'','',1.568202,0.477121,2.597695}, {'','',1.662758,2.060698,0.000000},
-+{'','',0.602060,-2.000000,0.845098}, {'','',2.093422,1.518514,2.846955}, {'','',2.149219,2.079181,0.954243}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.900367,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000}, {'','',3.952889,3.690728,3.209515},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.431364,-2.000000,-2.000000}, {'','',2.204120,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000},
-+{'','',3.762978,2.660865,-2.000000}, {'','',3.771587,3.825621,2.952308}, {'','',2.378398,-2.000000,-2.000000}, {'','',2.678518,2.453318,2.550228}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822},
-+{'','',1.716003,3.116940,-2.000000}, {'','',2.831230,3.243782,-2.000000}, {'','',2.887054,1.579784,3.237795}, {'','',2.993436,2.401401,2.866878}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.161368,-2.000000,-2.000000},
-+{'','',1.462398,-2.000000,-2.000000}, {'','',2.330414,1.204120,2.632457}, {'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',2.627366,0.301030,3.066326}, {'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926}, {'','',1.819544,0.000000,1.732394},
-+{'','',3.832445,3.449324,2.363612}, {'','',2.981366,2.565848,2.936011}, {'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452}, {'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454},
-+{'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393}, {'','',2.841359,-2.000000,2.127105}, {'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000}, {'','',3.389166,2.158362,2.212188},
-+{'','',3.679610,2.413300,2.906335}, {'','',3.492621,1.716003,3.151370}, {'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',3.590396,-2.000000,1.799341}, {'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784}, {'','',3.105169,-2.000000,-2.000000},
-+{'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.342423,2.000000,0.000000}, {'','',1.477121,-2.000000,0.301030},
-+{'','',1.041393,-2.000000,1.000000}, {'','',1.623249,1.812913,1.973128}, {'','',2.477121,0.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',-2.000000,1.462398,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.366236,2.911690,2.912222},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',3.451633,2.836957,-2.000000}, {'','',2.638489,3.002166,2.585461}, {'','',0.301030,0.000000,0.000000}, {'','',3.289589,2.103804,2.824126}, {'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000},
-+{'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',1.000000,1.579784,-2.000000},
-+{'','',-2.000000,1.342423,-2.000000}, {'','',1.397940,0.845098,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.181844,-2.000000,-2.000000}, {'','',3.066326,2.742725,2.705008}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.618048,2.220108,2.615950}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000}, {'','',2.313867,2.056905,-2.000000}, {'','',3.050380,0.602060,-2.000000},
-+{'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030}, {'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540}, {'','',2.630428,2.725912,-2.000000}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',1.255273,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.439333,1.414973,0.000000}, {'','',3.192567,1.929419,1.342423}, {'','',3.406881,1.079181,2.103804},
-+{'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.743510,-2.000000,1.812913}, {'','',3.038223,2.281033,2.232996}, {'','',3.008600,2.872156,3.443263}, {'','',1.591065,0.000000,3.152594}, {'','',2.622214,-2.000000,3.564548}, {'','',3.709948,1.397940,3.285107},
-+{'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276}, {'','',2.866878,-2.000000,3.425208}, {'','',3.342028,2.133539,2.628389}, {'','',3.790778,3.201943,1.462398},
-+{'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.949878,1.146128,0.778151}, {'','',3.806994,2.618048,2.845718}, {'','',-2.000000,-2.000000,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.402089,3.567497,2.037426}, {'','',3.360593,1.568202,1.079181},
-+{'','',1.079181,-2.000000,-2.000000}, {'','',2.721811,1.724276,1.518514}, {'','',3.547405,-2.000000,2.677607}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.158362,-2.000000,0.698970}, {'','',2.861534,-2.000000,-2.000000}, {'','',0.778151,0.477121,-2.000000}, {'','',0.301030,-2.000000,0.477121},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754}, {'','',1.380211,1.845098,0.602060}, {'','',0.477121,-2.000000,-2.000000},
-+{'','',-2.000000,-2.000000,0.301030}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.792392,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.964919,3.984122,3.731830}, {'','',1.886491,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',2.348305,2.626340,3.137671}, {'','',1.819544,-2.000000,-2.000000},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101}, {'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000}, {'','',4.159627,3.917138,3.643156},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926}, {'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.547775,2.082785,0.477121},
-+{'','',1.732394,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.045714,3.207096,2.748188}, {'','',4.028083,2.858537,3.912966},
-+{'','',1.732394,1.602060,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',0.903090,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273}, {'','',0.698970,-2.000000,0.477121}, {'','',3.966892,3.456366,4.024568},
-+{'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970}, {'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970}, {'','',3.571592,1.690196,3.195069}, {'','',3.772835,-2.000000,-2.000000},
-+{'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',2.894870,1.477121,-2.000000}, {'','',2.017033,-2.000000,-2.000000}, {'','',4.066214,1.732394,3.082785}, {'','',3.395501,1.857332,2.587711}, {'','',1.924279,-2.000000,1.176091}, {'','',1.505150,-2.000000,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121}, {'','',1.690196,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679},
-+{'','',1.322219,-2.000000,0.000000}, {'','',0.778151,2.201397,-2.000000}, {'','',-2.000000,0.301030,0.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000}, {'','',1.959041,-2.000000,1.113943}, {'','',3.406881,3.586475,-2.000000},
-+{'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000}, {'','',2.530200,2.227887,2.985875}, {'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084}, {'','',1.531479,-2.000000,-2.000000},
-+{'','',1.991226,-2.000000,2.130334}, {'','',3.191171,3.276462,2.357935}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',2.269513,0.778151,-2.000000}, {'','',2.315970,0.954243,2.600973},
-+{'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.394452,-2.000000,1.477121}, {'','',1.000000,-2.000000,-2.000000},
-+{'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060}, {'','',2.641474,-2.000000,-2.000000}, {'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.719331,1.505150,3.569374},
-+{'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466}, {'','',3.881556,3.212454,3.188366}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',3.227887,0.301030,3.521269}, {'','',3.922622,1.875061,3.260071},
-+{'','',1.778151,-2.000000,0.477121}, {'','',1.414973,-2.000000,-2.000000}, {'','',0.000000,0.477121,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',2.866287,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.107210,-2.000000,3.054613}, {'','',1.146128,0.000000,0.602060},
-+{'','',3.844664,3.655810,2.542825}, {'','',2.514548,1.732394,-2.000000}, {'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127}, {'','',2.885361,1.748188,1.255273}, {'','',4.169674,2.836957,2.929419}, {'','',3.269980,2.445604,2.318063}, {'','',3.363424,0.000000,2.735599},
-+{'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791}, {'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341}, {'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276}, {'','',3.244772,-2.000000,2.688420},
-+{'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090}, {'','',3.853941,2.320146,1.908485}, {'','',4.293738,1.707570,3.375846}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.539452,2.184691,1.579784},
-+{'','',3.478278,2.245513,1.556303}, {'','',2.155336,-2.000000,-2.000000}, {'','',2.756636,2.149219,0.000000}, {'','',3.779813,3.175222,0.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',3.467312,3.637189,2.209515}, {'','',2.387390,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',3.575072,3.529302,1.819544}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000}, {'','',3.748110,4.432617,1.991226},
-+{'','',2.863917,0.000000,0.301030}, {'','',2.786041,2.619093,0.903090}, {'','',3.667173,4.227475,0.301030}, {'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',1.826075,2.093422,1.612784}, {'','',2.907949,2.474216,1.944483},
-+{'','',0.778151,1.176091,-2.000000}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.977724,0.845098,-2.000000}, {'','',2.396199,-2.000000,2.143015}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000}, {'','',1.944483,-2.000000,1.707570},
-+{'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.588832,0.845098,1.000000}, {'','',1.913814,0.000000,2.650308}, {'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514}, {'','',2.847573,1.690196,1.826075}, {'','',3.255996,-2.000000,3.047275},
-+{'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',1.826075,-2.000000,2.336460}, {'','',2.155336,2.988559,1.176091}, {'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828}, {'','',0.903090,-2.000000,0.000000},
-+{'','',2.716838,-2.000000,0.000000}, {'','',2.806858,2.477121,1.505150}, {'','',3.467904,2.214844,0.477121}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000}, {'','',2.527630,0.000000,1.954243}, {'','',2.247973,1.113943,2.540329}, {'','',4.153266,3.863620,3.359835},
-+{'','',2.582063,-2.000000,1.000000}, {'','',2.240549,-2.000000,-2.000000}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',2.187521,-2.000000,2.315970}, {'','',2.633468,-2.000000,1.812913}, {'','',2.423246,-2.000000,2.079181}, {'','',4.150449,2.653213,3.242293},
-+{'','',3.053078,-2.000000,1.612784}, {'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',3.447778,2.491362,2.760422}, {'','',2.164353,-2.000000,-2.000000},
-+{'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334}, {'','',3.701222,3.349666,2.875640}, {'','',3.033021,1.342423,0.301030}, {'','',3.130977,1.959041,-2.000000}, {'','',2.853090,0.000000,3.227115}, {'','',3.478566,2.406540,2.940018}, {'','',2.193125,0.000000,0.477121},
-+{'','',2.892651,-2.000000,1.000000}, {'','',0.778151,0.301030,0.000000}, {'','',2.079181,-2.000000,0.477121}, {'','',2.527630,-2.000000,0.778151}, {'','',1.913814,2.414973,2.413300}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',1.939519,1.591065,-2.000000},
-+{'','',0.301030,2.826075,-2.000000}, {'','',3.637990,3.666331,3.451940}, {'','',1.000000,1.763428,-2.000000}, {'','',0.301030,2.217484,-2.000000}, {'','',2.693727,2.298853,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754},
-+{'','',3.136403,3.402777,-2.000000}, {'','',3.431364,3.030195,-2.000000}, {'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',3.035830,1.278754,4.148757}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545},
-+{'','',2.924279,3.172311,2.450249}, {'','',-2.000000,2.004321,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',2.944483,-2.000000,3.992465}, {'','',2.578639,2.701568,2.563481}, {'','',-2.000000,1.591065,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',-2.000000,3.283527,-2.000000},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',1.968483,1.845098,1.079181}, {'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',2.262451,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000},
-+{'','',3.929266,3.701654,3.580126}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060},
-+{'','',3.668572,-2.000000,-2.000000}, {'','',4.169469,3.974650,4.307582}, {'','',2.574031,-2.000000,-2.000000}, {'','',2.966142,2.569374,2.804139}, {'','',3.831614,3.288473,1.944483}, {'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',3.614686,1.977724,4.250152}, {'','',3.296007,3.418301,2.948413}, {'','',1.301030,-2.000000,-2.000000}, {'','',1.544068,-2.000000,-2.000000}, {'','',0.301030,1.785330,-2.000000}, {'','',2.705864,-2.000000,0.000000},
-+{'','',1.431364,-2.000000,0.000000}, {'','',2.584331,1.518514,3.410440}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362}, {'','',1.176091,1.361728,-2.000000}, {'','',3.725667,3.130012,1.929419}, {'','',2.790285,1.913814,0.301030}, {'','',3.121231,-2.000000,1.397940},
-+{'','',3.296884,2.769377,3.048053}, {'','',2.843855,2.580925,2.530200}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033}, {'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390}, {'','',2.825426,2.110590,1.934498},
-+{'','',0.845098,0.602060,-2.000000}, {'','',3.218536,2.687529,1.832509}, {'','',1.806180,1.255273,1.838849}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151}, {'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.366983,3.468938,1.919078},
-+{'','',2.942008,2.998695,2.117271}, {'','',2.585461,2.642465,1.579784}, {'','',3.348500,2.309630,1.819544}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.998695,1.146128,0.000000}, {'','',3.448242,2.468347,1.301030}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.521661,2.713491,2.460898},
-+{'','',2.230449,0.477121,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.204120,1.255273,-2.000000}, {'','',3.510947,3.211121,2.501059}, {'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000},
-+{'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000}, {'','',3.165541,1.982271,2.728354}, {'','',1.591065,0.698970,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,0.000000}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',1.812913,1.431364,-2.000000},
-+{'','',2.727541,2.992995,-2.000000}, {'','',4.066699,3.660581,2.998259}, {'','',2.361728,1.230449,-2.000000}, {'','',-2.000000,2.017033,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000},
-+{'','',1.397940,2.607455,0.301030}, {'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.812913,1.653213,1.113943}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000},
-+{'','',3.110253,1.681241,2.832509}, {'','',-2.000000,0.903090,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.396199,1.477121,2.558709}, {'','',3.355068,3.777717,2.657056}, {'','',1.591065,3.207096,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',0.477121,1.857332,-2.000000},
-+{'','',1.342423,0.602060,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.484300,-2.000000,0.477121}, {'','',2.539076,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970}, {'','',3.015779,-2.000000,2.685742},
-+{'','',1.633468,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000},
-+{'','',1.845098,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',2.612784,-2.000000,2.849419}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.685742,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',0.698970,-2.000000,-2.000000}, {'','',1.602060,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',1.913814,-2.000000,-2.000000}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730}, {'','',2.509203,-2.000000,0.301030},
-+{'','',2.816241,0.000000,3.393224}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606}, {'','',0.000000,-2.000000,0.000000},
-+{'','',2.677607,-2.000000,-2.000000}, {'','',1.653213,-2.000000,0.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.149219,-2.000000,0.698970}, {'','',3.412124,-2.000000,1.812913},
-+{'','',2.315970,-2.000000,0.301030}, {'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',2.858537,-2.000000,1.845098}, {'','',0.602060,-2.000000,2.361728}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000}, {'','',1.000000,-2.000000,-2.000000},
-+{'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',3.019532,-2.000000,1.255273}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000}, {'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392}, {'','',3.494711,3.455454,0.477121},
-+{'','',3.147985,2.626340,1.857332}, {'','',2.797268,0.903090,2.796574}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474}, {'','',2.359835,-2.000000,-2.000000}, {'','',3.361161,2.567026,0.301030},
-+{'','',2.257679,-2.000000,3.261263}, {'','',2.983626,0.903090,2.212188}, {'','',1.755875,-2.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.279211,2.887054,2.691081},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',0.903090,-2.000000,0.000000}, {'','',3.643749,2.823474,3.224792}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.631342,2.372912,2.641474}, {'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000},
-+{'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',1.176091,2.017033,-2.000000},
-+{'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.477121,1.255273,-2.000000}, {'','',0.301030,1.662758,-2.000000}, {'','',-2.000000,1.477121,-2.000000}, {'','',0.000000,2.056905,0.903090},
-+{'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000}, {'','',2.683047,0.903090,3.158664}, {'','',0.000000,1.113943,-2.000000},
-+{'','',2.214844,3.899437,1.397940}, {'','',-2.000000,1.204120,-2.000000}, {'','',0.845098,0.000000,-2.000000}, {'','',0.000000,1.113943,-2.000000}, {'','',3.025306,1.079181,1.897627}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754}, {'','',0.301030,0.000000,-2.000000},
-+{'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.255273,-2.000000,1.903090},
-+{'','',3.780389,2.989450,2.786751}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.875235,3.684307,2.656098}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000},
-+{'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814}, {'','',0.301030,2.584331,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.698970,0.477121,-2.000000}, {'','',2.475671,2.071882,2.809560},
-+{'','',2.752048,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.332438,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',0.602060,-2.000000,1.959041}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.544068,0.778151,0.698970}, {'','',1.949390,-2.000000,0.698970}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394},
-+{'','',1.602060,0.602060,-2.000000}, {'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',2.187521,0.698970,-2.000000},
-+{'','',0.778151,0.698970,0.477121}, {'','',1.505150,-2.000000,0.477121}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',0.602060,-2.000000,1.959041}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.544068,0.778151,0.698970}, {'','',1.949390,-2.000000,0.698970}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394},
-+{'','',1.602060,0.602060,-2.000000}, {'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',2.187521,0.698970,-2.000000},
-+{'','',0.778151,0.698970,0.477121}, {'','',1.505150,-2.000000,0.477121}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',3.235528,-2.000000,3.228144}, {'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728},
-+{'','',2.884795,1.301030,0.602060}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292}, {'','',2.269513,1.973128,2.103804}, {'','',3.408749,2.796574,1.973128}, {'','',3.176959,2.136721,3.241546}, {'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672},
-+{'','',3.958277,1.959041,3.930847}, {'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959}, {'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754}, {'','',2.975432,-2.000000,3.740994}, {'','',3.877717,2.579784,2.348305},
-+{'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093}, {'','',2.565848,0.903090,0.954243}, {'','',3.684756,1.591065,1.612784}, {'','',3.977312,1.838849,2.736397}, {'','',3.967501,1.698970,3.025715}, {'','',3.457125,-2.000000,2.478566}, {'','',2.012837,-2.000000,-2.000000},
-+{'','',2.847573,-2.000000,1.322219}, {'','',3.496653,-2.000000,1.939519}, {'','',3.235528,-2.000000,3.228144}, {'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',2.884795,1.301030,0.602060}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292},
-+{'','',2.269513,1.973128,2.103804}, {'','',3.408749,2.796574,1.973128}, {'','',3.176959,2.136721,3.241546}, {'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847}, {'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023},
-+{'','',4.014100,2.487138,3.176959}, {'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754}, {'','',2.975432,-2.000000,3.740994}, {'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093}, {'','',2.565848,0.903090,0.954243},
-+{'','',3.684756,1.591065,1.612784}, {'','',3.977312,1.838849,2.736397}, {'','',3.967501,1.698970,3.025715}, {'','',3.457125,-2.000000,2.478566}, {'','',2.012837,-2.000000,-2.000000}, {'','',2.847573,-2.000000,1.322219}, {'','',3.496653,-2.000000,1.939519}, {'','',0.778151,1.041393,-2.000000},
-+{'','',3.068557,3.068928,2.720986}, {'','',1.477121,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634}, {'','',0.954243,-2.000000,-2.000000}, {'','',2.064458,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060},
-+{'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453}, {'','',2.448706,-2.000000,3.211654}, {'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030},
-+{'','',1.041393,-2.000000,-2.000000}, {'','',3.124504,3.405176,2.411620}, {'','',2.071882,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',2.068186,1.724276,1.113943}, {'','',3.068186,3.948217,3.158965}, {'','',1.322219,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',2.859739,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',0.778151,1.041393,-2.000000}, {'','',3.068557,3.068928,2.720986}, {'','',1.477121,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000},
-+{'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634}, {'','',0.954243,-2.000000,-2.000000}, {'','',2.064458,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060}, {'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000},
-+{'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453}, {'','',2.448706,-2.000000,3.211654}, {'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000}, {'','',3.124504,3.405176,2.411620}, {'','',2.071882,-2.000000,-2.000000},
-+{'','',2.123852,-2.000000,-2.000000}, {'','',2.068186,1.724276,1.113943}, {'','',3.068186,3.948217,3.158965}, {'','',1.322219,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.859739,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000},
-+{'','',2.625312,-2.000000,-2.000000}, {'','',1.113943,-2.000000,0.301030}, {'','',3.072985,1.939519,3.070038}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.966142,2.863323,2.898176}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',2.882525,1.785330,0.954243},
-+{'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',-2.000000,0.477121,0.778151}, {'','',1.568202,0.477121,2.597695}, {'','',1.662758,2.060698,0.000000}, {'','',0.602060,-2.000000,0.845098},
-+{'','',2.093422,1.518514,2.846955}, {'','',1.113943,-2.000000,0.301030}, {'','',3.072985,1.939519,3.070038}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.966142,2.863323,2.898176}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',2.882525,1.785330,0.954243},
-+{'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',-2.000000,0.477121,0.778151}, {'','',1.568202,0.477121,2.597695}, {'','',1.662758,2.060698,0.000000}, {'','',0.602060,-2.000000,0.845098},
-+{'','',2.093422,1.518514,2.846955}, {'','',2.149219,2.079181,0.954243}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.900367,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000}, {'','',3.952889,3.690728,3.209515}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.431364,-2.000000,-2.000000}, {'','',2.204120,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000}, {'','',3.762978,2.660865,-2.000000},
-+{'','',3.771587,3.825621,2.952308}, {'','',2.378398,-2.000000,-2.000000}, {'','',2.678518,2.453318,2.550228}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',1.716003,3.116940,-2.000000},
-+{'','',2.831230,3.243782,-2.000000}, {'','',2.887054,1.579784,3.237795}, {'','',2.993436,2.401401,2.866878}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.161368,-2.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000},
-+{'','',2.149219,2.079181,0.954243}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.900367,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000}, {'','',3.952889,3.690728,3.209515}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.431364,-2.000000,-2.000000},
-+{'','',2.204120,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000}, {'','',3.762978,2.660865,-2.000000}, {'','',3.771587,3.825621,2.952308},
-+{'','',2.378398,-2.000000,-2.000000}, {'','',2.678518,2.453318,2.550228}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',1.716003,3.116940,-2.000000}, {'','',2.831230,3.243782,-2.000000},
-+{'','',2.887054,1.579784,3.237795}, {'','',2.993436,2.401401,2.866878}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.161368,-2.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000}, {'','',2.330414,1.204120,2.632457},
-+{'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',2.627366,0.301030,3.066326}, {'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926}, {'','',1.819544,0.000000,1.732394}, {'','',3.832445,3.449324,2.363612}, {'','',2.981366,2.565848,2.936011},
-+{'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452}, {'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454}, {'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393},
-+{'','',2.841359,-2.000000,2.127105}, {'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000}, {'','',3.389166,2.158362,2.212188}, {'','',3.679610,2.413300,2.906335}, {'','',3.492621,1.716003,3.151370},
-+{'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',3.590396,-2.000000,1.799341}, {'','',2.330414,1.204120,2.632457}, {'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',2.627366,0.301030,3.066326}, {'','',3.936262,2.687529,2.945469},
-+{'','',2.977266,3.058046,3.325926}, {'','',1.819544,0.000000,1.732394}, {'','',3.832445,3.449324,2.363612}, {'','',2.981366,2.565848,2.936011}, {'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452},
-+{'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454}, {'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393}, {'','',2.841359,-2.000000,2.127105}, {'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713},
-+{'','',2.637490,-2.000000,-2.000000}, {'','',3.389166,2.158362,2.212188}, {'','',3.679610,2.413300,2.906335}, {'','',3.492621,1.716003,3.151370}, {'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',3.590396,-2.000000,1.799341}, {'','',2.772322,2.448706,2.578639},
-+{'','',2.342423,2.450249,1.579784}, {'','',3.105169,-2.000000,-2.000000}, {'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.342423,2.000000,0.000000}, {'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000}, {'','',1.623249,1.812913,1.973128}, {'','',2.477121,0.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',-2.000000,1.462398,-2.000000}, {'','',0.602060,-2.000000,-2.000000},
-+{'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784}, {'','',3.105169,-2.000000,-2.000000}, {'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.342423,2.000000,0.000000}, {'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000}, {'','',1.623249,1.812913,1.973128}, {'','',2.477121,0.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',-2.000000,1.462398,-2.000000},
-+{'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.451633,2.836957,-2.000000}, {'','',2.638489,3.002166,2.585461}, {'','',0.301030,0.000000,0.000000}, {'','',3.289589,2.103804,2.824126},
-+{'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000},
-+{'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',1.000000,1.579784,-2.000000}, {'','',-2.000000,1.342423,-2.000000}, {'','',1.397940,0.845098,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',2.181844,-2.000000,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.451633,2.836957,-2.000000}, {'','',2.638489,3.002166,2.585461}, {'','',0.301030,0.000000,0.000000}, {'','',3.289589,2.103804,2.824126},
-+{'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000},
-+{'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',1.000000,1.579784,-2.000000}, {'','',-2.000000,1.342423,-2.000000}, {'','',1.397940,0.845098,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',2.181844,-2.000000,-2.000000}, {'','',3.066326,2.742725,2.705008}, {'','',0.301030,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.618048,2.220108,2.615950}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',2.431364,2.698970,-2.000000}, {'','',2.313867,2.056905,-2.000000}, {'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030}, {'','',1.681241,0.301030,0.000000},
-+{'','',1.690196,2.396199,2.406540}, {'','',2.630428,2.725912,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',3.066326,2.742725,2.705008},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.618048,2.220108,2.615950}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000}, {'','',2.313867,2.056905,-2.000000},
-+{'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030}, {'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540}, {'','',2.630428,2.725912,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.439333,1.414973,0.000000}, {'','',3.192567,1.929419,1.342423},
-+{'','',3.406881,1.079181,2.103804}, {'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.743510,-2.000000,1.812913}, {'','',3.038223,2.281033,2.232996}, {'','',3.008600,2.872156,3.443263}, {'','',1.591065,0.000000,3.152594}, {'','',2.622214,-2.000000,3.564548},
-+{'','',3.709948,1.397940,3.285107}, {'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276}, {'','',2.866878,-2.000000,3.425208}, {'','',3.342028,2.133539,2.628389},
-+{'','',3.790778,3.201943,1.462398}, {'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.949878,1.146128,0.778151}, {'','',3.806994,2.618048,2.845718}, {'','',-2.000000,-2.000000,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.402089,3.567497,2.037426},
-+{'','',3.360593,1.568202,1.079181}, {'','',1.079181,-2.000000,-2.000000}, {'','',2.721811,1.724276,1.518514}, {'','',3.547405,-2.000000,2.677607}, {'','',1.342423,0.954243,2.897077}, {'','',2.439333,1.414973,0.000000}, {'','',3.192567,1.929419,1.342423}, {'','',3.406881,1.079181,2.103804},
-+{'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.743510,-2.000000,1.812913}, {'','',3.038223,2.281033,2.232996}, {'','',3.008600,2.872156,3.443263}, {'','',1.591065,0.000000,3.152594}, {'','',2.622214,-2.000000,3.564548}, {'','',3.709948,1.397940,3.285107},
-+{'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276}, {'','',2.866878,-2.000000,3.425208}, {'','',3.342028,2.133539,2.628389}, {'','',3.790778,3.201943,1.462398},
-+{'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.949878,1.146128,0.778151}, {'','',3.806994,2.618048,2.845718}, {'','',-2.000000,-2.000000,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.402089,3.567497,2.037426}, {'','',3.360593,1.568202,1.079181},
-+{'','',1.079181,-2.000000,-2.000000}, {'','',2.721811,1.724276,1.518514}, {'','',3.547405,-2.000000,2.677607}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.158362,-2.000000,0.698970}, {'','',2.861534,-2.000000,-2.000000}, {'','',0.778151,0.477121,-2.000000}, {'','',0.301030,-2.000000,0.477121},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754}, {'','',1.380211,1.845098,0.602060}, {'','',0.477121,-2.000000,-2.000000},
-+{'','',-2.000000,-2.000000,0.301030}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.792392,-2.000000,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.158362,-2.000000,0.698970}, {'','',2.861534,-2.000000,-2.000000}, {'','',0.778151,0.477121,-2.000000}, {'','',0.301030,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754}, {'','',1.380211,1.845098,0.602060}, {'','',0.477121,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.301030},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.792392,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.964919,3.984122,3.731830}, {'','',1.886491,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',2.348305,2.626340,3.137671}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',0.698970,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101}, {'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000}, {'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',-2.000000,-2.000000,0.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926}, {'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.547775,2.082785,0.477121}, {'','',1.732394,-2.000000,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.964919,3.984122,3.731830}, {'','',1.886491,-2.000000,-2.000000},
-+{'','',1.568202,-2.000000,-2.000000}, {'','',2.348305,2.626340,3.137671}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101}, {'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000}, {'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926}, {'','',2.846337,2.907411,1.954243},
-+{'','',3.261501,3.144574,3.448088}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.547775,2.082785,0.477121}, {'','',1.732394,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',3.045714,3.207096,2.748188}, {'','',4.028083,2.858537,3.912966}, {'','',1.732394,1.602060,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',0.903090,-2.000000,-2.000000},
-+{'','',2.738781,1.361728,1.255273}, {'','',0.698970,-2.000000,0.477121}, {'','',3.966892,3.456366,4.024568}, {'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970}, {'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162},
-+{'','',2.257679,-2.000000,0.698970}, {'','',3.571592,1.690196,3.195069}, {'','',3.772835,-2.000000,-2.000000}, {'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',2.894870,1.477121,-2.000000}, {'','',2.017033,-2.000000,-2.000000}, {'','',4.066214,1.732394,3.082785},
-+{'','',3.395501,1.857332,2.587711}, {'','',1.924279,-2.000000,1.176091}, {'','',1.505150,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',3.045714,3.207096,2.748188}, {'','',4.028083,2.858537,3.912966},
-+{'','',1.732394,1.602060,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',0.903090,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273}, {'','',0.698970,-2.000000,0.477121}, {'','',3.966892,3.456366,4.024568},
-+{'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970}, {'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970}, {'','',3.571592,1.690196,3.195069}, {'','',3.772835,-2.000000,-2.000000},
-+{'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',2.894870,1.477121,-2.000000}, {'','',2.017033,-2.000000,-2.000000}, {'','',4.066214,1.732394,3.082785}, {'','',3.395501,1.857332,2.587711}, {'','',1.924279,-2.000000,1.176091}, {'','',1.505150,-2.000000,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121}, {'','',1.690196,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679},
-+{'','',1.322219,-2.000000,0.000000}, {'','',0.778151,2.201397,-2.000000}, {'','',-2.000000,0.301030,0.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000}, {'','',1.959041,-2.000000,1.113943}, {'','',3.406881,3.586475,-2.000000},
-+{'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000}, {'','',2.530200,2.227887,2.985875}, {'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084}, {'','',1.531479,-2.000000,-2.000000},
-+{'','',1.991226,-2.000000,2.130334}, {'','',3.191171,3.276462,2.357935}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',2.269513,0.778151,-2.000000}, {'','',3.729813,3.633771,3.109241},
-+{'','',1.819544,-2.000000,0.477121}, {'','',1.690196,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679}, {'','',1.322219,-2.000000,0.000000}, {'','',0.778151,2.201397,-2.000000}, {'','',-2.000000,0.301030,0.000000}, {'','',3.206826,3.250664,3.673113},
-+{'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000}, {'','',1.959041,-2.000000,1.113943}, {'','',3.406881,3.586475,-2.000000}, {'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000}, {'','',2.530200,2.227887,2.985875}, {'','',2.475671,2.089905,-2.000000},
-+{'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084}, {'','',1.531479,-2.000000,-2.000000}, {'','',1.991226,-2.000000,2.130334}, {'','',3.191171,3.276462,2.357935}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',2.269513,0.778151,-2.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.908485,-2.000000,1.579784},
-+{'','',3.885700,4.392978,3.638689}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.394452,-2.000000,1.477121}, {'','',1.000000,-2.000000,-2.000000}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060}, {'','',2.641474,-2.000000,-2.000000}, {'','',0.903090,-2.000000,-2.000000},
-+{'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.719331,1.505150,3.569374}, {'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466}, {'','',3.881556,3.212454,3.188366},
-+{'','',1.690196,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',3.227887,0.301030,3.521269}, {'','',3.922622,1.875061,3.260071}, {'','',1.778151,-2.000000,0.477121}, {'','',1.414973,-2.000000,-2.000000}, {'','',0.000000,0.477121,-2.000000}, {'','',2.589950,-2.000000,-2.000000},
-+{'','',2.866287,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689},
-+{'','',2.021189,-2.000000,-2.000000}, {'','',2.394452,-2.000000,1.477121}, {'','',1.000000,-2.000000,-2.000000}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060}, {'','',2.641474,-2.000000,-2.000000}, {'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121},
-+{'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.719331,1.505150,3.569374}, {'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466}, {'','',3.881556,3.212454,3.188366}, {'','',1.690196,-2.000000,-2.000000},
-+{'','',1.255273,-2.000000,-2.000000}, {'','',3.227887,0.301030,3.521269}, {'','',3.922622,1.875061,3.260071}, {'','',1.778151,-2.000000,0.477121}, {'','',1.414973,-2.000000,-2.000000}, {'','',0.000000,0.477121,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',2.866287,-2.000000,-2.000000},
-+{'','',-2.000000,-2.000000,0.000000}, {'','',2.107210,-2.000000,3.054613}, {'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',2.514548,1.732394,-2.000000}, {'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127}, {'','',2.885361,1.748188,1.255273},
-+{'','',4.169674,2.836957,2.929419}, {'','',3.269980,2.445604,2.318063}, {'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791}, {'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341},
-+{'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276}, {'','',3.244772,-2.000000,2.688420}, {'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090}, {'','',3.853941,2.320146,1.908485},
-+{'','',4.293738,1.707570,3.375846}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.539452,2.184691,1.579784}, {'','',3.478278,2.245513,1.556303}, {'','',2.155336,-2.000000,-2.000000}, {'','',2.756636,2.149219,0.000000}, {'','',3.779813,3.175222,0.000000}, {'','',2.107210,-2.000000,3.054613},
-+{'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',2.514548,1.732394,-2.000000}, {'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127}, {'','',2.885361,1.748188,1.255273}, {'','',4.169674,2.836957,2.929419}, {'','',3.269980,2.445604,2.318063},
-+{'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791}, {'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341}, {'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276},
-+{'','',3.244772,-2.000000,2.688420}, {'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090}, {'','',3.853941,2.320146,1.908485}, {'','',4.293738,1.707570,3.375846}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',3.539452,2.184691,1.579784}, {'','',3.478278,2.245513,1.556303}, {'','',2.155336,-2.000000,-2.000000}, {'','',2.756636,2.149219,0.000000}, {'','',3.779813,3.175222,0.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',3.467312,3.637189,2.209515}, {'','',2.387390,-2.000000,-2.000000},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',3.575072,3.529302,1.819544}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000},
-+{'','',3.748110,4.432617,1.991226}, {'','',2.863917,0.000000,0.301030}, {'','',2.786041,2.619093,0.903090}, {'','',3.667173,4.227475,0.301030}, {'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',1.826075,2.093422,1.612784},
-+{'','',2.907949,2.474216,1.944483}, {'','',0.778151,1.176091,-2.000000}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.977724,0.845098,-2.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',3.467312,3.637189,2.209515}, {'','',2.387390,-2.000000,-2.000000},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',3.575072,3.529302,1.819544}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000},
-+{'','',3.748110,4.432617,1.991226}, {'','',2.863917,0.000000,0.301030}, {'','',2.786041,2.619093,0.903090}, {'','',3.667173,4.227475,0.301030}, {'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',1.826075,2.093422,1.612784},
-+{'','',2.907949,2.474216,1.944483}, {'','',0.778151,1.176091,-2.000000}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.977724,0.845098,-2.000000}, {'','',2.396199,-2.000000,2.143015}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000},
-+{'','',1.944483,-2.000000,1.707570}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.588832,0.845098,1.000000}, {'','',1.913814,0.000000,2.650308}, {'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514}, {'','',2.847573,1.690196,1.826075},
-+{'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',1.826075,-2.000000,2.336460}, {'','',2.155336,2.988559,1.176091}, {'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828},
-+{'','',0.903090,-2.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',2.806858,2.477121,1.505150}, {'','',3.467904,2.214844,0.477121}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000}, {'','',2.527630,0.000000,1.954243}, {'','',2.396199,-2.000000,2.143015},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000}, {'','',1.944483,-2.000000,1.707570}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.588832,0.845098,1.000000}, {'','',1.913814,0.000000,2.650308}, {'','',2.029384,0.602060,0.301030},
-+{'','',2.096910,0.477121,1.518514}, {'','',2.847573,1.690196,1.826075}, {'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',1.826075,-2.000000,2.336460}, {'','',2.155336,2.988559,1.176091},
-+{'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828}, {'','',0.903090,-2.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',2.806858,2.477121,1.505150}, {'','',3.467904,2.214844,0.477121}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000},
-+{'','',2.527630,0.000000,1.954243}, {'','',2.247973,1.113943,2.540329}, {'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000}, {'','',2.240549,-2.000000,-2.000000}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',2.187521,-2.000000,2.315970},
-+{'','',2.633468,-2.000000,1.812913}, {'','',2.423246,-2.000000,2.079181}, {'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784}, {'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921},
-+{'','',2.448706,-2.000000,-2.000000}, {'','',3.447778,2.491362,2.760422}, {'','',2.164353,-2.000000,-2.000000}, {'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334}, {'','',3.701222,3.349666,2.875640}, {'','',3.033021,1.342423,0.301030}, {'','',3.130977,1.959041,-2.000000},
-+{'','',2.853090,0.000000,3.227115}, {'','',3.478566,2.406540,2.940018}, {'','',2.193125,0.000000,0.477121}, {'','',2.892651,-2.000000,1.000000}, {'','',0.778151,0.301030,0.000000}, {'','',2.079181,-2.000000,0.477121}, {'','',2.527630,-2.000000,0.778151}, {'','',2.247973,1.113943,2.540329},
-+{'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000}, {'','',2.240549,-2.000000,-2.000000}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',2.187521,-2.000000,2.315970}, {'','',2.633468,-2.000000,1.812913}, {'','',2.423246,-2.000000,2.079181},
-+{'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784}, {'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',3.447778,2.491362,2.760422},
-+{'','',2.164353,-2.000000,-2.000000}, {'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334}, {'','',3.701222,3.349666,2.875640}, {'','',3.033021,1.342423,0.301030}, {'','',3.130977,1.959041,-2.000000}, {'','',2.853090,0.000000,3.227115}, {'','',3.478566,2.406540,2.940018},
-+{'','',2.193125,0.000000,0.477121}, {'','',2.892651,-2.000000,1.000000}, {'','',0.778151,0.301030,0.000000}, {'','',2.079181,-2.000000,0.477121}, {'','',2.527630,-2.000000,0.778151}, {'','',1.913814,2.414973,2.413300}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000},
-+{'','',1.939519,1.591065,-2.000000}, {'','',0.301030,2.826075,-2.000000}, {'','',3.637990,3.666331,3.451940}, {'','',1.000000,1.763428,-2.000000}, {'','',0.301030,2.217484,-2.000000}, {'','',2.693727,2.298853,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390},
-+{'','',3.732474,3.664642,1.278754}, {'','',3.136403,3.402777,-2.000000}, {'','',3.431364,3.030195,-2.000000}, {'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',3.035830,1.278754,4.148757}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211},
-+{'','',4.418749,3.867939,2.510545}, {'','',2.924279,3.172311,2.450249}, {'','',-2.000000,2.004321,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',2.944483,-2.000000,3.992465}, {'','',2.578639,2.701568,2.563481}, {'','',-2.000000,1.591065,-2.000000}, {'','',2.453318,0.778151,-2.000000},
-+{'','',-2.000000,3.283527,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',1.913814,2.414973,2.413300}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',1.939519,1.591065,-2.000000},
-+{'','',0.301030,2.826075,-2.000000}, {'','',3.637990,3.666331,3.451940}, {'','',1.000000,1.763428,-2.000000}, {'','',0.301030,2.217484,-2.000000}, {'','',2.693727,2.298853,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754},
-+{'','',3.136403,3.402777,-2.000000}, {'','',3.431364,3.030195,-2.000000}, {'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',3.035830,1.278754,4.148757}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545},
-+{'','',2.924279,3.172311,2.450249}, {'','',-2.000000,2.004321,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',2.944483,-2.000000,3.992465}, {'','',2.578639,2.701568,2.563481}, {'','',-2.000000,1.591065,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',-2.000000,3.283527,-2.000000},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',1.968483,1.845098,1.079181}, {'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',2.262451,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000},
-+{'','',3.929266,3.701654,3.580126}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060},
-+{'','',3.668572,-2.000000,-2.000000}, {'','',4.169469,3.974650,4.307582}, {'','',2.574031,-2.000000,-2.000000}, {'','',2.966142,2.569374,2.804139}, {'','',3.831614,3.288473,1.944483}, {'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',3.614686,1.977724,4.250152}, {'','',3.296007,3.418301,2.948413}, {'','',1.301030,-2.000000,-2.000000}, {'','',1.544068,-2.000000,-2.000000}, {'','',0.301030,1.785330,-2.000000}, {'','',2.705864,-2.000000,0.000000},
-+{'','',1.431364,-2.000000,0.000000}, {'','',1.968483,1.845098,1.079181}, {'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',2.262451,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000}, {'','',3.929266,3.701654,3.580126}, {'','',0.954243,-2.000000,-2.000000},
-+{'','',1.322219,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060}, {'','',3.668572,-2.000000,-2.000000}, {'','',4.169469,3.974650,4.307582},
-+{'','',2.574031,-2.000000,-2.000000}, {'','',2.966142,2.569374,2.804139}, {'','',3.831614,3.288473,1.944483}, {'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033},
-+{'','',3.614686,1.977724,4.250152}, {'','',3.296007,3.418301,2.948413}, {'','',1.301030,-2.000000,-2.000000}, {'','',1.544068,-2.000000,-2.000000}, {'','',0.301030,1.785330,-2.000000}, {'','',2.705864,-2.000000,0.000000}, {'','',1.431364,-2.000000,0.000000}, {'','',2.584331,1.518514,3.410440},
-+{'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362}, {'','',1.176091,1.361728,-2.000000}, {'','',3.725667,3.130012,1.929419}, {'','',2.790285,1.913814,0.301030}, {'','',3.121231,-2.000000,1.397940}, {'','',3.296884,2.769377,3.048053}, {'','',2.843855,2.580925,2.530200},
-+{'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033}, {'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390}, {'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000}, {'','',3.218536,2.687529,1.832509},
-+{'','',1.806180,1.255273,1.838849}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151}, {'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.366983,3.468938,1.919078}, {'','',2.942008,2.998695,2.117271}, {'','',2.585461,2.642465,1.579784},
-+{'','',3.348500,2.309630,1.819544}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.998695,1.146128,0.000000}, {'','',3.448242,2.468347,1.301030}, {'','',2.584331,1.518514,3.410440}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362}, {'','',1.176091,1.361728,-2.000000},
-+{'','',3.725667,3.130012,1.929419}, {'','',2.790285,1.913814,0.301030}, {'','',3.121231,-2.000000,1.397940}, {'','',3.296884,2.769377,3.048053}, {'','',2.843855,2.580925,2.530200}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033}, {'','',3.323665,2.454845,2.276462},
-+{'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390}, {'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000}, {'','',3.218536,2.687529,1.832509}, {'','',1.806180,1.255273,1.838849}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151},
-+{'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.366983,3.468938,1.919078}, {'','',2.942008,2.998695,2.117271}, {'','',2.585461,2.642465,1.579784}, {'','',3.348500,2.309630,1.819544}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.998695,1.146128,0.000000},
-+{'','',3.448242,2.468347,1.301030}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.204120,1.255273,-2.000000},
-+{'','',3.510947,3.211121,2.501059}, {'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000}, {'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000},
-+{'','',1.748188,-2.000000,-2.000000}, {'','',3.165541,1.982271,2.728354}, {'','',1.591065,0.698970,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.812913,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.204120,1.255273,-2.000000}, {'','',3.510947,3.211121,2.501059}, {'','',2.484300,-2.000000,-2.000000},
-+{'','',1.838849,-2.000000,-2.000000}, {'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000}, {'','',3.165541,1.982271,2.728354},
-+{'','',1.591065,0.698970,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,0.000000}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000},
-+{'','',1.812913,1.431364,-2.000000}, {'','',2.727541,2.992995,-2.000000}, {'','',4.066699,3.660581,2.998259}, {'','',2.361728,1.230449,-2.000000}, {'','',-2.000000,2.017033,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000},
-+{'','',3.317854,2.462398,0.000000}, {'','',1.397940,2.607455,0.301030}, {'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.812913,1.653213,1.113943}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000},
-+{'','',2.639486,2.374748,-2.000000}, {'','',3.110253,1.681241,2.832509}, {'','',-2.000000,0.903090,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.396199,1.477121,2.558709}, {'','',3.355068,3.777717,2.657056}, {'','',1.591065,3.207096,-2.000000}, {'','',3.294466,0.301030,-2.000000},
-+{'','',0.477121,1.857332,-2.000000}, {'','',1.342423,0.602060,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',0.000000,-2.000000,0.000000}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',1.812913,1.431364,-2.000000},
-+{'','',2.727541,2.992995,-2.000000}, {'','',4.066699,3.660581,2.998259}, {'','',2.361728,1.230449,-2.000000}, {'','',-2.000000,2.017033,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000},
-+{'','',1.397940,2.607455,0.301030}, {'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.812913,1.653213,1.113943}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000},
-+{'','',3.110253,1.681241,2.832509}, {'','',-2.000000,0.903090,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.396199,1.477121,2.558709}, {'','',3.355068,3.777717,2.657056}, {'','',1.591065,3.207096,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',0.477121,1.857332,-2.000000},
-+{'','',1.342423,0.602060,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.484300,-2.000000,0.477121}, {'','',2.539076,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970}, {'','',3.015779,-2.000000,2.685742},
-+{'','',1.633468,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000},
-+{'','',1.845098,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',2.612784,-2.000000,2.849419}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.685742,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',0.698970,-2.000000,-2.000000}, {'','',1.602060,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.484300,-2.000000,0.477121}, {'','',2.539076,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970}, {'','',3.015779,-2.000000,2.685742},
-+{'','',1.633468,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000},
-+{'','',1.845098,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',2.612784,-2.000000,2.849419}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.685742,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',0.698970,-2.000000,-2.000000}, {'','',1.602060,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',1.913814,-2.000000,-2.000000}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730}, {'','',2.509203,-2.000000,0.301030},
-+{'','',2.816241,0.000000,3.393224}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606}, {'','',0.000000,-2.000000,0.000000},
-+{'','',2.677607,-2.000000,-2.000000}, {'','',1.653213,-2.000000,0.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.149219,-2.000000,0.698970}, {'','',3.412124,-2.000000,1.812913},
-+{'','',2.315970,-2.000000,0.301030}, {'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',2.858537,-2.000000,1.845098}, {'','',2.943495,-2.000000,0.000000}, {'','',1.913814,-2.000000,-2.000000}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730},
-+{'','',2.509203,-2.000000,0.301030}, {'','',2.816241,0.000000,3.393224}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606},
-+{'','',0.000000,-2.000000,0.000000}, {'','',2.677607,-2.000000,-2.000000}, {'','',1.653213,-2.000000,0.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.149219,-2.000000,0.698970},
-+{'','',3.412124,-2.000000,1.812913}, {'','',2.315970,-2.000000,0.301030}, {'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',2.858537,-2.000000,1.845098}, {'','',0.602060,-2.000000,2.361728}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000},
-+{'','',1.000000,-2.000000,-2.000000}, {'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',3.019532,-2.000000,1.255273}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000}, {'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392},
-+{'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.797268,0.903090,2.796574}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474}, {'','',2.359835,-2.000000,-2.000000},
-+{'','',3.361161,2.567026,0.301030}, {'','',2.257679,-2.000000,3.261263}, {'','',2.983626,0.903090,2.212188}, {'','',1.755875,-2.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',0.602060,-2.000000,2.361728},
-+{'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',3.019532,-2.000000,1.255273}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000},
-+{'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392}, {'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.797268,0.903090,2.796574}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000},
-+{'','',3.008174,2.149219,2.641474}, {'','',2.359835,-2.000000,-2.000000}, {'','',3.361161,2.567026,0.301030}, {'','',2.257679,-2.000000,3.261263}, {'','',2.983626,0.903090,2.212188}, {'','',1.755875,-2.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000},
-+{'','',1.832509,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.279211,2.887054,2.691081}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.903090,-2.000000,0.000000}, {'','',3.643749,2.823474,3.224792}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.631342,2.372912,2.641474},
-+{'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000}, {'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',1.176091,2.017033,-2.000000}, {'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.279211,2.887054,2.691081},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',0.903090,-2.000000,0.000000}, {'','',3.643749,2.823474,3.224792}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.631342,2.372912,2.641474}, {'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000},
-+{'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',1.176091,2.017033,-2.000000},
-+{'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.477121,1.255273,-2.000000}, {'','',0.301030,1.662758,-2.000000}, {'','',-2.000000,1.477121,-2.000000}, {'','',0.000000,2.056905,0.903090},
-+{'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000}, {'','',2.683047,0.903090,3.158664}, {'','',0.000000,1.113943,-2.000000},
-+{'','',2.214844,3.899437,1.397940}, {'','',-2.000000,1.204120,-2.000000}, {'','',0.845098,0.000000,-2.000000}, {'','',0.000000,1.113943,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.477121,1.255273,-2.000000}, {'','',0.301030,1.662758,-2.000000}, {'','',-2.000000,1.477121,-2.000000},
-+{'','',0.000000,2.056905,0.903090}, {'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000}, {'','',2.683047,0.903090,3.158664},
-+{'','',0.000000,1.113943,-2.000000}, {'','',2.214844,3.899437,1.397940}, {'','',-2.000000,1.204120,-2.000000}, {'','',0.845098,0.000000,-2.000000}, {'','',0.000000,1.113943,-2.000000}, {'','',3.025306,1.079181,1.897627}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754},
-+{'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',1.255273,-2.000000,1.903090}, {'','',3.025306,1.079181,1.897627}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754}, {'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.255273,-2.000000,1.903090}, {'','',3.780389,2.989450,2.786751}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.875235,3.684307,2.656098},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000}, {'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814}, {'','',0.301030,2.584331,-2.000000},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.698970,0.477121,-2.000000}, {'','',2.475671,2.071882,2.809560}, {'','',2.752048,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.780389,2.989450,2.786751},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',3.875235,3.684307,2.656098}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000}, {'','',3.469233,-2.000000,-2.000000},
-+{'','',2.372912,2.401401,1.913814}, {'','',0.301030,2.584331,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.698970,0.477121,-2.000000}, {'','',2.475671,2.071882,2.809560}, {'','',2.752048,-2.000000,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.332438,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.332438,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}
-+};
-+
-+static const lng_stat2 enc_win[]={
-+{'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',3.977312,1.838849,2.736397}, {'','',3.408749,2.796574,1.973128}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292}, {'','',3.684756,1.591065,1.612784}, {'','',3.967501,1.698970,3.025715},
-+{'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847}, {'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959}, {'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754},
-+{'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093}, {'','',2.565848,0.903090,0.954243}, {'','',2.269513,1.973128,2.103804}, {'','',3.176959,2.136721,3.241546}, {'','',2.884795,1.301030,0.602060}, {'','',3.496653,-2.000000,1.939519},
-+{'','',3.457125,-2.000000,2.478566}, {'','',2.847573,-2.000000,1.322219}, {'','',2.012837,-2.000000,-2.000000}, {'','',3.235528,-2.000000,3.228144}, {'','',2.975432,-2.000000,3.740994}, {'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',3.977312,1.838849,2.736397},
-+{'','',3.408749,2.796574,1.973128}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292}, {'','',3.684756,1.591065,1.612784}, {'','',3.967501,1.698970,3.025715}, {'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847},
-+{'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959}, {'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754}, {'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093},
-+{'','',2.565848,0.903090,0.954243}, {'','',2.269513,1.973128,2.103804}, {'','',3.176959,2.136721,3.241546}, {'','',2.884795,1.301030,0.602060}, {'','',3.496653,-2.000000,1.939519}, {'','',3.457125,-2.000000,2.478566}, {'','',2.847573,-2.000000,1.322219}, {'','',2.012837,-2.000000,-2.000000},
-+{'','',3.235528,-2.000000,3.228144}, {'','',2.975432,-2.000000,3.740994}, {'','',3.068557,3.068928,2.720986}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634},
-+{'','',2.071882,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060}, {'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453},
-+{'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000}, {'','',3.124504,3.405176,2.411620}, {'','',2.064458,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000},
-+{'','',2.859739,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',3.068186,3.948217,3.158965}, {'','',2.068186,1.724276,1.113943}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,1.041393,-2.000000}, {'','',2.448706,-2.000000,3.211654}, {'','',3.068557,3.068928,2.720986},
-+{'','',1.477121,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634}, {'','',2.071882,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060},
-+{'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453}, {'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000},
-+{'','',3.124504,3.405176,2.411620}, {'','',2.064458,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.859739,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',3.068186,3.948217,3.158965},
-+{'','',2.068186,1.724276,1.113943}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,1.041393,-2.000000}, {'','',2.448706,-2.000000,3.211654}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.361728,1.230449,-2.000000},
-+{'','',2.727541,2.992995,-2.000000}, {'','',4.066699,3.660581,2.998259}, {'','',-2.000000,0.903090,-2.000000}, {'','',1.591065,3.207096,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000},
-+{'','',1.397940,2.607455,0.301030}, {'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000}, {'','',3.110253,1.681241,2.832509},
-+{'','',-2.000000,2.017033,-2.000000}, {'','',1.812913,1.431364,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',1.342423,0.602060,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',3.355068,3.777717,2.657056}, {'','',2.396199,1.477121,2.558709},
-+{'','',0.477121,1.857332,-2.000000}, {'','',0.000000,-2.000000,0.000000}, {'','',2.812913,1.653213,1.113943}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.361728,1.230449,-2.000000}, {'','',2.727541,2.992995,-2.000000},
-+{'','',4.066699,3.660581,2.998259}, {'','',-2.000000,0.903090,-2.000000}, {'','',1.591065,3.207096,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000}, {'','',1.397940,2.607455,0.301030},
-+{'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000}, {'','',3.110253,1.681241,2.832509}, {'','',-2.000000,2.017033,-2.000000},
-+{'','',1.812913,1.431364,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',1.342423,0.602060,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',3.355068,3.777717,2.657056}, {'','',2.396199,1.477121,2.558709}, {'','',0.477121,1.857332,-2.000000},
-+{'','',0.000000,-2.000000,0.000000}, {'','',2.812913,1.653213,1.113943}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.000000,1.579784,-2.000000}, {'','',0.301030,0.000000,0.000000}, {'','',3.451633,2.836957,-2.000000}, {'','',2.638489,3.002166,2.585461},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',3.289589,2.103804,2.824126}, {'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',2.181844,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.397940,0.845098,0.000000},
-+{'','',-2.000000,1.342423,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.000000,1.579784,-2.000000}, {'','',0.301030,0.000000,0.000000}, {'','',3.451633,2.836957,-2.000000}, {'','',2.638489,3.002166,2.585461},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',3.289589,2.103804,2.824126}, {'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',2.181844,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.397940,0.845098,0.000000},
-+{'','',-2.000000,1.342423,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.831230,3.243782,-2.000000}, {'','',1.431364,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000}, {'','',3.952889,3.690728,3.209515},
-+{'','',1.716003,3.116940,-2.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000}, {'','',3.762978,2.660865,-2.000000},
-+{'','',3.771587,3.825621,2.952308}, {'','',2.378398,-2.000000,-2.000000}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.204120,-2.000000,-2.000000},
-+{'','',2.900367,-2.000000,-2.000000}, {'','',2.161368,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000}, {'','',2.993436,2.401401,2.866878}, {'','',2.887054,1.579784,3.237795}, {'','',2.149219,2.079181,0.954243},
-+{'','',2.678518,2.453318,2.550228}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.831230,3.243782,-2.000000}, {'','',1.431364,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000}, {'','',3.952889,3.690728,3.209515}, {'','',1.716003,3.116940,-2.000000},
-+{'','',1.633468,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000}, {'','',3.762978,2.660865,-2.000000}, {'','',3.771587,3.825621,2.952308},
-+{'','',2.378398,-2.000000,-2.000000}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.204120,-2.000000,-2.000000}, {'','',2.900367,-2.000000,-2.000000},
-+{'','',2.161368,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000}, {'','',2.993436,2.401401,2.866878}, {'','',2.887054,1.579784,3.237795}, {'','',2.149219,2.079181,0.954243}, {'','',2.678518,2.453318,2.550228},
-+{'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',3.679610,2.413300,2.906335}, {'','',3.832445,3.449324,2.363612}, {'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926}, {'','',3.389166,2.158362,2.212188}, {'','',3.492621,1.716003,3.151370},
-+{'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452}, {'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454}, {'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393},
-+{'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000}, {'','',1.819544,0.000000,1.732394}, {'','',2.981366,2.565848,2.936011}, {'','',2.627366,0.301030,3.066326}, {'','',3.590396,-2.000000,1.799341},
-+{'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',2.330414,1.204120,2.632457}, {'','',2.841359,-2.000000,2.127105}, {'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',3.679610,2.413300,2.906335}, {'','',3.832445,3.449324,2.363612},
-+{'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926}, {'','',3.389166,2.158362,2.212188}, {'','',3.492621,1.716003,3.151370}, {'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452},
-+{'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454}, {'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393}, {'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000},
-+{'','',1.819544,0.000000,1.732394}, {'','',2.981366,2.565848,2.936011}, {'','',2.627366,0.301030,3.066326}, {'','',3.590396,-2.000000,1.799341}, {'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',2.330414,1.204120,2.632457}, {'','',2.841359,-2.000000,2.127105},
-+{'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.204120,1.255273,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.591065,0.698970,-2.000000}, {'','',3.510947,3.211121,2.501059},
-+{'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000}, {'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000},
-+{'','',3.165541,1.982271,2.728354}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',1.204120,1.255273,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.591065,0.698970,-2.000000}, {'','',3.510947,3.211121,2.501059}, {'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000},
-+{'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000}, {'','',3.165541,1.982271,2.728354}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000}, {'','',3.361161,2.567026,0.301030}, {'','',3.019532,-2.000000,1.255273},
-+{'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',2.359835,-2.000000,-2.000000}, {'','',1.755875,-2.000000,-2.000000}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000}, {'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392},
-+{'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474}, {'','',1.000000,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',2.983626,0.903090,2.212188}, {'','',2.257679,-2.000000,3.261263}, {'','',0.602060,-2.000000,2.361728}, {'','',2.797268,0.903090,2.796574}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000},
-+{'','',3.361161,2.567026,0.301030}, {'','',3.019532,-2.000000,1.255273}, {'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',2.359835,-2.000000,-2.000000}, {'','',1.755875,-2.000000,-2.000000}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000},
-+{'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392}, {'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474},
-+{'','',1.000000,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',2.983626,0.903090,2.212188}, {'','',2.257679,-2.000000,3.261263}, {'','',0.602060,-2.000000,2.361728}, {'','',2.797268,0.903090,2.796574},
-+{'','',2.439333,1.414973,0.000000}, {'','',3.192567,1.929419,1.342423}, {'','',3.806994,2.618048,2.845718}, {'','',3.038223,2.281033,2.232996}, {'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.949878,1.146128,0.778151}, {'','',3.402089,3.567497,2.037426},
-+{'','',1.591065,0.000000,3.152594}, {'','',2.622214,-2.000000,3.564548}, {'','',3.709948,1.397940,3.285107}, {'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276},
-+{'','',3.342028,2.133539,2.628389}, {'','',3.790778,3.201943,1.462398}, {'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.743510,-2.000000,1.812913}, {'','',3.008600,2.872156,3.443263}, {'','',3.406881,1.079181,2.103804}, {'','',3.547405,-2.000000,2.677607},
-+{'','',3.360593,1.568202,1.079181}, {'','',2.721811,1.724276,1.518514}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',1.079181,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.866878,-2.000000,3.425208}, {'','',2.439333,1.414973,0.000000},
-+{'','',3.192567,1.929419,1.342423}, {'','',3.806994,2.618048,2.845718}, {'','',3.038223,2.281033,2.232996}, {'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.949878,1.146128,0.778151}, {'','',3.402089,3.567497,2.037426}, {'','',1.591065,0.000000,3.152594},
-+{'','',2.622214,-2.000000,3.564548}, {'','',3.709948,1.397940,3.285107}, {'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276}, {'','',3.342028,2.133539,2.628389},
-+{'','',3.790778,3.201943,1.462398}, {'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.743510,-2.000000,1.812913}, {'','',3.008600,2.872156,3.443263}, {'','',3.406881,1.079181,2.103804}, {'','',3.547405,-2.000000,2.677607}, {'','',3.360593,1.568202,1.079181},
-+{'','',2.721811,1.724276,1.518514}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',1.079181,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.866878,-2.000000,3.425208}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',2.861534,-2.000000,-2.000000}, {'','',0.778151,0.477121,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754},
-+{'','',1.380211,1.845098,0.602060}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.301030,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.158362,-2.000000,0.698970}, {'','',2.792392,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',2.861534,-2.000000,-2.000000},
-+{'','',0.778151,0.477121,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754}, {'','',1.380211,1.845098,0.602060},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.301030,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.158362,-2.000000,0.698970},
-+{'','',2.792392,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.301030}, {'','',3.964919,3.984122,3.731830}, {'','',2.547775,2.082785,0.477121}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000},
-+{'','',2.348305,2.626340,3.137671}, {'','',1.414973,-2.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101}, {'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000},
-+{'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926}, {'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',1.886491,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.732394,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000},
-+{'','',3.964919,3.984122,3.731830}, {'','',2.547775,2.082785,0.477121}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',2.348305,2.626340,3.137671}, {'','',1.414973,-2.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101},
-+{'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000}, {'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926},
-+{'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.886491,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',1.732394,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',4.028083,2.858537,3.912966}, {'','',1.732394,1.602060,0.477121}, {'','',2.017033,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273},
-+{'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',2.894870,1.477121,-2.000000}, {'','',1.924279,-2.000000,1.176091}, {'','',3.966892,3.456366,4.024568}, {'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970},
-+{'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970}, {'','',3.772835,-2.000000,-2.000000}, {'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',0.903090,-2.000000,-2.000000}, {'','',0.698970,-2.000000,0.477121},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',0.778151,-2.000000,-2.000000}, {'','',3.395501,1.857332,2.587711}, {'','',4.066214,1.732394,3.082785}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.045714,3.207096,2.748188},
-+{'','',3.571592,1.690196,3.195069}, {'','',4.028083,2.858537,3.912966}, {'','',1.732394,1.602060,0.477121}, {'','',2.017033,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273}, {'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',2.894870,1.477121,-2.000000},
-+{'','',1.924279,-2.000000,1.176091}, {'','',3.966892,3.456366,4.024568}, {'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970}, {'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970},
-+{'','',3.772835,-2.000000,-2.000000}, {'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',0.903090,-2.000000,-2.000000}, {'','',0.698970,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000},
-+{'','',0.778151,-2.000000,-2.000000}, {'','',3.395501,1.857332,2.587711}, {'','',4.066214,1.732394,3.082785}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.045714,3.207096,2.748188}, {'','',3.571592,1.690196,3.195069}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121},
-+{'','',1.531479,-2.000000,-2.000000}, {'','',0.778151,2.201397,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679}, {'','',0.845098,-2.000000,-2.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000},
-+{'','',1.959041,-2.000000,1.113943}, {'','',3.406881,3.586475,-2.000000}, {'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000}, {'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084},
-+{'','',1.322219,-2.000000,0.000000}, {'','',-2.000000,0.301030,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',2.269513,0.778151,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',3.191171,3.276462,2.357935}, {'','',1.991226,-2.000000,2.130334},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.530200,2.227887,2.985875}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121}, {'','',1.531479,-2.000000,-2.000000}, {'','',0.778151,2.201397,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000}, {'','',1.959041,-2.000000,1.113943}, {'','',3.406881,3.586475,-2.000000}, {'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000},
-+{'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084}, {'','',1.322219,-2.000000,0.000000}, {'','',-2.000000,0.301030,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',2.269513,0.778151,-2.000000},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',3.191171,3.276462,2.357935}, {'','',1.991226,-2.000000,2.130334}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.530200,2.227887,2.985875}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000},
-+{'','',1.255273,-2.000000,-2.000000}, {'','',2.394452,-2.000000,1.477121}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.778151,-2.000000,0.477121}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060},
-+{'','',2.641474,-2.000000,-2.000000}, {'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466},
-+{'','',3.881556,3.212454,3.188366}, {'','',2.021189,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.866287,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000},
-+{'','',3.922622,1.875061,3.260071}, {'','',3.227887,0.301030,3.521269}, {'','',0.000000,0.477121,-2.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.719331,1.505150,3.569374}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000},
-+{'','',2.394452,-2.000000,1.477121}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.778151,-2.000000,0.477121}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060}, {'','',2.641474,-2.000000,-2.000000},
-+{'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466}, {'','',3.881556,3.212454,3.188366},
-+{'','',2.021189,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.866287,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.922622,1.875061,3.260071},
-+{'','',3.227887,0.301030,3.521269}, {'','',0.000000,0.477121,-2.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.719331,1.505150,3.569374}, {'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',4.293738,1.707570,3.375846}, {'','',4.169674,2.836957,2.929419},
-+{'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127}, {'','',3.853941,2.320146,1.908485}, {'','',3.539452,2.184691,1.579784}, {'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791},
-+{'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341}, {'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276}, {'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090},
-+{'','',2.885361,1.748188,1.255273}, {'','',3.269980,2.445604,2.318063}, {'','',2.514548,1.732394,-2.000000}, {'','',3.779813,3.175222,0.000000}, {'','',3.478278,2.245513,1.556303}, {'','',2.756636,2.149219,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.155336,-2.000000,-2.000000},
-+{'','',2.107210,-2.000000,3.054613}, {'','',3.244772,-2.000000,2.688420}, {'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',4.293738,1.707570,3.375846}, {'','',4.169674,2.836957,2.929419}, {'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127},
-+{'','',3.853941,2.320146,1.908485}, {'','',3.539452,2.184691,1.579784}, {'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791}, {'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341},
-+{'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276}, {'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090}, {'','',2.885361,1.748188,1.255273}, {'','',3.269980,2.445604,2.318063},
-+{'','',2.514548,1.732394,-2.000000}, {'','',3.779813,3.175222,0.000000}, {'','',3.478278,2.245513,1.556303}, {'','',2.756636,2.149219,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',2.107210,-2.000000,3.054613}, {'','',3.244772,-2.000000,2.688420},
-+{'','',3.467312,3.637189,2.209515}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.575072,3.529302,1.819544}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000}, {'','',3.748110,4.432617,1.991226},
-+{'','',2.863917,0.000000,0.301030}, {'','',3.667173,4.227475,0.301030}, {'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.387390,-2.000000,-2.000000},
-+{'','',1.977724,0.845098,-2.000000}, {'','',0.778151,1.176091,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.907949,2.474216,1.944483}, {'','',1.826075,2.093422,1.612784}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',2.786041,2.619093,0.903090},
-+{'','',3.467312,3.637189,2.209515}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.575072,3.529302,1.819544}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000}, {'','',3.748110,4.432617,1.991226},
-+{'','',2.863917,0.000000,0.301030}, {'','',3.667173,4.227475,0.301030}, {'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.387390,-2.000000,-2.000000},
-+{'','',1.977724,0.845098,-2.000000}, {'','',0.778151,1.176091,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.907949,2.474216,1.944483}, {'','',1.826075,2.093422,1.612784}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',2.786041,2.619093,0.903090},
-+{'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000}, {'','',3.130977,1.959041,-2.000000}, {'','',2.633468,-2.000000,1.812913}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',3.033021,1.342423,0.301030}, {'','',2.193125,0.000000,0.477121},
-+{'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784}, {'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',2.164353,-2.000000,-2.000000},
-+{'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334}, {'','',3.701222,3.349666,2.875640}, {'','',2.187521,-2.000000,2.315970}, {'','',2.423246,-2.000000,2.079181}, {'','',2.240549,-2.000000,-2.000000}, {'','',2.527630,-2.000000,0.778151}, {'','',2.892651,-2.000000,1.000000},
-+{'','',2.079181,-2.000000,0.477121}, {'','',3.478566,2.406540,2.940018}, {'','',2.853090,0.000000,3.227115}, {'','',0.778151,0.301030,0.000000}, {'','',2.247973,1.113943,2.540329}, {'','',3.447778,2.491362,2.760422}, {'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000},
-+{'','',3.130977,1.959041,-2.000000}, {'','',2.633468,-2.000000,1.812913}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',3.033021,1.342423,0.301030}, {'','',2.193125,0.000000,0.477121}, {'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784},
-+{'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',2.164353,-2.000000,-2.000000}, {'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334},
-+{'','',3.701222,3.349666,2.875640}, {'','',2.187521,-2.000000,2.315970}, {'','',2.423246,-2.000000,2.079181}, {'','',2.240549,-2.000000,-2.000000}, {'','',2.527630,-2.000000,0.778151}, {'','',2.892651,-2.000000,1.000000}, {'','',2.079181,-2.000000,0.477121}, {'','',3.478566,2.406540,2.940018},
-+{'','',2.853090,0.000000,3.227115}, {'','',0.778151,0.301030,0.000000}, {'','',2.247973,1.113943,2.540329}, {'','',3.447778,2.491362,2.760422}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',0.301030,2.217484,-2.000000},
-+{'','',0.301030,2.826075,-2.000000}, {'','',3.637990,3.666331,3.451940}, {'','',-2.000000,2.004321,-2.000000}, {'','',-2.000000,1.591065,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754}, {'','',3.136403,3.402777,-2.000000},
-+{'','',3.431364,3.030195,-2.000000}, {'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545}, {'','',2.924279,3.172311,2.450249}, {'','',1.000000,1.763428,-2.000000},
-+{'','',2.693727,2.298853,-2.000000}, {'','',1.939519,1.591065,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',2.578639,2.701568,2.563481}, {'','',2.944483,-2.000000,3.992465},
-+{'','',-2.000000,3.283527,-2.000000}, {'','',1.913814,2.414973,2.413300}, {'','',3.035830,1.278754,4.148757}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',0.301030,2.217484,-2.000000}, {'','',0.301030,2.826075,-2.000000},
-+{'','',3.637990,3.666331,3.451940}, {'','',-2.000000,2.004321,-2.000000}, {'','',-2.000000,1.591065,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754}, {'','',3.136403,3.402777,-2.000000}, {'','',3.431364,3.030195,-2.000000},
-+{'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545}, {'','',2.924279,3.172311,2.450249}, {'','',1.000000,1.763428,-2.000000}, {'','',2.693727,2.298853,-2.000000},
-+{'','',1.939519,1.591065,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',2.578639,2.701568,2.563481}, {'','',2.944483,-2.000000,3.992465}, {'','',-2.000000,3.283527,-2.000000},
-+{'','',1.913814,2.414973,2.413300}, {'','',3.035830,1.278754,4.148757}, {'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000}, {'','',3.929266,3.701654,3.580126},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060}, {'','',3.668572,-2.000000,-2.000000}, {'','',4.169469,3.974650,4.307582},
-+{'','',2.574031,-2.000000,-2.000000}, {'','',3.831614,3.288473,1.944483}, {'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.262451,-2.000000,-2.000000},
-+{'','',2.705864,-2.000000,0.000000}, {'','',1.544068,-2.000000,-2.000000}, {'','',0.301030,1.785330,-2.000000}, {'','',1.431364,-2.000000,0.000000}, {'','',3.296007,3.418301,2.948413}, {'','',3.614686,1.977724,4.250152}, {'','',1.968483,1.845098,1.079181}, {'','',2.966142,2.569374,2.804139},
-+{'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000}, {'','',3.929266,3.701654,3.580126}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000},
-+{'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060}, {'','',3.668572,-2.000000,-2.000000}, {'','',4.169469,3.974650,4.307582}, {'','',2.574031,-2.000000,-2.000000}, {'','',3.831614,3.288473,1.944483},
-+{'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.262451,-2.000000,-2.000000}, {'','',2.705864,-2.000000,0.000000}, {'','',1.544068,-2.000000,-2.000000},
-+{'','',0.301030,1.785330,-2.000000}, {'','',1.431364,-2.000000,0.000000}, {'','',3.296007,3.418301,2.948413}, {'','',3.614686,1.977724,4.250152}, {'','',1.968483,1.845098,1.079181}, {'','',2.966142,2.569374,2.804139}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362},
-+{'','',2.942008,2.998695,2.117271}, {'','',3.296884,2.769377,3.048053}, {'','',3.725667,3.130012,1.929419}, {'','',2.790285,1.913814,0.301030}, {'','',3.366983,3.468938,1.919078}, {'','',2.585461,2.642465,1.579784}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033},
-+{'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390}, {'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000}, {'','',3.218536,2.687529,1.832509}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151},
-+{'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.121231,-2.000000,1.397940}, {'','',2.843855,2.580925,2.530200}, {'','',1.176091,1.361728,-2.000000}, {'','',3.448242,2.468347,1.301030}, {'','',3.348500,2.309630,1.819544}, {'','',2.998695,1.146128,0.000000},
-+{'','',1.633468,-2.000000,-2.000000}, {'','',2.584331,1.518514,3.410440}, {'','',1.806180,1.255273,1.838849}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362}, {'','',2.942008,2.998695,2.117271}, {'','',3.296884,2.769377,3.048053}, {'','',3.725667,3.130012,1.929419},
-+{'','',2.790285,1.913814,0.301030}, {'','',3.366983,3.468938,1.919078}, {'','',2.585461,2.642465,1.579784}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033}, {'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390},
-+{'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000}, {'','',3.218536,2.687529,1.832509}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151}, {'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.121231,-2.000000,1.397940},
-+{'','',2.843855,2.580925,2.530200}, {'','',1.176091,1.361728,-2.000000}, {'','',3.448242,2.468347,1.301030}, {'','',3.348500,2.309630,1.819544}, {'','',2.998695,1.146128,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.584331,1.518514,3.410440}, {'','',1.806180,1.255273,1.838849},
-+{'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784}, {'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000}, {'','',1.342423,2.000000,0.000000},
-+{'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000}, {'','',1.623249,1.812913,1.973128}, {'','',3.105169,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',2.477121,0.000000,-2.000000}, {'','',-2.000000,1.462398,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784}, {'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000},
-+{'','',1.342423,2.000000,0.000000}, {'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000}, {'','',1.623249,1.812913,1.973128}, {'','',3.105169,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',2.477121,0.000000,-2.000000},
-+{'','',-2.000000,1.462398,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.066326,2.742725,2.705008}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.630428,2.725912,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',2.618048,2.220108,2.615950},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000}, {'','',2.313867,2.056905,-2.000000}, {'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030},
-+{'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',3.066326,2.742725,2.705008}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.630428,2.725912,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',2.618048,2.220108,2.615950}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000},
-+{'','',2.313867,2.056905,-2.000000}, {'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030}, {'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',3.072985,1.939519,3.070038}, {'','',1.662758,2.060698,0.000000},
-+{'','',2.966142,2.863323,2.898176}, {'','',2.882525,1.785330,0.954243}, {'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',1.568202,0.477121,2.597695}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.093422,1.518514,2.846955}, {'','',0.602060,-2.000000,0.845098}, {'','',1.113943,-2.000000,0.301030}, {'','',-2.000000,0.477121,0.778151}, {'','',3.072985,1.939519,3.070038}, {'','',1.662758,2.060698,0.000000},
-+{'','',2.966142,2.863323,2.898176}, {'','',2.882525,1.785330,0.954243}, {'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',1.568202,0.477121,2.597695}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.093422,1.518514,2.846955}, {'','',0.602060,-2.000000,0.845098}, {'','',1.113943,-2.000000,0.301030}, {'','',-2.000000,0.477121,0.778151}, {'','',3.780389,2.989450,2.786751}, {'','',0.698970,0.477121,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',3.875235,3.684307,2.656098}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000}, {'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814},
-+{'','',0.301030,2.584331,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.752048,-2.000000,-2.000000}, {'','',2.475671,2.071882,2.809560},
-+{'','',3.780389,2.989450,2.786751}, {'','',0.698970,0.477121,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.875235,3.684307,2.656098}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000},
-+{'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814}, {'','',0.301030,2.584331,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.752048,-2.000000,-2.000000}, {'','',2.475671,2.071882,2.809560}, {'','',3.279211,2.887054,2.691081}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.176091,2.017033,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.643749,2.823474,3.224792}, {'','',3.631342,2.372912,2.641474},
-+{'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000}, {'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',0.903090,-2.000000,0.000000}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.279211,2.887054,2.691081},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.176091,2.017033,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.643749,2.823474,3.224792}, {'','',3.631342,2.372912,2.641474}, {'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000},
-+{'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',0.903090,-2.000000,0.000000},
-+{'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.025306,1.079181,1.897627}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754},
-+{'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',1.255273,-2.000000,1.903090},
-+{'','',3.025306,1.079181,1.897627}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754}, {'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',1.255273,-2.000000,1.903090}, {'','',2.332438,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',2.332438,-2.000000,-2.000000},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',3.412124,-2.000000,1.812913}, {'','',2.509203,-2.000000,0.301030}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730}, {'','',2.149219,-2.000000,0.698970},
-+{'','',2.315970,-2.000000,0.301030}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606}, {'','',0.000000,-2.000000,0.000000},
-+{'','',2.677607,-2.000000,-2.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.816241,0.000000,3.393224}, {'','',1.913814,-2.000000,-2.000000}, {'','',2.858537,-2.000000,1.845098},
-+{'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',1.653213,-2.000000,0.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',3.412124,-2.000000,1.812913}, {'','',2.509203,-2.000000,0.301030}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730},
-+{'','',2.149219,-2.000000,0.698970}, {'','',2.315970,-2.000000,0.301030}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606},
-+{'','',0.000000,-2.000000,0.000000}, {'','',2.677607,-2.000000,-2.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.816241,0.000000,3.393224}, {'','',1.913814,-2.000000,-2.000000},
-+{'','',2.858537,-2.000000,1.845098}, {'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',1.653213,-2.000000,0.000000}, {'','',2.484300,-2.000000,0.477121}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970},
-+{'','',3.015779,-2.000000,2.685742}, {'','',2.685742,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000}, {'','',1.845098,-2.000000,-2.000000},
-+{'','',0.602060,-2.000000,-2.000000}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.539076,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',1.602060,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.612784,-2.000000,2.849419}, {'','',2.484300,-2.000000,0.477121}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970},
-+{'','',3.015779,-2.000000,2.685742}, {'','',2.685742,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000}, {'','',1.845098,-2.000000,-2.000000},
-+{'','',0.602060,-2.000000,-2.000000}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.539076,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',1.602060,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.612784,-2.000000,2.849419}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,1.204120,-2.000000}, {'','',-2.000000,1.477121,-2.000000}, {'','',0.477121,1.255273,-2.000000},
-+{'','',0.845098,0.000000,-2.000000}, {'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000}, {'','',2.683047,0.903090,3.158664},
-+{'','',0.000000,1.113943,-2.000000}, {'','',2.214844,3.899437,1.397940}, {'','',0.301030,1.662758,-2.000000}, {'','',0.000000,2.056905,0.903090}, {'','',0.000000,1.113943,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,1.204120,-2.000000}, {'','',-2.000000,1.477121,-2.000000},
-+{'','',0.477121,1.255273,-2.000000}, {'','',0.845098,0.000000,-2.000000}, {'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000},
-+{'','',2.683047,0.903090,3.158664}, {'','',0.000000,1.113943,-2.000000}, {'','',2.214844,3.899437,1.397940}, {'','',0.301030,1.662758,-2.000000}, {'','',0.000000,2.056905,0.903090}, {'','',0.000000,1.113943,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000},
-+{'','',0.778151,0.698970,0.477121}, {'','',1.544068,0.778151,0.698970}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',2.187521,0.698970,-2.000000}, {'','',1.505150,-2.000000,0.477121}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394},
-+{'','',1.602060,0.602060,-2.000000}, {'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.949390,-2.000000,0.698970}, {'','',1.230449,-2.000000,-2.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',0.602060,-2.000000,1.959041}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000},
-+{'','',0.778151,0.698970,0.477121}, {'','',1.544068,0.778151,0.698970}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',2.187521,0.698970,-2.000000}, {'','',1.505150,-2.000000,0.477121}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394},
-+{'','',1.602060,0.602060,-2.000000}, {'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.949390,-2.000000,0.698970}, {'','',1.230449,-2.000000,-2.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',0.602060,-2.000000,1.959041}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000},
-+{'','',2.806858,2.477121,1.505150}, {'','',2.588832,0.845098,1.000000}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',3.467904,2.214844,0.477121}, {'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514},
-+{'','',2.847573,1.690196,1.826075}, {'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',2.155336,2.988559,1.176091}, {'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828},
-+{'','',0.903090,-2.000000,0.000000}, {'','',1.913814,0.000000,2.650308}, {'','',1.944483,-2.000000,1.707570}, {'','',2.527630,0.000000,1.954243}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000}, {'','',2.396199,-2.000000,2.143015}, {'','',1.826075,-2.000000,2.336460},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000}, {'','',2.806858,2.477121,1.505150}, {'','',2.588832,0.845098,1.000000}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',3.467904,2.214844,0.477121},
-+{'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514}, {'','',2.847573,1.690196,1.826075}, {'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',2.155336,2.988559,1.176091},
-+{'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828}, {'','',0.903090,-2.000000,0.000000}, {'','',1.913814,0.000000,2.650308}, {'','',1.944483,-2.000000,1.707570}, {'','',2.527630,0.000000,1.954243}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000},
-+{'','',2.396199,-2.000000,2.143015}, {'','',1.826075,-2.000000,2.336460}, {'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',3.977312,1.838849,2.736397}, {'','',3.408749,2.796574,1.973128}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292},
-+{'','',3.684756,1.591065,1.612784}, {'','',3.967501,1.698970,3.025715}, {'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847}, {'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959},
-+{'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754}, {'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093}, {'','',2.565848,0.903090,0.954243}, {'','',2.269513,1.973128,2.103804}, {'','',3.176959,2.136721,3.241546},
-+{'','',2.884795,1.301030,0.602060}, {'','',3.496653,-2.000000,1.939519}, {'','',3.457125,-2.000000,2.478566}, {'','',2.847573,-2.000000,1.322219}, {'','',2.012837,-2.000000,-2.000000}, {'','',3.235528,-2.000000,3.228144}, {'','',2.975432,-2.000000,3.740994}, {'','',3.068557,3.068928,2.720986},
-+{'','',1.477121,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634}, {'','',2.071882,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060},
-+{'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453}, {'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000},
-+{'','',3.124504,3.405176,2.411620}, {'','',2.064458,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.859739,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',3.068186,3.948217,3.158965},
-+{'','',2.068186,1.724276,1.113943}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,1.041393,-2.000000}, {'','',2.448706,-2.000000,3.211654}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.361728,1.230449,-2.000000},
-+{'','',2.727541,2.992995,-2.000000}, {'','',4.066699,3.660581,2.998259}, {'','',-2.000000,0.903090,-2.000000}, {'','',1.591065,3.207096,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000},
-+{'','',1.397940,2.607455,0.301030}, {'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000}, {'','',3.110253,1.681241,2.832509},
-+{'','',-2.000000,2.017033,-2.000000}, {'','',1.812913,1.431364,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',1.342423,0.602060,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',3.355068,3.777717,2.657056}, {'','',2.396199,1.477121,2.558709},
-+{'','',0.477121,1.857332,-2.000000}, {'','',0.000000,-2.000000,0.000000}, {'','',2.812913,1.653213,1.113943}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.000000,1.579784,-2.000000}, {'','',0.301030,0.000000,0.000000}, {'','',3.451633,2.836957,-2.000000},
-+{'','',2.638489,3.002166,2.585461}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.289589,2.103804,2.824126}, {'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',2.181844,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',1.397940,0.845098,0.000000}, {'','',-2.000000,1.342423,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.831230,3.243782,-2.000000}, {'','',1.431364,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000},
-+{'','',3.952889,3.690728,3.209515}, {'','',1.716003,3.116940,-2.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000},
-+{'','',3.762978,2.660865,-2.000000}, {'','',3.771587,3.825621,2.952308}, {'','',2.378398,-2.000000,-2.000000}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.204120,-2.000000,-2.000000}, {'','',2.900367,-2.000000,-2.000000}, {'','',2.161368,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000}, {'','',2.993436,2.401401,2.866878}, {'','',2.887054,1.579784,3.237795},
-+{'','',2.149219,2.079181,0.954243}, {'','',2.678518,2.453318,2.550228}, {'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',3.679610,2.413300,2.906335}, {'','',3.832445,3.449324,2.363612}, {'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926},
-+{'','',3.389166,2.158362,2.212188}, {'','',3.492621,1.716003,3.151370}, {'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452}, {'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454},
-+{'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393}, {'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000}, {'','',1.819544,0.000000,1.732394}, {'','',2.981366,2.565848,2.936011},
-+{'','',2.627366,0.301030,3.066326}, {'','',3.590396,-2.000000,1.799341}, {'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',2.330414,1.204120,2.632457}, {'','',2.841359,-2.000000,2.127105}, {'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',1.204120,1.255273,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.591065,0.698970,-2.000000}, {'','',3.510947,3.211121,2.501059}, {'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000},
-+{'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000}, {'','',3.165541,1.982271,2.728354}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000}, {'','',3.361161,2.567026,0.301030}, {'','',3.019532,-2.000000,1.255273},
-+{'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',2.359835,-2.000000,-2.000000}, {'','',1.755875,-2.000000,-2.000000}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000}, {'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392},
-+{'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474}, {'','',1.000000,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',2.983626,0.903090,2.212188}, {'','',2.257679,-2.000000,3.261263}, {'','',0.602060,-2.000000,2.361728}, {'','',2.797268,0.903090,2.796574}, {'','',2.439333,1.414973,0.000000}, {'','',3.192567,1.929419,1.342423},
-+{'','',3.806994,2.618048,2.845718}, {'','',3.038223,2.281033,2.232996}, {'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.949878,1.146128,0.778151}, {'','',3.402089,3.567497,2.037426}, {'','',1.591065,0.000000,3.152594}, {'','',2.622214,-2.000000,3.564548},
-+{'','',3.709948,1.397940,3.285107}, {'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276}, {'','',3.342028,2.133539,2.628389}, {'','',3.790778,3.201943,1.462398},
-+{'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.743510,-2.000000,1.812913}, {'','',3.008600,2.872156,3.443263}, {'','',3.406881,1.079181,2.103804}, {'','',3.547405,-2.000000,2.677607}, {'','',3.360593,1.568202,1.079181}, {'','',2.721811,1.724276,1.518514},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',1.079181,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.866878,-2.000000,3.425208}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',2.861534,-2.000000,-2.000000},
-+{'','',0.778151,0.477121,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754}, {'','',1.380211,1.845098,0.602060},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.301030,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.158362,-2.000000,0.698970},
-+{'','',2.792392,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.301030}, {'','',3.964919,3.984122,3.731830}, {'','',2.547775,2.082785,0.477121}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000},
-+{'','',2.348305,2.626340,3.137671}, {'','',1.414973,-2.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101}, {'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000},
-+{'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926}, {'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',1.886491,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.732394,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000},
-+{'','',4.028083,2.858537,3.912966}, {'','',1.732394,1.602060,0.477121}, {'','',2.017033,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273}, {'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',2.894870,1.477121,-2.000000}, {'','',1.924279,-2.000000,1.176091},
-+{'','',3.966892,3.456366,4.024568}, {'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970}, {'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970}, {'','',3.772835,-2.000000,-2.000000},
-+{'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',0.903090,-2.000000,-2.000000}, {'','',0.698970,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',0.778151,-2.000000,-2.000000},
-+{'','',3.395501,1.857332,2.587711}, {'','',4.066214,1.732394,3.082785}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.045714,3.207096,2.748188}, {'','',3.571592,1.690196,3.195069}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121}, {'','',1.531479,-2.000000,-2.000000},
-+{'','',0.778151,2.201397,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679}, {'','',0.845098,-2.000000,-2.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000}, {'','',1.959041,-2.000000,1.113943},
-+{'','',3.406881,3.586475,-2.000000}, {'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000}, {'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084}, {'','',1.322219,-2.000000,0.000000},
-+{'','',-2.000000,0.301030,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',2.269513,0.778151,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',3.191171,3.276462,2.357935}, {'','',1.991226,-2.000000,2.130334}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.530200,2.227887,2.985875}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',2.394452,-2.000000,1.477121}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689}, {'','',1.690196,-2.000000,-2.000000},
-+{'','',1.778151,-2.000000,0.477121}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060}, {'','',2.641474,-2.000000,-2.000000}, {'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466}, {'','',3.881556,3.212454,3.188366}, {'','',2.021189,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.866287,-2.000000,-2.000000},
-+{'','',1.414973,-2.000000,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.922622,1.875061,3.260071}, {'','',3.227887,0.301030,3.521269}, {'','',0.000000,0.477121,-2.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.719331,1.505150,3.569374},
-+{'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',4.293738,1.707570,3.375846}, {'','',4.169674,2.836957,2.929419}, {'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127}, {'','',3.853941,2.320146,1.908485}, {'','',3.539452,2.184691,1.579784},
-+{'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791}, {'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341}, {'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276},
-+{'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090}, {'','',2.885361,1.748188,1.255273}, {'','',3.269980,2.445604,2.318063}, {'','',2.514548,1.732394,-2.000000}, {'','',3.779813,3.175222,0.000000},
-+{'','',3.478278,2.245513,1.556303}, {'','',2.756636,2.149219,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',2.107210,-2.000000,3.054613}, {'','',3.244772,-2.000000,2.688420}, {'','',3.467312,3.637189,2.209515}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',3.575072,3.529302,1.819544}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000}, {'','',3.748110,4.432617,1.991226}, {'','',2.863917,0.000000,0.301030}, {'','',3.667173,4.227475,0.301030},
-+{'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.387390,-2.000000,-2.000000}, {'','',1.977724,0.845098,-2.000000}, {'','',0.778151,1.176091,-2.000000},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',2.907949,2.474216,1.944483}, {'','',1.826075,2.093422,1.612784}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',2.786041,2.619093,0.903090}, {'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000},
-+{'','',3.130977,1.959041,-2.000000}, {'','',2.633468,-2.000000,1.812913}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',3.033021,1.342423,0.301030}, {'','',2.193125,0.000000,0.477121}, {'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784},
-+{'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',2.164353,-2.000000,-2.000000}, {'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334},
-+{'','',3.701222,3.349666,2.875640}, {'','',2.187521,-2.000000,2.315970}, {'','',2.423246,-2.000000,2.079181}, {'','',2.240549,-2.000000,-2.000000}, {'','',2.527630,-2.000000,0.778151}, {'','',2.892651,-2.000000,1.000000}, {'','',2.079181,-2.000000,0.477121}, {'','',3.478566,2.406540,2.940018},
-+{'','',2.853090,0.000000,3.227115}, {'','',0.778151,0.301030,0.000000}, {'','',2.247973,1.113943,2.540329}, {'','',3.447778,2.491362,2.760422}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',0.301030,2.217484,-2.000000},
-+{'','',0.301030,2.826075,-2.000000}, {'','',3.637990,3.666331,3.451940}, {'','',-2.000000,2.004321,-2.000000}, {'','',-2.000000,1.591065,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754}, {'','',3.136403,3.402777,-2.000000},
-+{'','',3.431364,3.030195,-2.000000}, {'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545}, {'','',2.924279,3.172311,2.450249}, {'','',1.000000,1.763428,-2.000000},
-+{'','',2.693727,2.298853,-2.000000}, {'','',1.939519,1.591065,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',2.578639,2.701568,2.563481}, {'','',2.944483,-2.000000,3.992465},
-+{'','',-2.000000,3.283527,-2.000000}, {'','',1.913814,2.414973,2.413300}, {'','',3.035830,1.278754,4.148757}, {'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000},
-+{'','',3.929266,3.701654,3.580126}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060}, {'','',3.668572,-2.000000,-2.000000},
-+{'','',4.169469,3.974650,4.307582}, {'','',2.574031,-2.000000,-2.000000}, {'','',3.831614,3.288473,1.944483}, {'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000},
-+{'','',2.262451,-2.000000,-2.000000}, {'','',2.705864,-2.000000,0.000000}, {'','',1.544068,-2.000000,-2.000000}, {'','',0.301030,1.785330,-2.000000}, {'','',1.431364,-2.000000,0.000000}, {'','',3.296007,3.418301,2.948413}, {'','',3.614686,1.977724,4.250152}, {'','',1.968483,1.845098,1.079181},
-+{'','',2.966142,2.569374,2.804139}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362}, {'','',2.942008,2.998695,2.117271}, {'','',3.296884,2.769377,3.048053}, {'','',3.725667,3.130012,1.929419}, {'','',2.790285,1.913814,0.301030}, {'','',3.366983,3.468938,1.919078},
-+{'','',2.585461,2.642465,1.579784}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033}, {'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390}, {'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000},
-+{'','',3.218536,2.687529,1.832509}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151}, {'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.121231,-2.000000,1.397940}, {'','',2.843855,2.580925,2.530200}, {'','',1.176091,1.361728,-2.000000},
-+{'','',3.448242,2.468347,1.301030}, {'','',3.348500,2.309630,1.819544}, {'','',2.998695,1.146128,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.584331,1.518514,3.410440}, {'','',1.806180,1.255273,1.838849}, {'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784},
-+{'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000}, {'','',1.342423,2.000000,0.000000}, {'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000},
-+{'','',1.623249,1.812913,1.973128}, {'','',3.105169,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',2.477121,0.000000,-2.000000}, {'','',-2.000000,1.462398,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.066326,2.742725,2.705008},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',2.630428,2.725912,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',2.618048,2.220108,2.615950}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000}, {'','',2.313867,2.056905,-2.000000},
-+{'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030}, {'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',3.072985,1.939519,3.070038}, {'','',1.662758,2.060698,0.000000}, {'','',2.966142,2.863323,2.898176},
-+{'','',2.882525,1.785330,0.954243}, {'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',1.568202,0.477121,2.597695}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000},
-+{'','',1.342423,-2.000000,-2.000000}, {'','',2.093422,1.518514,2.846955}, {'','',0.602060,-2.000000,0.845098}, {'','',1.113943,-2.000000,0.301030}, {'','',-2.000000,0.477121,0.778151}, {'','',3.780389,2.989450,2.786751}, {'','',0.698970,0.477121,-2.000000}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',3.875235,3.684307,2.656098}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000}, {'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814}, {'','',0.301030,2.584331,-2.000000},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.752048,-2.000000,-2.000000}, {'','',2.475671,2.071882,2.809560}, {'','',3.279211,2.887054,2.691081},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.176091,2.017033,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.643749,2.823474,3.224792}, {'','',3.631342,2.372912,2.641474}, {'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000},
-+{'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',0.903090,-2.000000,0.000000},
-+{'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.025306,1.079181,1.897627}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754},
-+{'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',1.255273,-2.000000,1.903090},
-+{'','',2.332438,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',3.412124,-2.000000,1.812913}, {'','',2.509203,-2.000000,0.301030}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730},
-+{'','',2.149219,-2.000000,0.698970}, {'','',2.315970,-2.000000,0.301030}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606},
-+{'','',0.000000,-2.000000,0.000000}, {'','',2.677607,-2.000000,-2.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.816241,0.000000,3.393224}, {'','',1.913814,-2.000000,-2.000000},
-+{'','',2.858537,-2.000000,1.845098}, {'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',1.653213,-2.000000,0.000000}, {'','',2.484300,-2.000000,0.477121}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970},
-+{'','',3.015779,-2.000000,2.685742}, {'','',2.685742,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000}, {'','',1.845098,-2.000000,-2.000000},
-+{'','',0.602060,-2.000000,-2.000000}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.539076,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',1.602060,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.612784,-2.000000,2.849419}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,1.204120,-2.000000}, {'','',-2.000000,1.477121,-2.000000}, {'','',0.477121,1.255273,-2.000000},
-+{'','',0.845098,0.000000,-2.000000}, {'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000}, {'','',2.683047,0.903090,3.158664},
-+{'','',0.000000,1.113943,-2.000000}, {'','',2.214844,3.899437,1.397940}, {'','',0.301030,1.662758,-2.000000}, {'','',0.000000,2.056905,0.903090}, {'','',0.000000,1.113943,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000}, {'','',0.778151,0.698970,0.477121},
-+{'','',1.544068,0.778151,0.698970}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',2.187521,0.698970,-2.000000}, {'','',1.505150,-2.000000,0.477121}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394}, {'','',1.602060,0.602060,-2.000000},
-+{'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.949390,-2.000000,0.698970},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',0.602060,-2.000000,1.959041}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000}, {'','',2.806858,2.477121,1.505150},
-+{'','',2.588832,0.845098,1.000000}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',3.467904,2.214844,0.477121}, {'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514}, {'','',2.847573,1.690196,1.826075},
-+{'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',2.155336,2.988559,1.176091}, {'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828}, {'','',0.903090,-2.000000,0.000000},
-+{'','',1.913814,0.000000,2.650308}, {'','',1.944483,-2.000000,1.707570}, {'','',2.527630,0.000000,1.954243}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000}, {'','',2.396199,-2.000000,2.143015}, {'','',1.826075,-2.000000,2.336460}
-+};
-+
-+static const lng_stat2 enc_alt[]={
-+{'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',3.977312,1.838849,2.736397}, {'','',3.408749,2.796574,1.973128}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292}, {'','',3.684756,1.591065,1.612784}, {'','',3.967501,1.698970,3.025715},
-+{'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847}, {'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959}, {'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754},
-+{'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093}, {'','',2.565848,0.903090,0.954243}, {'','',2.269513,1.973128,2.103804}, {'','',3.176959,2.136721,3.241546}, {'','',2.884795,1.301030,0.602060}, {'','',3.496653,-2.000000,1.939519},
-+{'','',3.457125,-2.000000,2.478566}, {'','',2.847573,-2.000000,1.322219}, {'','',2.012837,-2.000000,-2.000000}, {'','',3.235528,-2.000000,3.228144}, {'','',2.975432,-2.000000,3.740994}, {'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',3.977312,1.838849,2.736397},
-+{'','',3.408749,2.796574,1.973128}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292}, {'','',3.684756,1.591065,1.612784}, {'','',3.967501,1.698970,3.025715}, {'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847},
-+{'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959}, {'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754}, {'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093},
-+{'','',2.565848,0.903090,0.954243}, {'','',2.269513,1.973128,2.103804}, {'','',3.176959,2.136721,3.241546}, {'','',2.884795,1.301030,0.602060}, {'','',3.496653,-2.000000,1.939519}, {'','',3.457125,-2.000000,2.478566}, {'','',2.847573,-2.000000,1.322219}, {'','',2.012837,-2.000000,-2.000000},
-+{'','',3.235528,-2.000000,3.228144}, {'','',2.975432,-2.000000,3.740994}, {'','',3.068557,3.068928,2.720986}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634},
-+{'','',2.071882,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060}, {'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453},
-+{'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000}, {'','',3.124504,3.405176,2.411620}, {'','',2.064458,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000},
-+{'','',2.859739,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',3.068186,3.948217,3.158965}, {'','',2.068186,1.724276,1.113943}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,1.041393,-2.000000}, {'','',2.448706,-2.000000,3.211654}, {'','',3.068557,3.068928,2.720986},
-+{'','',1.477121,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634}, {'','',2.071882,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060},
-+{'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453}, {'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000},
-+{'','',3.124504,3.405176,2.411620}, {'','',2.064458,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.859739,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',3.068186,3.948217,3.158965},
-+{'','',2.068186,1.724276,1.113943}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,1.041393,-2.000000}, {'','',2.448706,-2.000000,3.211654}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.361728,1.230449,-2.000000},
-+{'','',2.727541,2.992995,-2.000000}, {'','',4.066699,3.660581,2.998259}, {'','',-2.000000,0.903090,-2.000000}, {'','',1.591065,3.207096,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000},
-+{'','',1.397940,2.607455,0.301030}, {'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000}, {'','',3.110253,1.681241,2.832509},
-+{'','',-2.000000,2.017033,-2.000000}, {'','',1.812913,1.431364,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',1.342423,0.602060,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',3.355068,3.777717,2.657056}, {'','',2.396199,1.477121,2.558709},
-+{'','',0.477121,1.857332,-2.000000}, {'','',0.000000,-2.000000,0.000000}, {'','',2.812913,1.653213,1.113943}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.361728,1.230449,-2.000000}, {'','',2.727541,2.992995,-2.000000},
-+{'','',4.066699,3.660581,2.998259}, {'','',-2.000000,0.903090,-2.000000}, {'','',1.591065,3.207096,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000}, {'','',1.397940,2.607455,0.301030},
-+{'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000}, {'','',3.110253,1.681241,2.832509}, {'','',-2.000000,2.017033,-2.000000},
-+{'','',1.812913,1.431364,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',1.342423,0.602060,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',3.355068,3.777717,2.657056}, {'','',2.396199,1.477121,2.558709}, {'','',0.477121,1.857332,-2.000000},
-+{'','',0.000000,-2.000000,0.000000}, {'','',2.812913,1.653213,1.113943}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.000000,1.579784,-2.000000}, {'','',0.301030,0.000000,0.000000}, {'','',3.451633,2.836957,-2.000000}, {'','',2.638489,3.002166,2.585461},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',3.289589,2.103804,2.824126}, {'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',2.181844,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.397940,0.845098,0.000000},
-+{'','',-2.000000,1.342423,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.000000,1.579784,-2.000000}, {'','',0.301030,0.000000,0.000000}, {'','',3.451633,2.836957,-2.000000}, {'','',2.638489,3.002166,2.585461},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',3.289589,2.103804,2.824126}, {'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',2.181844,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.397940,0.845098,0.000000},
-+{'','',-2.000000,1.342423,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.831230,3.243782,-2.000000}, {'','',1.431364,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000}, {'','',3.952889,3.690728,3.209515},
-+{'','',1.716003,3.116940,-2.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000}, {'','',3.762978,2.660865,-2.000000},
-+{'','',3.771587,3.825621,2.952308}, {'','',2.378398,-2.000000,-2.000000}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.204120,-2.000000,-2.000000},
-+{'','',2.900367,-2.000000,-2.000000}, {'','',2.161368,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000}, {'','',2.993436,2.401401,2.866878}, {'','',2.887054,1.579784,3.237795}, {'','',2.149219,2.079181,0.954243},
-+{'','',2.678518,2.453318,2.550228}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.831230,3.243782,-2.000000}, {'','',1.431364,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000}, {'','',3.952889,3.690728,3.209515}, {'','',1.716003,3.116940,-2.000000},
-+{'','',1.633468,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000}, {'','',3.762978,2.660865,-2.000000}, {'','',3.771587,3.825621,2.952308},
-+{'','',2.378398,-2.000000,-2.000000}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.204120,-2.000000,-2.000000}, {'','',2.900367,-2.000000,-2.000000},
-+{'','',2.161368,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000}, {'','',2.993436,2.401401,2.866878}, {'','',2.887054,1.579784,3.237795}, {'','',2.149219,2.079181,0.954243}, {'','',2.678518,2.453318,2.550228},
-+{'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',3.679610,2.413300,2.906335}, {'','',3.832445,3.449324,2.363612}, {'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926}, {'','',3.389166,2.158362,2.212188}, {'','',3.492621,1.716003,3.151370},
-+{'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452}, {'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454}, {'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393},
-+{'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000}, {'','',1.819544,0.000000,1.732394}, {'','',2.981366,2.565848,2.936011}, {'','',2.627366,0.301030,3.066326}, {'','',3.590396,-2.000000,1.799341},
-+{'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',2.330414,1.204120,2.632457}, {'','',2.841359,-2.000000,2.127105}, {'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',3.679610,2.413300,2.906335}, {'','',3.832445,3.449324,2.363612},
-+{'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926}, {'','',3.389166,2.158362,2.212188}, {'','',3.492621,1.716003,3.151370}, {'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452},
-+{'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454}, {'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393}, {'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000},
-+{'','',1.819544,0.000000,1.732394}, {'','',2.981366,2.565848,2.936011}, {'','',2.627366,0.301030,3.066326}, {'','',3.590396,-2.000000,1.799341}, {'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',2.330414,1.204120,2.632457}, {'','',2.841359,-2.000000,2.127105},
-+{'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.204120,1.255273,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.591065,0.698970,-2.000000}, {'','',3.510947,3.211121,2.501059},
-+{'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000}, {'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000},
-+{'','',3.165541,1.982271,2.728354}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',1.204120,1.255273,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.591065,0.698970,-2.000000}, {'','',3.510947,3.211121,2.501059}, {'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000},
-+{'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000}, {'','',3.165541,1.982271,2.728354}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000}, {'','',3.361161,2.567026,0.301030}, {'','',3.019532,-2.000000,1.255273},
-+{'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',2.359835,-2.000000,-2.000000}, {'','',1.755875,-2.000000,-2.000000}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000}, {'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392},
-+{'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474}, {'','',1.000000,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',2.983626,0.903090,2.212188}, {'','',2.257679,-2.000000,3.261263}, {'','',0.602060,-2.000000,2.361728}, {'','',2.797268,0.903090,2.796574}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000},
-+{'','',3.361161,2.567026,0.301030}, {'','',3.019532,-2.000000,1.255273}, {'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',2.359835,-2.000000,-2.000000}, {'','',1.755875,-2.000000,-2.000000}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000},
-+{'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392}, {'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474},
-+{'','',1.000000,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',2.983626,0.903090,2.212188}, {'','',2.257679,-2.000000,3.261263}, {'','',0.602060,-2.000000,2.361728}, {'','',2.797268,0.903090,2.796574},
-+{'','',2.439333,1.414973,0.000000}, {'','',3.192567,1.929419,1.342423}, {'','',3.806994,2.618048,2.845718}, {'','',3.038223,2.281033,2.232996}, {'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.949878,1.146128,0.778151}, {'','',3.402089,3.567497,2.037426},
-+{'','',1.591065,0.000000,3.152594}, {'','',2.622214,-2.000000,3.564548}, {'','',3.709948,1.397940,3.285107}, {'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276},
-+{'','',3.342028,2.133539,2.628389}, {'','',3.790778,3.201943,1.462398}, {'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.743510,-2.000000,1.812913}, {'','',3.008600,2.872156,3.443263}, {'','',3.406881,1.079181,2.103804}, {'','',3.547405,-2.000000,2.677607},
-+{'','',3.360593,1.568202,1.079181}, {'','',2.721811,1.724276,1.518514}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',1.079181,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.866878,-2.000000,3.425208}, {'','',2.439333,1.414973,0.000000},
-+{'','',3.192567,1.929419,1.342423}, {'','',3.806994,2.618048,2.845718}, {'','',3.038223,2.281033,2.232996}, {'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.949878,1.146128,0.778151}, {'','',3.402089,3.567497,2.037426}, {'','',1.591065,0.000000,3.152594},
-+{'','',2.622214,-2.000000,3.564548}, {'','',3.709948,1.397940,3.285107}, {'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276}, {'','',3.342028,2.133539,2.628389},
-+{'','',3.790778,3.201943,1.462398}, {'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.743510,-2.000000,1.812913}, {'','',3.008600,2.872156,3.443263}, {'','',3.406881,1.079181,2.103804}, {'','',3.547405,-2.000000,2.677607}, {'','',3.360593,1.568202,1.079181},
-+{'','',2.721811,1.724276,1.518514}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',1.079181,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.866878,-2.000000,3.425208}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',2.861534,-2.000000,-2.000000}, {'','',0.778151,0.477121,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754},
-+{'','',1.380211,1.845098,0.602060}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.301030,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.158362,-2.000000,0.698970}, {'','',2.792392,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',2.861534,-2.000000,-2.000000},
-+{'','',0.778151,0.477121,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754}, {'','',1.380211,1.845098,0.602060},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.301030,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.158362,-2.000000,0.698970},
-+{'','',2.792392,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.301030}, {'','',3.964919,3.984122,3.731830}, {'','',2.547775,2.082785,0.477121}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000},
-+{'','',2.348305,2.626340,3.137671}, {'','',1.414973,-2.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101}, {'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000},
-+{'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926}, {'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',1.886491,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.732394,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000},
-+{'','',3.964919,3.984122,3.731830}, {'','',2.547775,2.082785,0.477121}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',2.348305,2.626340,3.137671}, {'','',1.414973,-2.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101},
-+{'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000}, {'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926},
-+{'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.886491,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',1.732394,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',4.028083,2.858537,3.912966}, {'','',1.732394,1.602060,0.477121}, {'','',2.017033,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273},
-+{'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',2.894870,1.477121,-2.000000}, {'','',1.924279,-2.000000,1.176091}, {'','',3.966892,3.456366,4.024568}, {'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970},
-+{'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970}, {'','',3.772835,-2.000000,-2.000000}, {'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',0.903090,-2.000000,-2.000000}, {'','',0.698970,-2.000000,0.477121},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',0.778151,-2.000000,-2.000000}, {'','',3.395501,1.857332,2.587711}, {'','',4.066214,1.732394,3.082785}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.045714,3.207096,2.748188},
-+{'','',3.571592,1.690196,3.195069}, {'','',4.028083,2.858537,3.912966}, {'','',1.732394,1.602060,0.477121}, {'','',2.017033,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273}, {'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',2.894870,1.477121,-2.000000},
-+{'','',1.924279,-2.000000,1.176091}, {'','',3.966892,3.456366,4.024568}, {'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970}, {'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970},
-+{'','',3.772835,-2.000000,-2.000000}, {'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',0.903090,-2.000000,-2.000000}, {'','',0.698970,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000},
-+{'','',0.778151,-2.000000,-2.000000}, {'','',3.395501,1.857332,2.587711}, {'','',4.066214,1.732394,3.082785}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.045714,3.207096,2.748188}, {'','',3.571592,1.690196,3.195069}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121},
-+{'','',1.531479,-2.000000,-2.000000}, {'','',0.778151,2.201397,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679}, {'','',0.845098,-2.000000,-2.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000},
-+{'','',1.959041,-2.000000,1.113943}, {'','',3.406881,3.586475,-2.000000}, {'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000}, {'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084},
-+{'','',1.322219,-2.000000,0.000000}, {'','',-2.000000,0.301030,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',2.269513,0.778151,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',3.191171,3.276462,2.357935}, {'','',1.991226,-2.000000,2.130334},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.530200,2.227887,2.985875}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121}, {'','',1.531479,-2.000000,-2.000000}, {'','',0.778151,2.201397,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000}, {'','',1.959041,-2.000000,1.113943}, {'','',3.406881,3.586475,-2.000000}, {'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000},
-+{'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084}, {'','',1.322219,-2.000000,0.000000}, {'','',-2.000000,0.301030,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',2.269513,0.778151,-2.000000},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',3.191171,3.276462,2.357935}, {'','',1.991226,-2.000000,2.130334}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.530200,2.227887,2.985875}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000},
-+{'','',1.255273,-2.000000,-2.000000}, {'','',2.394452,-2.000000,1.477121}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.778151,-2.000000,0.477121}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060},
-+{'','',2.641474,-2.000000,-2.000000}, {'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466},
-+{'','',3.881556,3.212454,3.188366}, {'','',2.021189,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.866287,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000},
-+{'','',3.922622,1.875061,3.260071}, {'','',3.227887,0.301030,3.521269}, {'','',0.000000,0.477121,-2.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.719331,1.505150,3.569374}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000},
-+{'','',2.394452,-2.000000,1.477121}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.778151,-2.000000,0.477121}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060}, {'','',2.641474,-2.000000,-2.000000},
-+{'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000}, {'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466}, {'','',3.881556,3.212454,3.188366},
-+{'','',2.021189,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.866287,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.922622,1.875061,3.260071},
-+{'','',3.227887,0.301030,3.521269}, {'','',0.000000,0.477121,-2.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.719331,1.505150,3.569374}, {'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',4.293738,1.707570,3.375846}, {'','',4.169674,2.836957,2.929419},
-+{'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127}, {'','',3.853941,2.320146,1.908485}, {'','',3.539452,2.184691,1.579784}, {'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791},
-+{'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341}, {'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276}, {'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090},
-+{'','',2.885361,1.748188,1.255273}, {'','',3.269980,2.445604,2.318063}, {'','',2.514548,1.732394,-2.000000}, {'','',3.779813,3.175222,0.000000}, {'','',3.478278,2.245513,1.556303}, {'','',2.756636,2.149219,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.155336,-2.000000,-2.000000},
-+{'','',2.107210,-2.000000,3.054613}, {'','',3.244772,-2.000000,2.688420}, {'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',4.293738,1.707570,3.375846}, {'','',4.169674,2.836957,2.929419}, {'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127},
-+{'','',3.853941,2.320146,1.908485}, {'','',3.539452,2.184691,1.579784}, {'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791}, {'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341},
-+{'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276}, {'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090}, {'','',2.885361,1.748188,1.255273}, {'','',3.269980,2.445604,2.318063},
-+{'','',2.514548,1.732394,-2.000000}, {'','',3.779813,3.175222,0.000000}, {'','',3.478278,2.245513,1.556303}, {'','',2.756636,2.149219,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',2.107210,-2.000000,3.054613}, {'','',3.244772,-2.000000,2.688420},
-+{'','',3.467312,3.637189,2.209515}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.575072,3.529302,1.819544}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000}, {'','',3.748110,4.432617,1.991226},
-+{'','',2.863917,0.000000,0.301030}, {'','',3.667173,4.227475,0.301030}, {'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.387390,-2.000000,-2.000000},
-+{'','',1.977724,0.845098,-2.000000}, {'','',0.778151,1.176091,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.907949,2.474216,1.944483}, {'','',1.826075,2.093422,1.612784}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',2.786041,2.619093,0.903090},
-+{'','',3.467312,3.637189,2.209515}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.575072,3.529302,1.819544}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000}, {'','',3.748110,4.432617,1.991226},
-+{'','',2.863917,0.000000,0.301030}, {'','',3.667173,4.227475,0.301030}, {'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.387390,-2.000000,-2.000000},
-+{'','',1.977724,0.845098,-2.000000}, {'','',0.778151,1.176091,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',2.907949,2.474216,1.944483}, {'','',1.826075,2.093422,1.612784}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',2.786041,2.619093,0.903090},
-+{'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000}, {'','',3.130977,1.959041,-2.000000}, {'','',2.633468,-2.000000,1.812913}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',3.033021,1.342423,0.301030}, {'','',2.193125,0.000000,0.477121},
-+{'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784}, {'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',2.164353,-2.000000,-2.000000},
-+{'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334}, {'','',3.701222,3.349666,2.875640}, {'','',2.187521,-2.000000,2.315970}, {'','',2.423246,-2.000000,2.079181}, {'','',2.240549,-2.000000,-2.000000}, {'','',2.527630,-2.000000,0.778151}, {'','',2.892651,-2.000000,1.000000},
-+{'','',2.079181,-2.000000,0.477121}, {'','',3.478566,2.406540,2.940018}, {'','',2.853090,0.000000,3.227115}, {'','',0.778151,0.301030,0.000000}, {'','',2.247973,1.113943,2.540329}, {'','',3.447778,2.491362,2.760422}, {'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000},
-+{'','',3.130977,1.959041,-2.000000}, {'','',2.633468,-2.000000,1.812913}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',3.033021,1.342423,0.301030}, {'','',2.193125,0.000000,0.477121}, {'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784},
-+{'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',2.164353,-2.000000,-2.000000}, {'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334},
-+{'','',3.701222,3.349666,2.875640}, {'','',2.187521,-2.000000,2.315970}, {'','',2.423246,-2.000000,2.079181}, {'','',2.240549,-2.000000,-2.000000}, {'','',2.527630,-2.000000,0.778151}, {'','',2.892651,-2.000000,1.000000}, {'','',2.079181,-2.000000,0.477121}, {'','',3.478566,2.406540,2.940018},
-+{'','',2.853090,0.000000,3.227115}, {'','',0.778151,0.301030,0.000000}, {'','',2.247973,1.113943,2.540329}, {'','',3.447778,2.491362,2.760422}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',0.301030,2.217484,-2.000000},
-+{'','',0.301030,2.826075,-2.000000}, {'','',3.637990,3.666331,3.451940}, {'','',-2.000000,2.004321,-2.000000}, {'','',-2.000000,1.591065,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754}, {'','',3.136403,3.402777,-2.000000},
-+{'','',3.431364,3.030195,-2.000000}, {'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545}, {'','',2.924279,3.172311,2.450249}, {'','',1.000000,1.763428,-2.000000},
-+{'','',2.693727,2.298853,-2.000000}, {'','',1.939519,1.591065,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',2.578639,2.701568,2.563481}, {'','',2.944483,-2.000000,3.992465},
-+{'','',-2.000000,3.283527,-2.000000}, {'','',1.913814,2.414973,2.413300}, {'','',3.035830,1.278754,4.148757}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',0.301030,2.217484,-2.000000}, {'','',0.301030,2.826075,-2.000000},
-+{'','',3.637990,3.666331,3.451940}, {'','',-2.000000,2.004321,-2.000000}, {'','',-2.000000,1.591065,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754}, {'','',3.136403,3.402777,-2.000000}, {'','',3.431364,3.030195,-2.000000},
-+{'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545}, {'','',2.924279,3.172311,2.450249}, {'','',1.000000,1.763428,-2.000000}, {'','',2.693727,2.298853,-2.000000},
-+{'','',1.939519,1.591065,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',2.578639,2.701568,2.563481}, {'','',2.944483,-2.000000,3.992465}, {'','',-2.000000,3.283527,-2.000000},
-+{'','',1.913814,2.414973,2.413300}, {'','',3.035830,1.278754,4.148757}, {'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000}, {'','',3.929266,3.701654,3.580126},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060}, {'','',3.668572,-2.000000,-2.000000}, {'','',4.169469,3.974650,4.307582},
-+{'','',2.574031,-2.000000,-2.000000}, {'','',3.831614,3.288473,1.944483}, {'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.262451,-2.000000,-2.000000},
-+{'','',2.705864,-2.000000,0.000000}, {'','',1.544068,-2.000000,-2.000000}, {'','',0.301030,1.785330,-2.000000}, {'','',1.431364,-2.000000,0.000000}, {'','',3.296007,3.418301,2.948413}, {'','',3.614686,1.977724,4.250152}, {'','',1.968483,1.845098,1.079181}, {'','',2.966142,2.569374,2.804139},
-+{'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000}, {'','',3.929266,3.701654,3.580126}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000},
-+{'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060}, {'','',3.668572,-2.000000,-2.000000}, {'','',4.169469,3.974650,4.307582}, {'','',2.574031,-2.000000,-2.000000}, {'','',3.831614,3.288473,1.944483},
-+{'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.262451,-2.000000,-2.000000}, {'','',2.705864,-2.000000,0.000000}, {'','',1.544068,-2.000000,-2.000000},
-+{'','',0.301030,1.785330,-2.000000}, {'','',1.431364,-2.000000,0.000000}, {'','',3.296007,3.418301,2.948413}, {'','',3.614686,1.977724,4.250152}, {'','',1.968483,1.845098,1.079181}, {'','',2.966142,2.569374,2.804139}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362},
-+{'','',2.942008,2.998695,2.117271}, {'','',3.296884,2.769377,3.048053}, {'','',3.725667,3.130012,1.929419}, {'','',2.790285,1.913814,0.301030}, {'','',3.366983,3.468938,1.919078}, {'','',2.585461,2.642465,1.579784}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033},
-+{'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390}, {'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000}, {'','',3.218536,2.687529,1.832509}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151},
-+{'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.121231,-2.000000,1.397940}, {'','',2.843855,2.580925,2.530200}, {'','',1.176091,1.361728,-2.000000}, {'','',3.448242,2.468347,1.301030}, {'','',3.348500,2.309630,1.819544}, {'','',2.998695,1.146128,0.000000},
-+{'','',1.633468,-2.000000,-2.000000}, {'','',2.584331,1.518514,3.410440}, {'','',1.806180,1.255273,1.838849}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362}, {'','',2.942008,2.998695,2.117271}, {'','',3.296884,2.769377,3.048053}, {'','',3.725667,3.130012,1.929419},
-+{'','',2.790285,1.913814,0.301030}, {'','',3.366983,3.468938,1.919078}, {'','',2.585461,2.642465,1.579784}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033}, {'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390},
-+{'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000}, {'','',3.218536,2.687529,1.832509}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151}, {'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.121231,-2.000000,1.397940},
-+{'','',2.843855,2.580925,2.530200}, {'','',1.176091,1.361728,-2.000000}, {'','',3.448242,2.468347,1.301030}, {'','',3.348500,2.309630,1.819544}, {'','',2.998695,1.146128,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.584331,1.518514,3.410440}, {'','',1.806180,1.255273,1.838849},
-+{'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784}, {'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000}, {'','',1.342423,2.000000,0.000000},
-+{'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000}, {'','',1.623249,1.812913,1.973128}, {'','',3.105169,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',2.477121,0.000000,-2.000000}, {'','',-2.000000,1.462398,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784}, {'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000},
-+{'','',1.342423,2.000000,0.000000}, {'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000}, {'','',1.623249,1.812913,1.973128}, {'','',3.105169,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',2.477121,0.000000,-2.000000},
-+{'','',-2.000000,1.462398,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.066326,2.742725,2.705008}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.630428,2.725912,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',2.618048,2.220108,2.615950},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000}, {'','',2.313867,2.056905,-2.000000}, {'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030},
-+{'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',3.066326,2.742725,2.705008}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.630428,2.725912,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',2.618048,2.220108,2.615950}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000},
-+{'','',2.313867,2.056905,-2.000000}, {'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030}, {'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',3.072985,1.939519,3.070038}, {'','',1.662758,2.060698,0.000000},
-+{'','',2.966142,2.863323,2.898176}, {'','',2.882525,1.785330,0.954243}, {'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',1.568202,0.477121,2.597695}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.093422,1.518514,2.846955}, {'','',0.602060,-2.000000,0.845098}, {'','',1.113943,-2.000000,0.301030}, {'','',-2.000000,0.477121,0.778151}, {'','',3.072985,1.939519,3.070038}, {'','',1.662758,2.060698,0.000000},
-+{'','',2.966142,2.863323,2.898176}, {'','',2.882525,1.785330,0.954243}, {'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',1.568202,0.477121,2.597695}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',0.845098,-2.000000,-2.000000}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.093422,1.518514,2.846955}, {'','',0.602060,-2.000000,0.845098}, {'','',1.113943,-2.000000,0.301030}, {'','',-2.000000,0.477121,0.778151}, {'','',3.780389,2.989450,2.786751}, {'','',0.698970,0.477121,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',3.875235,3.684307,2.656098}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000}, {'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814},
-+{'','',0.301030,2.584331,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.752048,-2.000000,-2.000000}, {'','',2.475671,2.071882,2.809560},
-+{'','',3.780389,2.989450,2.786751}, {'','',0.698970,0.477121,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.875235,3.684307,2.656098}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000},
-+{'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814}, {'','',0.301030,2.584331,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.752048,-2.000000,-2.000000}, {'','',2.475671,2.071882,2.809560}, {'','',3.279211,2.887054,2.691081}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.176091,2.017033,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.643749,2.823474,3.224792}, {'','',3.631342,2.372912,2.641474},
-+{'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000}, {'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',0.903090,-2.000000,0.000000}, {'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.279211,2.887054,2.691081},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.176091,2.017033,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.643749,2.823474,3.224792}, {'','',3.631342,2.372912,2.641474}, {'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000},
-+{'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',0.903090,-2.000000,0.000000},
-+{'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.025306,1.079181,1.897627}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754},
-+{'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',1.255273,-2.000000,1.903090},
-+{'','',3.025306,1.079181,1.897627}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754}, {'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',1.255273,-2.000000,1.903090}, {'','',2.332438,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',2.332438,-2.000000,-2.000000},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',3.412124,-2.000000,1.812913}, {'','',2.509203,-2.000000,0.301030}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730}, {'','',2.149219,-2.000000,0.698970},
-+{'','',2.315970,-2.000000,0.301030}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606}, {'','',0.000000,-2.000000,0.000000},
-+{'','',2.677607,-2.000000,-2.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.816241,0.000000,3.393224}, {'','',1.913814,-2.000000,-2.000000}, {'','',2.858537,-2.000000,1.845098},
-+{'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',1.653213,-2.000000,0.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',3.412124,-2.000000,1.812913}, {'','',2.509203,-2.000000,0.301030}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730},
-+{'','',2.149219,-2.000000,0.698970}, {'','',2.315970,-2.000000,0.301030}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606},
-+{'','',0.000000,-2.000000,0.000000}, {'','',2.677607,-2.000000,-2.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.816241,0.000000,3.393224}, {'','',1.913814,-2.000000,-2.000000},
-+{'','',2.858537,-2.000000,1.845098}, {'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',1.653213,-2.000000,0.000000}, {'','',2.484300,-2.000000,0.477121}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970},
-+{'','',3.015779,-2.000000,2.685742}, {'','',2.685742,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000}, {'','',1.845098,-2.000000,-2.000000},
-+{'','',0.602060,-2.000000,-2.000000}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.539076,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',1.602060,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.612784,-2.000000,2.849419}, {'','',2.484300,-2.000000,0.477121}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970},
-+{'','',3.015779,-2.000000,2.685742}, {'','',2.685742,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000}, {'','',1.845098,-2.000000,-2.000000},
-+{'','',0.602060,-2.000000,-2.000000}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.539076,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',1.602060,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.612784,-2.000000,2.849419}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,1.204120,-2.000000}, {'','',-2.000000,1.477121,-2.000000}, {'','',0.477121,1.255273,-2.000000},
-+{'','',0.845098,0.000000,-2.000000}, {'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000}, {'','',2.683047,0.903090,3.158664},
-+{'','',0.000000,1.113943,-2.000000}, {'','',2.214844,3.899437,1.397940}, {'','',0.301030,1.662758,-2.000000}, {'','',0.000000,2.056905,0.903090}, {'','',0.000000,1.113943,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,1.204120,-2.000000}, {'','',-2.000000,1.477121,-2.000000},
-+{'','',0.477121,1.255273,-2.000000}, {'','',0.845098,0.000000,-2.000000}, {'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000},
-+{'','',2.683047,0.903090,3.158664}, {'','',0.000000,1.113943,-2.000000}, {'','',2.214844,3.899437,1.397940}, {'','',0.301030,1.662758,-2.000000}, {'','',0.000000,2.056905,0.903090}, {'','',0.000000,1.113943,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000},
-+{'','',0.778151,0.698970,0.477121}, {'','',1.544068,0.778151,0.698970}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',2.187521,0.698970,-2.000000}, {'','',1.505150,-2.000000,0.477121}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394},
-+{'','',1.602060,0.602060,-2.000000}, {'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.949390,-2.000000,0.698970}, {'','',1.230449,-2.000000,-2.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',0.602060,-2.000000,1.959041}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000},
-+{'','',0.778151,0.698970,0.477121}, {'','',1.544068,0.778151,0.698970}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',2.187521,0.698970,-2.000000}, {'','',1.505150,-2.000000,0.477121}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394},
-+{'','',1.602060,0.602060,-2.000000}, {'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.949390,-2.000000,0.698970}, {'','',1.230449,-2.000000,-2.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',0.602060,-2.000000,1.959041}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000},
-+{'','',2.806858,2.477121,1.505150}, {'','',2.588832,0.845098,1.000000}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',3.467904,2.214844,0.477121}, {'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514},
-+{'','',2.847573,1.690196,1.826075}, {'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',2.155336,2.988559,1.176091}, {'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828},
-+{'','',0.903090,-2.000000,0.000000}, {'','',1.913814,0.000000,2.650308}, {'','',1.944483,-2.000000,1.707570}, {'','',2.527630,0.000000,1.954243}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000}, {'','',2.396199,-2.000000,2.143015}, {'','',1.826075,-2.000000,2.336460},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000}, {'','',2.806858,2.477121,1.505150}, {'','',2.588832,0.845098,1.000000}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',3.467904,2.214844,0.477121},
-+{'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514}, {'','',2.847573,1.690196,1.826075}, {'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',2.155336,2.988559,1.176091},
-+{'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828}, {'','',0.903090,-2.000000,0.000000}, {'','',1.913814,0.000000,2.650308}, {'','',1.944483,-2.000000,1.707570}, {'','',2.527630,0.000000,1.954243}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000},
-+{'','',2.396199,-2.000000,2.143015}, {'','',1.826075,-2.000000,2.336460}, {'','',1.000000,0.301030,-2.000000}, {'','',3.413300,1.875061,1.361728}, {'','',3.977312,1.838849,2.736397}, {'','',3.408749,2.796574,1.973128}, {'','',3.763802,2.344392,2.903090}, {'','',3.633468,-2.000000,2.471292},
-+{'','',3.684756,1.591065,1.612784}, {'','',3.967501,1.698970,3.025715}, {'','',2.733197,1.278754,1.903090}, {'','',3.228144,1.414973,2.965672}, {'','',3.958277,1.959041,3.930847}, {'','',4.249565,2.519828,3.943939}, {'','',3.908163,2.198657,3.569023}, {'','',4.014100,2.487138,3.176959},
-+{'','',2.056905,-2.000000,-2.000000}, {'','',3.446848,1.863323,1.278754}, {'','',3.877717,2.579784,2.348305}, {'','',4.081671,1.806180,3.422590}, {'','',4.141356,1.763428,2.619093}, {'','',2.565848,0.903090,0.954243}, {'','',2.269513,1.973128,2.103804}, {'','',3.176959,2.136721,3.241546},
-+{'','',2.884795,1.301030,0.602060}, {'','',3.496653,-2.000000,1.939519}, {'','',3.457125,-2.000000,2.478566}, {'','',2.847573,-2.000000,1.322219}, {'','',2.012837,-2.000000,-2.000000}, {'','',3.235528,-2.000000,3.228144}, {'','',2.975432,-2.000000,3.740994}, {'','',3.068557,3.068928,2.720986},
-+{'','',1.477121,-2.000000,-2.000000}, {'','',2.123852,-2.000000,-2.000000}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.602060,0.698970,-2.000000}, {'','',3.472756,3.539452,3.207634}, {'','',2.071882,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',3.395326,2.294466,1.602060},
-+{'','',2.525045,-2.000000,-2.000000}, {'','',3.181558,3.016197,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',3.094471,-2.000000,-2.000000}, {'','',3.536558,3.511349,2.667453}, {'','',3.399328,3.090258,0.698970}, {'','',2.815578,-2.000000,0.301030}, {'','',1.041393,-2.000000,-2.000000},
-+{'','',3.124504,3.405176,2.411620}, {'','',2.064458,-2.000000,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000}, {'','',1.414973,-2.000000,-2.000000}, {'','',2.859739,-2.000000,-2.000000}, {'','',2.625312,-2.000000,-2.000000}, {'','',3.068186,3.948217,3.158965},
-+{'','',2.068186,1.724276,1.113943}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.778151,1.041393,-2.000000}, {'','',2.448706,-2.000000,3.211654}, {'','',4.074999,3.519040,3.453318}, {'','',0.000000,1.322219,-2.000000}, {'','',0.698970,2.017033,-2.000000}, {'','',2.361728,1.230449,-2.000000},
-+{'','',2.727541,2.992995,-2.000000}, {'','',4.066699,3.660581,2.998259}, {'','',-2.000000,0.903090,-2.000000}, {'','',1.591065,3.207096,-2.000000}, {'','',3.863739,3.320977,2.247973}, {'','',-2.000000,0.602060,-2.000000}, {'','',2.778151,2.184691,-2.000000}, {'','',3.317854,2.462398,0.000000},
-+{'','',1.397940,2.607455,0.301030}, {'','',3.605197,2.956649,0.000000}, {'','',4.082642,3.811642,3.265525}, {'','',1.518514,3.107549,-2.000000}, {'','',2.837588,3.180986,0.845098}, {'','',3.298198,3.904445,-2.000000}, {'','',2.639486,2.374748,-2.000000}, {'','',3.110253,1.681241,2.832509},
-+{'','',-2.000000,2.017033,-2.000000}, {'','',1.812913,1.431364,-2.000000}, {'','',1.973128,2.292256,-2.000000}, {'','',3.294466,0.301030,-2.000000}, {'','',1.342423,0.602060,-2.000000}, {'','',-2.000000,1.255273,0.000000}, {'','',3.355068,3.777717,2.657056}, {'','',2.396199,1.477121,2.558709},
-+{'','',0.477121,1.857332,-2.000000}, {'','',0.000000,-2.000000,0.000000}, {'','',2.812913,1.653213,1.113943}, {'','',3.366236,2.911690,2.912222}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.000000,1.579784,-2.000000}, {'','',0.301030,0.000000,0.000000}, {'','',3.451633,2.836957,-2.000000},
-+{'','',2.638489,3.002166,2.585461}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.289589,2.103804,2.824126}, {'','',2.510545,-2.000000,-2.000000}, {'','',3.471438,3.350442,1.000000}, {'','',1.880814,1.462398,-2.000000}, {'','',2.914343,2.181844,-2.000000}, {'','',3.696706,3.788734,4.167495},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',2.974512,3.319730,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',2.863323,2.681241,2.950365}, {'','',2.181844,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',1.397940,0.845098,0.000000}, {'','',-2.000000,1.342423,-2.000000}, {'','',-2.000000,0.698970,-2.000000}, {'','',3.694078,3.769673,3.751818}, {'','',1.959041,-2.000000,-2.000000}, {'','',2.831230,3.243782,-2.000000}, {'','',1.431364,-2.000000,-2.000000}, {'','',1.991226,-2.000000,-2.000000},
-+{'','',3.952889,3.690728,3.209515}, {'','',1.716003,3.116940,-2.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',3.807332,2.691965,3.193959}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.114944,-2.000000,-2.000000}, {'','',2.863917,3.046105,0.301030}, {'','',2.235528,1.113943,-2.000000},
-+{'','',3.762978,2.660865,-2.000000}, {'','',3.771587,3.825621,2.952308}, {'','',2.378398,-2.000000,-2.000000}, {'','',3.305136,3.258637,0.778151}, {'','',2.974972,-2.000000,-2.000000}, {'','',2.758155,-2.000000,0.602060}, {'','',3.369772,3.279895,3.253822}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.204120,-2.000000,-2.000000}, {'','',2.900367,-2.000000,-2.000000}, {'','',2.161368,-2.000000,-2.000000}, {'','',2.451786,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.462398,-2.000000,-2.000000}, {'','',2.993436,2.401401,2.866878}, {'','',2.887054,1.579784,3.237795},
-+{'','',2.149219,2.079181,0.954243}, {'','',2.678518,2.453318,2.550228}, {'','',2.008600,-2.000000,0.301030}, {'','',3.706206,-2.000000,1.623249}, {'','',3.679610,2.413300,2.906335}, {'','',3.832445,3.449324,2.363612}, {'','',3.936262,2.687529,2.945469}, {'','',2.977266,3.058046,3.325926},
-+{'','',3.389166,2.158362,2.212188}, {'','',3.492621,1.716003,3.151370}, {'','',2.385606,-2.000000,1.724276}, {'','',3.347915,2.645422,3.588272}, {'','',3.484727,1.079181,2.975432}, {'','',4.184351,1.924279,3.542452}, {'','',3.766859,3.035830,3.818885}, {'','',4.348130,1.897627,3.212454},
-+{'','',2.852480,-2.000000,-2.000000}, {'','',3.529430,2.190332,1.041393}, {'','',4.286007,1.908485,2.958564}, {'','',4.055417,3.351023,2.356026}, {'','',4.011105,-2.000000,3.914713}, {'','',2.637490,-2.000000,-2.000000}, {'','',1.819544,0.000000,1.732394}, {'','',2.981366,2.565848,2.936011},
-+{'','',2.627366,0.301030,3.066326}, {'','',3.590396,-2.000000,1.799341}, {'','',3.600428,1.000000,1.176091}, {'','',2.873902,3.317854,-2.000000}, {'','',2.330414,1.204120,2.632457}, {'','',2.841359,-2.000000,2.127105}, {'','',3.521661,2.713491,2.460898}, {'','',2.230449,0.477121,-2.000000},
-+{'','',-2.000000,0.000000,-2.000000}, {'','',1.204120,1.255273,-2.000000}, {'','',3.317854,2.593286,1.113943}, {'','',3.702086,3.590507,3.659155}, {'','',1.591065,0.698970,-2.000000}, {'','',3.510947,3.211121,2.501059}, {'','',2.484300,-2.000000,-2.000000}, {'','',1.838849,-2.000000,-2.000000},
-+{'','',1.322219,0.845098,-2.000000}, {'','',3.432328,0.845098,-2.000000}, {'','',2.380211,0.845098,0.301030}, {'','',1.079181,1.414973,-2.000000}, {'','',1.672098,-2.000000,-2.000000}, {'','',1.748188,-2.000000,-2.000000}, {'','',3.165541,1.982271,2.728354}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',1.812913,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.995635,-2.000000,1.707570}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.704236,4.057514,2.970812}, {'','',2.653213,1.491362,-2.000000}, {'','',3.361161,2.567026,0.301030}, {'','',3.019532,-2.000000,1.255273},
-+{'','',3.275542,2.953760,1.431364}, {'','',2.728354,2.808211,1.740363}, {'','',2.359835,-2.000000,-2.000000}, {'','',1.755875,-2.000000,-2.000000}, {'','',3.002166,1.748188,1.623249}, {'','',2.604226,-2.000000,-2.000000}, {'','',2.723456,2.518514,0.698970}, {'','',2.970347,1.518514,1.792392},
-+{'','',3.494711,3.455454,0.477121}, {'','',3.147985,2.626340,1.857332}, {'','',2.833147,2.190332,-2.000000}, {'','',1.397940,-2.000000,-2.000000}, {'','',1.556303,0.000000,-2.000000}, {'','',3.008174,2.149219,2.641474}, {'','',1.000000,-2.000000,-2.000000}, {'','',1.591065,0.000000,-2.000000},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',1.832509,-2.000000,-2.000000}, {'','',2.983626,0.903090,2.212188}, {'','',2.257679,-2.000000,3.261263}, {'','',0.602060,-2.000000,2.361728}, {'','',2.797268,0.903090,2.796574}, {'','',2.439333,1.414973,0.000000}, {'','',3.192567,1.929419,1.342423},
-+{'','',3.806994,2.618048,2.845718}, {'','',3.038223,2.281033,2.232996}, {'','',3.607777,2.783904,2.264818}, {'','',3.116276,1.924279,3.639088}, {'','',2.949878,1.146128,0.778151}, {'','',3.402089,3.567497,2.037426}, {'','',1.591065,0.000000,3.152594}, {'','',2.622214,-2.000000,3.564548},
-+{'','',3.709948,1.397940,3.285107}, {'','',4.013932,3.042576,3.735200}, {'','',3.569842,3.169086,3.479575}, {'','',3.980776,3.046495,3.440594}, {'','',2.838849,1.255273,2.526339}, {'','',3.032619,2.332438,1.724276}, {'','',3.342028,2.133539,2.628389}, {'','',3.790778,3.201943,1.462398},
-+{'','',4.052348,1.819544,3.426999}, {'','',1.690196,1.342423,0.000000}, {'','',2.743510,-2.000000,1.812913}, {'','',3.008600,2.872156,3.443263}, {'','',3.406881,1.079181,2.103804}, {'','',3.547405,-2.000000,2.677607}, {'','',3.360593,1.568202,1.079181}, {'','',2.721811,1.724276,1.518514},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',1.079181,-2.000000,-2.000000}, {'','',1.342423,0.954243,2.897077}, {'','',2.866878,-2.000000,3.425208}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',2.861534,-2.000000,-2.000000},
-+{'','',0.778151,0.477121,-2.000000}, {'','',1.230449,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',2.390935,-2.000000,-2.000000}, {'','',1.681241,-2.000000,-2.000000}, {'','',2.204120,-2.000000,0.000000}, {'','',3.106191,-2.000000,1.278754}, {'','',1.380211,1.845098,0.602060},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.235023,-2.000000,-2.000000}, {'','',2.955207,-2.000000,1.462398}, {'','',-2.000000,0.301030,-2.000000}, {'','',0.301030,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.158362,-2.000000,0.698970},
-+{'','',2.792392,-2.000000,-2.000000}, {'','',2.662758,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.301030}, {'','',3.964919,3.984122,3.731830}, {'','',2.547775,2.082785,0.477121}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.568202,-2.000000,-2.000000},
-+{'','',2.348305,2.626340,3.137671}, {'','',1.414973,-2.000000,-2.000000}, {'','',1.724276,-2.000000,-2.000000}, {'','',3.637990,2.773055,3.561101}, {'','',1.732394,-2.000000,-2.000000}, {'','',3.312600,2.755875,0.301030}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.108565,3.451326,0.000000},
-+{'','',4.159627,3.917138,3.643156}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.417638,3.466571,0.698970}, {'','',2.821514,2.103804,2.885926}, {'','',2.846337,2.907411,1.954243}, {'','',3.261501,3.144574,3.448088}, {'','',1.819544,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000},
-+{'','',1.886491,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',1.732394,-2.000000,-2.000000}, {'','',0.301030,0.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000},
-+{'','',4.028083,2.858537,3.912966}, {'','',1.732394,1.602060,0.477121}, {'','',2.017033,-2.000000,-2.000000}, {'','',2.738781,1.361728,1.255273}, {'','',2.255273,-2.000000,-2.000000}, {'','',3.988247,3.382557,3.306211}, {'','',2.894870,1.477121,-2.000000}, {'','',1.924279,-2.000000,1.176091},
-+{'','',3.966892,3.456366,4.024568}, {'','',3.082785,-2.000000,1.633468}, {'','',2.858537,-2.000000,1.230449}, {'','',1.838849,-2.000000,0.698970}, {'','',2.988559,-2.000000,0.000000}, {'','',4.113107,3.205475,3.793162}, {'','',2.257679,-2.000000,0.698970}, {'','',3.772835,-2.000000,-2.000000},
-+{'','',2.397940,-2.000000,1.255273}, {'','',3.568788,2.906335,2.778151}, {'','',0.903090,-2.000000,-2.000000}, {'','',0.698970,-2.000000,0.477121}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.869232,-2.000000,-2.000000}, {'','',1.505150,-2.000000,-2.000000}, {'','',0.778151,-2.000000,-2.000000},
-+{'','',3.395501,1.857332,2.587711}, {'','',4.066214,1.732394,3.082785}, {'','',-2.000000,0.000000,-2.000000}, {'','',3.045714,3.207096,2.748188}, {'','',3.571592,1.690196,3.195069}, {'','',3.729813,3.633771,3.109241}, {'','',1.819544,-2.000000,0.477121}, {'','',1.531479,-2.000000,-2.000000},
-+{'','',0.778151,2.201397,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.929317,3.782974,2.762679}, {'','',0.845098,-2.000000,-2.000000}, {'','',3.206826,3.250664,3.673113}, {'','',2.544068,-2.000000,-2.000000}, {'','',2.775974,2.303196,-2.000000}, {'','',1.959041,-2.000000,1.113943},
-+{'','',3.406881,3.586475,-2.000000}, {'','',3.767823,3.867585,2.830589}, {'','',2.552668,-2.000000,0.000000}, {'','',2.475671,2.089905,-2.000000}, {'','',2.620136,1.204120,0.000000}, {'','',1.716003,-2.000000,-2.000000}, {'','',2.914343,2.822822,3.715084}, {'','',1.322219,-2.000000,0.000000},
-+{'','',-2.000000,0.301030,0.000000}, {'','',1.690196,-2.000000,-2.000000}, {'','',2.269513,0.778151,-2.000000}, {'','',0.845098,-2.000000,-2.000000}, {'','',0.903090,0.845098,-2.000000}, {'','',3.191171,3.276462,2.357935}, {'','',1.991226,-2.000000,2.130334}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',2.530200,2.227887,2.985875}, {'','',3.928549,4.264794,3.813714}, {'','',1.724276,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',2.394452,-2.000000,1.477121}, {'','',2.908485,-2.000000,1.579784}, {'','',3.885700,4.392978,3.638689}, {'','',1.690196,-2.000000,-2.000000},
-+{'','',1.778151,-2.000000,0.477121}, {'','',4.199042,3.678609,3.404320}, {'','',3.127429,-2.000000,0.602060}, {'','',2.641474,-2.000000,-2.000000}, {'','',0.903090,-2.000000,-2.000000}, {'','',3.932322,-2.000000,0.477121}, {'','',4.194570,3.766562,4.142202}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',2.093422,2.187521,0.301030}, {'','',3.021189,0.000000,1.672098}, {'','',3.141763,-2.000000,2.294466}, {'','',3.881556,3.212454,3.188366}, {'','',2.021189,-2.000000,-2.000000}, {'','',1.000000,-2.000000,-2.000000}, {'','',2.898176,-2.000000,1.113943}, {'','',2.866287,-2.000000,-2.000000},
-+{'','',1.414973,-2.000000,-2.000000}, {'','',2.589950,-2.000000,-2.000000}, {'','',-2.000000,-2.000000,0.000000}, {'','',3.922622,1.875061,3.260071}, {'','',3.227887,0.301030,3.521269}, {'','',0.000000,0.477121,-2.000000}, {'','',2.315970,0.954243,2.600973}, {'','',3.719331,1.505150,3.569374},
-+{'','',1.146128,0.000000,0.602060}, {'','',3.844664,3.655810,2.542825}, {'','',4.293738,1.707570,3.375846}, {'','',4.169674,2.836957,2.929419}, {'','',4.049489,3.417139,3.062582}, {'','',3.400883,-2.000000,3.684127}, {'','',3.853941,2.320146,1.908485}, {'','',3.539452,2.184691,1.579784},
-+{'','',3.363424,0.000000,2.735599}, {'','',3.186391,1.959041,4.042260}, {'','',3.667173,3.072985,3.165541}, {'','',4.262949,1.681241,2.503791}, {'','',3.898451,1.556303,4.000911}, {'','',3.892707,3.879841,2.799341}, {'','',2.912753,-2.000000,-2.000000}, {'','',3.524785,3.064458,1.724276},
-+{'','',4.208065,2.631444,2.874482}, {'','',4.229451,3.424555,2.734800}, {'','',4.078457,3.811575,3.498586}, {'','',2.448706,-2.000000,0.903090}, {'','',2.885361,1.748188,1.255273}, {'','',3.269980,2.445604,2.318063}, {'','',2.514548,1.732394,-2.000000}, {'','',3.779813,3.175222,0.000000},
-+{'','',3.478278,2.245513,1.556303}, {'','',2.756636,2.149219,0.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.155336,-2.000000,-2.000000}, {'','',2.107210,-2.000000,3.054613}, {'','',3.244772,-2.000000,2.688420}, {'','',3.467312,3.637189,2.209515}, {'','',0.301030,-2.000000,-2.000000},
-+{'','',3.575072,3.529302,1.819544}, {'','',3.294246,2.858537,1.770852}, {'','',2.494155,-2.000000,-2.000000}, {'','',3.021189,3.231979,-2.000000}, {'','',2.696356,0.845098,-2.000000}, {'','',3.748110,4.432617,1.991226}, {'','',2.863917,0.000000,0.301030}, {'','',3.667173,4.227475,0.301030},
-+{'','',1.518514,1.740363,0.698970}, {'','',2.305351,2.296665,0.845098}, {'','',3.163758,3.064083,1.863323}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000}, {'','',2.387390,-2.000000,-2.000000}, {'','',1.977724,0.845098,-2.000000}, {'','',0.778151,1.176091,-2.000000},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',2.907949,2.474216,1.944483}, {'','',1.826075,2.093422,1.612784}, {'','',-2.000000,1.301030,-2.000000}, {'','',0.602060,0.301030,-2.000000}, {'','',2.786041,2.619093,0.903090}, {'','',4.153266,3.863620,3.359835}, {'','',2.582063,-2.000000,1.000000},
-+{'','',3.130977,1.959041,-2.000000}, {'','',2.633468,-2.000000,1.812913}, {'','',3.213783,0.000000,1.113943}, {'','',4.201452,3.255031,2.961895}, {'','',3.033021,1.342423,0.301030}, {'','',2.193125,0.000000,0.477121}, {'','',4.150449,2.653213,3.242293}, {'','',3.053078,-2.000000,1.612784},
-+{'','',2.485721,-2.000000,0.000000}, {'','',2.865104,-2.000000,0.845098}, {'','',3.480007,-2.000000,0.000000}, {'','',4.323293,3.246499,3.211921}, {'','',2.448706,-2.000000,-2.000000}, {'','',2.164353,-2.000000,-2.000000}, {'','',2.796574,0.698970,0.477121}, {'','',3.285332,1.778151,2.130334},
-+{'','',3.701222,3.349666,2.875640}, {'','',2.187521,-2.000000,2.315970}, {'','',2.423246,-2.000000,2.079181}, {'','',2.240549,-2.000000,-2.000000}, {'','',2.527630,-2.000000,0.778151}, {'','',2.892651,-2.000000,1.000000}, {'','',2.079181,-2.000000,0.477121}, {'','',3.478566,2.406540,2.940018},
-+{'','',2.853090,0.000000,3.227115}, {'','',0.778151,0.301030,0.000000}, {'','',2.247973,1.113943,2.540329}, {'','',3.447778,2.491362,2.760422}, {'','',3.278754,3.606596,2.835056}, {'','',0.903090,2.252853,-2.000000}, {'','',2.582063,3.634779,-2.000000}, {'','',0.301030,2.217484,-2.000000},
-+{'','',0.301030,2.826075,-2.000000}, {'','',3.637990,3.666331,3.451940}, {'','',-2.000000,2.004321,-2.000000}, {'','',-2.000000,1.591065,-2.000000}, {'','',3.467756,3.235023,1.886491}, {'','',3.823279,3.562531,1.949390}, {'','',3.732474,3.664642,1.278754}, {'','',3.136403,3.402777,-2.000000},
-+{'','',3.431364,3.030195,-2.000000}, {'','',3.380211,3.852419,1.447158}, {'','',3.541579,3.508530,-2.000000}, {'','',1.939519,2.773055,-2.000000}, {'','',3.262451,1.447158,1.380211}, {'','',4.418749,3.867939,2.510545}, {'','',2.924279,3.172311,2.450249}, {'','',1.000000,1.763428,-2.000000},
-+{'','',2.693727,2.298853,-2.000000}, {'','',1.939519,1.591065,-2.000000}, {'','',2.837588,2.746634,-2.000000}, {'','',2.453318,0.778151,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',0.301030,1.968483,-2.000000}, {'','',2.578639,2.701568,2.563481}, {'','',2.944483,-2.000000,3.992465},
-+{'','',-2.000000,3.283527,-2.000000}, {'','',1.913814,2.414973,2.413300}, {'','',3.035830,1.278754,4.148757}, {'','',4.056524,3.849051,3.357363}, {'','',1.929419,-2.000000,-2.000000}, {'','',3.817631,2.945961,2.017033}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.552668,-2.000000,-2.000000},
-+{'','',3.929266,3.701654,3.580126}, {'','',0.301030,-2.000000,-2.000000}, {'','',1.301030,-2.000000,-2.000000}, {'','',3.849911,2.593286,3.589167}, {'','',3.285332,1.748188,-2.000000}, {'','',2.938520,0.845098,-2.000000}, {'','',1.995635,0.000000,0.602060}, {'','',3.668572,-2.000000,-2.000000},
-+{'','',4.169469,3.974650,4.307582}, {'','',2.574031,-2.000000,-2.000000}, {'','',3.831614,3.288473,1.944483}, {'','',3.675137,0.000000,-2.000000}, {'','',2.564666,-2.000000,0.000000}, {'','',3.249932,3.153510,3.082785}, {'','',0.954243,-2.000000,-2.000000}, {'','',1.477121,-2.000000,-2.000000},
-+{'','',2.262451,-2.000000,-2.000000}, {'','',2.705864,-2.000000,0.000000}, {'','',1.544068,-2.000000,-2.000000}, {'','',0.301030,1.785330,-2.000000}, {'','',1.431364,-2.000000,0.000000}, {'','',3.296007,3.418301,2.948413}, {'','',3.614686,1.977724,4.250152}, {'','',1.968483,1.845098,1.079181},
-+{'','',2.966142,2.569374,2.804139}, {'','',2.143015,-2.000000,0.845098}, {'','',3.198657,2.869232,1.491362}, {'','',2.942008,2.998695,2.117271}, {'','',3.296884,2.769377,3.048053}, {'','',3.725667,3.130012,1.929419}, {'','',2.790285,1.913814,0.301030}, {'','',3.366983,3.468938,1.919078},
-+{'','',2.585461,2.642465,1.579784}, {'','',1.707570,0.000000,0.698970}, {'','',2.161368,2.096910,2.281033}, {'','',3.323665,2.454845,2.276462}, {'','',3.574494,2.953276,3.309417}, {'','',3.549494,3.042182,1.949390}, {'','',2.825426,2.110590,1.934498}, {'','',0.845098,0.602060,-2.000000},
-+{'','',3.218536,2.687529,1.832509}, {'','',3.388811,2.049218,1.716003}, {'','',3.356408,3.254548,1.778151}, {'','',3.512684,2.753583,3.243782}, {'','',1.838849,-2.000000,0.000000}, {'','',3.121231,-2.000000,1.397940}, {'','',2.843855,2.580925,2.530200}, {'','',1.176091,1.361728,-2.000000},
-+{'','',3.448242,2.468347,1.301030}, {'','',3.348500,2.309630,1.819544}, {'','',2.998695,1.146128,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',2.584331,1.518514,3.410440}, {'','',1.806180,1.255273,1.838849}, {'','',2.772322,2.448706,2.578639}, {'','',2.342423,2.450249,1.579784},
-+{'','',3.168203,2.825426,1.819544}, {'','',1.869232,1.491362,-2.000000}, {'','',0.477121,-2.000000,-2.000000}, {'','',1.322219,-2.000000,-2.000000}, {'','',2.250420,2.303196,-2.000000}, {'','',1.342423,2.000000,0.000000}, {'','',1.477121,-2.000000,0.301030}, {'','',1.041393,-2.000000,1.000000},
-+{'','',1.623249,1.812913,1.973128}, {'','',3.105169,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',0.477121,0.903090,1.361728}, {'','',2.477121,0.000000,-2.000000}, {'','',-2.000000,1.462398,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.066326,2.742725,2.705008},
-+{'','',0.301030,-2.000000,-2.000000}, {'','',2.630428,2.725912,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.414973,1.672098,2.149219}, {'','',2.618048,2.220108,2.615950}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.431364,2.698970,-2.000000}, {'','',2.313867,2.056905,-2.000000},
-+{'','',3.050380,0.602060,-2.000000}, {'','',3.528402,3.602494,2.803457}, {'','',1.380211,-2.000000,-2.000000}, {'','',2.212188,2.515874,-2.000000}, {'','',2.021189,-2.000000,0.301030}, {'','',1.681241,0.301030,0.000000}, {'','',1.690196,2.396199,2.406540}, {'','',0.000000,-2.000000,-2.000000},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.255273,-2.000000,-2.000000}, {'','',0.602060,-2.000000,-2.000000}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',3.072985,1.939519,3.070038}, {'','',1.662758,2.060698,0.000000}, {'','',2.966142,2.863323,2.898176},
-+{'','',2.882525,1.785330,0.954243}, {'','',2.657056,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.021189,-2.000000,-2.000000}, {'','',2.513218,0.477121,2.598791}, {'','',1.568202,0.477121,2.597695}, {'','',-2.000000,0.000000,-2.000000}, {'','',0.845098,-2.000000,-2.000000},
-+{'','',1.342423,-2.000000,-2.000000}, {'','',2.093422,1.518514,2.846955}, {'','',0.602060,-2.000000,0.845098}, {'','',1.113943,-2.000000,0.301030}, {'','',-2.000000,0.477121,0.778151}, {'','',3.780389,2.989450,2.786751}, {'','',0.698970,0.477121,-2.000000}, {'','',-2.000000,0.000000,-2.000000},
-+{'','',3.875235,3.684307,2.656098}, {'','',3.683047,2.659916,2.625312}, {'','',3.149835,-2.000000,-2.000000}, {'','',1.732394,1.447158,-2.000000}, {'','',0.954243,0.602060,-2.000000}, {'','',3.469233,-2.000000,-2.000000}, {'','',2.372912,2.401401,1.913814}, {'','',0.301030,2.584331,-2.000000},
-+{'','',0.477121,-2.000000,-2.000000}, {'','',3.026533,4.056829,-2.000000}, {'','',2.737987,3.153205,2.791691}, {'','',0.000000,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.752048,-2.000000,-2.000000}, {'','',2.475671,2.071882,2.809560}, {'','',3.279211,2.887054,2.691081},
-+{'','',0.000000,-2.000000,-2.000000}, {'','',1.176091,2.017033,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.643749,2.823474,3.224792}, {'','',3.631342,2.372912,2.641474}, {'','',3.269746,2.053078,-2.000000}, {'','',3.163758,2.348305,-2.000000}, {'','',2.053078,1.819544,-2.000000},
-+{'','',3.232488,1.531479,-2.000000}, {'','',2.582063,1.681241,2.579784}, {'','',1.431364,1.462398,-2.000000}, {'','',0.778151,1.278754,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.612784,2.155336,-2.000000}, {'','',2.481443,2.763428,2.596597}, {'','',0.903090,-2.000000,0.000000},
-+{'','',1.113943,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.406540,0.301030,3.395326}, {'','',0.000000,-2.000000,-2.000000}, {'','',3.025306,1.079181,1.897627}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.372728,2.374748,3.407901}, {'','',3.316599,1.602060,2.278754},
-+{'','',0.301030,0.000000,-2.000000}, {'','',2.238046,-2.000000,-2.000000}, {'','',1.230449,0.903090,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.204120,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.487138,1.204120,1.869232}, {'','',1.255273,-2.000000,1.903090},
-+{'','',2.332438,-2.000000,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',2.649335,-2.000000,-2.000000}, {'','',2.943495,-2.000000,0.000000}, {'','',3.412124,-2.000000,1.812913}, {'','',2.509203,-2.000000,0.301030}, {'','',2.640481,-2.000000,0.954243}, {'','',1.556303,-2.000000,3.483730},
-+{'','',2.149219,-2.000000,0.698970}, {'','',2.315970,-2.000000,0.301030}, {'','',1.544068,-2.000000,-2.000000}, {'','',2.100371,-2.000000,3.749350}, {'','',2.876218,-2.000000,2.082785}, {'','',3.609488,-2.000000,3.273927}, {'','',2.942504,-2.000000,3.455302}, {'','',2.800029,-2.000000,2.385606},
-+{'','',0.000000,-2.000000,0.000000}, {'','',2.677607,-2.000000,-2.000000}, {'','',2.948902,-2.000000,0.477121}, {'','',3.303196,-2.000000,0.477121}, {'','',3.392873,-2.000000,1.716003}, {'','',1.361728,-2.000000,-2.000000}, {'','',2.816241,0.000000,3.393224}, {'','',1.913814,-2.000000,-2.000000},
-+{'','',2.858537,-2.000000,1.845098}, {'','',3.165838,-2.000000,1.698970}, {'','',2.238046,-2.000000,0.301030}, {'','',1.653213,-2.000000,0.000000}, {'','',2.484300,-2.000000,0.477121}, {'','',1.342423,-2.000000,-2.000000}, {'','',2.225309,-2.000000,-2.000000}, {'','',1.959041,-2.000000,0.698970},
-+{'','',3.015779,-2.000000,2.685742}, {'','',2.685742,-2.000000,-2.000000}, {'','',1.897627,-2.000000,2.413300}, {'','',0.477121,-2.000000,-2.000000}, {'','',3.671265,-2.000000,-2.000000}, {'','',2.960946,-2.000000,0.954243}, {'','',3.675778,-2.000000,-2.000000}, {'','',1.845098,-2.000000,-2.000000},
-+{'','',0.602060,-2.000000,-2.000000}, {'','',3.559548,-2.000000,-2.000000}, {'','',2.530200,-2.000000,0.000000}, {'','',1.633468,-2.000000,-2.000000}, {'','',0.000000,-2.000000,-2.000000}, {'','',2.539076,-2.000000,-2.000000}, {'','',2.499687,-2.000000,-2.000000}, {'','',3.202488,-2.000000,-2.000000},
-+{'','',1.602060,-2.000000,-2.000000}, {'','',0.698970,-2.000000,-2.000000}, {'','',1.963788,-2.000000,3.079543}, {'','',2.612784,-2.000000,2.849419}, {'','',0.000000,-2.000000,-2.000000}, {'','',-2.000000,1.204120,-2.000000}, {'','',-2.000000,1.477121,-2.000000}, {'','',0.477121,1.255273,-2.000000},
-+{'','',0.845098,0.000000,-2.000000}, {'','',0.477121,1.698970,1.875061}, {'','',0.903090,2.220108,0.000000}, {'','',2.107210,1.977724,0.000000}, {'','',0.477121,1.230449,0.301030}, {'','',1.477121,1.643453,-2.000000}, {'','',-2.000000,1.875061,-2.000000}, {'','',2.683047,0.903090,3.158664},
-+{'','',0.000000,1.113943,-2.000000}, {'','',2.214844,3.899437,1.397940}, {'','',0.301030,1.662758,-2.000000}, {'','',0.000000,2.056905,0.903090}, {'','',0.000000,1.113943,-2.000000}, {'','',0.301030,-2.000000,-2.000000}, {'','',3.050766,0.954243,0.000000}, {'','',0.778151,0.698970,0.477121},
-+{'','',1.544068,0.778151,0.698970}, {'','',3.061075,2.643453,0.903090}, {'','',1.113943,-2.000000,-2.000000}, {'','',2.187521,0.698970,-2.000000}, {'','',1.505150,-2.000000,0.477121}, {'','',0.602060,-2.000000,0.477121}, {'','',2.240549,-2.000000,1.732394}, {'','',1.602060,0.602060,-2.000000},
-+{'','',1.806180,1.278754,1.000000}, {'','',2.082785,1.845098,0.000000}, {'','',0.602060,0.000000,-2.000000}, {'','',2.093422,1.380211,0.301030}, {'','',2.803457,0.301030,0.477121}, {'','',2.645422,0.602060,2.965672}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.949390,-2.000000,0.698970},
-+{'','',1.230449,-2.000000,-2.000000}, {'','',2.603144,-2.000000,1.204120}, {'','',1.863323,0.301030,-2.000000}, {'','',2.984077,-2.000000,0.000000}, {'','',0.602060,-2.000000,1.959041}, {'','',0.000000,-2.000000,-2.000000}, {'','',1.505150,1.633468,0.000000}, {'','',2.806858,2.477121,1.505150},
-+{'','',2.588832,0.845098,1.000000}, {'','',3.294687,1.785330,2.336460}, {'','',2.583199,0.000000,0.000000}, {'','',2.716838,-2.000000,0.000000}, {'','',3.467904,2.214844,0.477121}, {'','',2.029384,0.602060,0.301030}, {'','',2.096910,0.477121,1.518514}, {'','',2.847573,1.690196,1.826075},
-+{'','',3.255996,-2.000000,3.047275}, {'','',2.892095,1.322219,2.460898}, {'','',3.323458,1.322219,1.875061}, {'','',1.963788,0.477121,0.477121}, {'','',2.155336,2.988559,1.176091}, {'','',3.192846,2.487138,1.698970}, {'','',3.615740,0.301030,2.925828}, {'','',0.903090,-2.000000,0.000000},
-+{'','',1.913814,0.000000,2.650308}, {'','',1.944483,-2.000000,1.707570}, {'','',2.527630,0.000000,1.954243}, {'','',1.886491,0.301030,-2.000000}, {'','',2.798651,1.278754,-2.000000}, {'','',2.396199,-2.000000,2.143015}, {'','',1.826075,-2.000000,2.336460}
-+};
-+
-+static unsigned int indexes2=2367;
-+static unsigned int npow2=4096;
-diff -dPNur xmms-1.2.8/libxmms/titlestring.c xmms-1.2.8-patched/libxmms/titlestring.c
---- xmms-1.2.8/libxmms/titlestring.c 2002-01-08 15:09:08.000000000 +0100
-+++ xmms-1.2.8-patched/libxmms/titlestring.c 2003-10-22 11:44:14.000000000 +0200
-@@ -40,6 +40,8 @@
- gchar *xmms_get_titlestring(gchar *fmt, TitleInput *input)
- {
- gchar c, *p, outbuf[256], convert[16], *string;
-+ gchar *cstring = NULL;
-+ gint stringlen;
- gint numdigits, numpr, val, size, i;
- gint f_left, f_space, f_zero, someflag, width, precision;
- gboolean did_output = FALSE;
-@@ -164,9 +166,17 @@
- goto Print_string;
- case 'f':
- string = VS(input, file_name);
-+ if (string) {
-+ cstring=xmms_charset_recode_fs(string,0,&stringlen);
-+ if (cstring) string=cstring;
-+ }
- goto Print_string;
- case 'F':
- string = VS(input, file_path);
-+ if (string) {
-+ cstring=xmms_charset_recode_fs(string,0,&stringlen);
-+ if (cstring) string=cstring;
-+ }
- goto Print_string;
- case 'g':
- string = VS(input, genre);
-@@ -208,6 +218,10 @@
- while ((c = *string++) != '\0')
- PUTCH(c);
- }
-+ if (cstring) {
-+ g_free(cstring);
-+ cstring=NULL;
-+ }
-
- RIGHTPAD(width - numpr);
- break;
-diff -dPNur xmms-1.2.8/xmms/charset.c xmms-1.2.8-patched/xmms/charset.c
---- xmms-1.2.8/xmms/charset.c 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/xmms/charset.c 2003-10-24 00:19:40.000000000 +0200
-@@ -0,0 +1,421 @@
-+#include <stdio.h>
-+#include <locale.h>
-+#include <string.h>
-+#include <gtk/gtk.h>
-+#include "xmms.h"
-+#include "libxmms/charset.h"
-+#include "charset.h"
-+
-+#define CHARSET_MAX_STRING_SIZE 1024 /* 256 symbols in UTF-32 */
-+static char xmms_charset_tmp[CHARSET_MAX_STRING_SIZE];
-+
-+extern TextBox *playlistwin_sinfo;
-+
-+static gint selected_id3_charset, selected_output_charset, selected_fs_charset;
-+static gint selected_pl_charset;
-+static gint selected_autocharset;
-+static GtkWidget *prefswin_options_font_shade_entry, *prefswin_options_font_shade_browse;
-+
-+static void prefswin_font_shade_browse_ok(GtkWidget * w, gpointer data)
-+{
-+ GtkFontSelectionDialog *fontsel = GTK_FONT_SELECTION_DIALOG(data);
-+ gchar *fontname;
-+
-+ fontname = gtk_font_selection_dialog_get_font_name(fontsel);
-+
-+ if (fontname)
-+ gtk_entry_set_text(GTK_ENTRY(prefswin_options_font_shade_entry), fontname);
-+
-+ gtk_widget_destroy(GTK_WIDGET(fontsel));
-+}
-+
-+static void prefswin_font_shade_browse_cb(GtkWidget * w, gpointer data)
-+{
-+ static GtkWidget *fontsel;
-+
-+ if (fontsel != NULL)
-+ return;
-+
-+ fontsel = gtk_font_selection_dialog_new(_("Select playlist font:"));
-+ gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontsel), gtk_entry_get_text(GTK_ENTRY(prefswin_options_font_shade_entry)));
-+ gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontsel)->ok_button), "clicked", GTK_SIGNAL_FUNC(prefswin_font_shade_browse_ok), fontsel);
-+ gtk_signal_connect_object(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontsel)->cancel_button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(fontsel));
-+ gtk_signal_connect(GTK_OBJECT(fontsel), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &fontsel);
-+ gtk_widget_show(fontsel);
-+}
-+
-+
-+static void prefswin_charset_cb(GtkWidget * w, gpointer item)
-+{
-+ int i;
-+ i = GPOINTER_TO_INT(item);
-+ if (i>=0x3FFFF) selected_pl_charset=i-0x3FFFF;
-+ else if (i>=0x2FFFF) selected_autocharset=i-0x2FFFF;
-+ else if (i>=0x1FFFF) selected_fs_charset=i-0x1FFFF;
-+ else if (i>=0xFFFF) selected_output_charset=i-0xFFFF;
-+ else selected_id3_charset=i;
-+}
-+
-+static void charset_options_add(Config *cfg, GtkOptionMenu *cmenu1, GtkOptionMenu *cmenu2, GtkOptionMenu *cmenu3, GtkOptionMenu *cmenu4)
-+{
-+ int i;
-+ GtkWidget *menu1, *item1;
-+ GtkWidget *menu2, *item2;
-+ GtkWidget *menu3, *item3;
-+ GtkWidget *menu4, *item4;
-+
-+ menu1 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu1);
-+ gtk_option_menu_set_menu(cmenu1, menu1);
-+
-+ menu2 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu2);
-+ gtk_option_menu_set_menu(cmenu2, menu2);
-+
-+ menu3 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu3);
-+ gtk_option_menu_set_menu(cmenu3, menu3);
-+
-+ menu4 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu4);
-+ gtk_option_menu_set_menu(cmenu4, menu4);
-+
-+ selected_id3_charset=0;
-+ selected_output_charset=0;
-+ selected_fs_charset=0;
-+ selected_pl_charset=0;
-+
-+ for (i=0;charset_list[i];i++) {
-+ item1 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item1), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i));
-+ gtk_widget_show(item1);
-+ gtk_menu_append(GTK_MENU(menu1), item1);
-+ item2 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0xFFFF));
-+ gtk_widget_show(item2);
-+ gtk_menu_append(GTK_MENU(menu2), item2);
-+ item3 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item3), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0x1FFFF));
-+ gtk_widget_show(item3);
-+ gtk_menu_append(GTK_MENU(menu3), item3);
-+ item4 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item4), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0x3FFFF));
-+ gtk_widget_show(item4);
-+ gtk_menu_append(GTK_MENU(menu4), item4);
-+ if ((cfg->charset_id3)&&(!strcmp(cfg->charset_id3,charset_list[i]))) {
-+ selected_id3_charset=i;
-+ }
-+ if ((cfg->charset_output)&&(!strcmp(cfg->charset_output,charset_list[i]))) {
-+ selected_output_charset=i;
-+ }
-+ if ((cfg->charset_fs)&&(!strcmp(cfg->charset_fs,charset_list[i]))) {
-+ selected_fs_charset=i;
-+ }
-+ if ((cfg->charset_pl)&&(!strcmp(cfg->charset_pl,charset_list[i]))) {
-+ selected_pl_charset=i;
-+ }
-+ }
-+
-+ gtk_option_menu_set_history(cmenu1, selected_id3_charset);
-+ gtk_option_menu_set_history(cmenu2, selected_output_charset);
-+ gtk_option_menu_set_history(cmenu3, selected_fs_charset);
-+ gtk_option_menu_set_history(cmenu4, selected_pl_charset);
-+}
-+
-+static void autocharset_options_add(Config *cfg, GtkOptionMenu *cmenu)
-+{
-+ int i;
-+ GtkWidget *menu, *item;
-+
-+ menu = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu);
-+ gtk_option_menu_set_menu(cmenu, menu);
-+
-+ selected_autocharset=0;
-+
-+
-+ for (i=0;i<autocharset_list_ni;i++) {
-+ item = gtk_menu_item_new_with_label(autocharset_list[i].title);
-+ gtk_signal_connect(GTK_OBJECT(item), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0x2FFFF));
-+ gtk_widget_show(item);
-+ gtk_menu_append(GTK_MENU(menu), item);
-+ if ((cfg->autocharset)&&(cfg->autocharset==i)) {
-+ selected_autocharset=i;
-+ }
-+ }
-+
-+ gtk_option_menu_set_history(cmenu, selected_autocharset);
-+}
-+
-+static GtkWidget *prefswin_autocharset_fs_option;
-+static GtkWidget *prefswin_charset_fm_option;
-+void charset_create_prefs_window(Config *cfg, GtkNotebook *prefswin_notebook, GtkWidget *prefswin_fonts_vbox) {
-+ GtkWidget *prefswin_encodings_vbox;
-+ GtkWidget *prefswin_fonts_shade_frame;
-+ GtkWidget *options_font_shade_hbox, *options_font_shade_vbox;
-+ GtkWidget *prefswin_charset_frame, *prefswin_charset_vbox;
-+ GtkWidget *prefswin_charset_list1, *prefswin_charset_list2, *prefswin_charset_list3, *prefswin_charset_list4;
-+ GtkWidget *prefswin_charset_hbox1, *prefswin_charset_hbox2, *prefswin_charset_hbox3, *prefswin_charset_hbox4;
-+ GtkWidget *prefswin_charset_label1, *prefswin_charset_label2, *prefswin_charset_label3, *prefswin_charset_label4;
-+ GtkWidget *prefswin_autocharset_frame, *prefswin_autocharset_vbox;
-+ GtkWidget *prefswin_autocharset_list;
-+ GtkWidget *prefswin_autocharset_hbox;
-+ GtkWidget *prefswin_autocharset_label;
-+ GtkWidget *prefswin_autocharset_fs_hbox;
-+ GtkWidget *prefswin_charset_fm_hbox;
-+
-+ prefswin_fonts_shade_frame = gtk_frame_new(_("Shade"));
-+ gtk_container_set_border_width(GTK_CONTAINER(prefswin_fonts_shade_frame), 5);
-+ gtk_box_pack_start(GTK_BOX(prefswin_fonts_vbox), prefswin_fonts_shade_frame, FALSE, FALSE, 0);
-+ options_font_shade_vbox = gtk_vbox_new(FALSE, 5);
-+ gtk_container_border_width(GTK_CONTAINER(options_font_shade_vbox), 5);
-+ gtk_container_add(GTK_CONTAINER(prefswin_fonts_shade_frame), options_font_shade_vbox);
-+ options_font_shade_hbox = gtk_hbox_new(FALSE, 5);
-+ gtk_box_pack_start_defaults(GTK_BOX(options_font_shade_vbox), options_font_shade_hbox);
-+ prefswin_options_font_shade_entry = gtk_entry_new();
-+ gtk_box_pack_start(GTK_BOX(options_font_shade_hbox), prefswin_options_font_shade_entry, TRUE, TRUE, 0);
-+ prefswin_options_font_shade_browse = gtk_button_new_with_label(_("Browse"));
-+ gtk_signal_connect(GTK_OBJECT(prefswin_options_font_shade_browse), "clicked", GTK_SIGNAL_FUNC(prefswin_font_shade_browse_cb), NULL);
-+ gtk_widget_set_usize(prefswin_options_font_shade_browse, 85, 17);
-+ gtk_box_pack_start(GTK_BOX(options_font_shade_hbox), prefswin_options_font_shade_browse, FALSE, TRUE, 0);
-+
-+ prefswin_encodings_vbox = gtk_vbox_new(FALSE, 0);
-+
-+ prefswin_charset_frame = gtk_frame_new(_("Encodings"));
-+ gtk_box_pack_start(GTK_BOX(prefswin_encodings_vbox), prefswin_charset_frame, FALSE, FALSE, 0);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_frame), 5);
-+ prefswin_charset_vbox = gtk_vbox_new(FALSE, 3);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_frame), prefswin_charset_vbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_vbox), 5);
-+
-+ prefswin_charset_hbox1 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox1);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox1), 5);
-+ prefswin_charset_label1 = gtk_label_new(_("ID3 Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label1, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox1), prefswin_charset_label1, FALSE, FALSE, 0);
-+ prefswin_charset_list1 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox1), prefswin_charset_list1, TRUE, TRUE, 0);
-+
-+ prefswin_charset_hbox2 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox2);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox2), 5);
-+ prefswin_charset_label2 = gtk_label_new(_("Output Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label2, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox2), prefswin_charset_label2, FALSE, FALSE, 0);
-+ prefswin_charset_list2 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox2), prefswin_charset_list2, TRUE, TRUE, 0);
-+
-+ prefswin_charset_hbox3 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox3);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox3), 5);
-+ prefswin_charset_label3 = gtk_label_new(_("FileSystem Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label3, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox3), prefswin_charset_label3, FALSE, FALSE, 0);
-+ prefswin_charset_list3 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox3), prefswin_charset_list3, TRUE, TRUE, 0);
-+
-+ prefswin_charset_hbox4 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox4);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox4), 5);
-+ prefswin_charset_label4 = gtk_label_new(_("Playlist Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label4, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox4), prefswin_charset_label4, FALSE, FALSE, 0);
-+ prefswin_charset_list4 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox4), prefswin_charset_list4, TRUE, TRUE, 0);
-+
-+ prefswin_charset_fm_hbox = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_fm_hbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_fm_hbox), 5);
-+ prefswin_charset_fm_option = gtk_check_button_new_with_label(_("Recode File Names"));
-+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(prefswin_charset_fm_option),cfg->charset_fm);
-+ gtk_box_pack_start_defaults(GTK_BOX(prefswin_charset_fm_hbox), prefswin_charset_fm_option);
-+
-+ charset_options_add(cfg, GTK_OPTION_MENU(prefswin_charset_list1),GTK_OPTION_MENU(prefswin_charset_list2),GTK_OPTION_MENU(prefswin_charset_list3), GTK_OPTION_MENU(prefswin_charset_list4));
-+
-+ prefswin_autocharset_frame = gtk_frame_new(_("Encoding Autoselection"));
-+ gtk_box_pack_start(GTK_BOX(prefswin_encodings_vbox), prefswin_autocharset_frame, FALSE, FALSE, 0);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_autocharset_frame), 5);
-+ prefswin_autocharset_vbox = gtk_vbox_new(FALSE, 3);
-+ gtk_container_add(GTK_CONTAINER(prefswin_autocharset_frame), prefswin_autocharset_vbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_autocharset_vbox), 5);
-+
-+ prefswin_autocharset_hbox = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_autocharset_vbox), prefswin_autocharset_hbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_autocharset_hbox), 5);
-+ prefswin_autocharset_label = gtk_label_new(_("Language"));
-+ gtk_widget_set_usize(prefswin_autocharset_label, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_autocharset_hbox), prefswin_autocharset_label, FALSE, FALSE, 0);
-+ prefswin_autocharset_list = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_autocharset_hbox), prefswin_autocharset_list, TRUE, TRUE, 0);
-+
-+ autocharset_options_add(cfg, GTK_OPTION_MENU(prefswin_autocharset_list));
-+
-+
-+ prefswin_autocharset_fs_hbox = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_autocharset_vbox), prefswin_autocharset_fs_hbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_autocharset_fs_hbox), 5);
-+ prefswin_autocharset_fs_option = gtk_check_button_new_with_label(_("Enable for FileSystem"));
-+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(prefswin_autocharset_fs_option),cfg->autocharset_fs);
-+ gtk_box_pack_start_defaults(GTK_BOX(prefswin_autocharset_fs_hbox), prefswin_autocharset_fs_option);
-+
-+ gtk_notebook_append_page(prefswin_notebook, prefswin_encodings_vbox, gtk_label_new(_("Encodings")));
-+}
-+
-+void charset_prefswin_apply_changes(Config *cfg) {
-+ if (cfg->charset_id3) g_free(cfg->charset_id3);
-+ if (cfg->charset_output) g_free(cfg->charset_output);
-+ if (cfg->charset_fs) g_free(cfg->charset_fs);
-+ if (cfg->charset_pl) g_free(cfg->charset_pl);
-+ cfg->charset_id3=g_strdup(charset_list[selected_id3_charset]);
-+ cfg->charset_output=g_strdup(charset_list[selected_output_charset]);
-+ cfg->charset_fs=g_strdup(charset_list[selected_fs_charset]);
-+ cfg->charset_pl=g_strdup(charset_list[selected_pl_charset]);
-+ xmms_charset_new_charsets(selected_id3_charset, selected_output_charset, selected_fs_charset, selected_pl_charset);
-+ cfg->autocharset=selected_autocharset;
-+ cfg->autocharset_fs=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefswin_autocharset_fs_option));
-+ cfg->charset_fm=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefswin_charset_fm_option));
-+ xmms_autocharset_new_mode(selected_autocharset,cfg->autocharset_fs,cfg->charset_fm);
-+
-+ if (cfg->shade_font) g_free(cfg->shade_font);
-+ cfg->shade_font = g_strdup(gtk_entry_get_text(GTK_ENTRY(prefswin_options_font_shade_entry)));
-+ textbox_set_xfont(playlistwin_sinfo, cfg->mainwin_use_xfont, cfg->shade_font);
-+}
-+
-+void charset_show_prefs_window(Config *cfg) {
-+ gtk_entry_set_text(GTK_ENTRY(prefswin_options_font_shade_entry), cfg->shade_font);
-+}
-+
-+void charset_create_playlist_window(Config *cfg) {
-+ textbox_set_xfont(playlistwin_sinfo, cfg->mainwin_use_xfont, cfg->shade_font);
-+}
-+/*****************************************************************************
-+************************ Initialization / Deinitilization ********************
-+*****************************************************************************/
-+void charset_free(Config *cfg) {
-+ xmms_charset_free();
-+ xmms_autocharset_free();
-+}
-+
-+void charset_init(Config *cfg) {
-+ xmms_charset_init(cfg->charset_id3, cfg->charset_output, cfg->charset_fs, cfg->charset_pl);
-+ xmms_autocharset_init(cfg->autocharset);
-+}
-+
-+void charset_read_config(ConfigFile *cfgfile, Config *cfg) {
-+ cfg->autocharset=0;
-+ cfg->autocharset_fs=1;
-+ cfg->charset_fm=1;
-+ xmms_cfg_read_string(cfgfile, "xmms", "shade_font", &cfg->shade_font);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_id3", &cfg->charset_id3);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_output", &cfg->charset_output);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_fs", &cfg->charset_fs);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_pl", &cfg->charset_pl);
-+ xmms_cfg_read_int(cfgfile,"xmms","autocharset",&cfg->autocharset);
-+ xmms_cfg_read_int(cfgfile,"xmms","autocharset_fs",&cfg->autocharset_fs);
-+ xmms_cfg_read_int(cfgfile,"xmms","charset_fm",&cfg->charset_fm);
-+ if (cfg->autocharset>autocharset_list_ni) cfg->autocharset=0;
-+}
-+
-+void charset_write_config(ConfigFile *cfgfile, Config *cfg) {
-+ xmms_cfg_write_string(cfgfile, "xmms", "shade_font", cfg->shade_font);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_id3", cfg->charset_id3);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_output", cfg->charset_output);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_fs", cfg->charset_fs);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_pl", cfg->charset_pl);
-+ xmms_cfg_write_int(cfgfile,"xmms","autocharset",cfg->autocharset);
-+ xmms_cfg_write_int(cfgfile,"xmms","autocharset_fs",cfg->autocharset_fs);
-+ xmms_cfg_write_int(cfgfile,"xmms","charset_fm",cfg->charset_fm);
-+}
-+
-+void charset_default_config(Config *cfg) {
-+ if (cfg->shade_font && strlen(cfg->shade_font) == 0)
-+ {
-+ g_free(cfg->shade_font);
-+ cfg->shade_font = NULL;
-+ }
-+ if (cfg->shade_font == NULL)
-+ cfg->shade_font = g_strdup("-misc-fixed-medium-r-*-*-7-*");
-+}
-+
-+/*****************************************************************************
-+*********************************** Sort *************************************
-+*****************************************************************************/
-+gchar *saved_locale;
-+
-+static void charset_sort_null_entry(gpointer entry, gpointer data) {
-+ ((PlaylistEntry*)entry)->sort=NULL;
-+}
-+
-+static void charset_sort_free_entry(gpointer entry, gpointer data) {
-+ if (((PlaylistEntry*)entry)->sort)
-+ g_free(((PlaylistEntry*)entry)->sort);
-+}
-+
-+void charset_sort_prepare(GList *playlist) {
-+ g_list_foreach(playlist, charset_sort_null_entry, NULL);
-+ saved_locale=g_strdup(setlocale(LC_COLLATE,NULL));
-+ setlocale(LC_COLLATE,"UTF-8");
-+}
-+
-+void charset_sort_free(GList *playlist) {
-+ g_list_foreach(playlist, charset_sort_free_entry, NULL);
-+ if (saved_locale) {
-+ setlocale(LC_COLLATE,saved_locale);
-+ g_free(saved_locale);
-+ }
-+}
-+
-+char *charset_sort_convert(PlaylistEntry *entry, gchar *title, int fs) {
-+ char *str;
-+ if (entry->sort) return entry->sort;
-+ if (fs)
-+ str=xmms_charset_recode_fs2utf(title,0,NULL);
-+ else
-+ str=xmms_charset_recode_id2utf(title,0,NULL);
-+
-+ if (!str)
-+ entry->sort=g_strdup(title);
-+ else {
-+ strxfrm(xmms_charset_tmp,str,CHARSET_MAX_STRING_SIZE);
-+// *(int*)(xmms_charset_tmp+(CHARSET_MAX_STRING_SIZE-sizeof(int)))=0;
-+ xmms_charset_tmp[CHARSET_MAX_STRING_SIZE-1]=0;
-+ entry->sort=g_strdup(xmms_charset_tmp);
-+ g_free(str);
-+ }
-+
-+ if (entry->sort)
-+ return entry->sort;
-+
-+ return title;
-+}
-+
-+/*****************************************************************************
-+*********************************** Misc *************************************
-+*****************************************************************************/
-+
-+void textbox_set_ctext(TextBox * tb, gchar * text)
-+{
-+ gchar *rtext;
-+
-+ lock_widget(tb);
-+
-+ rtext=xmms_charset_recode_id3(text,0,NULL);
-+ if (rtext) text=rtext;
-+ if (tb->tb_text)
-+ {
-+ if (!strcmp(text, tb->tb_text))
-+ {
-+ if (rtext) free(rtext);
-+ unlock_widget(tb);
-+ return;
-+ }
-+ g_free(tb->tb_text);
-+ }
-+
-+ tb->tb_text = g_strdup(text);
-+ if (rtext) free(rtext);
-+
-+ unlock_widget(tb);
-+ draw_widget(tb);
-+}
-diff -dPNur xmms-1.2.8/xmms/charset.h xmms-1.2.8-patched/xmms/charset.h
---- xmms-1.2.8/xmms/charset.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-patched/xmms/charset.h 2003-10-22 11:44:14.000000000 +0200
-@@ -0,0 +1,19 @@
-+#include "libxmms/configfile.h"
-+#include "libxmms/charset.h"
-+void charset_create_prefs_window(Config *cfg, GtkNotebook *prefswin_notebook, GtkWidget *prefswin_fonts_vbox);
-+void charset_show_prefs_window(Config *cfg);
-+void charset_prefswin_apply_changes(Config *cfg);
-+void charset_create_playlist_window(Config *cfg);
-+
-+void charset_init(Config *cfg);
-+void charset_free(Config *cfg);
-+
-+void charset_read_config(ConfigFile *cfgfile, Config *cfg);
-+void charset_default_config(Config *cfg);
-+void charset_write_config(ConfigFile *cfgfile, Config *cfg);
-+
-+void charset_sort_prepare(GList *playlist);
-+void charset_sort_free(GList *playlist);
-+char *charset_sort_convert(PlaylistEntry *entry, gchar *title, int fs);
-+
-+void textbox_set_ctext(TextBox * tb, gchar * text);
-diff -dPNur xmms-1.2.8/xmms/input.c xmms-1.2.8-patched/xmms/input.c
---- xmms-1.2.8/xmms/input.c 2003-07-14 15:24:28.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/input.c 2003-10-22 11:44:14.000000000 +0200
-@@ -22,6 +22,7 @@
- #include "libxmms/titlestring.h"
- #include "libxmms/util.h"
- #include "libxmms/xentry.h"
-+#include "libxmms/charset.h"
-
- static pthread_mutex_t vis_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-@@ -343,7 +344,7 @@
- {
- GList *node;
- InputPlugin *ip = NULL;
--
-+
- node = get_input_list();
- while (node)
- {
-@@ -371,8 +372,11 @@
-
- (*title) = xmms_get_titlestring(xmms_get_gentitle_format(),
- input);
-- if ( (*title) == NULL )
-- (*title) = g_strdup(input->file_name);
-+ if ( (*title) == NULL ) {
-+ (*title) = xmms_charset_recode_fs(input->file_name,0,NULL);
-+ if (!*title) (*title) = g_strdup(input->file_name);
-+ }
-+
- (*length) = -1;
- g_free(temp);
- g_free(input);
-diff -dPNur xmms-1.2.8/xmms/main.c xmms-1.2.8-patched/xmms/main.c
---- xmms-1.2.8/xmms/main.c 2003-09-02 15:01:40.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/main.c 2003-10-22 11:44:14.000000000 +0200
-@@ -35,6 +35,7 @@
- #include "libxmms/xmmsctrl.h"
- #include "libxmms/util.h"
- #include "libxmms/dirbrowser.h"
-+#include "charset.h"
- #include "xmms_mini.xpm"
-
- GtkWidget *mainwin, *mainwin_url_window = NULL, *mainwin_dir_browser = NULL;
-@@ -377,7 +378,6 @@
-
- cfg.gentitle_format = NULL;
-
--
- filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL);
- cfgfile = xmms_cfg_open_file(filename);
- if (cfgfile)
-@@ -428,6 +428,7 @@
- xmms_cfg_read_boolean(cfgfile, "xmms", "use_fontsets", &cfg.use_fontsets);
- xmms_cfg_read_boolean(cfgfile, "xmms", "mainwin_use_xfont", &cfg.mainwin_use_xfont);
- xmms_cfg_read_string(cfgfile, "xmms", "mainwin_font", &cfg.mainwin_font);
-+ charset_read_config(cfgfile,&cfg);
- xmms_cfg_read_int(cfgfile, "xmms", "playlist_position", &cfg.playlist_position);
- xmms_cfg_read_int(cfgfile, "xmms", "equalizer_x", &cfg.equalizer_x);
- xmms_cfg_read_int(cfgfile, "xmms", "equalizer_y", &cfg.equalizer_y);
-@@ -514,6 +515,8 @@
- if (cfg.eqpreset_extension == NULL)
- cfg.eqpreset_extension = g_strdup("preset");
-
-+ charset_default_config(&cfg);
-+
- g_free(filename);
- }
-
-@@ -594,6 +597,7 @@
- xmms_cfg_write_boolean(cfgfile, "xmms", "use_fontsets", cfg.use_fontsets);
- xmms_cfg_write_boolean(cfgfile, "xmms", "mainwin_use_xfont", cfg.mainwin_use_xfont);
- xmms_cfg_write_string(cfgfile, "xmms", "mainwin_font", cfg.mainwin_font);
-+ charset_write_config(cfgfile,&cfg);
- xmms_cfg_write_int(cfgfile, "xmms", "playlist_position", get_playlist_position());
- /* dock_get_widget_pos(equalizerwin, &cfg.equalizer_x, &cfg.equalizer_y); */
- xmms_cfg_write_int(cfgfile, "xmms", "equalizer_x", cfg.equalizer_x);
-@@ -893,6 +897,7 @@
- gtk_timeout_remove(mainwin_timeout_tag);
- util_set_cursor(NULL);
- save_config();
-+ charset_free(&cfg);
- cleanup_ctrlsocket();
- playlist_stop_get_info_thread();
- playlist_clear();
-@@ -992,10 +997,12 @@
- if ((text = input_get_info_text()) != NULL)
- {
- textbox_set_text(mainwin_info, text);
-+// textbox_set_ctext(mainwin_info, text);
- }
- else if ((text = playlist_get_info_text()) != NULL)
- {
- textbox_set_text(mainwin_info, text);
-+// textbox_set_ctext(mainwin_info, text);
- g_free(text);
- }
- else
-@@ -1008,8 +1015,14 @@
-
- void mainwin_lock_info_text(gchar * text)
- {
-+ gchar *ctext;
-+ ctext=xmms_charset_recode_ct2out(text,0,NULL);
-+ if (ctext) text=ctext;
-+
- mainwin_info_text_locked = TRUE;
- textbox_set_text(mainwin_info, text);
-+
-+ if (ctext) g_free(ctext);
- }
-
- void mainwin_release_info_text(void)
-@@ -3491,6 +3504,7 @@
- #endif
-
- read_config();
-+ charset_init(&cfg);
-
- if (geteuid() == 0)
- {
-diff -dPNur xmms-1.2.8/xmms/main.h xmms-1.2.8-patched/xmms/main.h
---- xmms-1.2.8/xmms/main.h 2002-10-06 18:35:27.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/main.h 2003-10-24 00:15:30.000000000 +0200
-@@ -19,6 +19,7 @@
- */
- #ifndef MAIN_H
- #define MAIN_H
-+#include "libxmms/charset.h"
-
- typedef enum
- {
-@@ -60,6 +61,9 @@
- gint mouse_change;
- gboolean playlist_transparent;
- gchar *gentitle_format;
-+ gchar *charset_id3, *charset_output, *charset_fs, *charset_pl;
-+ gint autocharset, autocharset_fs, charset_fm;
-+ gchar *shade_font;
- }
- Config;
-
-diff -dPNur xmms-1.2.8/xmms/Makefile.am xmms-1.2.8-patched/xmms/Makefile.am
---- xmms-1.2.8/xmms/Makefile.am 2003-08-11 15:47:41.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/Makefile.am 2003-10-22 11:44:14.000000000 +0200
-@@ -56,7 +56,8 @@
- getopt.c getopt1.c getopt.h \
- urldecode.c urldecode.h \
- dnd.h \
--mkdtemp.c
-+mkdtemp.c \
-+charset.c charset.h
-
- EXTRA_DIST= xmms_logo.xpm xmms_mini.xpm xmms.desktop xmms.wmconfig
-
-diff -dPNur xmms-1.2.8/xmms/Makefile.in xmms-1.2.8-patched/xmms/Makefile.in
---- xmms-1.2.8/xmms/Makefile.in 2003-09-04 23:01:20.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/Makefile.in 2003-10-22 11:44:14.000000000 +0200
-@@ -228,8 +228,8 @@
- getopt.c getopt1.c getopt.h \
- urldecode.c urldecode.h \
- dnd.h \
--mkdtemp.c
--
-+mkdtemp.c \
-+charset.c charset.h
-
- EXTRA_DIST = xmms_logo.xpm xmms_mini.xpm xmms.desktop xmms.wmconfig
-
-@@ -257,7 +257,7 @@
- main.$(OBJEXT) skinwin.$(OBJEXT) prefswin.$(OBJEXT) \
- playlistwin.$(OBJEXT) equalizer.$(OBJEXT) hints.$(OBJEXT) \
- about.$(OBJEXT) sm.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
--urldecode.$(OBJEXT) mkdtemp.$(OBJEXT)
-+urldecode.$(OBJEXT) mkdtemp.$(OBJEXT) charset.$(OBJEXT)
- xmms_DEPENDENCIES = $(top_builddir)/libxmms/libxmms.la
- CFLAGS = @CFLAGS@
- COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-diff -dPNur xmms-1.2.8/xmms/playlist.c xmms-1.2.8-patched/xmms/playlist.c
---- xmms-1.2.8/xmms/playlist.c 2003-09-02 15:01:40.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/playlist.c 2003-10-23 23:30:35.000000000 +0200
-@@ -20,6 +20,7 @@
- #include "xmms.h"
- #include <time.h>
- #include "libxmms/util.h"
-+#include "charset.h"
- #include <sys/stat.h>
- #include <unistd.h>
-
-@@ -939,6 +940,7 @@
- char *playlist_get_info_text(void)
- {
- char *text, *title, *tmp, *numbers, *length;
-+ char *ctitle;
-
- PL_LOCK();
- if (!playlist_position)
-@@ -947,10 +949,17 @@
- return NULL;
- }
-
-- if (playlist_position->title)
-+ if (playlist_position->title) {
-+ ctitle = xmms_charset_recode_id3(playlist_position->title,0,NULL);
-+ if (ctitle) title=ctitle;
-+ else
- title = playlist_position->title;
-- else
-+ } else {
-+ ctitle = xmms_charset_recode_fsout(g_basename(playlist_position->filename),0,NULL);
-+ if (ctitle) title=ctitle;
-+ else
- title = g_basename(playlist_position->filename);
-+ }
-
- /*
- * If the user don't want numbers in the playlist, don't
-@@ -972,6 +981,7 @@
- text = g_strdup_printf("%s%s%s", numbers, title, length);
- g_free(numbers);
- g_free(length);
-+ if (ctitle) g_free(ctitle);
-
- PL_UNLOCK();
-
-@@ -1007,6 +1017,7 @@
- {
- GList *node;
- FILE *file;
-+ gchar *fn, *cfn;
-
- if ((file = fopen(filename, "w")) == NULL)
- return FALSE;
-@@ -1025,10 +1036,14 @@
- while (node)
- {
- PlaylistEntry *entry = node->data;
-+ if (!strstr(entry->filename,"://")) cfn=xmms_charset_recode_fs2pl(entry->filename,0,NULL);
-+ else cfn=NULL;
-+ if (cfn) fn=cfn;
-+ else fn=entry->filename;
- if (is_pls)
- fprintf(file, "File%d=%s\n",
- g_list_position(playlist, node) + 1,
-- entry->filename);
-+ fn);
- else
- {
- if (entry->title && cfg.use_pl_metadata)
-@@ -1043,8 +1058,9 @@
- fprintf(file, "#EXTINF:%d,%s\n",
- seconds, entry->title);
- }
-- fprintf(file, "%s\n", entry->filename);
-+ fprintf(file, "%s\n", fn);
- }
-+ if (cfn) g_free(cfn);
- node = g_list_next(node);
- }
- PL_UNLOCK();
-@@ -1079,13 +1095,22 @@
- __playlist_ins_with_info(filename, pos, title, len);
- return;
- }
-+ temp=xmms_charset_recode_fs2fs(path,filename);
-+ if (temp) {
-+ filename = g_strdup_printf("%s/%s", path, temp);
-+ free(temp); temp=filename;
-+ } else
- temp = g_strdup_printf("%s/%s", path, filename);
- __playlist_ins_with_info(temp, pos, title, len);
- g_free(temp);
- g_free(path);
- }
-- else
-+ else {
-+ temp=xmms_charset_recode_fs2fs("",filename);
-+ if (temp) filename=temp;
- __playlist_ins_with_info(filename, pos, title, len);
-+ if (temp) free(temp);
-+ }
- }
-
- static void parse_extm3u_info(char *info, char **title, int *length)
-@@ -1121,6 +1146,7 @@
- {
- FILE *file;
- char *line, *ext;
-+ char *cline;
- guint entries = 0;
- int linelen = 1024;
- gboolean extm3u = FALSE;
-@@ -1147,8 +1173,11 @@
- "playlist", key);
- if (line != NULL)
- {
-- playlist_load_ins_file(line, filename, pos,
-+ if (!strstr(line,"://")) cline = xmms_charset_recode_pl2fs(line,0,NULL);
-+ else cline=NULL;
-+ playlist_load_ins_file(cline ? cline : line, filename, pos,
- NULL, -1);
-+ if (cline) g_free(cline);
- entries++;
- if (pos >= 0)
- pos++;
-@@ -1215,7 +1244,9 @@
- ext_info = NULL;
- }
-
-- playlist_load_ins_file(line, filename, pos, ext_title, ext_len);
-+ cline = xmms_charset_recode_pl2fs(line,linelen,NULL);
-+ playlist_load_ins_file(cline ? cline : line, filename, pos, ext_title, ext_len);
-+ if (cline) g_free(cline);
-
- g_free(ext_title);
- ext_title = NULL;
-@@ -1308,19 +1339,27 @@
-
- if (entry->title == NULL && entry->length == -1)
- {
-- if (playlist_get_info_entry(entry))
-+ if (playlist_get_info_entry(entry)) {
-+ title = xmms_charset_recode_id3(entry->title,0,NULL);
-+ if (!title)
- title = g_strdup(entry->title);
-+ }
-
- PL_UNLOCK();
- }
- else
- {
-+ title = xmms_charset_recode_id3(entry->title,0,NULL);
-+ if (!title)
- title = g_strdup(entry->title);
- PL_UNLOCK();
- }
-
-- if (title == NULL)
-+ if (title == NULL) {
-+ title = xmms_charset_recode_fsout(g_basename(filename),0,NULL);
-+ if (!title)
- title = g_strdup(g_basename(filename));
-+ }
-
- g_free(filename);
-
-@@ -1366,6 +1405,7 @@
- static int playlist_sort_by_title_cmpfunc(PlaylistEntry * a, PlaylistEntry * b)
- {
- char *a_title, *b_title;
-+ int a_fs=0, b_fs=0;
-
- if (a->title)
- a_title = a->title;
-@@ -1375,6 +1415,7 @@
- a_title = strrchr(a->filename, '/') + 1;
- else
- a_title = a->filename;
-+ a_fs=1;
- }
-
- if (b->title)
-@@ -1385,15 +1426,21 @@
- b_title = strrchr(b->filename, '/') + 1;
- else
- b_title = b->filename;
--
-+ b_fs=1;
- }
-+
-+ a_title=charset_sort_convert(a,a_title,a_fs);
-+ b_title=charset_sort_convert(b,b_title,b_fs);
-+
- return strcasecmp(a_title, b_title);
- }
-
- void playlist_sort_by_title(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = g_list_sort(playlist, (GCompareFunc) playlist_sort_by_title_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-@@ -1411,13 +1458,18 @@
- else
- b_filename = b->filename;
-
-+ a_filename=charset_sort_convert(a,a_filename,1);
-+ b_filename=charset_sort_convert(b,b_filename,1);
-+
- return strcasecmp(a_filename, b_filename);
- }
-
- void playlist_sort_by_filename(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = g_list_sort(playlist, (GCompareFunc) playlist_sort_by_filename_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-@@ -1445,6 +1497,7 @@
- len = posa - a;
- ret = 1;
- }
-+
- if (!strncasecmp(a, b, len))
- return ret;
- }
-@@ -1453,13 +1506,18 @@
-
- static int playlist_sort_by_path_cmpfunc(PlaylistEntry * a, PlaylistEntry * b)
- {
-- return playlist_sort_str_by_path_cmpfunc(a->filename, b->filename);
-+ char *a_filename, *b_filename;
-+ a_filename=charset_sort_convert(a,a->filename,1);
-+ b_filename=charset_sort_convert(b,b->filename,1);
-+ return playlist_sort_str_by_path_cmpfunc(a_filename, b_filename);
- }
-
- void playlist_sort_by_path(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = g_list_sort(playlist, (GCompareFunc) playlist_sort_by_path_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-@@ -1549,21 +1607,27 @@
- void playlist_sort_selected_by_title(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = playlist_sort_selected(playlist, (GCompareFunc) playlist_sort_by_title_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
- void playlist_sort_selected_by_filename(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = playlist_sort_selected(playlist, (GCompareFunc) playlist_sort_by_filename_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
- void playlist_sort_selected_by_path(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = playlist_sort_selected(playlist, (GCompareFunc) playlist_sort_by_path_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-diff -dPNur xmms-1.2.8/xmms/playlist.h xmms-1.2.8-patched/xmms/playlist.h
---- xmms-1.2.8/xmms/playlist.h 2003-06-09 15:22:10.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/playlist.h 2003-10-22 11:44:14.000000000 +0200
-@@ -24,6 +24,7 @@
- {
- gchar *filename;
- gchar *title;
-+ gchar *sort;
- gint length;
- gboolean selected;
- }
-diff -dPNur xmms-1.2.8/xmms/playlist_list.c xmms-1.2.8-patched/xmms/playlist_list.c
---- xmms-1.2.8/xmms/playlist_list.c 2003-06-09 15:22:10.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/playlist_list.c 2003-10-22 11:44:14.000000000 +0200
-@@ -287,6 +287,7 @@
- {
- GdkWChar *wtext;
- int len, newlen;
-+ gchar *rtext;
- /*
- * Convert the string to a wide character string to avoid
- * destroying multibyte strings, when converting underscores,
-@@ -296,6 +297,10 @@
- * Allocate some extra space, we might extend it by one
- * character below
- */
-+
-+ rtext = xmms_charset_recode_id3(text,0,NULL);
-+ if (rtext) text = rtext;
-+
- wtext = g_malloc((strlen(text) + 3) * sizeof(GdkWChar));
- len = gdk_mbstowcs(wtext, text, strlen(text) + 1);
- if (len == -1)
-@@ -312,6 +317,7 @@
- if (wtext[i] == L'_')
- wtext[i] = L' ';
- }
-+ if (rtext) g_free(rtext);
-
- if (cfg.convert_twenty && len > 2)
- {
-@@ -361,6 +367,7 @@
- {
- int len;
- char *tmp;
-+ gchar *rtext;
-
- if (cfg.convert_underscore)
- while ((tmp = strchr(text, '_')) != NULL)
-@@ -384,7 +391,10 @@
- text[len] = '\0';
- }
-
-+ rtext = xmms_charset_recode_id3(text,0,NULL);
-+ if (rtext) text = rtext;
- gdk_draw_text(pl->pl_widget.parent, font, pl->pl_widget.gc, pl->pl_widget.x, pl->pl_widget.y + line * pl->pl_fheight + font->ascent, text, len);
-+ if (rtext) g_free(rtext);
- }
-
- void playlist_list_draw(Widget * w)
-@@ -396,6 +406,7 @@
- int width, height;
- char *text, *title;
- int i, tw, max_first;
-+ gchar *ctitle = NULL;
-
- gc = pl->pl_widget.gc;
- width = pl->pl_widget.width;
-@@ -453,8 +464,11 @@
-
- if (entry->title)
- title = entry->title;
-- else
-- title = g_basename(entry->filename);
-+ else {
-+ ctitle = xmms_charset_recode_fs(g_basename(entry->filename),0,NULL);
-+ if (ctitle) title = ctitle;
-+ else title = g_basename(entry->filename);
-+ }
-
- pos = playlist_get_queue_position(entry);
-
-@@ -497,6 +511,10 @@
- playlist_list_draw_string(pl, playlist_list_font,
- i - pl->pl_first, tw, text);
- g_free(text);
-+ if (ctitle) {
-+ g_free(ctitle);
-+ ctitle=NULL;
-+ }
- }
- PL_UNLOCK();
- }
-diff -dPNur xmms-1.2.8/xmms/playlistwin.c xmms-1.2.8-patched/xmms/playlistwin.c
---- xmms-1.2.8/xmms/playlistwin.c 2003-04-04 19:42:51.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/playlistwin.c 2003-10-22 11:44:14.000000000 +0200
-@@ -18,6 +18,7 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
- #include "xmms.h"
-+#include "charset.h"
- #include "libxmms/dirbrowser.h"
- #include "libxmms/util.h"
-
-@@ -38,7 +39,8 @@
- PButton *playlistwin_shade, *playlistwin_close;
- static PlaylistSlider *playlistwin_slider = NULL;
- static TextBox *playlistwin_time_min, *playlistwin_time_sec;
--static TextBox *playlistwin_info, *playlistwin_sinfo;
-+static TextBox *playlistwin_info;
-+TextBox *playlistwin_sinfo;
- static SButton *playlistwin_srew, *playlistwin_splay;
- static SButton *playlistwin_spause, *playlistwin_sstop;
- static SButton *playlistwin_sfwd, *playlistwin_seject;
-@@ -1846,6 +1848,7 @@
- static void playlistwin_create_widgets(void)
- {
- playlistwin_sinfo = create_textbox(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 4, 4, cfg.playlist_width - 35, FALSE, SKIN_TEXT);
-+ charset_create_playlist_window(&cfg);
- if (!cfg.playlist_shaded)
- hide_widget(playlistwin_sinfo);
- if (cfg.playlist_shaded)
-diff -dPNur xmms-1.2.8/xmms/prefswin.c xmms-1.2.8-patched/xmms/prefswin.c
---- xmms-1.2.8/xmms/prefswin.c 2003-07-16 15:17:47.000000000 +0200
-+++ xmms-1.2.8-patched/xmms/prefswin.c 2003-10-22 11:44:14.000000000 +0200
-@@ -20,6 +20,7 @@
- #include "xmms.h"
- #include "libxmms/util.h"
- #include "libxmms/titlestring.h"
-+#include "charset.h"
-
- static GtkWidget *prefswin, *prefswin_notebook, *prefswin_ok;
- static GtkWidget *prefswin_audio_ie_cbox;
-@@ -47,6 +48,7 @@
- extern PButton *playlistwin_shade, *playlistwin_close, *equalizerwin_close;
- extern PButton *mainwin_menubtn, *mainwin_minimize, *mainwin_shade, *mainwin_close;
- extern TextBox *mainwin_info;
-+extern TextBox *playlistwin_sinfo;
- extern gboolean mainwin_focus, equalizerwin_focus, playlistwin_focus;
-
- static gboolean is_opening = FALSE;
-@@ -351,6 +353,8 @@
- cfg.pause_between_songs_time = CLAMP(atoi(gtk_entry_get_text(GTK_ENTRY(prefswin_options_pbs_entry))), 0, 1000);
- cfg.mouse_change = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(prefswin_options_mouse_spin));
-
-+ charset_prefswin_apply_changes(&cfg);
-+
- set_current_output_plugin(selected_oplugin);
-
- equalizerwin_set_doublesize(cfg.doublesize && cfg.eq_doublesize_linked);
-@@ -384,7 +388,6 @@
- textbox_set_scroll(mainwin_info, FALSE);
- textbox_set_scroll(mainwin_info, TRUE);
- }
--
- if (show_wm_old != cfg.show_wm_decorations)
- prefswin_toggle_wm_decorations();
-
-@@ -1089,6 +1092,8 @@
-
- gtk_notebook_append_page(GTK_NOTEBOOK(prefswin_notebook), prefswin_fonts_vbox, gtk_label_new(_("Fonts")));
-
-+ charset_create_prefs_window(&cfg,GTK_NOTEBOOK(prefswin_notebook), prefswin_fonts_vbox);
-+
- /*
- * Title page
- */
-@@ -1358,6 +1363,8 @@
- gtk_entry_set_text(GTK_ENTRY(prefswin_options_pbs_entry), temp);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(prefswin_options_mouse_spin), cfg.mouse_change);
-
-+ charset_show_prefs_window(&cfg);
-+
- gtk_widget_show_all(prefswin);
- gtk_widget_grab_default(prefswin_ok);
-
-diff -dPNur xmms-1.2.8/xmms/textbox.c xmms-1.2.8-patched/xmms/textbox.c
---- xmms-1.2.8/xmms/textbox.c 2001-12-03 15:42:22.000000000 +0100
-+++ xmms-1.2.8-patched/xmms/textbox.c 2003-10-22 11:44:14.000000000 +0200
-@@ -166,6 +166,8 @@
- GdkGC *gc, *maskgc;
- GdkColor *c, pattern;
- GdkBitmap *mask;
-+ GdkWChar *wtext;
-+ int len;
-
- length = strlen(pixmaptext);
-
-@@ -192,6 +194,18 @@
- tb->tb_pixmap_width, tb->tb_widget.height);
- pattern.pixel = 1;
- gdk_gc_set_foreground(maskgc, &pattern);
-+ if (cfg.use_fontsets) {
-+ wtext = g_malloc((length + 1) * sizeof(GdkWChar));
-+ len = gdk_mbstowcs(wtext, pixmaptext, length + 1);
-+ if (len == -1) {
-+ for (len = 0; pixmaptext[len] != '\0'; len++)
-+ wtext[len] = pixmaptext[len];
-+ }
-+ wtext[len] = L'\0';
-+ gdk_draw_text_wc(mask,tb->tb_font, maskgc, 0, tb->tb_font->ascent, wtext, len );
-+ g_free(wtext);
-+ }
-+ else
- gdk_draw_text(mask, tb->tb_font, maskgc, 0,
- tb->tb_font->ascent, pixmaptext, length);
- gdk_gc_unref(maskgc);
diff --git a/media-sound/xmms/files/xmms-1.2.8-russian-charset.patch b/media-sound/xmms/files/xmms-1.2.8-russian-charset.patch
deleted file mode 100644
index 57ffb8612f89..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-russian-charset.patch
+++ /dev/null
@@ -1,2174 +0,0 @@
-diff -Naur xmms-1.2.8/Input/mpg123/fileinfo.c xmms-1.2.8-new/Input/mpg123/fileinfo.c
---- xmms-1.2.8/Input/mpg123/fileinfo.c 2003-07-14 15:24:28.000000000 +0200
-+++ xmms-1.2.8-new/Input/mpg123/fileinfo.c 2003-09-06 19:42:29.000000000 +0200
-@@ -26,6 +26,10 @@
- #include <libxmms/xentry.h>
- #include "mpg123.h"
-
-+#include "libxmms/charset.h"
-+#include <gdk/gdkkeysyms.h>
-+#include "xmms/xmms.h"
-+
- static GtkWidget *window = NULL;
- static GtkWidget *filename_entry, *id3_frame;
- static GtkWidget *title_entry, *artist_entry, *album_entry, *year_entry, *tracknum_entry, *comment_entry;
-@@ -46,20 +50,35 @@
- {
- gint stripped_len;
- gchar *text;
-+ gchar *ctag;
-+ gint clength;
-
-+ ctag=xmms_charset_recode_id3(tag,length,&clength);
-+ if (ctag) {
-+ tag=ctag;
-+ length=clength;
-+ }
-+
- stripped_len = mpg123_strip_spaces(tag, length);
- text = g_strdup_printf("%-*.*s", stripped_len, stripped_len, tag);
- gtk_entry_set_text(entry, text);
- g_free(text);
-+ if (ctag) g_free(ctag);
- }
-
- static void get_entry_tag(GtkEntry * entry, gchar * tag, gint length)
- {
- gchar *text;
-+ gchar *ctext;
-
- text = gtk_entry_get_text(entry);
-+ ctext = xmms_charset_recode_output(text,length,NULL);
-+ if (ctext) text=ctext;
-+
- memset(tag, ' ', length);
- memcpy(tag, text, strlen(text) > length ? length : strlen(text));
-+
-+ if (ctext) g_free(ctext);
- }
-
- static gint find_genre_id(gchar * text)
-@@ -225,6 +244,31 @@
- }
- }
-
-+static int restore_focus;
-+
-+gboolean mpg123_keypress_cb(GtkWidget * w, GdkEventKey * event, gpointer save) {
-+ switch(event->keyval) {
-+ case GDK_Return:
-+ restore_focus=1;
-+ gtk_signal_emit_by_name(GTK_OBJECT(save), "clicked", NULL);
-+ break;
-+ case GDK_Escape:
-+ restore_focus=1;
-+ break;
-+ }
-+ return TRUE;
-+}
-+
-+void gtk_widget_destroyed_focus(GtkWidget *widget, GtkWidget **widget_pointer) {
-+ gtk_widget_destroyed(widget,widget_pointer);
-+ if (restore_focus) {
-+ gtk_widget_hide(playlistwin);
-+ gtk_widget_show(playlistwin);
-+// playlistwin_real_hide();
-+// playlistwin_real_show();
-+ }
-+}
-+
- void mpg123_file_info_box(char *filename)
- {
- gint i;
-@@ -233,7 +277,10 @@
- gchar *tmp, *title;
- const gchar *emphasis[4];
- const gchar *bool_label[2];
-+ gchar *cfilename;
-
-+ restore_focus=0;
-+
- emphasis[0] = _("None");
- emphasis[1] = _("50/15 ms");
- emphasis[2] = "";
-@@ -247,10 +294,11 @@
- GtkWidget *mpeg_frame, *mpeg_box;
- GtkWidget *label, *filename_hbox;
- GtkWidget *bbox, *save, *remove_id3, *cancel;
-+ GtkAccelGroup *ag;
-
- window = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
-- gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &window);
-+ gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed_focus), &window);
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
-
- vbox = gtk_vbox_new(FALSE, 10);
-@@ -392,6 +440,18 @@
- gtk_label_set_justify(GTK_LABEL(mpeg_fileinfo), GTK_JUSTIFY_LEFT);
- gtk_box_pack_start(GTK_BOX(mpeg_box), mpeg_fileinfo, FALSE, FALSE, 0);
-
-+ ag = gtk_accel_group_new();
-+ gtk_accel_group_add(ag, GDK_Escape, 0, 0, GTK_OBJECT(cancel), "clicked");
-+ gtk_accel_group_add(ag, GDK_Return, 0, 0, GTK_OBJECT(save), "clicked");
-+ gtk_window_add_accel_group(GTK_WINDOW(window), ag);
-+/* gtk_signal_connect(GTK_OBJECT(title_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(artist_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(album_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(comment_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(year_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);
-+ gtk_signal_connect(GTK_OBJECT(tracknum_entry), "key_press_event", GTK_SIGNAL_FUNC(mpg123_keypress_cb), save);*/
-+ gtk_signal_connect(GTK_OBJECT(window),"key_press_event",GTK_SIGNAL_FUNC(mpg123_keypress_cb),save);
-+
- gtk_widget_show_all(window);
- }
-
-@@ -399,6 +459,9 @@
- g_free(current_filename);
- current_filename = g_strdup(filename);
-
-+ cfilename=xmms_charset_recode_fsout(filename,0,NULL);
-+ if (cfilename) filename=cfilename;
-+
- title = g_strdup_printf(_("File Info - %s"), g_basename(filename));
- gtk_window_set_title(GTK_WINDOW(window), title);
- g_free(title);
-@@ -412,6 +475,8 @@
- gtk_entry_set_text(GTK_ENTRY(title_entry), title);
- g_free(title);
-
-+ if (cfilename) g_free(cfilename);
-+
- gtk_entry_set_text(GTK_ENTRY(artist_entry), "");
- gtk_entry_set_text(GTK_ENTRY(album_entry), "");
- gtk_entry_set_text(GTK_ENTRY(year_entry), "");
-diff -Naur xmms-1.2.8/Input/mpg123/mpg123.c xmms-1.2.8-new/Input/mpg123/mpg123.c
---- xmms-1.2.8/Input/mpg123/mpg123.c 2003-07-10 15:12:19.000000000 +0200
-+++ xmms-1.2.8-new/Input/mpg123/mpg123.c 2003-09-06 19:42:29.000000000 +0200
-@@ -551,6 +551,7 @@
- {
- gchar *ret = NULL, *path, *temp;
- TitleInput *input;
-+ gint len;
-
- XMMS_NEW_TITLEINPUT(input);
-
-@@ -582,9 +583,18 @@
- /*
- * Format according to filename.
- */
-+ ret = xmms_charset_recode_fs(g_basename(filename),0,&len);
-+ if (ret) {
-+ for (;len>=0;len--)
-+ if (ret[len]=='.') {
-+ ret[len]=0;
-+ break;
-+ }
-+ } else {
- ret = g_strdup(g_basename(filename));
- if (extname(ret) != NULL)
- *(extname(ret) - 1) = '\0'; /* removes period */
-+ }
- }
-
- return ret;
-diff -Naur xmms-1.2.8/Input/vorbis/vorbis.c xmms-1.2.8-new/Input/vorbis/vorbis.c
---- xmms-1.2.8/Input/vorbis/vorbis.c 2003-07-14 15:24:28.000000000 +0200
-+++ xmms-1.2.8-new/Input/vorbis/vorbis.c 2003-09-06 19:42:29.000000000 +0200
-@@ -47,6 +47,7 @@
- #include "libxmms/util.h"
- #include "libxmms/configfile.h"
- #include "libxmms/titlestring.h"
-+#include "libxmms/charset.h"
- #include <xmms/i18n.h>
-
- #include "vorbis.h"
-@@ -668,6 +669,7 @@
- gchar *displaytitle = NULL, *tmp, *path, *temp;
- vorbis_comment *comment;
- TitleInput *input;
-+ gint len;
-
- XMMS_NEW_TITLEINPUT(input);
- path = g_strdup(fn);
-@@ -705,10 +707,20 @@
-
- if (!displaytitle)
- {
-- if (!vorbis_is_streaming)
-- displaytitle = g_strdup_printf("%s", g_basename(fn));
-- else
-+ if (!vorbis_is_streaming) {
-+ displaytitle = xmms_charset_recode_fs(g_basename(fn),0,&len);
-+ if (displaytitle) {
-+ for (;len>=0;len--)
-+ if (displaytitle[len]=='.') {
-+ displaytitle[len]=0;
-+ break;
-+ }
-+ } else {
-+ displaytitle = g_strdup_printf("%s", g_basename(fn));
-+ }
-+ } else {
- displaytitle = vorbis_http_get_title(fn);
-+ }
- }
-
- return displaytitle;
-diff -Naur xmms-1.2.8/libxmms/charset_auto_russian.h xmms-1.2.8-new/libxmms/charset_auto_russian.h
---- xmms-1.2.8/libxmms/charset_auto_russian.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-new/libxmms/charset_auto_russian.h 2003-09-06 19:42:29.000000000 +0200
-@@ -0,0 +1,293 @@
-+/* Stealed from GPPL's (http://gppl.terminal.ru) autorecode-xmms1.2.7 patch,
-+ changed to support limited size strings */
-+
-+typedef struct lng_stat {
-+ unsigned char a;
-+ unsigned char b;
-+ int rate;
-+} lng_stat;
-+
-+//statistics calculated from "Moskva-Petushki"
-+//1292 elems
-+static const lng_stat win[]={
-+{'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',8}, {'','',2}, {'','',2}, {'','',1}, {'','',4}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',1},
-+{'','',1}, {'','',1}, {'','',6}, {'','',60}, {'','',5}, {'','',7}, {'','',23}, {'','',2}, {'','',6}, {'','',4}, {'','',1}, {'','',27}, {'','',15}, {'','',10}, {'','',25}, {'','',21},
-+{'','',51}, {'','',12}, {'','',13}, {'','',31}, {'','',15}, {'','',1}, {'','',6}, {'','',17}, {'','',8}, {'','',20}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',2},
-+{'','',16}, {'','',1}, {'','',4}, {'','',3}, {'','',25}, {'','',10}, {'','',9}, {'','',8}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',8}, {'','',2}, {'','',1}, {'','',2},
-+{'','',15}, {'','',2}, {'','',3}, {'','',5}, {'','',98}, {'','',5}, {'','',7}, {'','',5}, {'','',8}, {'','',7}, {'','',6}, {'','',107}, {'','',18}, {'','',2}, {'','',74}, {'','',6},
-+{'','',1}, {'','',3}, {'','',39}, {'','',8}, {'','',2}, {'','',6}, {'','',16}, {'','',26}, {'','',4}, {'','',3}, {'','',1}, {'','',31}, {'','',7}, {'','',2}, {'','',167}, {'','',6},
-+{'','',17}, {'','',3}, {'','',7}, {'','',3}, {'','',1}, {'','',20}, {'','',9}, {'','',19}, {'','',2}, {'','',1}, {'','',1}, {'','',9}, {'','',1}, {'','',1}, {'','',1}, {'','',5},
-+{'','',2}, {'','',19}, {'','',69}, {'','',1}, {'','',1}, {'','',5}, {'','',5}, {'','',1}, {'','',14}, {'','',5}, {'','',2}, {'','',1}, {'','',1}, {'','',31}, {'','',3}, {'','',1},
-+{'','',2}, {'','',23}, {'','',2}, {'','',12}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',2}, {'','',2}, {'','',8}, {'','',78}, {'','',7}, {'','',20}, {'','',7}, {'','',1},
-+{'','',17}, {'','',3}, {'','',27}, {'','',15}, {'','',11}, {'','',21}, {'','',26}, {'','',21}, {'','',4}, {'','',21}, {'','',37}, {'','',5}, {'','',2}, {'','',3}, {'','',8}, {'','',1},
-+{'','',2}, {'','',12}, {'','',3}, {'','',100}, {'','',4}, {'','',1}, {'','',14}, {'','',4}, {'','',62}, {'','',2}, {'','',24}, {'','',10}, {'','',62}, {'','',1}, {'','',1}, {'','',2},
-+{'','',7}, {'','',11}, {'','',4}, {'','',12}, {'','',15}, {'','',3}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',31}, {'','',3}, {'','',1}, {'','',10}, {'','',44},
-+{'','',1}, {'','',19}, {'','',93}, {'','',1}, {'','',6}, {'','',29}, {'','',2}, {'','',1}, {'','',3}, {'','',56}, {'','',111}, {'','',47}, {'','',2}, {'','',98}, {'','',100}, {'','',1},
-+{'','',2}, {'','',6}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',18}, {'','',1}, {'','',4}, {'','',20}, {'','',2}, {'','',2}, {'','',7}, {'','',9}, {'','',2}, {'','',96},
-+{'','',5}, {'','',17}, {'','',16}, {'','',21}, {'','',35}, {'','',13}, {'','',1}, {'','',6}, {'','',3}, {'','',18}, {'','',148}, {'','',11}, {'','',9}, {'','',186}, {'','',43}, {'','',38},
-+{'','',4}, {'','',1}, {'','',22}, {'','',13}, {'','',5}, {'','',13}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',19}, {'','',1}, {'','',4}, {'','',1}, {'','',56},
-+{'','',16}, {'','',22}, {'','',11}, {'','',12}, {'','',6}, {'','',26}, {'','',6}, {'','',6}, {'','',3}, {'','',35}, {'','',4}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',1},
-+{'','',4}, {'','',1}, {'','',1}, {'','',1}, {'','',79}, {'','',1}, {'','',18}, {'','',17}, {'','',34}, {'','',11}, {'','',31}, {'','',55}, {'','',2}, {'','',3}, {'','',2}, {'','',3},
-+{'','',1}, {'','',3}, {'','',2}, {'','',4}, {'','',4}, {'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',9}, {'','',5}, {'','',1}, {'','',1}, {'','',9}, {'','',8}, {'','',2},
-+{'','',1}, {'','',1}, {'','',1}, {'','',7}, {'','',2}, {'','',1}, {'','',16}, {'','',2}, {'','',1}, {'','',8}, {'','',1}, {'','',3}, {'','',20}, {'','',14}, {'','',7}, {'','',3},
-+{'','',1}, {'','',1}, {'','',1}, {'','',46}, {'','',60}, {'','',8}, {'','',1}, {'','',1}, {'','',3}, {'','',7}, {'','',8}, {'','',8}, {'','',7}, {'','',1}, {'','',1}, {'','',5},
-+{'','',1}, {'','',1}, {'','',4}, {'','',1}, {'','',10}, {'','',1}, {'','',61}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',4}, {'','',49}, {'','',5}, {'','',8}, {'','',9},
-+{'','',2}, {'','',12}, {'','',4}, {'','',10}, {'','',5}, {'','',6}, {'','',28}, {'','',24}, {'','',39}, {'','',4}, {'','',30}, {'','',7}, {'','',5}, {'','',3}, {'','',4}, {'','',3},
-+{'','',3}, {'','',56}, {'','',18}, {'','',48}, {'','',9}, {'','',26}, {'','',12}, {'','',7}, {'','',11}, {'','',53}, {'','',59}, {'','',9}, {'','',21}, {'','',32}, {'','',27}, {'','',52},
-+{'','',7}, {'','',21}, {'','',42}, {'','',10}, {'','',1}, {'','',4}, {'','',16}, {'','',2}, {'','',7}, {'','',22}, {'','',69}, {'','',257}, {'','',701}, {'','',218}, {'','',548}, {'','',328},
-+{'','',262}, {'','',626}, {'','',225}, {'','',194}, {'','',1285}, {'','',1288}, {'','',771}, {'','',911}, {'','',166}, {'','',421}, {'','',368}, {'','',802}, {'','',874}, {'','',98}, {'','',38}, {'','',228},
-+{'','',24}, {'','',300}, {'','',121}, {'','',27}, {'','',63}, {'','',238}, {'','',384}, {'','',1}, {'','',1}, {'','',1}, {'','',199}, {'','',6}, {'','',13}, {'','',6}, {'','',420}, {'','',2},
-+{'','',142}, {'','',7}, {'','',137}, {'','',7}, {'','',31}, {'','',327}, {'','',4}, {'','',172}, {'','',18}, {'','',1}, {'','',288}, {'','',11}, {'','',3}, {'','',2}, {'','',1}, {'','',32},
-+{'','',561}, {'','',10}, {'','',7}, {'','',1}, {'','',134}, {'','',11}, {'','',1}, {'','',6}, {'','',7}, {'','',5}, {'','',5}, {'','',6}, {'','',14}, {'','',2}, {'','',9}, {'','',13},
-+{'','',17}, {'','',51}, {'','',7}, {'','',18}, {'','',4}, {'','',2}, {'','',8}, {'','',1}, {'','',2}, {'','',7}, {'','',2}, {'','',4}, {'','',989}, {'','',26}, {'','',62}, {'','',43},
-+{'','',74}, {'','',911}, {'','',26}, {'','',88}, {'','',387}, {'','',1}, {'','',105}, {'','',122}, {'','',65}, {'','',231}, {'','',1220}, {'','',118}, {'','',97}, {'','',851}, {'','',123}, {'','',116},
-+{'','',1}, {'','',9}, {'','',11}, {'','',47}, {'','',53}, {'','',2}, {'','',518}, {'','',33}, {'','',44}, {'','',3}, {'','',48}, {'','',3}, {'','',1}, {'','',3}, {'','',1}, {'','',3},
-+{'','',3}, {'','',4}, {'','',1}, {'','',4}, {'','',3}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',210}, {'','',18}, {'','',6}, {'','',3}, {'','',191},
-+{'','',83}, {'','',2}, {'','',103}, {'','',20}, {'','',205}, {'','',3}, {'','',62}, {'','',1340}, {'','',7}, {'','',180}, {'','',13}, {'','',4}, {'','',88}, {'','',1}, {'','',15}, {'','',1},
-+{'','',4}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',795},
-+{'','',7}, {'','',165}, {'','',6}, {'','',14}, {'','',839}, {'','',8}, {'','',7}, {'','',487}, {'','',1}, {'','',79}, {'','',78}, {'','',10}, {'','',289}, {'','',613}, {'','',17}, {'','',195},
-+{'','',62}, {'','',41}, {'','',417}, {'','',1}, {'','',11}, {'','',138}, {'','',6}, {'','',111}, {'','',200}, {'','',6}, {'','',68}, {'','',30}, {'','',8}, {'','',33}, {'','',7}, {'','',34},
-+{'','',13}, {'','',1}, {'','',6}, {'','',21}, {'','',21}, {'','',4}, {'','',13}, {'','',20}, {'','',21}, {'','',31}, {'','',2}, {'','',13}, {'','',10}, {'','',7}, {'','',4}, {'','',2},
-+{'','',1}, {'','',9}, {'','',2}, {'','',11}, {'','',1}, {'','',25}, {'','',44}, {'','',463}, {'','',704}, {'','',592}, {'','',613}, {'','',281}, {'','',136}, {'','',444}, {'','',177}, {'','',297},
-+{'','',398}, {'','',926}, {'','',982}, {'','',1512}, {'','',206}, {'','',524}, {'','',1231}, {'','',1082}, {'','',1607}, {'','',103}, {'','',15}, {'','',182}, {'','',66}, {'','',308}, {'','',235}, {'','',137},
-+{'','',79}, {'','',24}, {'','',87}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',3}, {'','',187}, {'','',4}, {'','',9}, {'','',1}, {'','',145}, {'','',690}, {'','',4}, {'','',1},
-+{'','',214}, {'','',35}, {'','',1}, {'','',8}, {'','',96}, {'','',13}, {'','',14}, {'','',7}, {'','',4}, {'','',8}, {'','',69}, {'','',1}, {'','',1}, {'','',6}, {'','',2}, {'','',7},
-+{'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',4}, {'','',3}, {'','',1}, {'','',8}, {'','',4}, {'','',2}, {'','',1}, {'','',2}, {'','',2}, {'','',889}, {'','',39},
-+{'','',147}, {'','',67}, {'','',174}, {'','',56}, {'','',18}, {'','',11}, {'','',113}, {'','',16}, {'','',33}, {'','',64}, {'','',302}, {'','',109}, {'','',31}, {'','',53}, {'','',21}, {'','',7},
-+{'','',109}, {'','',3}, {'','',11}, {'','',4}, {'','',71}, {'','',20}, {'','',4}, {'','',43}, {'','',39}, {'','',10}, {'','',46}, {'','',5}, {'','',25}, {'','',11}, {'','',2}, {'','',1},
-+{'','',30}, {'','',24}, {'','',5}, {'','',36}, {'','',39}, {'','',25}, {'','',49}, {'','',3}, {'','',22}, {'','',25}, {'','',8}, {'','',3}, {'','',4}, {'','',2}, {'','',4}, {'','',3},
-+{'','',7}, {'','',28}, {'','',90}, {'','',242}, {'','',658}, {'','',153}, {'','',435}, {'','',280}, {'','',87}, {'','',388}, {'','',301}, {'','',216}, {'','',492}, {'','',888}, {'','',573}, {'','',958},
-+{'','',216}, {'','',335}, {'','',275}, {'','',668}, {'','',949}, {'','',108}, {'','',17}, {'','',324}, {'','',123}, {'','',363}, {'','',134}, {'','',36}, {'','',39}, {'','',22}, {'','',234}, {'','',20},
-+{'','',6}, {'','',20}, {'','',6}, {'','',16}, {'','',6}, {'','',2}, {'','',22}, {'','',18}, {'','',2}, {'','',12}, {'','',13}, {'','',15}, {'','',13}, {'','',7}, {'','',9}, {'','',15},
-+{'','',3}, {'','',1}, {'','',1}, {'','',1}, {'','',7}, {'','',8}, {'','',21}, {'','',36}, {'','',112}, {'','',26}, {'','',100}, {'','',15}, {'','',21}, {'','',30}, {'','',88}, {'','',1},
-+{'','',87}, {'','',25}, {'','',47}, {'','',117}, {'','',55}, {'','',133}, {'','',42}, {'','',162}, {'','',131}, {'','',17}, {'','',6}, {'','',7}, {'','',11}, {'','',69}, {'','',20}, {'','',2},
-+{'','',15}, {'','',16}, {'','',11}, {'','',13}, {'','',7}, {'','',4}, {'','',2}, {'','',1}, {'','',5}, {'','',8}, {'','',9}, {'','',2}, {'','',5}, {'','',20}, {'','',7}, {'','',9},
-+{'','',7}, {'','',9}, {'','',4}, {'','',1}, {'','',1}, {'','',4}, {'','',2}, {'','',8}, {'','',1358}, {'','',49}, {'','',147}, {'','',15}, {'','',48}, {'','',93}, {'','',22}, {'','',55},
-+{'','',678}, {'','',28}, {'','',81}, {'','',22}, {'','',151}, {'','',1337}, {'','',64}, {'','',273}, {'','',131}, {'','',238}, {'','',384}, {'','',7}, {'','',10}, {'','',5}, {'','',31}, {'','',2},
-+{'','',2}, {'','',13}, {'','',25}, {'','',20}, {'','',2}, {'','',25}, {'','',5}, {'','',14}, {'','',3}, {'','',1}, {'','',19}, {'','',12}, {'','',2}, {'','',14}, {'','',31}, {'','',20},
-+{'','',20}, {'','',1}, {'','',20}, {'','',10}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',4}, {'','',19}, {'','',758}, {'','',34}, {'','',102}, {'','',35}, {'','',55},
-+{'','',675}, {'','',33}, {'','',23}, {'','',1300}, {'','',1}, {'','',114}, {'','',21}, {'','',45}, {'','',111}, {'','',947}, {'','',83}, {'','',18}, {'','',320}, {'','',61}, {'','',264}, {'','',5},
-+{'','',7}, {'','',2}, {'','',66}, {'','',1}, {'','',146}, {'','',642}, {'','',21}, {'','',159}, {'','',299}, {'','',11}, {'','',2}, {'','',14}, {'','',8}, {'','',10}, {'','',1}, {'','',5},
-+{'','',12}, {'','',10}, {'','',6}, {'','',23}, {'','',12}, {'','',12}, {'','',1}, {'','',9}, {'','',16}, {'','',2}, {'','',2}, {'','',3}, {'','',1}, {'','',1}, {'','',10}, {'','',447},
-+{'','',69}, {'','',119}, {'','',33}, {'','',41}, {'','',838}, {'','',27}, {'','',38}, {'','',484}, {'','',2}, {'','',71}, {'','',74}, {'','',96}, {'','',497}, {'','',761}, {'','',132}, {'','',41},
-+{'','',137}, {'','',74}, {'','',411}, {'','',5}, {'','',13}, {'','',4}, {'','',46}, {'','',3}, {'','',3}, {'','',207}, {'','',33}, {'','',17}, {'','',82}, {'','',11}, {'','',5}, {'','',8},
-+{'','',3}, {'','',4}, {'','',7}, {'','',10}, {'','',1}, {'','',2}, {'','',6}, {'','',2}, {'','',9}, {'','',2}, {'','',2}, {'','',6}, {'','',1}, {'','',1}, {'','',6}, {'','',1},
-+{'','',2}, {'','',2}, {'','',1706}, {'','',28}, {'','',55}, {'','',48}, {'','',97}, {'','',1870}, {'','',5}, {'','',20}, {'','',1319}, {'','',84}, {'','',7}, {'','',11}, {'','',331}, {'','',1483},
-+{'','',54}, {'','',27}, {'','',133}, {'','',165}, {'','',480}, {'','',14}, {'','',4}, {'','',65}, {'','',55}, {'','',3}, {'','',31}, {'','',385}, {'','',196}, {'','',7}, {'','',30}, {'','',396},
-+{'','',34}, {'','',5}, {'','',44}, {'','',9}, {'','',16}, {'','',16}, {'','',4}, {'','',17}, {'','',43}, {'','',17}, {'','',3}, {'','',23}, {'','',49}, {'','',23}, {'','',40}, {'','',6},
-+{'','',14}, {'','',19}, {'','',4}, {'','',7}, {'','',4}, {'','',2}, {'','',12}, {'','',5}, {'','',27}, {'','',34}, {'','',652}, {'','',1590}, {'','',915}, {'','',946}, {'','',457}, {'','',437},
-+{'','',279}, {'','',291}, {'','',602}, {'','',498}, {'','',923}, {'','',1073}, {'','',1281}, {'','',241}, {'','',588}, {'','',921}, {'','',1264}, {'','',1536}, {'','',152}, {'','',35}, {'','',137}, {'','',51},
-+{'','',459}, {'','',223}, {'','',56}, {'','',89}, {'','',81}, {'','',154}, {'','',2}, {'','',1}, {'','',1}, {'','',252}, {'','',1}, {'','',1}, {'','',364}, {'','',356}, {'','',8}, {'','',189},
-+{'','',11}, {'','',1543}, {'','',6}, {'','',845}, {'','',6}, {'','',23}, {'','',202}, {'','',2}, {'','',33}, {'','',122}, {'','',149}, {'','',3}, {'','',4}, {'','',3}, {'','',6}, {'','',2},
-+{'','',1}, {'','',2}, {'','',1}, {'','',5}, {'','',8}, {'','',10}, {'','',2}, {'','',4}, {'','',2}, {'','',1}, {'','',2}, {'','',3}, {'','',6}, {'','',1264}, {'','',29}, {'','',98},
-+{'','',53}, {'','',129}, {'','',936}, {'','',41}, {'','',20}, {'','',777}, {'','',1}, {'','',54}, {'','',29}, {'','',39}, {'','',181}, {'','',1126}, {'','',38}, {'','',34}, {'','',76}, {'','',122},
-+{'','',355}, {'','',8}, {'','',36}, {'','',23}, {'','',9}, {'','',49}, {'','',5}, {'','',169}, {'','',98}, {'','',7}, {'','',59}, {'','',159}, {'','',6}, {'','',4}, {'','',2}, {'','',2},
-+{'','',1}, {'','',1}, {'','',4}, {'','',2}, {'','',3}, {'','',4}, {'','',5}, {'','',3}, {'','',3}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',306},
-+{'','',33}, {'','',259}, {'','',18}, {'','',41}, {'','',973}, {'','',8}, {'','',11}, {'','',295}, {'','',691}, {'','',519}, {'','',222}, {'','',236}, {'','',403}, {'','',274}, {'','',58}, {'','',222},
-+{'','',1721}, {'','',146}, {'','',18}, {'','',34}, {'','',6}, {'','',48}, {'','',20}, {'','',2}, {'','',79}, {'','',401}, {'','',10}, {'','',27}, {'','',680}, {'','',29}, {'','',5}, {'','',25},
-+{'','',3}, {'','',11}, {'','',9}, {'','',2}, {'','',5}, {'','',16}, {'','',21}, {'','',20}, {'','',24}, {'','',10}, {'','',23}, {'','',2}, {'','',10}, {'','',13}, {'','',2}, {'','',2},
-+{'','',3}, {'','',11}, {'','',1}, {'','',3}, {'','',1}, {'','',16}, {'','',1225}, {'','',56}, {'','',436}, {'','',25}, {'','',67}, {'','',864}, {'','',17}, {'','',33}, {'','',758}, {'','',1},
-+{'','',180}, {'','',52}, {'','',65}, {'','',329}, {'','',2625}, {'','',119}, {'','',616}, {'','',337}, {'','',117}, {'','',398}, {'','',1}, {'','',24}, {'','',10}, {'','',87}, {'','',3}, {'','',4},
-+{'','',398}, {'','',1292}, {'','',37}, {'','',13}, {'','',103}, {'','',22}, {'','',4}, {'','',19}, {'','',4}, {'','',20}, {'','',3}, {'','',2}, {'','',25}, {'','',9}, {'','',6}, {'','',12},
-+{'','',18}, {'','',13}, {'','',18}, {'','',1}, {'','',18}, {'','',12}, {'','',2}, {'','',2}, {'','',5}, {'','',6}, {'','',3}, {'','',5}, {'','',17}, {'','',45}, {'','',142}, {'','',184},
-+{'','',161}, {'','',445}, {'','',83}, {'','',269}, {'','',75}, {'','',111}, {'','',40}, {'','',169}, {'','',251}, {'','',322}, {'','',195}, {'','',50}, {'','',258}, {'','',203}, {'','',380}, {'','',442},
-+{'','',24}, {'','',5}, {'','',97}, {'','',241}, {'','',302}, {'','',37}, {'','',19}, {'','',156}, {'','',31}, {'','',1}, {'','',2}, {'','',21}, {'','',45}, {'','',47}, {'','',14}, {'','',2},
-+{'','',24}, {'','',20}, {'','',4}, {'','',5}, {'','',8}, {'','',6}, {'','',4}, {'','',1}, {'','',2}, {'','',7}, {'','',7}, {'','',4}, {'','',3}, {'','',3}, {'','',5}, {'','',4},
-+{'','',2}, {'','',1}, {'','',10}, {'','',5}, {'','',7}, {'','',4}, {'','',5}, {'','',3}, {'','',5}, {'','',2}, {'','',5}, {'','',135}, {'','',21}, {'','',72}, {'','',27}, {'','',21},
-+{'','',25}, {'','',4}, {'','',13}, {'','',75}, {'','',16}, {'','',43}, {'','',49}, {'','',83}, {'','',450}, {'','',70}, {'','',19}, {'','',39}, {'','',27}, {'','',42}, {'','',3}, {'','',4},
-+{'','',2}, {'','',18}, {'','',8}, {'','',1}, {'','',6}, {'','',7}, {'','',9}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1},
-+{'','',179}, {'','',1}, {'','',11}, {'','',162}, {'','',5}, {'','',75}, {'','',6}, {'','',5}, {'','',1}, {'','',2}, {'','',29}, {'','',4}, {'','',2}, {'','',4}, {'','',4}, {'','',41},
-+{'','',2}, {'','',41}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',3}, {'','',2}, {'','',1}, {'','',294}, {'','',1}, {'','',6}, {'','',874}, {'','',319},
-+{'','',76}, {'','',9}, {'','',4}, {'','',158}, {'','',10}, {'','',3}, {'','',8}, {'','',2}, {'','',536}, {'','',101}, {'','',7}, {'','',37}, {'','',49}, {'','',1}, {'','',1}, {'','',150},
-+{'','',5}, {'','',388}, {'','',188}, {'','',201}, {'','',68}, {'','',4}, {'','',78}, {'','',53}, {'','',8}, {'','',3}, {'','',2}, {'','',17}, {'','',45}, {'','',1}, {'','',1}, {'','',200},
-+{'','',1}, {'','',1}, {'','',1}, {'','',68}, {'','',242}, {'','',96}, {'','',7}, {'','',1}, {'','',1}, {'','',3}, {'','',20}, {'','',2}, {'','',14}, {'','',6}, {'','',28}, {'','',4},
-+{'','',8}, {'','',6}, {'','',1}, {'','',4}, {'','',12}, {'','',10}, {'','',2}, {'','',15}, {'','',16}, {'','',13}, {'','',6}, {'','',3}, {'','',7}, {'','',10}, {'','',1}, {'','',1},
-+{'','',4}, {'','',5}, {'','',1}, {'','',10}, {'','',10}, {'','',66}, {'','',248}, {'','',37}, {'','',65}, {'','',138}, {'','',21}, {'','',45}, {'','',74}, {'','',264}, {'','',83}, {'','',305},
-+{'','',164}, {'','',141}, {'','',34}, {'','',231}, {'','',61}, {'','',189}, {'','',148}, {'','',35}, {'','',1}, {'','',146}, {'','',3}, {'','',63}, {'','',80}, {'','',1}, {'','',9}, {'','',10},
-+{'','',44}, {'','',8}, {'','',45}, {'','',7}, {'','',18}, {'','',12}, {'','',1}, {'','',4}, {'','',29}, {'','',19}, {'','',18}, {'','',36}, {'','',25}, {'','',42}, {'','',4}, {'','',25},
-+{'','',24}, {'','',10}, {'','',1}, {'','',3}, {'','',14}, {'','',1}, {'','',4}, {'','',21}, {'','',38}, {'','',63}, {'','',196}, {'','',35}, {'','',110}, {'','',154}, {'','',11}, {'','',58},
-+{'','',194}, {'','',1}, {'','',324}, {'','',36}, {'','',124}, {'','',321}, {'','',92}, {'','',164}, {'','',41}, {'','',302}, {'','',152}, {'','',48}, {'','',5}, {'','',20}, {'','',15}, {'','',88},
-+{'','',85}, {'','',1}, {'','',27}, {'','',88}, {'','',110}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',6}, {'','',9}, {'','',6}, {'','',3}, {'','',8}, {'','',4},
-+{'','',531}, {'','',2}, {'','',1}, {'','',2}, {'','',10}, {'','',1}, {'','',10}, {'','',1}, {'','',3}, {'','',1}, {'','',2}, {'','',17}, {'','',4}, {'','',2}, {'','',3}, {'','',16},
-+{'','',4}, {'','',5}, {'','',1}, {'','',3}, {'','',2}, {'','',2}, {'','',3}, {'','',1}, {'','',2}, {'','',2}, {'','',9}, {'','',15}, {'','',73}, {'','',37}, {'','',12}, {'','',72},
-+{'','',12}, {'','',6}, {'','',11}, {'','',45}, {'','',1}, {'','',30}, {'','',9}, {'','',28}, {'','',58}, {'','',17}, {'','',58}, {'','',14}, {'','',71}, {'','',139}, {'','',10}, {'','',5},
-+{'','',5}, {'','',3}, {'','',42}, {'','',11}, {'','',27}, {'','',2}, {'','',10}, {'','',20}, {'','',18}, {'','',5}, {'','',28}, {'','',2}, {'','',23}, {'','',6}, {'','',2}, {'','',3},
-+{'','',15}, {'','',14}, {'','',3}, {'','',10}, {'','',23}, {'','',22}, {'','',26}, {'','',5}, {'','',12}, {'','',17}, {'','',1}, {'','',2}, {'','',1}, {'','',7}, {'','',2}, {'','',10},
-+{'','',18}, {'','',23}, {'','',85}, {'','',260}, {'','',44}, {'','',170}, {'','',70}, {'','',63}, {'','',114}, {'','',146}, {'','',7}, {'','',145}, {'','',137}, {'','',108}, {'','',275}, {'','',110},
-+{'','',204}, {'','',43}, {'','',259}, {'','',457}, {'','',64}, {'','',2}, {'','',37}, {'','',18}, {'','',75}, {'','',13}, {'','',33}, {'','',22}, {'','',31}, {'','',47}
-+};
-+
-+static const lng_stat koi[]={
-+{'','',10}, {'','',15}, {'','',73}, {'','',3}, {'','',72}, {'','',12}, {'','',5}, {'','',12}, {'','',5}, {'','',45}, {'','',1}, {'','',30}, {'','',9}, {'','',28}, {'','',58}, {'','',17},
-+{'','',58}, {'','',20}, {'','',14}, {'','',71}, {'','',139}, {'','',10}, {'','',6}, {'','',37}, {'','',11}, {'','',11}, {'','',2}, {'','',27}, {'','',42}, {'','',10}, {'','',1}, {'','',3},
-+{'','',1}, {'','',3}, {'','',17}, {'','',4}, {'','',2}, {'','',3}, {'','',16}, {'','',4}, {'','',5}, {'','',9}, {'','',1}, {'','',3}, {'','',2}, {'','',2}, {'','',1}, {'','',10},
-+{'','',2}, {'','',2}, {'','',2}, {'','',1}, {'','',238}, {'','',69}, {'','',257}, {'','',24}, {'','',548}, {'','',328}, {'','',38}, {'','',218}, {'','',228}, {'','',225}, {'','',194}, {'','',1285},
-+{'','',1288}, {'','',771}, {'','',911}, {'','',166}, {'','',421}, {'','',384}, {'','',368}, {'','',802}, {'','',874}, {'','',98}, {'','',262}, {'','',701}, {'','',626}, {'','',121}, {'','',63}, {'','',27},
-+{'','',300}, {'','',56}, {'','',18}, {'','',26}, {'','',12}, {'','',1}, {'','',9}, {'','',4}, {'','',53}, {'','',59}, {'','',9}, {'','',21}, {'','',32}, {'','',27}, {'','',52}, {'','',22},
-+{'','',7}, {'','',21}, {'','',42}, {'','',10}, {'','',7}, {'','',48}, {'','',11}, {'','',2}, {'','',7}, {'','',16}, {'','',1}, {'','',199}, {'','',6}, {'','',3}, {'','',6}, {'','',420},
-+{'','',11}, {'','',142}, {'','',7}, {'','',137}, {'','',7}, {'','',31}, {'','',327}, {'','',4}, {'','',134}, {'','',172}, {'','',18}, {'','',1}, {'','',288}, {'','',13}, {'','',10}, {'','',561},
-+{'','',2}, {'','',1}, {'','',7}, {'','',32}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',179}, {'','',1}, {'','',162}, {'','',75}, {'','',6}, {'','',5}, {'','',1}, {'','',2},
-+{'','',29}, {'','',4}, {'','',2}, {'','',4}, {'','',4}, {'','',41}, {'','',11}, {'','',41}, {'','',5}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',1},
-+{'','',1}, {'','',1}, {'','',1}, {'','',795}, {'','',7}, {'','',138}, {'','',14}, {'','',839}, {'','',1}, {'','',6}, {'','',11}, {'','',487}, {'','',1}, {'','',79}, {'','',78}, {'','',10},
-+{'','',289}, {'','',613}, {'','',17}, {'','',68}, {'','',195}, {'','',62}, {'','',41}, {'','',417}, {'','',8}, {'','',165}, {'','',200}, {'','',111}, {'','',7}, {'','',6}, {'','',6}, {'','',1},
-+{'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',24}, {'','',44}, {'','',463},
-+{'','',66}, {'','',613}, {'','',281}, {'','',15}, {'','',592}, {'','',182}, {'','',177}, {'','',297}, {'','',398}, {'','',926}, {'','',982}, {'','',1512}, {'','',206}, {'','',524}, {'','',87}, {'','',1231},
-+{'','',1082}, {'','',1607}, {'','',103}, {'','',136}, {'','',704}, {'','',444}, {'','',235}, {'','',79}, {'','',137}, {'','',308}, {'','',1}, {'','',30}, {'','',8}, {'','',1}, {'','',34}, {'','',13},
-+{'','',4}, {'','',7}, {'','',2}, {'','',21}, {'','',21}, {'','',4}, {'','',13}, {'','',20}, {'','',21}, {'','',31}, {'','',25}, {'','',2}, {'','',13}, {'','',10}, {'','',7}, {'','',1},
-+{'','',33}, {'','',6}, {'','',2}, {'','',11}, {'','',9}, {'','',2}, {'','',21}, {'','',45}, {'','',6}, {'','',47}, {'','',14}, {'','',2}, {'','',24}, {'','',20}, {'','',4}, {'','',5},
-+{'','',8}, {'','',1}, {'','',4}, {'','',2}, {'','',1}, {'','',210}, {'','',18}, {'','',191}, {'','',83}, {'','',3}, {'','',1}, {'','',103}, {'','',20}, {'','',205}, {'','',3}, {'','',62},
-+{'','',1340}, {'','',7}, {'','',4}, {'','',180}, {'','',13}, {'','',4}, {'','',88}, {'','',6}, {'','',2}, {'','',1}, {'','',15}, {'','',3}, {'','',1}, {'','',1}, {'','',3}, {'','',4},
-+{'','',1}, {'','',4}, {'','',3}, {'','',2}, {'','',1}, {'','',2}, {'','',2}, {'','',3}, {'','',3}, {'','',1}, {'','',1}, {'','',135}, {'','',21}, {'','',2}, {'','',21}, {'','',25},
-+{'','',3}, {'','',27}, {'','',4}, {'','',75}, {'','',16}, {'','',43}, {'','',49}, {'','',83}, {'','',450}, {'','',70}, {'','',9}, {'','',19}, {'','',39}, {'','',27}, {'','',42}, {'','',4},
-+{'','',72}, {'','',6}, {'','',1}, {'','',13}, {'','',8}, {'','',7}, {'','',18}, {'','',7}, {'','',4}, {'','',3}, {'','',5}, {'','',4}, {'','',2}, {'','',1}, {'','',10}, {'','',5},
-+{'','',7}, {'','',5}, {'','',4}, {'','',5}, {'','',3}, {'','',7}, {'','',5}, {'','',2}, {'','',3}, {'','',22}, {'','',90}, {'','',242}, {'','',123}, {'','',435}, {'','',280}, {'','',17},
-+{'','',153}, {'','',324}, {'','',301}, {'','',216}, {'','',492}, {'','',888}, {'','',573}, {'','',958}, {'','',216}, {'','',335}, {'','',234}, {'','',275}, {'','',668}, {'','',949}, {'','',108}, {'','',87},
-+{'','',658}, {'','',388}, {'','',134}, {'','',39}, {'','',36}, {'','',363}, {'','',39}, {'','',10}, {'','',2}, {'','',25}, {'','',11}, {'','',3}, {'','',5}, {'','',4}, {'','',30}, {'','',24},
-+{'','',5}, {'','',36}, {'','',39}, {'','',25}, {'','',49}, {'','',28}, {'','',3}, {'','',22}, {'','',25}, {'','',8}, {'','',2}, {'','',46}, {'','',1}, {'','',3}, {'','',7}, {'','',4},
-+{'','',21}, {'','',36}, {'','',11}, {'','',100}, {'','',15}, {'','',6}, {'','',26}, {'','',7}, {'','',88}, {'','',1}, {'','',87}, {'','',25}, {'','',47}, {'','',117}, {'','',55}, {'','',133},
-+{'','',16}, {'','',42}, {'','',162}, {'','',131}, {'','',17}, {'','',21}, {'','',112}, {'','',30}, {'','',20}, {'','',15}, {'','',2}, {'','',69}, {'','',20}, {'','',6}, {'','',16}, {'','',6},
-+{'','',1}, {'','',6}, {'','',1}, {'','',22}, {'','',18}, {'','',2}, {'','',12}, {'','',13}, {'','',15}, {'','',13}, {'','',8}, {'','',7}, {'','',9}, {'','',15}, {'','',3}, {'','',20},
-+{'','',2}, {'','',7}, {'','',1}, {'','',1358}, {'','',49}, {'','',5}, {'','',48}, {'','',93}, {'','',7}, {'','',15}, {'','',10}, {'','',678}, {'','',28}, {'','',81}, {'','',22}, {'','',151},
-+{'','',1337}, {'','',64}, {'','',25}, {'','',273}, {'','',131}, {'','',238}, {'','',384}, {'','',22}, {'','',147}, {'','',2}, {'','',55}, {'','',2}, {'','',13}, {'','',31}, {'','',11}, {'','',1},
-+{'','',4}, {'','',2}, {'','',7}, {'','',1}, {'','',8}, {'','',9}, {'','',2}, {'','',5}, {'','',20}, {'','',7}, {'','',9}, {'','',8}, {'','',7}, {'','',9}, {'','',4}, {'','',1},
-+{'','',13}, {'','',5}, {'','',2}, {'','',4}, {'','',159}, {'','',758}, {'','',34}, {'','',2}, {'','',55}, {'','',675}, {'','',5}, {'','',35}, {'','',7}, {'','',1300}, {'','',1}, {'','',114},
-+{'','',21}, {'','',45}, {'','',111}, {'','',947}, {'','',83}, {'','',299}, {'','',18}, {'','',320}, {'','',61}, {'','',264}, {'','',33}, {'','',102}, {'','',642}, {'','',146}, {'','',23}, {'','',1},
-+{'','',21}, {'','',66}, {'','',20}, {'','',2}, {'','',1}, {'','',14}, {'','',3}, {'','',1}, {'','',5}, {'','',1}, {'','',19}, {'','',12}, {'','',2}, {'','',14}, {'','',31}, {'','',20},
-+{'','',20}, {'','',19}, {'','',1}, {'','',20}, {'','',10}, {'','',1}, {'','',1}, {'','',25}, {'','',4}, {'','',2}, {'','',447}, {'','',69}, {'','',4}, {'','',41}, {'','',838}, {'','',5},
-+{'','',33}, {'','',13}, {'','',484}, {'','',2}, {'','',71}, {'','',74}, {'','',96}, {'','',497}, {'','',761}, {'','',132}, {'','',82}, {'','',41}, {'','',137}, {'','',74}, {'','',411}, {'','',27},
-+{'','',119}, {'','',33}, {'','',207}, {'','',38}, {'','',3}, {'','',17}, {'','',3}, {'','',46}, {'','',11}, {'','',2}, {'','',10}, {'','',1}, {'','',8}, {'','',2}, {'','',12}, {'','',10},
-+{'','',6}, {'','',23}, {'','',12}, {'','',12}, {'','',10}, {'','',1}, {'','',9}, {'','',16}, {'','',2}, {'','',14}, {'','',5}, {'','',1}, {'','',1}, {'','',3}, {'','',30}, {'','',1706},
-+{'','',28}, {'','',65}, {'','',97}, {'','',1870}, {'','',14}, {'','',48}, {'','',4}, {'','',1319}, {'','',84}, {'','',7}, {'','',11}, {'','',331}, {'','',1483}, {'','',54}, {'','',396}, {'','',27},
-+{'','',133}, {'','',165}, {'','',480}, {'','',5}, {'','',55}, {'','',196}, {'','',385}, {'','',20}, {'','',3}, {'','',7}, {'','',31}, {'','',55}, {'','',11}, {'','',1}, {'','',3}, {'','',4},
-+{'','',8}, {'','',7}, {'','',10}, {'','',1}, {'','',2}, {'','',6}, {'','',2}, {'','',9}, {'','',2}, {'','',2}, {'','',2}, {'','',6}, {'','',1}, {'','',5}, {'','',1}, {'','',2},
-+{'','',6}, {'','',81}, {'','',34}, {'','',652}, {'','',51}, {'','',946}, {'','',457}, {'','',35}, {'','',915}, {'','',137}, {'','',291}, {'','',602}, {'','',498}, {'','',923}, {'','',1073}, {'','',1281},
-+{'','',241}, {'','',588}, {'','',154}, {'','',921}, {'','',1264}, {'','',1536}, {'','',152}, {'','',437}, {'','',1590}, {'','',279}, {'','',223}, {'','',89}, {'','',56}, {'','',459}, {'','',34}, {'','',5},
-+{'','',2}, {'','',16}, {'','',16}, {'','',7}, {'','',9}, {'','',4}, {'','',43}, {'','',17}, {'','',3}, {'','',23}, {'','',49}, {'','',23}, {'','',40}, {'','',27}, {'','',6}, {'','',14},
-+{'','',19}, {'','',4}, {'','',4}, {'','',44}, {'','',17}, {'','',5}, {'','',12}, {'','',252}, {'','',1}, {'','',364}, {'','',356}, {'','',8}, {'','',189}, {'','',11}, {'','',1543}, {'','',6},
-+{'','',149}, {'','',845}, {'','',6}, {'','',23}, {'','',202}, {'','',1}, {'','',122}, {'','',33}, {'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',31}, {'','',23}, {'','',85}, {'','',18},
-+{'','',170}, {'','',70}, {'','',2}, {'','',44}, {'','',37}, {'','',146}, {'','',7}, {'','',145}, {'','',137}, {'','',108}, {'','',275}, {'','',110}, {'','',204}, {'','',47}, {'','',43}, {'','',259},
-+{'','',457}, {'','',64}, {'','',63}, {'','',260}, {'','',114}, {'','',13}, {'','',22}, {'','',33}, {'','',75}, {'','',18}, {'','',5}, {'','',1}, {'','',23}, {'','',6}, {'','',2}, {'','',2},
-+{'','',15}, {'','',14}, {'','',3}, {'','',10}, {'','',23}, {'','',22}, {'','',26}, {'','',18}, {'','',5}, {'','',12}, {'','',17}, {'','',1}, {'','',2}, {'','',28}, {'','',3}, {'','',2},
-+{'','',10}, {'','',7}, {'','',59}, {'','',1264}, {'','',29}, {'','',23}, {'','',129}, {'','',936}, {'','',8}, {'','',53}, {'','',36}, {'','',777}, {'','',1}, {'','',54}, {'','',29}, {'','',39},
-+{'','',181}, {'','',1126}, {'','',38}, {'','',159}, {'','',34}, {'','',76}, {'','',122}, {'','',355}, {'','',41}, {'','',98}, {'','',98}, {'','',169}, {'','',20}, {'','',49}, {'','',7}, {'','',5},
-+{'','',9}, {'','',3}, {'','',4}, {'','',6}, {'','',2}, {'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',5}, {'','',8}, {'','',10}, {'','',6}, {'','',2}, {'','',4}, {'','',3},
-+{'','',1}, {'','',3}, {'','',2}, {'','',27}, {'','',306}, {'','',33}, {'','',6}, {'','',41}, {'','',973}, {'','',18}, {'','',18}, {'','',34}, {'','',295}, {'','',691}, {'','',519}, {'','',222},
-+{'','',236}, {'','',403}, {'','',274}, {'','',680}, {'','',58}, {'','',222}, {'','',1721}, {'','',146}, {'','',8}, {'','',259}, {'','',401}, {'','',79}, {'','',11}, {'','',20}, {'','',10}, {'','',2},
-+{'','',48}, {'','',6}, {'','',2}, {'','',2}, {'','',4}, {'','',2}, {'','',3}, {'','',4}, {'','',5}, {'','',3}, {'','',3}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',1},
-+{'','',4}, {'','',1}, {'','',3}, {'','',1}, {'','',13}, {'','',1225}, {'','',56}, {'','',10}, {'','',67}, {'','',864}, {'','',1}, {'','',25}, {'','',24}, {'','',758}, {'','',1}, {'','',180},
-+{'','',52}, {'','',65}, {'','',329}, {'','',2625}, {'','',119}, {'','',103}, {'','',616}, {'','',337}, {'','',117}, {'','',398}, {'','',17}, {'','',436}, {'','',1292}, {'','',398}, {'','',33}, {'','',3},
-+{'','',37}, {'','',4}, {'','',87}, {'','',1}, {'','',29}, {'','',5}, {'','',11}, {'','',9}, {'','',2}, {'','',3}, {'','',3}, {'','',16}, {'','',21}, {'','',20}, {'','',24}, {'','',10},
-+{'','',23}, {'','',16}, {'','',2}, {'','',10}, {'','',13}, {'','',2}, {'','',2}, {'','',25}, {'','',5}, {'','',1}, {'','',3}, {'','',11}, {'','',156}, {'','',45}, {'','',142}, {'','',445},
-+{'','',83}, {'','',5}, {'','',161}, {'','',97}, {'','',111}, {'','',40}, {'','',169}, {'','',251}, {'','',322}, {'','',195}, {'','',50}, {'','',258}, {'','',31}, {'','',203}, {'','',380}, {'','',442},
-+{'','',24}, {'','',269}, {'','',184}, {'','',75}, {'','',302}, {'','',19}, {'','',37}, {'','',241}, {'','',22}, {'','',4}, {'','',20}, {'','',3}, {'','',2}, {'','',4}, {'','',5}, {'','',25},
-+{'','',9}, {'','',6}, {'','',12}, {'','',18}, {'','',13}, {'','',18}, {'','',17}, {'','',1}, {'','',18}, {'','',12}, {'','',2}, {'','',19}, {'','',2}, {'','',3}, {'','',5}, {'','',6},
-+{'','',187}, {'','',4}, {'','',145}, {'','',690}, {'','',1}, {'','',1}, {'','',214}, {'','',35}, {'','',1}, {'','',8}, {'','',96}, {'','',13}, {'','',14}, {'','',7}, {'','',7}, {'','',4},
-+{'','',8}, {'','',69}, {'','',4}, {'','',9}, {'','',6}, {'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',3}, {'','',989}, {'','',26},
-+{'','',11}, {'','',74}, {'','',911}, {'','',1}, {'','',43}, {'','',9}, {'','',387}, {'','',1}, {'','',105}, {'','',122}, {'','',65}, {'','',231}, {'','',1220}, {'','',118}, {'','',48}, {'','',97},
-+{'','',851}, {'','',123}, {'','',116}, {'','',26}, {'','',62}, {'','',33}, {'','',518}, {'','',88}, {'','',53}, {'','',44}, {'','',2}, {'','',47}, {'','',11}, {'','',1}, {'','',1}, {'','',5},
-+{'','',5}, {'','',7}, {'','',8}, {'','',6}, {'','',14}, {'','',2}, {'','',9}, {'','',13}, {'','',17}, {'','',51}, {'','',4}, {'','',7}, {'','',18}, {'','',4}, {'','',2}, {'','',6},
-+{'','',7}, {'','',2}, {'','',2}, {'','',88}, {'','',38}, {'','',63}, {'','',15}, {'','',110}, {'','',154}, {'','',5}, {'','',35}, {'','',20}, {'','',194}, {'','',1}, {'','',324}, {'','',36},
-+{'','',124}, {'','',321}, {'','',92}, {'','',164}, {'','',110}, {'','',41}, {'','',302}, {'','',152}, {'','',48}, {'','',11}, {'','',196}, {'','',58}, {'','',85}, {'','',27}, {'','',1}, {'','',88},
-+{'','',44}, {'','',8}, {'','',18}, {'','',12}, {'','',1}, {'','',7}, {'','',3}, {'','',29}, {'','',19}, {'','',18}, {'','',36}, {'','',25}, {'','',42}, {'','',21}, {'','',4}, {'','',25},
-+{'','',24}, {'','',10}, {'','',1}, {'','',45}, {'','',4}, {'','',1}, {'','',4}, {'','',14}, {'','',10}, {'','',66}, {'','',3}, {'','',65}, {'','',138}, {'','',1}, {'','',37}, {'','',146},
-+{'','',74}, {'','',264}, {'','',83}, {'','',305}, {'','',164}, {'','',141}, {'','',34}, {'','',231}, {'','',10}, {'','',61}, {'','',189}, {'','',148}, {'','',35}, {'','',21}, {'','',248}, {'','',45},
-+{'','',80}, {'','',9}, {'','',1}, {'','',63}, {'','',1}, {'','',14}, {'','',6}, {'','',8}, {'','',6}, {'','',1}, {'','',4}, {'','',12}, {'','',10}, {'','',2}, {'','',15}, {'','',16},
-+{'','',13}, {'','',6}, {'','',10}, {'','',3}, {'','',7}, {'','',10}, {'','',1}, {'','',1}, {'','',28}, {'','',4}, {'','',5}, {'','',4}, {'','',889}, {'','',39}, {'','',174}, {'','',56},
-+{'','',67}, {'','',3}, {'','',113}, {'','',16}, {'','',33}, {'','',64}, {'','',302}, {'','',109}, {'','',31}, {'','',43}, {'','',53}, {'','',21}, {'','',7}, {'','',109}, {'','',18}, {'','',147},
-+{'','',20}, {'','',71}, {'','',11}, {'','',4}, {'','',4}, {'','',11}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',4}, {'','',3}, {'','',1}, {'','',8}, {'','',2}, {'','',4},
-+{'','',2}, {'','',1}, {'','',1}, {'','',2}, {'','',150}, {'','',1}, {'','',388}, {'','',1}, {'','',188}, {'','',201}, {'','',68}, {'','',4}, {'','',78}, {'','',53}, {'','',8}, {'','',3},
-+{'','',2}, {'','',17}, {'','',45}, {'','',5}, {'','',200}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',1}, {'','',1}, {'','',6}, {'','',9}, {'','',6}, {'','',3},
-+{'','',8}, {'','',4}, {'','',531}, {'','',1}, {'','',2}, {'','',1}, {'','',68}, {'','',242}, {'','',96}, {'','',7}, {'','',1}, {'','',1}, {'','',3}, {'','',20}, {'','',2}, {'','',1},
-+{'','',1}, {'','',294}, {'','',1}, {'','',874}, {'','',319}, {'','',76}, {'','',9}, {'','',4}, {'','',158}, {'','',10}, {'','',3}, {'','',1}, {'','',8}, {'','',2}, {'','',536}, {'','',101},
-+{'','',6}, {'','',49}, {'','',37}, {'','',7}, {'','',1}, {'','',1}, {'','',1}, {'','',3}, {'','',1}, {'','',3}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',1},
-+{'','',6}, {'','',7}, {'','',23}, {'','',1}, {'','',5}, {'','',6}, {'','',4}, {'','',1}, {'','',27}, {'','',15}, {'','',10}, {'','',25}, {'','',21}, {'','',51}, {'','',20}, {'','',12},
-+{'','',13}, {'','',31}, {'','',15}, {'','',2}, {'','',60}, {'','',6}, {'','',8}, {'','',17}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',8}, {'','',2},
-+{'','',2}, {'','',1}, {'','',4}, {'','',2}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',3}, {'','',16}, {'','',1}, {'','',4}, {'','',3}, {'','',25}, {'','',10},
-+{'','',9}, {'','',2}, {'','',8}, {'','',1}, {'','',2}, {'','',1}, {'','',1}, {'','',7}, {'','',3}, {'','',1}, {'','',1}, {'','',1}, {'','',167}, {'','',17}, {'','',3}, {'','',7},
-+{'','',3}, {'','',1}, {'','',20}, {'','',9}, {'','',19}, {'','',6}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',5}, {'','',2}, {'','',19}, {'','',69}, {'','',9},
-+{'','',5}, {'','',2}, {'','',1}, {'','',1}, {'','',7}, {'','',2}, {'','',2}, {'','',1}, {'','',16}, {'','',1}, {'','',6}, {'','',16}, {'','',26}, {'','',4}, {'','',3}, {'','',1},
-+{'','',31}, {'','',7}, {'','',2}, {'','',2}, {'','',8}, {'','',3}, {'','',20}, {'','',14}, {'','',1}, {'','',1}, {'','',2}, {'','',8}, {'','',20}, {'','',7}, {'','',2}, {'','',7},
-+{'','',3}, {'','',3}, {'','',27}, {'','',15}, {'','',11}, {'','',21}, {'','',26}, {'','',21}, {'','',12}, {'','',4}, {'','',21}, {'','',37}, {'','',5}, {'','',1}, {'','',78}, {'','',17},
-+{'','',1}, {'','',2}, {'','',8}, {'','',1}, {'','',2}, {'','',2}, {'','',2}, {'','',1}, {'','',100}, {'','',4}, {'','',1}, {'','',14}, {'','',4}, {'','',62}, {'','',2}, {'','',24},
-+{'','',10}, {'','',62}, {'','',3}, {'','',3}, {'','',7}, {'','',11}, {'','',4}, {'','',12}, {'','',1}, {'','',15}, {'','',1}, {'','',1}, {'','',2}, {'','',31}, {'','',10}, {'','',1},
-+{'','',44}, {'','',1}, {'','',19}, {'','',93}, {'','',1}, {'','',6}, {'','',3}, {'','',29}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',56}, {'','',111}, {'','',47}, {'','',2},
-+{'','',98}, {'','',100}, {'','',2}, {'','',3}, {'','',1}, {'','',18}, {'','',20}, {'','',4}, {'','',2}, {'','',7}, {'','',9}, {'','',2}, {'','',96}, {'','',5}, {'','',17}, {'','',16},
-+{'','',21}, {'','',35}, {'','',1}, {'','',2}, {'','',6}, {'','',1}, {'','',13}, {'','',2}, {'','',6}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',1}, {'','',18}, {'','',148},
-+{'','',11}, {'','',9}, {'','',186}, {'','',43}, {'','',38}, {'','',4}, {'','',3}, {'','',4}, {'','',8}, {'','',9}, {'','',5}, {'','',3}, {'','',4}, {'','',10}, {'','',5}, {'','',6},
-+{'','',28}, {'','',24}, {'','',39}, {'','',4}, {'','',30}, {'','',7}, {'','',5}, {'','',2}, {'','',49}, {'','',12}, {'','',3}, {'','',3}, {'','',4}, {'','',1}, {'','',22}, {'','',13},
-+{'','',5}, {'','',13}, {'','',1}, {'','',1}, {'','',1}, {'','',19}, {'','',1}, {'','',1}, {'','',56}, {'','',2}, {'','',16}, {'','',22}, {'','',11}, {'','',12}, {'','',6}, {'','',26},
-+{'','',6}, {'','',1}, {'','',6}, {'','',3}, {'','',35}, {'','',4}, {'','',4}, {'','',1}, {'','',1}, {'','',2}, {'','',2}, {'','',3}, {'','',1}, {'','',79}, {'','',18}, {'','',17},
-+{'','',34}, {'','',3}, {'','',11}, {'','',31}, {'','',1}, {'','',2}, {'','',55}, {'','',4}, {'','',1}, {'','',1}, {'','',1}, {'','',2}, {'','',3}, {'','',2}, {'','',1}, {'','',2},
-+{'','',1}, {'','',2}, {'','',1}, {'','',2}, {'','',9}, {'','',5}, {'','',1}, {'','',1}, {'','',9}, {'','',8}, {'','',4}, {'','',3}, {'','',4}, {'','',1}, {'','',1}, {'','',5},
-+{'','',1}, {'','',14}, {'','',5}, {'','',2}, {'','',1}, {'','',15}, {'','',5}, {'','',98}, {'','',3}, {'','',7}, {'','',5}, {'','',8}, {'','',7}, {'','',6}, {'','',107}, {'','',18},
-+{'','',2}, {'','',74}, {'','',6}, {'','',1}, {'','',2}, {'','',39}, {'','',5}, {'','',8}, {'','',3}, {'','',1}, {'','',1}, {'','',2}, {'','',1}, {'','',3}, {'','',8}, {'','',2},
-+{'','',2}, {'','',31}, {'','',1}, {'','',2}, {'','',23}, {'','',2}, {'','',12}, {'','',3}, {'','',1}, {'','',3}, {'','',7}, {'','',8}, {'','',8}, {'','',7}, {'','',1}, {'','',1},
-+{'','',5}, {'','',1}, {'','',1}, {'','',4}, {'','',1}, {'','',10}, {'','',1}, {'','',61}, {'','',1}, {'','',1}, {'','',46}, {'','',60}, {'','',8}, {'','',1}
-+};
-+
-+static int
-+is_win_charset(char *txt, int len){
-+ int j,ki=0,wi=0,d=839,l,koi_stat=0,win_stat=0,ws,ks;
-+ unsigned char a,b;
-+ l=strlen(txt);
-+ if ((len)&&(l>len)) l=len;
-+ for(j=0;j<l-1;j++){
-+ a=txt[j];
-+ b=txt[j+1];
-+ //skip bottom half of table
-+ if(a<128 || b<128)
-+ continue;
-+ wi=839;
-+ ki=839;
-+ ws=0;
-+ ks=0;
-+ d=839;
-+ //binary search through lng_stats
-+ do{
-+ d>>=1;
-+ if(!ws){
-+ if(a==win[wi].a){
-+ if(b==win[wi].b){
-+ ws=1;
-+ win_stat+=win[wi].rate;
-+ }else if(b<win[wi].b){
-+ wi-=d;
-+ }else{ //b>win[wi].b
-+ wi+=d;
-+ }
-+ }else if(a<win[wi].a){
-+ wi-=d;
-+ }else{ //a>win[wi].a
-+ wi+=d;
-+ }
-+ }
-+ if(!ks){
-+ if(a==koi[ki].a){
-+ if(b==koi[ki].b){
-+ ks=1;
-+ koi_stat+=koi[ki].rate;
-+ }else if(b<koi[ki].b){
-+ ki-=d;
-+ }else{ //b>win[wi].b
-+ ki+=d;
-+ }
-+ }else if(a<koi[ki].a){
-+ ki-=d;
-+ }else{ //a>win[wi].a
-+ ki+=d;
-+ }
-+ }
-+ }while(d);
-+ }
-+// fprintf(stderr,"\nwin %i, koi %i\n",win_stat,koi_stat);
-+ if(win_stat>koi_stat)
-+ return 1;
-+ else
-+ return 0;
-+}
-+
-+/* Only CP1251 and KOI8-R still */
-+int autocharset_russian(char *buf,int len) {
-+ if (is_win_charset(buf,len)) return 0;
-+ return 1;
-+}
-diff -Naur xmms-1.2.8/libxmms/charset.c xmms-1.2.8-new/libxmms/charset.c
---- xmms-1.2.8/libxmms/charset.c 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-new/libxmms/charset.c 2003-09-06 19:42:29.000000000 +0200
-@@ -0,0 +1,512 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <glib.h>
-+#include <iconv.h>
-+#include <assert.h>
-+
-+#include "charset.h"
-+#include "charset_config.h"
-+
-+#define LOCALE_STRING_LENGTH 64
-+static char charset_default[LOCALE_STRING_LENGTH];
-+static char xmms_charset_tmp[CHARSET_MAX_STRING_SIZE];
-+
-+static int xmms_charset_changed = -1;
-+
-+static int xmms_charset_id3;
-+static int xmms_charset_output;
-+static int xmms_charset_fs;
-+static int xmms_charset_pl;
-+
-+static iconv_t iconv_id3=(iconv_t)-1; /* id3 to output */
-+static iconv_t iconv_output=(iconv_t)-1; /* output to id3 */
-+static iconv_t iconv_fs=(iconv_t)-1; /* fs to output */
-+static iconv_t iconv_utf=(iconv_t)-1; /* id3 to UTF-8 */
-+static iconv_t iconv_pl2fs=(iconv_t)-1; /* playlist to fs */
-+static iconv_t iconv_fs2pl=(iconv_t)-1; /* fs to playlist */
-+
-+static int xmms_autocharset_mode = 0;
-+static int xmms_autocharset_changed = 0;
-+static iconv_t *xmms_autocharset = NULL;
-+static iconv_t *xmms_autocharset_id2id = NULL;
-+static iconv_t *xmms_autocharset_id2fs = NULL;
-+static int xmms_autocharset_number = -1;
-+
-+static int recode_fsout;
-+static int recode_fs2utf;
-+#include "charset_auto_russian.h"
-+
-+extern int errno;
-+
-+/*****************************************************************************
-+************************ Auto Recoding ***************************************
-+*****************************************************************************/
-+static int xmms_autocharset_number_charsets(int m) {
-+ const char **encodings;
-+ int i;
-+
-+ if (!m) m=xmms_autocharset_mode;
-+ encodings=autocharset_list[m].encodings;
-+ for (i=0;encodings[i];i++);
-+ return i;
-+}
-+
-+
-+static void xmms_autocharset_iconv_close() {
-+ int i;
-+
-+ for (i=0;i<xmms_autocharset_number;i++) {
-+ if ((xmms_autocharset)&&(xmms_autocharset[i] != (iconv_t)-1)&&(xmms_autocharset[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset[i]);
-+ if ((xmms_autocharset_id2id)&&(xmms_autocharset_id2id[i] != (iconv_t)-1)&&(xmms_autocharset_id2id[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset_id2id[i]);
-+ if ((xmms_autocharset_id2fs)&&(xmms_autocharset_id2fs[i] != (iconv_t)-1)&&(xmms_autocharset_id2fs[i] != (iconv_t)-2))
-+ iconv_close(xmms_autocharset_id2fs[i]);
-+ }
-+ if (xmms_autocharset) free(xmms_autocharset);
-+ if (xmms_autocharset_id2id) free(xmms_autocharset_id2id);
-+ if (xmms_autocharset_id2fs) free(xmms_autocharset_id2fs);
-+
-+ xmms_autocharset=NULL;
-+ xmms_autocharset_id2id=NULL;
-+ xmms_autocharset_id2fs=NULL;
-+ xmms_autocharset_number = -1;
-+}
-+
-+void xmms_autocharset_new_mode(int m) {
-+ xmms_autocharset_mode=m;
-+ xmms_autocharset_changed=1;
-+}
-+
-+void xmms_autocharset_init(int m) {
-+ xmms_autocharset_mode=m;
-+ xmms_autocharset_changed=1;
-+}
-+
-+void xmms_autocharset_free() {
-+ xmms_autocharset_iconv_close();
-+}
-+
-+static void xmms_autocharset_iconv_open() {
-+ const char **encodings;
-+ const char *output, *id3, *fs;
-+ int i;
-+
-+ if ((!xmms_autocharset_changed)&&(!xmms_charset_changed)) return;
-+ xmms_autocharset_iconv_close();
-+ xmms_autocharset_changed=0;
-+
-+ xmms_autocharset_number = xmms_autocharset_number_charsets(0);
-+ if (!xmms_autocharset_number) return;
-+
-+ xmms_autocharset = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ xmms_autocharset_id2id = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ xmms_autocharset_id2fs = (iconv_t*)malloc((xmms_autocharset_number+1)*sizeof(iconv_t));
-+ if ((!xmms_autocharset)||(!xmms_autocharset_id2id)||(!xmms_autocharset_id2fs)) {
-+ if (xmms_autocharset) {
-+ free(xmms_autocharset);
-+ xmms_autocharset=NULL;
-+ }
-+ if (xmms_autocharset_id2id) {
-+ free(xmms_autocharset_id2id);
-+ xmms_autocharset_id2id=NULL;
-+ }
-+ if (xmms_autocharset_id2fs) {
-+ free(xmms_autocharset_id2fs);
-+ xmms_autocharset_id2fs=NULL;
-+ }
-+ xmms_autocharset_number = -1;
-+ perror("iconv: allocate memory");
-+ return;
-+ }
-+
-+
-+ if (xmms_charset_output) output=charset_list[xmms_charset_output];
-+ else output=charset_default;
-+ if (xmms_charset_id3) id3=charset_list[xmms_charset_id3];
-+ else id3=charset_default;
-+ if (xmms_charset_fs) fs=charset_list[xmms_charset_fs];
-+ else fs=output;
-+
-+ encodings = autocharset_list[xmms_autocharset_mode].encodings;
-+
-+ for (i=0;encodings[i];i++) {
-+ if (strcmp(output,encodings[i]))
-+ xmms_autocharset[i] = iconv_open(output,encodings[i]);
-+ else
-+ xmms_autocharset[i] = (iconv_t)-2;
-+
-+ if (strcmp(id3,encodings[i]))
-+ xmms_autocharset_id2id[i] = iconv_open(id3,encodings[i]);
-+ else
-+ xmms_autocharset_id2id[i] = (iconv_t)-2;
-+
-+ if (strcmp(fs,encodings[i]))
-+ xmms_autocharset_id2fs[i] = iconv_open(fs,encodings[i]);
-+ else
-+ xmms_autocharset_id2fs[i] = (iconv_t)-2;
-+ }
-+}
-+
-+
-+static iconv_t xmms_autocharset_get(char *buf, int len) {
-+ int i;
-+ xmms_autocharset_iconv_open();
-+ if ((xmms_autocharset)&&(xmms_autocharset_number>0)) {
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) return xmms_autocharset[i];
-+ }
-+ return (iconv_t)-1;
-+}
-+
-+static iconv_t xmms_autocharset_get_id2id(char *buf, int len) {
-+ int i;
-+ xmms_autocharset_iconv_open();
-+ if ((xmms_autocharset_id2id)&&(xmms_autocharset_number>0)) {
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) return xmms_autocharset_id2id[i];
-+ }
-+ return (iconv_t)-1;
-+}
-+
-+static iconv_t xmms_autocharset_get_id2fs(char *buf, int len) {
-+ int i;
-+ xmms_autocharset_iconv_open();
-+ if ((xmms_autocharset_id2fs)&&(xmms_autocharset_number>0)) {
-+ i=autocharset_list[xmms_autocharset_mode].func(buf,len);
-+ if (i<xmms_autocharset_number) return xmms_autocharset_id2fs[i];
-+ }
-+ return (iconv_t)-1;
-+}
-+
-+/*****************************************************************************
-+************************ Recoding ********************************************
-+*****************************************************************************/
-+
-+static void xmms_charset_iconv_close() {
-+ if (iconv_id3 != (iconv_t)-1) {
-+ if (iconv_close(iconv_id3)<0) perror("iconv close: id3");
-+ iconv_id3 = (iconv_t)-1;
-+ }
-+ if (iconv_output != (iconv_t)-1) {
-+ if (iconv_close(iconv_output)<0) perror("iconv close: output");
-+ iconv_output = (iconv_t)-1;
-+ }
-+ if (iconv_fs != (iconv_t)-1) {
-+ if (iconv_close(iconv_fs)<0) perror("iconv close: fs");
-+ iconv_fs = (iconv_t)-1;
-+ }
-+ if (iconv_fs2pl != (iconv_t)-1) {
-+ if (iconv_close(iconv_fs2pl)<0) perror("iconv close: fs2pl");
-+ iconv_fs2pl = (iconv_t)-1;
-+ }
-+ if (iconv_pl2fs != (iconv_t)-1) {
-+ if (iconv_close(iconv_pl2fs)<0) perror("iconv close: pl2fs");
-+ iconv_pl2fs = (iconv_t)-1;
-+ }
-+ if (iconv_utf != (iconv_t)-1) {
-+ if (iconv_close(iconv_utf)<0) perror("iconv close: utf");
-+ iconv_utf=(iconv_t)-1;
-+ }
-+}
-+
-+static void xmms_charset_iconv_open() {
-+ const char *id3, *output, *fs, *pl;
-+ assert(xmms_charset_changed>=0);
-+ if (!xmms_charset_changed) return;
-+
-+ xmms_charset_iconv_close();
-+ if (xmms_charset_id3) id3=charset_list[xmms_charset_id3];
-+ else id3=charset_default;
-+ if (xmms_charset_output) output=charset_list[xmms_charset_output];
-+ else output=charset_default;
-+ if (xmms_charset_fs) fs=charset_list[xmms_charset_fs];
-+ else fs=output;
-+ if (xmms_charset_pl) pl=charset_list[xmms_charset_pl];
-+ else pl=id3;
-+
-+
-+ if ((xmms_charset_id3 != xmms_charset_output)&&(strcmp(id3,output))) {
-+ iconv_id3 = iconv_open(output, id3);
-+ iconv_output = iconv_open(id3, output);
-+ if (!xmms_charset_fs) iconv_fs = iconv_open(id3, fs);
-+ }
-+
-+ if (strcmp(fs,id3)) {
-+ iconv_fs = iconv_open(id3, fs);
-+ }
-+
-+ if (strcmp(fs,pl)) {
-+ iconv_fs2pl = iconv_open(pl, fs);
-+ iconv_pl2fs = iconv_open(fs,pl);
-+ }
-+
-+ if (strcmp(id3, "UTF-8")) {
-+ iconv_utf = iconv_open("UTF-8",id3);
-+ }
-+
-+ if ((xmms_charset_fs)&&(xmms_charset_fs!=xmms_charset_output)) {
-+ recode_fsout=1;
-+ } else {
-+ recode_fsout=0;
-+ }
-+
-+ if (strcmp(fs, "UTF-8")) {
-+ recode_fs2utf=1;
-+ } else {
-+ recode_fs2utf=0;
-+ }
-+
-+ xmms_charset_changed = 0;
-+}
-+
-+
-+static int xmms_charset_number(char *c) {
-+ int i;
-+ if (!c) return 0;
-+ for (i=0;charset_list[i];i++)
-+ if (strcmp(charset_list[i], c)==0) return i;
-+ return 0; /* Default, - if not found */
-+}
-+
-+static void xmms_charset_setdefault() {
-+ char *str1, *str2;
-+ str1 = getenv(ENV_VARIABLE);
-+ if (str1) {
-+ str2 = strrchr(str1,'.');
-+ if (str2) strncpy(charset_default,str2+1,LOCALE_STRING_LENGTH);
-+ else strncpy(charset_default,str1,LOCALE_STRING_LENGTH);
-+ charset_default[LOCALE_STRING_LENGTH-1]=0;
-+ str2 = strchr(charset_default,'@');
-+ if (str2) *str2 = 0;
-+ } else {
-+ strcpy(charset_default,"UTF-8");
-+ }
-+}
-+
-+void xmms_charset_init(char *id3, char *output, char *fs, char *pl) {
-+ if (xmms_charset_changed<0) xmms_charset_setdefault();
-+
-+ xmms_charset_changed = 1;
-+ xmms_charset_id3 = xmms_charset_number(id3);
-+ xmms_charset_output = xmms_charset_number(output);
-+ xmms_charset_fs = xmms_charset_number(fs);
-+ xmms_charset_pl = xmms_charset_number(pl);
-+}
-+
-+void xmms_charset_free() {
-+ xmms_charset_iconv_close();
-+}
-+
-+void xmms_charset_new_charsets(int id3, int output, int fs, int pl) {
-+ if (xmms_charset_changed<0)
-+ xmms_charset_setdefault();
-+ else
-+ if ((xmms_charset_id3==id3)&&(xmms_charset_output==output)&&(xmms_charset_fs==fs)&&(xmms_charset_pl==pl)) return;
-+
-+ xmms_charset_changed = 1;
-+ xmms_charset_id3 = id3;
-+ xmms_charset_output = output;
-+ xmms_charset_fs = fs;
-+ xmms_charset_pl = pl;
-+}
-+
-+// Multi-byte strings still unsupported
-+static void iconv_copysymbol(char **in_buf, int *in_left, char **out_buf, int *out_left) {
-+ if ((out_left>0)&&(in_left>0)) {
-+ (**out_buf)=(**in_buf);
-+ (*out_buf)++;
-+ (*in_buf)++;
-+ (*in_left)--;
-+ (*out_left)--;
-+ }
-+}
-+
-+static char *xmms_charset_recode(iconv_t icnv, char *buf, int len, int *rlen) {
-+ char *in_buf, *out_buf, *res, err;
-+ int in_left, out_left, olen;
-+ int errors=0;
-+
-+ assert(buf);
-+
-+ if (!len) {
-+ len=strlen(buf);
-+ } else {
-+ olen=strlen(buf);
-+ if (olen<len) len=olen;
-+ }
-+
-+ if (iconv(icnv, NULL, NULL, NULL, NULL) == -1) {
-+ perror( "iconv convert: initialize" );
-+ return NULL;
-+ }
-+
-+ in_buf = buf;
-+ in_left = len;
-+ out_buf = &xmms_charset_tmp;
-+ out_left = CHARSET_MAX_STRING_SIZE;
-+
-+loop:
-+ err=iconv(icnv, &in_buf, &in_left, &out_buf, &out_left);
-+// printf("%s, %i %u\n",buf,err,errno);
-+ if (err<0) {
-+ if (errno==E2BIG) {
-+ *(int*)(xmms_charset_tmp+(CHARSET_MAX_STRING_SIZE-sizeof(int)))=0;
-+ } else if (errno==EILSEQ) {
-+ if (errors<CHARSET_MAX_ERRORS) {
-+ errors++;
-+ iconv_copysymbol(&in_buf, &in_left, &out_buf, &out_left);
-+ if (in_left>0) goto loop;
-+ } else {
-+ perror("iconv convert: invalid encoding?");
-+ return NULL;
-+ }
-+ } else {
-+ perror("iconv convert: convert");
-+// perror(buf);
-+ return NULL;
-+ }
-+ }
-+
-+ olen = CHARSET_MAX_STRING_SIZE - out_left;
-+ res = g_malloc(olen+1);
-+ if (!res) {
-+ perror( "iconv convert: malloc" );
-+ return NULL;
-+ }
-+
-+ memcpy(res,xmms_charset_tmp,olen);
-+ res[olen]=0;
-+ if (rlen) *rlen=olen;
-+ return res;
-+}
-+
-+char *xmms_charset_recode_id3(char *buf, int len, int *rlen) {
-+ iconv_t icnv;
-+
-+ xmms_charset_iconv_open();
-+ icnv = xmms_autocharset_get(buf,len);
-+
-+ if (icnv == (iconv_t)-2) return NULL;
-+
-+ if (icnv != (iconv_t)-1)
-+ return xmms_charset_recode(icnv, buf, len, rlen);
-+
-+ if (iconv_id3 != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_id3, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_output(char *buf, int len, int *rlen) {
-+ xmms_charset_iconv_open();
-+ if (iconv_output != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_output, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fs(char *buf, int len, int *rlen) {
-+ xmms_charset_iconv_open();
-+ if (iconv_fs != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_fs, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fsout(char *buf, int len, int *rlen) {
-+ int olen;
-+ char *str = NULL;
-+
-+ xmms_charset_iconv_open();
-+ if (recode_fsout) {
-+ if (iconv_fs != (iconv_t)-1) {
-+ str = xmms_charset_recode(iconv_fs, buf, len, &olen);
-+ if (!str) return NULL;
-+ len=olen;
-+ }
-+ if (iconv_id3 != (iconv_t)-1) {
-+ buf = xmms_charset_recode(iconv_id3, str ? str : buf, len, &olen);
-+ if (str) free(str);
-+ } else if (str) {
-+ buf = str;
-+ } else {
-+ buf = NULL;
-+ }
-+ if (rlen) *rlen=olen;
-+ return buf;
-+ }
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fs2pl(char *buf, int len, int *rlen) {
-+ xmms_charset_iconv_open();
-+ if (iconv_fs2pl != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_fs2pl, buf, len, rlen);
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_pl2fs(char *buf, int len, int *rlen) {
-+ iconv_t icnv;
-+
-+ xmms_charset_iconv_open();
-+ icnv = xmms_autocharset_get_id2fs(buf,len);
-+
-+ if (icnv==(iconv_t)-2) return NULL;
-+
-+ if (icnv != (iconv_t)-1)
-+ return xmms_charset_recode(icnv, buf, len, rlen);
-+
-+ if (iconv_pl2fs != (iconv_t)-1)
-+ return xmms_charset_recode(iconv_pl2fs, buf, len, rlen);
-+ return NULL;
-+}
-+
-+
-+char *xmms_charset_recode_id2utf(char *buf, int len, int *rlen) {
-+ char *str = NULL;
-+ int olen;
-+ iconv_t icnv;
-+
-+ xmms_charset_iconv_open();
-+
-+ icnv = xmms_autocharset_get_id2id(buf,len);
-+ if ((icnv != (iconv_t)-1)&&(icnv != (iconv_t)-2)) {
-+ str = xmms_charset_recode(icnv, buf, len, &olen);
-+ if (!str) return NULL;
-+ len = olen;
-+ }
-+
-+ xmms_charset_iconv_open();
-+ if (iconv_utf != (iconv_t)-1) {
-+ buf=xmms_charset_recode(iconv_utf, str ? str : buf, len, rlen);
-+ if (str) free(str);
-+ return buf;
-+ }
-+
-+ return NULL;
-+}
-+
-+char *xmms_charset_recode_fs2utf(char *buf, int len, int *rlen) {
-+ int olen;
-+ char *str = NULL;
-+
-+ xmms_charset_iconv_open();
-+ if (recode_fs2utf) {
-+ if (iconv_fs != (iconv_t)-1) {
-+ str = xmms_charset_recode(iconv_fs, buf, len, &olen);
-+ if (!str) return NULL;
-+ len=olen;
-+ }
-+ if (iconv_utf != (iconv_t)-1) {
-+ buf = xmms_charset_recode(iconv_utf, str ? str : buf, len, &olen);
-+ if (str) free(str);
-+ } else if (str) {
-+ buf = str;
-+ } else {
-+ buf = NULL;
-+ }
-+ if (rlen) *rlen=olen;
-+ return buf;
-+ }
-+ return NULL;
-+}
-diff -Naur xmms-1.2.8/libxmms/charset_config.h xmms-1.2.8-new/libxmms/charset_config.h
---- xmms-1.2.8/libxmms/charset_config.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-new/libxmms/charset_config.h 2003-09-06 19:42:29.000000000 +0200
-@@ -0,0 +1,13 @@
-+/* Misc configuration options */
-+
-+#define ENV_VARIABLE "LANG"
-+#define CHARSET_MAX_STRING_SIZE 1024 /* 256 symbols in UTF-32 */
-+#define CHARSET_MAX_ERRORS 3
-+
-+const char *charset_list[] = { "Default", "KOI8-R", "CP1251", "CP866", "UTF-8", NULL };
-+
-+const int autocharset_list_ni=2;
-+const struct autocharset_list_t autocharset_list[] = {
-+ {"Off", NULL, {NULL}},
-+ {"Russian", &autocharset_russian, {"CP1251","KOI8-R"} },
-+};
-diff -Naur xmms-1.2.8/libxmms/charset.h xmms-1.2.8-new/libxmms/charset.h
---- xmms-1.2.8/libxmms/charset.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-new/libxmms/charset.h 2003-09-06 19:42:29.000000000 +0200
-@@ -0,0 +1,36 @@
-+#ifndef XMMS_CHARSET_H
-+#define XMMS_CHARSET_H
-+
-+#define AUTOCHARSET_MAX_ENCODINGS 5
-+int autocharset_russian(char *buf,int len);
-+
-+struct autocharset_list_t {
-+ char *title;
-+ int (*func)(char *buf, int len);
-+ char *encodings[AUTOCHARSET_MAX_ENCODINGS];
-+};
-+
-+extern const char *charset_list[];
-+extern const int autocharset_list_ni;
-+extern const struct autocharset_list_t autocharset_list[];
-+
-+/* Initialization functions */
-+void xmms_autocharset_new_mode(int m);
-+void xmms_autocharset_init(int m);
-+void xmms_autocharset_free();
-+
-+void xmms_charset_init(char *id3, char *output, char *fs, char *pl);
-+void xmms_charset_free();
-+void xmms_charset_new_charsets(int id3, int output, int fs, int pl);
-+
-+/* Recoding functions */
-+char *xmms_charset_recode_id3(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_output(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fs(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fsout(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_id2utf(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fs2utf(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_fs2pl(char *buf, int len, int *rlen);
-+char *xmms_charset_recode_pl2fs(char *buf, int len, int *rlen);
-+
-+#endif /* XMMS_CHARSET_H */
-diff -Naur xmms-1.2.8/libxmms/Makefile.am xmms-1.2.8-new/libxmms/Makefile.am
---- xmms-1.2.8/libxmms/Makefile.am 2003-09-04 23:00:18.000000000 +0200
-+++ xmms-1.2.8-new/libxmms/Makefile.am 2003-09-06 20:11:31.000000000 +0200
-@@ -15,7 +15,9 @@
- formatter.c formatter.h \
- titlestring.c titlestring.h \
- xentry.c xentry.h \
--xconvert.c xconvert.h
-+xconvert.c xconvert.h \
-+charset.c charset.h \
-+charset_auto_russian.h charset_config.h
-
--xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h
-+xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h charset.h charset_auto_russian.h
-
-diff -Naur xmms-1.2.8/libxmms/Makefile.in xmms-1.2.8-new/libxmms/Makefile.in
---- xmms-1.2.8/libxmms/Makefile.in 2003-09-04 23:01:19.000000000 +0200
-+++ xmms-1.2.8-new/libxmms/Makefile.in 2003-09-06 19:42:29.000000000 +0200
-@@ -101,10 +101,12 @@
- formatter.c formatter.h \
- titlestring.c titlestring.h \
- xentry.c xentry.h \
--xconvert.c xconvert.h
-+xconvert.c xconvert.h \
-+charset.c charset.h \
-+charset_auto_russian.h charset_config.h
-
-+xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h charset.h charset_auto_russian.h
-
--xmmsinclude_HEADERS = configfile.h xmmsctrl.h dirbrowser.h util.h formatter.h titlestring.h
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
- mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
- CONFIG_HEADER = config.h
-@@ -118,7 +120,7 @@
- LIBS = @LIBS@
- libxmms_la_DEPENDENCIES =
- libxmms_la_OBJECTS = configfile.lo xmmsctrl.lo dirbrowser.lo util.lo \
--formatter.lo titlestring.lo xentry.lo xconvert.lo
-+formatter.lo titlestring.lo xentry.lo xconvert.lo charset.lo
- CFLAGS = @CFLAGS@
- COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-diff -Naur xmms-1.2.8/libxmms/titlestring.c xmms-1.2.8-new/libxmms/titlestring.c
---- xmms-1.2.8/libxmms/titlestring.c 2002-01-08 15:09:08.000000000 +0100
-+++ xmms-1.2.8-new/libxmms/titlestring.c 2003-09-06 19:42:29.000000000 +0200
-@@ -40,6 +40,8 @@
- gchar *xmms_get_titlestring(gchar *fmt, TitleInput *input)
- {
- gchar c, *p, outbuf[256], convert[16], *string;
-+ gchar *cstring = NULL;
-+ gint stringlen;
- gint numdigits, numpr, val, size, i;
- gint f_left, f_space, f_zero, someflag, width, precision;
- gboolean did_output = FALSE;
-@@ -164,9 +166,17 @@
- goto Print_string;
- case 'f':
- string = VS(input, file_name);
-+ if (string) {
-+ cstring=xmms_charset_recode_fs(string,0,&stringlen);
-+ if (cstring) string=cstring;
-+ }
- goto Print_string;
- case 'F':
- string = VS(input, file_path);
-+ if (string) {
-+ cstring=xmms_charset_recode_fs(string,0,&stringlen);
-+ if (cstring) string=cstring;
-+ }
- goto Print_string;
- case 'g':
- string = VS(input, genre);
-@@ -208,6 +218,10 @@
- while ((c = *string++) != '\0')
- PUTCH(c);
- }
-+ if (cstring) {
-+ g_free(cstring);
-+ cstring=NULL;
-+ }
-
- RIGHTPAD(width - numpr);
- break;
-diff -Naur xmms-1.2.8/xmms/charset.c xmms-1.2.8-new/xmms/charset.c
---- xmms-1.2.8/xmms/charset.c 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-new/xmms/charset.c 2003-09-06 19:42:29.000000000 +0200
-@@ -0,0 +1,393 @@
-+#include <stdio.h>
-+#include <locale.h>
-+#include <string.h>
-+#include <gtk/gtk.h>
-+#include "xmms.h"
-+#include "libxmms/charset.h"
-+#include "charset.h"
-+
-+#define CHARSET_MAX_STRING_SIZE 1024 /* 256 symbols in UTF-32 */
-+static char xmms_charset_tmp[CHARSET_MAX_STRING_SIZE];
-+
-+extern TextBox *playlistwin_sinfo;
-+
-+static gint selected_id3_charset, selected_output_charset, selected_fs_charset;
-+static gint selected_pl_charset;
-+static gint selected_autocharset;
-+static GtkWidget *prefswin_options_font_shade_entry, *prefswin_options_font_shade_browse;
-+
-+static void prefswin_font_shade_browse_ok(GtkWidget * w, gpointer data)
-+{
-+ GtkFontSelectionDialog *fontsel = GTK_FONT_SELECTION_DIALOG(data);
-+ gchar *fontname;
-+
-+ fontname = gtk_font_selection_dialog_get_font_name(fontsel);
-+
-+ if (fontname)
-+ gtk_entry_set_text(GTK_ENTRY(prefswin_options_font_shade_entry), fontname);
-+
-+ gtk_widget_destroy(GTK_WIDGET(fontsel));
-+}
-+
-+static void prefswin_font_shade_browse_cb(GtkWidget * w, gpointer data)
-+{
-+ static GtkWidget *fontsel;
-+
-+ if (fontsel != NULL)
-+ return;
-+
-+ fontsel = gtk_font_selection_dialog_new(_("Select playlist font:"));
-+ gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontsel), gtk_entry_get_text(GTK_ENTRY(prefswin_options_font_shade_entry)));
-+ gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontsel)->ok_button), "clicked", GTK_SIGNAL_FUNC(prefswin_font_shade_browse_ok), fontsel);
-+ gtk_signal_connect_object(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontsel)->cancel_button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(fontsel));
-+ gtk_signal_connect(GTK_OBJECT(fontsel), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &fontsel);
-+ gtk_widget_show(fontsel);
-+}
-+
-+
-+static void prefswin_charset_cb(GtkWidget * w, gpointer item)
-+{
-+ int i;
-+ i = GPOINTER_TO_INT(item);
-+ if (i>=0x3FFFF) selected_pl_charset=i-0x3FFFF;
-+ else if (i>=0x2FFFF) selected_autocharset=i-0x2FFFF;
-+ else if (i>=0x1FFFF) selected_fs_charset=i-0x1FFFF;
-+ else if (i>=0xFFFF) selected_output_charset=i-0xFFFF;
-+ else selected_id3_charset=i;
-+}
-+
-+static void charset_options_add(Config *cfg, GtkOptionMenu *cmenu1, GtkOptionMenu *cmenu2, GtkOptionMenu *cmenu3, GtkOptionMenu *cmenu4)
-+{
-+ int i;
-+ GtkWidget *menu1, *item1;
-+ GtkWidget *menu2, *item2;
-+ GtkWidget *menu3, *item3;
-+ GtkWidget *menu4, *item4;
-+
-+ menu1 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu1);
-+ gtk_option_menu_set_menu(cmenu1, menu1);
-+
-+ menu2 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu2);
-+ gtk_option_menu_set_menu(cmenu2, menu2);
-+
-+ menu3 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu3);
-+ gtk_option_menu_set_menu(cmenu3, menu3);
-+
-+ menu4 = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu4);
-+ gtk_option_menu_set_menu(cmenu4, menu4);
-+
-+ selected_id3_charset=0;
-+ selected_output_charset=0;
-+ selected_fs_charset=0;
-+ selected_pl_charset=0;
-+
-+ for (i=0;charset_list[i];i++) {
-+ item1 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item1), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i));
-+ gtk_widget_show(item1);
-+ gtk_menu_append(GTK_MENU(menu1), item1);
-+ item2 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item2), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0xFFFF));
-+ gtk_widget_show(item2);
-+ gtk_menu_append(GTK_MENU(menu2), item2);
-+ item3 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item3), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0x1FFFF));
-+ gtk_widget_show(item3);
-+ gtk_menu_append(GTK_MENU(menu3), item3);
-+ item4 = gtk_menu_item_new_with_label(charset_list[i]);
-+ gtk_signal_connect(GTK_OBJECT(item4), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0x3FFFF));
-+ gtk_widget_show(item4);
-+ gtk_menu_append(GTK_MENU(menu4), item4);
-+ if ((cfg->charset_id3)&&(!strcmp(cfg->charset_id3,charset_list[i]))) {
-+ selected_id3_charset=i;
-+ }
-+ if ((cfg->charset_output)&&(!strcmp(cfg->charset_output,charset_list[i]))) {
-+ selected_output_charset=i;
-+ }
-+ if ((cfg->charset_fs)&&(!strcmp(cfg->charset_fs,charset_list[i]))) {
-+ selected_fs_charset=i;
-+ }
-+ if ((cfg->charset_pl)&&(!strcmp(cfg->charset_pl,charset_list[i]))) {
-+ selected_pl_charset=i;
-+ }
-+ }
-+
-+ gtk_option_menu_set_history(cmenu1, selected_id3_charset);
-+ gtk_option_menu_set_history(cmenu2, selected_output_charset);
-+ gtk_option_menu_set_history(cmenu3, selected_fs_charset);
-+ gtk_option_menu_set_history(cmenu4, selected_pl_charset);
-+}
-+
-+static void autocharset_options_add(Config *cfg, GtkOptionMenu *cmenu)
-+{
-+ int i;
-+ GtkWidget *menu, *item;
-+
-+ menu = gtk_menu_new();
-+ gtk_option_menu_remove_menu(cmenu);
-+ gtk_option_menu_set_menu(cmenu, menu);
-+
-+ selected_autocharset=0;
-+
-+
-+ for (i=0;i<autocharset_list_ni;i++) {
-+ item = gtk_menu_item_new_with_label(autocharset_list[i].title);
-+ gtk_signal_connect(GTK_OBJECT(item), "activate", GTK_SIGNAL_FUNC(prefswin_charset_cb), GINT_TO_POINTER(i+0x2FFFF));
-+ gtk_widget_show(item);
-+ gtk_menu_append(GTK_MENU(menu), item);
-+ if ((cfg->autocharset)&&(cfg->autocharset==i)) {
-+ selected_autocharset=i;
-+ }
-+ }
-+
-+ gtk_option_menu_set_history(cmenu, selected_autocharset);
-+}
-+
-+void charset_create_prefs_window(Config *cfg, GtkNotebook *prefswin_notebook, GtkWidget *prefswin_fonts_vbox) {
-+ GtkWidget *prefswin_encodings_vbox;
-+ GtkWidget *prefswin_fonts_shade_frame;
-+ GtkWidget *options_font_shade_hbox, *options_font_shade_vbox;
-+ GtkWidget *prefswin_charset_frame, *prefswin_charset_vbox;
-+ GtkWidget *prefswin_charset_list1, *prefswin_charset_list2, *prefswin_charset_list3, *prefswin_charset_list4;
-+ GtkWidget *prefswin_charset_hbox1, *prefswin_charset_hbox2, *prefswin_charset_hbox3, *prefswin_charset_hbox4;
-+ GtkWidget *prefswin_charset_label1, *prefswin_charset_label2, *prefswin_charset_label3, *prefswin_charset_label4;
-+ GtkWidget *prefswin_autocharset_frame, *prefswin_autocharset_vbox;
-+ GtkWidget *prefswin_autocharset_list;
-+ GtkWidget *prefswin_autocharset_hbox;
-+ GtkWidget *prefswin_autocharset_label;
-+
-+ prefswin_fonts_shade_frame = gtk_frame_new(_("Shade"));
-+ gtk_container_set_border_width(GTK_CONTAINER(prefswin_fonts_shade_frame), 5);
-+ gtk_box_pack_start(GTK_BOX(prefswin_fonts_vbox), prefswin_fonts_shade_frame, FALSE, FALSE, 0);
-+ options_font_shade_vbox = gtk_vbox_new(FALSE, 5);
-+ gtk_container_border_width(GTK_CONTAINER(options_font_shade_vbox), 5);
-+ gtk_container_add(GTK_CONTAINER(prefswin_fonts_shade_frame), options_font_shade_vbox);
-+ options_font_shade_hbox = gtk_hbox_new(FALSE, 5);
-+ gtk_box_pack_start_defaults(GTK_BOX(options_font_shade_vbox), options_font_shade_hbox);
-+ prefswin_options_font_shade_entry = gtk_entry_new();
-+ gtk_box_pack_start(GTK_BOX(options_font_shade_hbox), prefswin_options_font_shade_entry, TRUE, TRUE, 0);
-+ prefswin_options_font_shade_browse = gtk_button_new_with_label(_("Browse"));
-+ gtk_signal_connect(GTK_OBJECT(prefswin_options_font_shade_browse), "clicked", GTK_SIGNAL_FUNC(prefswin_font_shade_browse_cb), NULL);
-+ gtk_widget_set_usize(prefswin_options_font_shade_browse, 85, 17);
-+ gtk_box_pack_start(GTK_BOX(options_font_shade_hbox), prefswin_options_font_shade_browse, FALSE, TRUE, 0);
-+
-+ prefswin_encodings_vbox = gtk_vbox_new(FALSE, 0);
-+
-+ prefswin_charset_frame = gtk_frame_new(_("Encodings"));
-+ gtk_box_pack_start(GTK_BOX(prefswin_encodings_vbox), prefswin_charset_frame, FALSE, FALSE, 0);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_frame), 5);
-+ prefswin_charset_vbox = gtk_vbox_new(FALSE, 3);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_frame), prefswin_charset_vbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_vbox), 5);
-+
-+ prefswin_charset_hbox1 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox1);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox1), 5);
-+ prefswin_charset_label1 = gtk_label_new(_("ID3 Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label1, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox1), prefswin_charset_label1, FALSE, FALSE, 0);
-+ prefswin_charset_list1 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox1), prefswin_charset_list1, TRUE, TRUE, 0);
-+
-+ prefswin_charset_hbox3 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox3);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox3), 5);
-+ prefswin_charset_label3 = gtk_label_new(_("FileSystem Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label3, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox3), prefswin_charset_label3, FALSE, FALSE, 0);
-+ prefswin_charset_list3 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox3), prefswin_charset_list3, TRUE, TRUE, 0);
-+
-+ prefswin_charset_hbox4 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox4);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox4), 5);
-+ prefswin_charset_label4 = gtk_label_new(_("Playlist Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label4, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox4), prefswin_charset_label4, FALSE, FALSE, 0);
-+ prefswin_charset_list4 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox4), prefswin_charset_list4, TRUE, TRUE, 0);
-+
-+ prefswin_charset_hbox2 = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_charset_vbox), prefswin_charset_hbox2);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_charset_hbox2), 5);
-+ prefswin_charset_label2 = gtk_label_new(_("Output Encoding"));
-+ gtk_widget_set_usize(prefswin_charset_label2, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox2), prefswin_charset_label2, FALSE, FALSE, 0);
-+ prefswin_charset_list2 = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_charset_hbox2), prefswin_charset_list2, TRUE, TRUE, 0);
-+
-+ charset_options_add(cfg, GTK_OPTION_MENU(prefswin_charset_list1),GTK_OPTION_MENU(prefswin_charset_list2),GTK_OPTION_MENU(prefswin_charset_list3), GTK_OPTION_MENU(prefswin_charset_list4));
-+
-+ prefswin_autocharset_frame = gtk_frame_new(_("Encoding Autoselection"));
-+ gtk_box_pack_start(GTK_BOX(prefswin_encodings_vbox), prefswin_autocharset_frame, FALSE, FALSE, 0);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_autocharset_frame), 5);
-+ prefswin_autocharset_vbox = gtk_vbox_new(FALSE, 3);
-+ gtk_container_add(GTK_CONTAINER(prefswin_autocharset_frame), prefswin_autocharset_vbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_autocharset_vbox), 5);
-+
-+ prefswin_autocharset_hbox = gtk_hbox_new(FALSE, 10);
-+ gtk_container_add(GTK_CONTAINER(prefswin_autocharset_vbox), prefswin_autocharset_hbox);
-+ gtk_container_border_width(GTK_CONTAINER(prefswin_autocharset_hbox), 5);
-+ prefswin_autocharset_label = gtk_label_new(_("Language"));
-+ gtk_widget_set_usize(prefswin_autocharset_label, 120, 17);
-+ gtk_box_pack_start(GTK_BOX(prefswin_autocharset_hbox), prefswin_autocharset_label, FALSE, FALSE, 0);
-+ prefswin_autocharset_list = gtk_option_menu_new();
-+ gtk_box_pack_start(GTK_BOX(prefswin_autocharset_hbox), prefswin_autocharset_list, TRUE, TRUE, 0);
-+
-+ autocharset_options_add(cfg, GTK_OPTION_MENU(prefswin_autocharset_list));
-+
-+ gtk_notebook_append_page(prefswin_notebook, prefswin_encodings_vbox, gtk_label_new(_("Encodings")));
-+}
-+
-+void charset_prefswin_apply_changes(Config *cfg) {
-+ if (cfg->charset_id3) g_free(cfg->charset_id3);
-+ if (cfg->charset_output) g_free(cfg->charset_output);
-+ if (cfg->charset_fs) g_free(cfg->charset_fs);
-+ if (cfg->charset_pl) g_free(cfg->charset_pl);
-+ cfg->charset_id3=g_strdup(charset_list[selected_id3_charset]);
-+ cfg->charset_output=g_strdup(charset_list[selected_output_charset]);
-+ cfg->charset_fs=g_strdup(charset_list[selected_fs_charset]);
-+ cfg->charset_pl=g_strdup(charset_list[selected_pl_charset]);
-+ xmms_charset_new_charsets(selected_id3_charset, selected_output_charset, selected_fs_charset, selected_pl_charset);
-+ cfg->autocharset=selected_autocharset;
-+ xmms_autocharset_new_mode(selected_autocharset);
-+
-+ if (cfg->shade_font) g_free(cfg->shade_font);
-+ cfg->shade_font = g_strdup(gtk_entry_get_text(GTK_ENTRY(prefswin_options_font_shade_entry)));
-+ textbox_set_xfont(playlistwin_sinfo, cfg->mainwin_use_xfont, cfg->shade_font);
-+}
-+
-+void charset_show_prefs_window(Config *cfg) {
-+ gtk_entry_set_text(GTK_ENTRY(prefswin_options_font_shade_entry), cfg->shade_font);
-+}
-+
-+void charset_create_playlist_window(Config *cfg) {
-+ textbox_set_xfont(playlistwin_sinfo, cfg->mainwin_use_xfont, cfg->shade_font);
-+}
-+/*****************************************************************************
-+************************ Initialization / Deinitilization ********************
-+*****************************************************************************/
-+void charset_free(Config *cfg) {
-+ xmms_charset_free();
-+ xmms_autocharset_free();
-+}
-+
-+void charset_init(Config *cfg) {
-+ xmms_charset_init(cfg->charset_id3, cfg->charset_output, cfg->charset_fs, cfg->charset_pl);
-+ xmms_autocharset_init(cfg->autocharset);
-+}
-+
-+void charset_read_config(ConfigFile *cfgfile, Config *cfg) {
-+ cfg->autocharset=0;
-+ xmms_cfg_read_string(cfgfile, "xmms", "shade_font", &cfg->shade_font);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_id3", &cfg->charset_id3);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_output", &cfg->charset_output);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_fs", &cfg->charset_fs);
-+ xmms_cfg_read_string(cfgfile, "xmms", "charset_pl", &cfg->charset_pl);
-+ xmms_cfg_read_int(cfgfile,"xmms","autocharset",&cfg->autocharset);
-+}
-+
-+void charset_write_config(ConfigFile *cfgfile, Config *cfg) {
-+ xmms_cfg_write_string(cfgfile, "xmms", "shade_font", cfg->shade_font);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_id3", cfg->charset_id3);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_output", cfg->charset_output);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_fs", cfg->charset_fs);
-+ xmms_cfg_write_string(cfgfile, "xmms", "charset_pl", cfg->charset_pl);
-+ xmms_cfg_write_int(cfgfile,"xmms","autocharset",cfg->autocharset);
-+}
-+
-+void charset_default_config(Config *cfg) {
-+ if (cfg->shade_font && strlen(cfg->shade_font) == 0)
-+ {
-+ g_free(cfg->shade_font);
-+ cfg->shade_font = NULL;
-+ }
-+ if (cfg->shade_font == NULL)
-+ cfg->shade_font = g_strdup("-misc-fixed-medium-r-*-*-7-*");
-+}
-+
-+/*****************************************************************************
-+*********************************** Sort *************************************
-+*****************************************************************************/
-+gchar *saved_locale;
-+
-+static void charset_sort_null_entry(gpointer entry, gpointer data) {
-+ ((PlaylistEntry*)entry)->sort=NULL;
-+}
-+
-+static void charset_sort_free_entry(gpointer entry, gpointer data) {
-+ if (((PlaylistEntry*)entry)->sort)
-+ g_free(((PlaylistEntry*)entry)->sort);
-+}
-+
-+void charset_sort_prepare(GList *playlist) {
-+ g_list_foreach(playlist, charset_sort_null_entry, NULL);
-+ saved_locale=g_strdup(setlocale(LC_COLLATE,NULL));
-+ setlocale(LC_COLLATE,"UTF-8");
-+}
-+
-+void charset_sort_free(GList *playlist) {
-+ g_list_foreach(playlist, charset_sort_free_entry, NULL);
-+ if (saved_locale) {
-+ setlocale(LC_COLLATE,saved_locale);
-+ g_free(saved_locale);
-+ }
-+}
-+
-+char *charset_sort_convert(PlaylistEntry *entry, gchar *title, int fs) {
-+ char *str;
-+ if (entry->sort) return entry->sort;
-+ if (fs)
-+ str=xmms_charset_recode_fs2utf(title,0,NULL);
-+ else
-+ str=xmms_charset_recode_id2utf(title,0,NULL);
-+
-+ if (!str)
-+ entry->sort=g_strdup(title);
-+ else {
-+ strxfrm(xmms_charset_tmp,str,CHARSET_MAX_STRING_SIZE);
-+// *(int*)(xmms_charset_tmp+(CHARSET_MAX_STRING_SIZE-sizeof(int)))=0;
-+ xmms_charset_tmp[CHARSET_MAX_STRING_SIZE-1]=0;
-+ entry->sort=g_strdup(xmms_charset_tmp);
-+ g_free(str);
-+ }
-+
-+ if (entry->sort)
-+ return entry->sort;
-+
-+ return title;
-+}
-+
-+/*****************************************************************************
-+*********************************** Misc *************************************
-+*****************************************************************************/
-+
-+void textbox_set_ctext(TextBox * tb, gchar * text)
-+{
-+ gchar *rtext;
-+
-+ lock_widget(tb);
-+
-+ rtext=xmms_charset_recode_id3(text,0,NULL);
-+ if (rtext) text=rtext;
-+ if (tb->tb_text)
-+ {
-+ if (!strcmp(text, tb->tb_text))
-+ {
-+ if (rtext) free(rtext);
-+ unlock_widget(tb);
-+ return;
-+ }
-+ g_free(tb->tb_text);
-+ }
-+
-+ tb->tb_text = g_strdup(text);
-+ if (rtext) free(rtext);
-+
-+ unlock_widget(tb);
-+ draw_widget(tb);
-+}
-diff -Naur xmms-1.2.8/xmms/charset.h xmms-1.2.8-new/xmms/charset.h
---- xmms-1.2.8/xmms/charset.h 1970-01-01 01:00:00.000000000 +0100
-+++ xmms-1.2.8-new/xmms/charset.h 2003-09-06 19:42:29.000000000 +0200
-@@ -0,0 +1,19 @@
-+#include "libxmms/configfile.h"
-+#include "libxmms/charset.h"
-+void charset_create_prefs_window(Config *cfg, GtkNotebook *prefswin_notebook, GtkWidget *prefswin_fonts_vbox);
-+void charset_show_prefs_window(Config *cfg);
-+void charset_prefswin_apply_changes(Config *cfg);
-+void charset_create_playlist_window(Config *cfg);
-+
-+void charset_init(Config *cfg);
-+void charset_free(Config *cfg);
-+
-+void charset_read_config(ConfigFile *cfgfile, Config *cfg);
-+void charset_default_config(Config *cfg);
-+void charset_write_config(ConfigFile *cfgfile, Config *cfg);
-+
-+void charset_sort_prepare(GList *playlist);
-+void charset_sort_free(GList *playlist);
-+char *charset_sort_convert(PlaylistEntry *entry, gchar *title, int fs);
-+
-+void textbox_set_ctext(TextBox * tb, gchar * text);
-diff -Naur xmms-1.2.8/xmms/input.c xmms-1.2.8-new/xmms/input.c
---- xmms-1.2.8/xmms/input.c 2003-07-14 15:24:28.000000000 +0200
-+++ xmms-1.2.8-new/xmms/input.c 2003-09-06 19:42:29.000000000 +0200
-@@ -22,6 +22,7 @@
- #include "libxmms/titlestring.h"
- #include "libxmms/util.h"
- #include "libxmms/xentry.h"
-+#include "libxmms/charset.h"
-
- static pthread_mutex_t vis_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-@@ -343,7 +344,7 @@
- {
- GList *node;
- InputPlugin *ip = NULL;
--
-+
- node = get_input_list();
- while (node)
- {
-@@ -371,8 +372,11 @@
-
- (*title) = xmms_get_titlestring(xmms_get_gentitle_format(),
- input);
-- if ( (*title) == NULL )
-- (*title) = g_strdup(input->file_name);
-+ if ( (*title) == NULL ) {
-+ (*title) = xmms_charset_recode_fs(input->file_name,0,NULL);
-+ if (!*title) (*title) = g_strdup(input->file_name);
-+ }
-+
- (*length) = -1;
- g_free(temp);
- g_free(input);
-diff -Naur xmms-1.2.8/xmms/main.c xmms-1.2.8-new/xmms/main.c
---- xmms-1.2.8/xmms/main.c 2003-09-02 15:01:40.000000000 +0200
-+++ xmms-1.2.8-new/xmms/main.c 2003-09-06 19:42:29.000000000 +0200
-@@ -35,6 +35,7 @@
- #include "libxmms/xmmsctrl.h"
- #include "libxmms/util.h"
- #include "libxmms/dirbrowser.h"
-+#include "charset.h"
- #include "xmms_mini.xpm"
-
- GtkWidget *mainwin, *mainwin_url_window = NULL, *mainwin_dir_browser = NULL;
-@@ -377,7 +378,6 @@
-
- cfg.gentitle_format = NULL;
-
--
- filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL);
- cfgfile = xmms_cfg_open_file(filename);
- if (cfgfile)
-@@ -428,6 +428,7 @@
- xmms_cfg_read_boolean(cfgfile, "xmms", "use_fontsets", &cfg.use_fontsets);
- xmms_cfg_read_boolean(cfgfile, "xmms", "mainwin_use_xfont", &cfg.mainwin_use_xfont);
- xmms_cfg_read_string(cfgfile, "xmms", "mainwin_font", &cfg.mainwin_font);
-+ charset_read_config(cfgfile,&cfg);
- xmms_cfg_read_int(cfgfile, "xmms", "playlist_position", &cfg.playlist_position);
- xmms_cfg_read_int(cfgfile, "xmms", "equalizer_x", &cfg.equalizer_x);
- xmms_cfg_read_int(cfgfile, "xmms", "equalizer_y", &cfg.equalizer_y);
-@@ -514,6 +515,8 @@
- if (cfg.eqpreset_extension == NULL)
- cfg.eqpreset_extension = g_strdup("preset");
-
-+ charset_default_config(&cfg);
-+
- g_free(filename);
- }
-
-@@ -594,6 +597,7 @@
- xmms_cfg_write_boolean(cfgfile, "xmms", "use_fontsets", cfg.use_fontsets);
- xmms_cfg_write_boolean(cfgfile, "xmms", "mainwin_use_xfont", cfg.mainwin_use_xfont);
- xmms_cfg_write_string(cfgfile, "xmms", "mainwin_font", cfg.mainwin_font);
-+ charset_write_config(cfgfile,&cfg);
- xmms_cfg_write_int(cfgfile, "xmms", "playlist_position", get_playlist_position());
- /* dock_get_widget_pos(equalizerwin, &cfg.equalizer_x, &cfg.equalizer_y); */
- xmms_cfg_write_int(cfgfile, "xmms", "equalizer_x", cfg.equalizer_x);
-@@ -893,6 +897,7 @@
- gtk_timeout_remove(mainwin_timeout_tag);
- util_set_cursor(NULL);
- save_config();
-+ charset_free(&cfg);
- cleanup_ctrlsocket();
- playlist_stop_get_info_thread();
- playlist_clear();
-@@ -991,11 +996,11 @@
-
- if ((text = input_get_info_text()) != NULL)
- {
-- textbox_set_text(mainwin_info, text);
-+ textbox_set_ctext(mainwin_info, text);
- }
- else if ((text = playlist_get_info_text()) != NULL)
- {
-- textbox_set_text(mainwin_info, text);
-+ textbox_set_ctext(mainwin_info, text);
- g_free(text);
- }
- else
-@@ -3491,6 +3496,7 @@
- #endif
-
- read_config();
-+ charset_init(&cfg);
-
- if (geteuid() == 0)
- {
-diff -Naur xmms-1.2.8/xmms/main.h xmms-1.2.8-new/xmms/main.h
---- xmms-1.2.8/xmms/main.h 2002-10-06 18:35:27.000000000 +0200
-+++ xmms-1.2.8-new/xmms/main.h 2003-09-06 19:42:29.000000000 +0200
-@@ -19,6 +19,7 @@
- */
- #ifndef MAIN_H
- #define MAIN_H
-+#include "libxmms/charset.h"
-
- typedef enum
- {
-@@ -60,6 +61,9 @@
- gint mouse_change;
- gboolean playlist_transparent;
- gchar *gentitle_format;
-+ gchar *charset_id3, *charset_output, *charset_fs, *charset_pl;
-+ gint autocharset;
-+ gchar *shade_font;
- }
- Config;
-
-diff -Naur xmms-1.2.8/xmms/Makefile.am xmms-1.2.8-new/xmms/Makefile.am
---- xmms-1.2.8/xmms/Makefile.am 2003-08-11 15:47:41.000000000 +0200
-+++ xmms-1.2.8-new/xmms/Makefile.am 2003-09-06 19:42:29.000000000 +0200
-@@ -56,7 +56,8 @@
- getopt.c getopt1.c getopt.h \
- urldecode.c urldecode.h \
- dnd.h \
--mkdtemp.c
-+mkdtemp.c \
-+charset.c charset.h
-
- EXTRA_DIST= xmms_logo.xpm xmms_mini.xpm xmms.desktop xmms.wmconfig
-
-diff -Naur xmms-1.2.8/xmms/Makefile.in xmms-1.2.8-new/xmms/Makefile.in
---- xmms-1.2.8/xmms/Makefile.in 2003-09-04 23:01:20.000000000 +0200
-+++ xmms-1.2.8-new/xmms/Makefile.in 2003-09-06 19:42:29.000000000 +0200
-@@ -228,8 +228,8 @@
- getopt.c getopt1.c getopt.h \
- urldecode.c urldecode.h \
- dnd.h \
--mkdtemp.c
--
-+mkdtemp.c \
-+charset.c charset.h
-
- EXTRA_DIST = xmms_logo.xpm xmms_mini.xpm xmms.desktop xmms.wmconfig
-
-@@ -257,7 +257,7 @@
- main.$(OBJEXT) skinwin.$(OBJEXT) prefswin.$(OBJEXT) \
- playlistwin.$(OBJEXT) equalizer.$(OBJEXT) hints.$(OBJEXT) \
- about.$(OBJEXT) sm.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
--urldecode.$(OBJEXT) mkdtemp.$(OBJEXT)
-+urldecode.$(OBJEXT) mkdtemp.$(OBJEXT) charset.$(OBJEXT)
- xmms_DEPENDENCIES = $(top_builddir)/libxmms/libxmms.la
- CFLAGS = @CFLAGS@
- COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-diff -Naur xmms-1.2.8/xmms/playlist.c xmms-1.2.8-new/xmms/playlist.c
---- xmms-1.2.8/xmms/playlist.c 2003-09-02 15:01:40.000000000 +0200
-+++ xmms-1.2.8-new/xmms/playlist.c 2003-09-06 19:42:29.000000000 +0200
-@@ -20,6 +20,7 @@
- #include "xmms.h"
- #include <time.h>
- #include "libxmms/util.h"
-+#include "charset.h"
- #include <sys/stat.h>
- #include <unistd.h>
-
-@@ -939,6 +940,7 @@
- char *playlist_get_info_text(void)
- {
- char *text, *title, *tmp, *numbers, *length;
-+ char *ctitle;
-
- PL_LOCK();
- if (!playlist_position)
-@@ -947,10 +949,17 @@
- return NULL;
- }
-
-- if (playlist_position->title)
-+ if (playlist_position->title) {
-+ ctitle = xmms_charset_recode_id3(playlist_position->title,0,NULL);
-+ if (ctitle) title=ctitle;
-+ else
- title = playlist_position->title;
-- else
-+ } else {
-+ ctitle = xmms_charset_recode_fsout(g_basename(playlist_position->filename),0,NULL);
-+ if (ctitle) title=ctitle;
-+ else
- title = g_basename(playlist_position->filename);
-+ }
-
- /*
- * If the user don't want numbers in the playlist, don't
-@@ -972,6 +981,7 @@
- text = g_strdup_printf("%s%s%s", numbers, title, length);
- g_free(numbers);
- g_free(length);
-+ if (ctitle) g_free(ctitle);
-
- PL_UNLOCK();
-
-@@ -1007,6 +1017,7 @@
- {
- GList *node;
- FILE *file;
-+ gchar *fn, *cfn;
-
- if ((file = fopen(filename, "w")) == NULL)
- return FALSE;
-@@ -1025,10 +1036,13 @@
- while (node)
- {
- PlaylistEntry *entry = node->data;
-+ cfn=xmms_charset_recode_fs2pl(entry->filename,0,NULL);
-+ if (cfn) fn=cfn;
-+ else fn=entry->filename;
- if (is_pls)
- fprintf(file, "File%d=%s\n",
- g_list_position(playlist, node) + 1,
-- entry->filename);
-+ fn);
- else
- {
- if (entry->title && cfg.use_pl_metadata)
-@@ -1043,8 +1057,9 @@
- fprintf(file, "#EXTINF:%d,%s\n",
- seconds, entry->title);
- }
-- fprintf(file, "%s\n", entry->filename);
-+ fprintf(file, "%s\n", fn);
- }
-+ if (cfn) g_free(cfn);
- node = g_list_next(node);
- }
- PL_UNLOCK();
-@@ -1121,6 +1136,7 @@
- {
- FILE *file;
- char *line, *ext;
-+ char *cline;
- guint entries = 0;
- int linelen = 1024;
- gboolean extm3u = FALSE;
-@@ -1147,8 +1163,10 @@
- "playlist", key);
- if (line != NULL)
- {
-- playlist_load_ins_file(line, filename, pos,
-+ cline = xmms_charset_recode_pl2fs(line,0,NULL);
-+ playlist_load_ins_file(cline ? cline : line, filename, pos,
- NULL, -1);
-+ if (cline) g_free(cline);
- entries++;
- if (pos >= 0)
- pos++;
-@@ -1215,7 +1233,9 @@
- ext_info = NULL;
- }
-
-- playlist_load_ins_file(line, filename, pos, ext_title, ext_len);
-+ cline = xmms_charset_recode_pl2fs(line,linelen,NULL);
-+ playlist_load_ins_file(cline ? cline : line, filename, pos, ext_title, ext_len);
-+ if (cline) g_free(cline);
-
- g_free(ext_title);
- ext_title = NULL;
-@@ -1308,19 +1328,27 @@
-
- if (entry->title == NULL && entry->length == -1)
- {
-- if (playlist_get_info_entry(entry))
-+ if (playlist_get_info_entry(entry)) {
-+ title = xmms_charset_recode_id3(entry->title,0,NULL);
-+ if (!title)
- title = g_strdup(entry->title);
-+ }
-
- PL_UNLOCK();
- }
- else
- {
-+ title = xmms_charset_recode_id3(entry->title,0,NULL);
-+ if (!title)
- title = g_strdup(entry->title);
- PL_UNLOCK();
- }
-
-- if (title == NULL)
-+ if (title == NULL) {
-+ title = xmms_charset_recode_fsout(g_basename(filename),0,NULL);
-+ if (!title)
- title = g_strdup(g_basename(filename));
-+ }
-
- g_free(filename);
-
-@@ -1366,6 +1394,7 @@
- static int playlist_sort_by_title_cmpfunc(PlaylistEntry * a, PlaylistEntry * b)
- {
- char *a_title, *b_title;
-+ int a_fs=0, b_fs=0;
-
- if (a->title)
- a_title = a->title;
-@@ -1375,6 +1404,7 @@
- a_title = strrchr(a->filename, '/') + 1;
- else
- a_title = a->filename;
-+ a_fs=1;
- }
-
- if (b->title)
-@@ -1385,15 +1415,21 @@
- b_title = strrchr(b->filename, '/') + 1;
- else
- b_title = b->filename;
--
-+ b_fs=1;
- }
-+
-+ a_title=charset_sort_convert(a,a_title,a_fs);
-+ b_title=charset_sort_convert(b,b_title,b_fs);
-+
- return strcasecmp(a_title, b_title);
- }
-
- void playlist_sort_by_title(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = g_list_sort(playlist, (GCompareFunc) playlist_sort_by_title_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-@@ -1411,13 +1447,18 @@
- else
- b_filename = b->filename;
-
-+ a_filename=charset_sort_convert(a,a_filename,1);
-+ b_filename=charset_sort_convert(b,b_filename,1);
-+
- return strcasecmp(a_filename, b_filename);
- }
-
- void playlist_sort_by_filename(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = g_list_sort(playlist, (GCompareFunc) playlist_sort_by_filename_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-@@ -1453,13 +1494,15 @@
-
- static int playlist_sort_by_path_cmpfunc(PlaylistEntry * a, PlaylistEntry * b)
- {
-- return playlist_sort_str_by_path_cmpfunc(a->filename, b->filename);
-+ return playlist_sort_str_by_path_cmpfunc(charset_sort_convert(a,a->filename,1), charset_sort_convert(b,b->filename,1));
- }
-
- void playlist_sort_by_path(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = g_list_sort(playlist, (GCompareFunc) playlist_sort_by_path_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-@@ -1549,21 +1592,27 @@
- void playlist_sort_selected_by_title(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = playlist_sort_selected(playlist, (GCompareFunc) playlist_sort_by_title_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
- void playlist_sort_selected_by_filename(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = playlist_sort_selected(playlist, (GCompareFunc) playlist_sort_by_filename_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
- void playlist_sort_selected_by_path(void)
- {
- PL_LOCK();
-+ charset_sort_prepare(playlist);
- playlist = playlist_sort_selected(playlist, (GCompareFunc) playlist_sort_by_path_cmpfunc);
-+ charset_sort_free(playlist);
- PL_UNLOCK();
- }
-
-diff -Naur xmms-1.2.8/xmms/playlist.h xmms-1.2.8-new/xmms/playlist.h
---- xmms-1.2.8/xmms/playlist.h 2003-06-09 15:22:10.000000000 +0200
-+++ xmms-1.2.8-new/xmms/playlist.h 2003-09-06 19:42:29.000000000 +0200
-@@ -24,6 +24,7 @@
- {
- gchar *filename;
- gchar *title;
-+ gchar *sort;
- gint length;
- gboolean selected;
- }
-diff -Naur xmms-1.2.8/xmms/playlist_list.c xmms-1.2.8-new/xmms/playlist_list.c
---- xmms-1.2.8/xmms/playlist_list.c 2003-06-09 15:22:10.000000000 +0200
-+++ xmms-1.2.8-new/xmms/playlist_list.c 2003-09-06 19:42:29.000000000 +0200
-@@ -287,6 +287,7 @@
- {
- GdkWChar *wtext;
- int len, newlen;
-+ gchar *rtext;
- /*
- * Convert the string to a wide character string to avoid
- * destroying multibyte strings, when converting underscores,
-@@ -296,6 +297,10 @@
- * Allocate some extra space, we might extend it by one
- * character below
- */
-+
-+ rtext = xmms_charset_recode_id3(text,0,NULL);
-+ if (rtext) text = rtext;
-+
- wtext = g_malloc((strlen(text) + 3) * sizeof(GdkWChar));
- len = gdk_mbstowcs(wtext, text, strlen(text) + 1);
- if (len == -1)
-@@ -312,6 +317,7 @@
- if (wtext[i] == L'_')
- wtext[i] = L' ';
- }
-+ if (rtext) g_free(rtext);
-
- if (cfg.convert_twenty && len > 2)
- {
-@@ -361,6 +367,7 @@
- {
- int len;
- char *tmp;
-+ gchar *rtext;
-
- if (cfg.convert_underscore)
- while ((tmp = strchr(text, '_')) != NULL)
-@@ -384,7 +391,10 @@
- text[len] = '\0';
- }
-
-+ rtext = xmms_charset_recode_id3(text,0,NULL);
-+ if (rtext) text = rtext;
- gdk_draw_text(pl->pl_widget.parent, font, pl->pl_widget.gc, pl->pl_widget.x, pl->pl_widget.y + line * pl->pl_fheight + font->ascent, text, len);
-+ if (rtext) g_free(rtext);
- }
-
- void playlist_list_draw(Widget * w)
-@@ -396,6 +406,7 @@
- int width, height;
- char *text, *title;
- int i, tw, max_first;
-+ gchar *ctitle = NULL;
-
- gc = pl->pl_widget.gc;
- width = pl->pl_widget.width;
-@@ -453,8 +464,11 @@
-
- if (entry->title)
- title = entry->title;
-- else
-- title = g_basename(entry->filename);
-+ else {
-+ ctitle = xmms_charset_recode_fs(g_basename(entry->filename),0,NULL);
-+ if (ctitle) title = ctitle;
-+ else title = g_basename(entry->filename);
-+ }
-
- pos = playlist_get_queue_position(entry);
-
-@@ -497,6 +511,10 @@
- playlist_list_draw_string(pl, playlist_list_font,
- i - pl->pl_first, tw, text);
- g_free(text);
-+ if (ctitle) {
-+ g_free(ctitle);
-+ ctitle=NULL;
-+ }
- }
- PL_UNLOCK();
- }
-diff -Naur xmms-1.2.8/xmms/playlistwin.c xmms-1.2.8-new/xmms/playlistwin.c
---- xmms-1.2.8/xmms/playlistwin.c 2003-04-04 19:42:51.000000000 +0200
-+++ xmms-1.2.8-new/xmms/playlistwin.c 2003-09-06 20:24:02.000000000 +0200
-@@ -38,7 +38,8 @@
- PButton *playlistwin_shade, *playlistwin_close;
- static PlaylistSlider *playlistwin_slider = NULL;
- static TextBox *playlistwin_time_min, *playlistwin_time_sec;
--static TextBox *playlistwin_info, *playlistwin_sinfo;
-+static TextBox *playlistwin_info;
-+ TextBox *playlistwin_sinfo;
- static SButton *playlistwin_srew, *playlistwin_splay;
- static SButton *playlistwin_spause, *playlistwin_sstop;
- static SButton *playlistwin_sfwd, *playlistwin_seject;
-@@ -1846,6 +1847,7 @@
- static void playlistwin_create_widgets(void)
- {
- playlistwin_sinfo = create_textbox(&playlistwin_wlist, playlistwin_bg, playlistwin_gc, 4, 4, cfg.playlist_width - 35, FALSE, SKIN_TEXT);
-+ charset_create_playlist_window(&cfg);
- if (!cfg.playlist_shaded)
- hide_widget(playlistwin_sinfo);
- if (cfg.playlist_shaded)
-diff -Naur xmms-1.2.8/xmms/prefswin.c xmms-1.2.8-new/xmms/prefswin.c
---- xmms-1.2.8/xmms/prefswin.c 2003-07-16 15:17:47.000000000 +0200
-+++ xmms-1.2.8-new/xmms/prefswin.c 2003-09-06 19:42:29.000000000 +0200
-@@ -1,4 +1,4 @@
--/* XMMS - Cross-platform multimedia player
-+/* XMMS - Cdross-platform multimedia player
- * Copyright (C) 1998-2001 Peter Alm, Mikael Alm, Olle Hallnas,
- * Thomas Nilsson and 4Front Technologies
- * Copyright (C) 1999-2001 Haavard Kvaalen
-@@ -20,6 +20,7 @@
- #include "xmms.h"
- #include "libxmms/util.h"
- #include "libxmms/titlestring.h"
-+#include "charset.h"
-
- static GtkWidget *prefswin, *prefswin_notebook, *prefswin_ok;
- static GtkWidget *prefswin_audio_ie_cbox;
-@@ -47,6 +48,7 @@
- extern PButton *playlistwin_shade, *playlistwin_close, *equalizerwin_close;
- extern PButton *mainwin_menubtn, *mainwin_minimize, *mainwin_shade, *mainwin_close;
- extern TextBox *mainwin_info;
-+extern TextBox *playlistwin_sinfo;
- extern gboolean mainwin_focus, equalizerwin_focus, playlistwin_focus;
-
- static gboolean is_opening = FALSE;
-@@ -351,6 +353,8 @@
- cfg.pause_between_songs_time = CLAMP(atoi(gtk_entry_get_text(GTK_ENTRY(prefswin_options_pbs_entry))), 0, 1000);
- cfg.mouse_change = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(prefswin_options_mouse_spin));
-
-+ charset_prefswin_apply_changes(&cfg);
-+
- set_current_output_plugin(selected_oplugin);
-
- equalizerwin_set_doublesize(cfg.doublesize && cfg.eq_doublesize_linked);
-@@ -384,7 +388,6 @@
- textbox_set_scroll(mainwin_info, FALSE);
- textbox_set_scroll(mainwin_info, TRUE);
- }
--
- if (show_wm_old != cfg.show_wm_decorations)
- prefswin_toggle_wm_decorations();
-
-@@ -1089,6 +1092,8 @@
-
- gtk_notebook_append_page(GTK_NOTEBOOK(prefswin_notebook), prefswin_fonts_vbox, gtk_label_new(_("Fonts")));
-
-+ charset_create_prefs_window(&cfg,GTK_NOTEBOOK(prefswin_notebook), prefswin_fonts_vbox);
-+
- /*
- * Title page
- */
-@@ -1358,6 +1363,8 @@
- gtk_entry_set_text(GTK_ENTRY(prefswin_options_pbs_entry), temp);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(prefswin_options_mouse_spin), cfg.mouse_change);
-
-+ charset_show_prefs_window(&cfg);
-+
- gtk_widget_show_all(prefswin);
- gtk_widget_grab_default(prefswin_ok);
-
diff --git a/media-sound/xmms/files/xmms-1.2.8-shadow.patch b/media-sound/xmms/files/xmms-1.2.8-shadow.patch
deleted file mode 100644
index 0584a7e6c1ec..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-shadow.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -Nru3p xmms-1.2.8.orig/xmms/dock.c xmms-1.2.8/xmms/dock.c
---- xmms-1.2.8.orig/xmms/dock.c 2001-03-08 14:33:30.000000000 +0000
-+++ xmms-1.2.8/xmms/dock.c 2001-03-08 14:33:30.000000000 +0000
-@@ -363,8 +363,8 @@ void dock_shade(GList *window_list, GtkW
- }
- g_list_free(slist);
- free_docked_list(docked_list);
-- dock_set_uposition(widget, x, y + off_y - (new_h - h));
- dock_window_resize(widget, w, new_h, w, h);
-+ dock_set_uposition(widget, x, y + off_y - (new_h - h));
- }
-
- static GList *resize_move_list(GList *list, GtkWidget *widget, gint offset_x, gint offset_y)
-@@ -523,8 +523,8 @@ void dock_resize(GList *window_list, Gtk
- }
-
-
-- dock_set_uposition(widget, x + off_x, y + off_y);
- dock_window_resize(widget, new_w, new_h, w, h);
-+ dock_set_uposition(widget, x + off_x, y + off_y);
- }
-
- void dock_move_press(GList *window_list, GtkWidget *w, GdkEventButton *event, gboolean move_list)
-diff -Nru3p xmms-1.2.8.orig/xmms/playlistwin.c xmms-1.2.8/xmms/playlistwin.c
---- xmms-1.2.8.orig/xmms/playlistwin.c 2003-04-04 17:42:51.000000000 +0000
-+++ xmms-1.2.8/xmms/playlistwin.c 2003-04-04 17:42:51.000000000 +0000
-@@ -340,10 +340,9 @@ void playlistwin_create_mask(void)
- void playlistwin_set_shade_menu_cb(gboolean shaded)
- {
- cfg.playlist_shaded = shaded;
-+ gtk_window_set_default_size(GTK_WINDOW(playlistwin), cfg.playlist_width, PLAYLIST_HEIGHT);
- if (!cfg.show_wm_decorations)
- dock_shade(dock_window_list, playlistwin, PLAYLIST_HEIGHT);
-- else
-- gtk_window_set_default_size(GTK_WINDOW(playlistwin), cfg.playlist_width, PLAYLIST_HEIGHT);
-
- if (shaded)
- {
-@@ -1283,7 +1282,7 @@ static gboolean playlistwin_configure(Gt
- if (cfg.show_wm_decorations || hint_move_resize_available())
- {
- if (event->width != cfg.playlist_width ||
-- event->height != cfg.playlist_height)
-+ event->height != PLAYLIST_HEIGHT)
- playlistwin_queue_resize(event->width, event->height);
- }
-
diff --git a/media-sound/xmms/files/xmms-1.2.8-sid-songpos.patch b/media-sound/xmms/files/xmms-1.2.8-sid-songpos.patch
deleted file mode 100644
index c3050cec89da..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-sid-songpos.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-
-Only in xmms-1.2.8-patched/Input/mpg123: mpg123.c~
-diff -r -u xmms-1.2.8/libxmms/xmmsctrl.c xmms-1.2.8-patched/libxmms/xmmsctrl.c
---- xmms-1.2.8/libxmms/xmmsctrl.c Sun Mar 3 21:24:27 2002
-+++ xmms-1.2.8-patched/libxmms/xmmsctrl.c Sat Jun 1 17:27:31 2002
-@@ -421,6 +421,11 @@
- remote_send_guint32(session, CMD_JUMP_TO_TIME, pos);
- }
-
-+void xmms_remote_seek(gint session, gint off)
-+{
-+ remote_send_guint32(session, CMD_SEEK, off);
-+}
-+
- void xmms_remote_get_volume(gint session, gint * vl, gint * vr)
- {
- ServerPktHeader pkt_hdr;
-Only in xmms-1.2.8-patched/libxmms: xmmsctrl.c~
-diff -r -u xmms-1.2.8/libxmms/xmmsctrl.h xmms-1.2.8-patched/libxmms/xmmsctrl.h
---- xmms-1.2.8/libxmms/xmmsctrl.h Sun Mar 3 21:24:27 2002
-+++ xmms-1.2.8-patched/libxmms/xmmsctrl.h Sat Jun 1 17:27:31 2002
-@@ -42,6 +42,7 @@
- void xmms_remote_playlist_clear(gint session);
- gint xmms_remote_get_output_time(gint session);
- void xmms_remote_jump_to_time(gint session, gint pos);
-+void xmms_remote_seek(gint session, gint off);
- void xmms_remote_get_volume(gint session, gint * vl, gint * vr);
- gint xmms_remote_get_main_volume(gint session);
- gint xmms_remote_get_balance(gint session);
-Only in xmms-1.2.8-patched/libxmms: xmmsctrl.h~
-diff -r -u xmms-1.2.8/xmms/controlsocket.c xmms-1.2.8-patched/xmms/controlsocket.c
---- xmms-1.2.8/xmms/controlsocket.c Sun Mar 3 21:24:33 2002
-+++ xmms-1.2.8-patched/xmms/controlsocket.c Sat Jun 1 17:28:51 2002
-@@ -493,6 +493,10 @@
- num < playlist_get_current_length())
- input_seek(num / 1000);
- break;
-+ case CMD_SEEK:
-+ num = *((guint32 *) data);
-+ song_seek(num);
-+ break;
- case CMD_SET_VOLUME:
- v[0] = ((guint32 *) data)[0];
- v[1] = ((guint32 *) data)[1];
-diff -r -u xmms-1.2.8/xmms/controlsocket.h xmms-1.2.8-patched/xmms/controlsocket.h
---- xmms-1.2.8/xmms/controlsocket.h Sun Mar 3 21:24:33 2002
-+++ xmms-1.2.8-patched/xmms/controlsocket.h Sat Jun 1 17:27:31 2002
-@@ -33,7 +33,7 @@
- CMD_GET_VERSION, CMD_PLAYLIST_ADD, CMD_PLAY, CMD_PAUSE, CMD_STOP,
- CMD_IS_PLAYING, CMD_IS_PAUSED, CMD_GET_PLAYLIST_POS,
- CMD_SET_PLAYLIST_POS, CMD_GET_PLAYLIST_LENGTH, CMD_PLAYLIST_CLEAR,
-- CMD_GET_OUTPUT_TIME, CMD_JUMP_TO_TIME, CMD_GET_VOLUME,
-+ CMD_GET_OUTPUT_TIME, CMD_JUMP_TO_TIME, CMD_SEEK, CMD_GET_VOLUME,
- CMD_SET_VOLUME, CMD_GET_SKIN, CMD_SET_SKIN, CMD_GET_PLAYLIST_FILE,
- CMD_GET_PLAYLIST_TITLE, CMD_GET_PLAYLIST_TIME, CMD_GET_INFO,
- CMD_GET_EQ_DATA, CMD_SET_EQ_DATA, CMD_PL_WIN_TOGGLE,
-diff -r -u xmms-1.2.8/xmms/input.c xmms-1.2.8-patched/xmms/input.c
---- xmms-1.2.8/xmms/input.c Wed Jul 11 14:19:23 2001
-+++ xmms-1.2.8-patched/xmms/input.c Sat Jun 1 17:27:31 2002
-@@ -306,6 +306,7 @@
- }
- }
- ip_data->playing = FALSE;
-+ set_song_position(0, 0, 0);
- }
-
- void input_pause(void)
-diff -r -u xmms-1.2.8/xmms/main.c xmms-1.2.8-patched/xmms/main.c
---- xmms-1.2.8/xmms/main.c Wed Feb 27 15:30:28 2002
-+++ xmms-1.2.8-patched/xmms/main.c Sat Jun 1 17:28:05 2002
-@@ -680,6 +680,55 @@
- g_free(filename);
- }
-
-+/*\
-+|*| Separate song position stuff, for songs without a time length,
-+|*| but that want to be able to seek anyway.
-+|*|
-+|*| Have the input plugin's get_time() function call
-+|*| set_song_position(int pos, int first, int last)
-+|*| to set the slider. If the slider is dragged,
-+|*| the plugin's seek() is called with the position.
-+|*| (If last <= first the feature is turned off)
-+\*/
-+
-+static int song_pos_cur, song_pos_first, song_pos_num = 0;
-+
-+void set_song_position(int pos, int first, int last)
-+{
-+ last -= first;
-+ song_pos_cur = pos;
-+ song_pos_first = first;
-+ song_pos_num = last;
-+ if (last <= 0) return;
-+ pos -= first;
-+ if (pos > last) pos = last;
-+ if (cfg.player_shaded)
-+ show_widget(mainwin_sposition);
-+ show_widget(mainwin_position);
-+ hslider_set_position(mainwin_position, (pos * 219) / last);
-+ hslider_set_position(mainwin_sposition, ((pos * 12) / last) + 1);
-+}
-+
-+void song_seek(gint off)
-+{
-+ if (!get_input_playing()) return;
-+ if (song_pos_num > 0) {
-+ gint newpos = 0;
-+ if (off < 0) newpos = song_pos_cur - 1;
-+ else if (off > 0) newpos = song_pos_cur + 1;
-+ if (newpos < song_pos_first) newpos = song_pos_first;
-+ if (newpos > song_pos_first + song_pos_num)
-+ newpos = song_pos_first + song_pos_num;
-+ input_seek(newpos);
-+ } else {
-+ gint newpos = (input_get_time() / 1000) + (off / 1000);
-+ gint pcl = playlist_get_current_length() / 1000;
-+ if (newpos >= pcl) newpos = pcl - 1;
-+ if (newpos < 0) newpos = 0;
-+ input_seek(newpos);
-+ }
-+}
-+
- gchar *xmms_get_gentitle_format(void)
- {
- return cfg.gentitle_format;
-@@ -760,7 +808,9 @@
- show_widget(mainwin_stime_min);
- show_widget(mainwin_stime_sec);
-
-- if (get_input_playing() && playlist_get_current_length() != -1)
-+ if (get_input_playing() &&
-+ ((playlist_get_current_length() != -1) ||
-+ (song_pos_num > 0)))
- show_widget(mainwin_sposition);
-
- mainwin_shade->pb_ny = mainwin_shade->pb_py = 27;
-@@ -1056,7 +1106,7 @@
- show_widget(mainwin_sec_num);
- if (!get_input_paused())
- playstatus_set_status(mainwin_playstatus, STATUS_PLAY);
-- if (playlist_get_current_length() != -1)
-+ if ((playlist_get_current_length() != -1) || (song_pos_num > 0))
- {
- if (cfg.player_shaded)
- show_widget(mainwin_sposition);
-@@ -1352,13 +1416,19 @@
- break;
- case GDK_Left:
- case GDK_KP_Left:
-+/*
- if(playlist_get_current_length() != -1)
- input_seek(CLAMP(input_get_time() - 5000, 0, playlist_get_current_length()) / 1000);
-+*/
-+ song_seek(-5000);
- break;
- case GDK_Right:
- case GDK_KP_Right:
-+/*
- if(playlist_get_current_length() != -1)
- input_seek(CLAMP(input_get_time() + 5000, 0, playlist_get_current_length()) / 1000);
-+*/
-+ song_seek(+5000);
- break;
- default:
- break;
-@@ -1988,6 +2099,16 @@
-
- pos--;
-
-+ if (song_pos_num > 0) {
-+ time = ((song_pos_num * pos + 6) / 12) + song_pos_first;
-+ tmp = g_strdup_printf("%d", time);
-+ textbox_set_text(mainwin_stime_min, tmp);
-+ g_free(tmp);
-+ tmp = g_strdup_printf("%d", song_pos_first + song_pos_num);
-+ textbox_set_text(mainwin_stime_sec, tmp);
-+ g_free(tmp);
-+ return;
-+ }
- time = ((playlist_get_current_length() / 1000) * pos) / 12;
- if (cfg.timer_mode == TIMER_REMAINING)
- {
-@@ -2009,6 +2130,10 @@
-
- void mainwin_spos_release_cb(gint pos)
- {
-+ if (song_pos_num > 0) {
-+ input_seek(((song_pos_num * (pos - 1) + 6) / 12) + song_pos_first);
-+ return;
-+ }
- input_seek(((playlist_get_current_length() / 1000) * (pos - 1)) / 12);
- }
-
-@@ -2017,6 +2142,14 @@
- gint length, time;
- gchar *buf;
-
-+ if (song_pos_num > 0) {
-+ time = ((song_pos_num * pos + 110) / 219) + song_pos_first;
-+ buf = g_strdup_printf("JUMP TO: %d/%d", time,
-+ song_pos_num + song_pos_first);
-+ mainwin_lock_info_text(buf);
-+ g_free(buf);
-+ return;
-+ }
- length = playlist_get_current_length() / 1000;
- time = (length * pos) / 219;
- buf = g_strdup_printf(_("SEEK TO: %d:%-2.2d/%d:%-2.2d (%d%%)"), time / 60, time % 60, length / 60, length % 60, (length != 0) ? (time * 100) / length : 0);
-@@ -2028,6 +2161,12 @@
- {
- int length, time;
-
-+ if (song_pos_num > 0) {
-+ time = ((song_pos_num * pos + 110) / 219) + song_pos_first;
-+ input_seek(time);
-+ mainwin_release_info_text();
-+ return;
-+ }
- length = playlist_get_current_length() / 1000;
- time = (length * pos) / 219;
- input_seek(time);
-@@ -2423,12 +2573,10 @@
- case MAINWIN_GENERAL_STOPFADE:
- break;
- case MAINWIN_GENERAL_BACK5SEC:
-- if (get_input_playing() && playlist_get_current_length() != -1)
-- input_seek((((input_get_time() / 1000) - 5 >= 0) ? (input_get_time() / 1000) - 5 : 0));
-+ song_seek(-5000);
- break;
- case MAINWIN_GENERAL_FWD5SEC:
-- if (get_input_playing() && playlist_get_current_length() != -1)
-- input_seek(((((input_get_time() / 1000) + 5) < (playlist_get_current_length() / 1000)) ? ((input_get_time() / 1000) + 5) : ((playlist_get_current_length() / 1000) - 1)));
-+ song_seek(+5000);
- break;
- case MAINWIN_GENERAL_START:
- playlist_set_position(0);
-@@ -3032,7 +3186,7 @@
- hslider_set_position(mainwin_sposition, ((time * 12) / length) + 1);
- }
- }
-- else
-+ else if (song_pos_num <= 0)
- {
- hslider_set_position(mainwin_position, 0);
- hslider_set_position(mainwin_sposition, 1);
-diff -r -u xmms-1.2.8/xmms/main.h xmms-1.2.8-patched/xmms/main.h
---- xmms-1.2.8/xmms/main.h Mon Jan 21 15:22:38 2002
-+++ xmms-1.2.8-patched/xmms/main.h Sat Jun 1 17:27:31 2002
-@@ -87,6 +85,7 @@
- void mainwin_play_pushed(void);
- void mainwin_stop_pushed(void);
- void mainwin_eject_pushed(void);
-+void song_seek(gint off);
-
- void mainwin_set_back_pixmap(void);
-
-diff -r -u xmms-1.2.8/xmms/plugin.h xmms-1.2.8-patched/xmms/plugin.h
---- xmms-1.2.8/xmms/plugin.h Fri Jul 6 21:15:34 2001
-+++ xmms-1.2.8-patched/xmms/plugin.h Sat Jun 1 17:27:31 2002
-@@ -154,4 +154,6 @@
- void (*render_freq)(gint16 freq_data[2][256]); /* Render the freq data, don't do anything time consuming in here */
- } VisPlugin;
-
-+void set_song_position(int pos, int first, int last);
-+
- #endif
diff --git a/media-sound/xmms/files/xmms-1.2.8-sigterm.patch b/media-sound/xmms/files/xmms-1.2.8-sigterm.patch
deleted file mode 100644
index 001b3df13209..000000000000
--- a/media-sound/xmms/files/xmms-1.2.8-sigterm.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -Naur xmms-1.2.8/xmms/main.c xmms-1.2.8-new/xmms/main.c
---- xmms-1.2.8/xmms/main.c 2003-09-02 15:01:40.000000000 +0200
-+++ xmms-1.2.8-new/xmms/main.c 2003-09-06 18:15:15.000000000 +0200
-@@ -3343,6 +3343,18 @@
- exit(1);
- }
-
-+/* Try to exit nicely when receiving a nice exit signal */
-+void sigterm_handler(int sig)
-+{
-+ /* Original author of patch said that you should not use mainwin_quit_cb(),
-+ * but his way deadlock xmms, and it anyhow just calls ctrlsocket stuff with
-+ * with CMD_QUIT, which anyhow calls mainwin_quit_cb() in turn. This is not
-+ * entirely clean, but works.
-+ * <azarah@gentoo.org> (19 Jan 2003)
-+ xmms_remote_quit(ctrlsocket_get_session_id()); */
-+ mainwin_quit_cb();
-+}
-+
- static gboolean pposition_configure(GtkWidget *w, GdkEventConfigure *event, gpointer data)
- {
- gint x,y;
-@@ -3473,6 +3485,8 @@
- #endif
-
- signal(SIGPIPE, SIG_IGN); /* for controlsocket.c */
-+ signal(SIGTERM, sigterm_handler);
-+ signal(SIGINT, sigterm_handler);
- signal(SIGSEGV, segfault_handler);
- g_thread_init(NULL);
- if (!g_thread_supported())
diff --git a/media-sound/xmms/xmms-1.2.8-r1.ebuild b/media-sound/xmms/xmms-1.2.8-r1.ebuild
deleted file mode 100644
index 5644b7df6ac6..000000000000
--- a/media-sound/xmms/xmms-1.2.8-r1.ebuild
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright 1999-2003 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/xmms-1.2.8-r1.ebuild,v 1.4 2003/09/14 07:40:10 seemant Exp $
-
-IUSE="xml nls esd gnome opengl mmx oggvorbis 3dnow mikmod directfb ipv6 cjk"
-
-inherit flag-o-matic eutils
-filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-
-DESCRIPTION="X MultiMedia System"
-HOMEPAGE="http://www.xmms.org/"
-SRC_URI="http://www.xmms.org/files/1.2.x/${P}.tar.bz2
- mirror://gentoo/gentoo_ice.zip"
-
-SLOT="0"
-LICENSE="GPL-2"
-KEYWORDS="~x86 ~ppc ~sparc ~alpha ~hppa ~mips"
-
-DEPEND="app-arch/unzip
- =x11-libs/gtk+-1.2*
- mikmod? ( >=media-libs/libmikmod-3.1.6 )
- esd? ( >=media-sound/esound-0.2.22 )
- xml? ( >=dev-libs/libxml-1.8.15 )
- gnome? ( <gnome-base/gnome-panel-1.5.0 )
- opengl? ( virtual/opengl )
- oggvorbis? ( >=media-libs/libvorbis-1.0_beta4 )"
-
-RDEPEND="${DEPEND}
- directfb? ( dev-libs/DirectFB )
- nls? ( dev-util/intltool )"
-
-src_unpack() {
- unpack ${P}.tar.bz2
- cd ${S}
-
- # Patch to allow external programmes to have the "jump to" dialog box
- epatch ${FILESDIR}/${P}-jump.patch
-
- # Save playlist, etc on SIGTERM and SIGINT, bug #13604.
- epatch ${FILESDIR}/${P}-sigterm.patch
-
- # Patch for mpg123 to convert Japanese character code of MP3 tag info
- # the Japanese patch and the Russian one overlap, so its one or the other
- if use cjk; then
- epatch ${FILESDIR}/${P}-mpg123j.patch
- else
- # add russian charset support
- epatch ${FILESDIR}/${P}-russian-charset.patch
- fi
-
- # Add dynamic taste detection patch
- epatch ${FILESDIR}/${P}-dtd.patch
-
- if [ ! -f ${S}/config.rpath ] ; then
- touch ${S}/config.rpath
- chmod +x ${S}/config.rpath
- fi
-
- # Add /usr/local/share/xmms/Skins to the search path for skins
- epatch ${FILESDIR}/${PN}-fhs-skinsdir.patch
-
- # This patch passes audio output through the output plugin
- # before recording via the diskwriter plugin
- # http://forum.xmms.org/viewtopic.php?t=500&sid=c286e1c01fb924a2f81f519969f33764
- epatch ${FILESDIR}/xmms-diskwriter-audio.patch
-
- export WANT_AUTOCONF_2_5=1
- for x in . libxmms ; do
- cd ${S}/${x}
- automake --gnu --add-missing --include-deps || die
- done
-}
-
-src_compile() {
- local myconf=""
-
- # Allow configure to detect mipslinux systems
- use mips && gnuconfig_update
-
- if [ `use 3dnow` ] || [ `use mmx` ] ; then
- myconf="${myconf} --enable-simd"
- else
- myconf="${myconf} --disable-simd"
- fi
-
- use xml || myconf="${myconf} --disable-cdindex"
-
- econf \
- --with-dev-dsp=/dev/sound/dsp \
- --with-dev-mixer=/dev/sound/mixer \
- `use_with gnome` \
- `use_enable oggvorbis vorbis` \
- `use_enable oggvorbis oggtest` \
- `use_enable oggvorbis vorbistest` \
- `use_enable esd` \
- `use_enable esd esdtest` \
- `use_enable mikmod` \
- `use_enable mikmod mikmodtest` \
- `use_with mikmod libmikmod` \
- `use_enable opengl` \
- `use_enable nls` \
- `use_enable ipv6` \
- ${myconf} \
- || die
-
- ### emake seems to break some compiles, please keep @ make
- make || die
-}
-
-src_install() {
- einstall \
- incdir=${D}/usr/include \
- sysdir=${D}/usr/share/applets/Multimedia \
- GNOME_SYSCONFDIR=${D}/etc \
- install || die "make install failed"
-
- dodoc AUTHORS ChangeLog COPYING FAQ NEWS README TODO
-
- keepdir /usr/share/xmms/Skins
- insinto /usr/share/pixmaps/
- donewins gnomexmms/gnomexmms.xpm xmms.xpm
- doins xmms/xmms_logo.xpm
- insinto /usr/share/pixmaps/mini
- doins xmms/xmms_mini.xpm
-
- insinto /etc/X11/wmconfig
- donewins xmms/xmms.wmconfig xmms
-
- if [ `use gnome` ] ; then
- insinto /usr/share/gnome/apps/Multimedia
- doins xmms/xmms.desktop
- dosed "s:xmms_mini.xpm:mini/xmms_mini.xpm:" \
- /usr/share/gnome/apps/Multimedia/xmms.desktop
- else
- rm ${D}/usr/share/man/man1/gnomexmms*
- fi
-
- # Add the sexy Gentoo Ice skin
- insinto /usr/share/xmms/Skins
- doins ${DISTDIR}/gentoo_ice.zip
-}
diff --git a/media-sound/xmms/xmms-1.2.8-r2.ebuild b/media-sound/xmms/xmms-1.2.8-r2.ebuild
deleted file mode 100644
index 67985e143f95..000000000000
--- a/media-sound/xmms/xmms-1.2.8-r2.ebuild
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright 1999-2003 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/xmms-1.2.8-r2.ebuild,v 1.2 2003/09/15 11:26:14 seemant Exp $
-
-IUSE="xml nls esd gnome opengl mmx oggvorbis 3dnow mikmod directfb ipv6 cjk"
-
-inherit flag-o-matic eutils
-filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-
-DESCRIPTION="X MultiMedia System"
-HOMEPAGE="http://www.xmms.org/"
-SRC_URI="http://www.xmms.org/files/1.2.x/${P}.tar.bz2
- mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2"
-
-SLOT="0"
-LICENSE="GPL-2"
-KEYWORDS="~x86 ~ppc ~sparc ~alpha ~hppa ~mips"
-
-DEPEND="app-arch/unzip
- =x11-libs/gtk+-1.2*
- mikmod? ( >=media-libs/libmikmod-3.1.6 )
- esd? ( >=media-sound/esound-0.2.22 )
- xml? ( >=dev-libs/libxml-1.8.15 )
- gnome? ( <gnome-base/gnome-panel-1.5.0 )
- opengl? ( virtual/opengl )
- oggvorbis? ( >=media-libs/libvorbis-1.0_beta4 )"
-
-RDEPEND="${DEPEND}
- directfb? ( dev-libs/DirectFB )
- nls? ( dev-util/intltool )"
-
-src_unpack() {
- unpack ${A}
- cd ${S}
-
- # Patch to allow external programmes to have the "jump to" dialog box
- epatch ${FILESDIR}/${P}-jump.patch
-
- # Save playlist, etc on SIGTERM and SIGINT, bug #13604.
- epatch ${FILESDIR}/${P}-sigterm.patch
-
- # Patch for mpg123 to convert Japanese character code of MP3 tag info
- # the Japanese patch and the Russian one overlap, so its one or the other
- if use cjk; then
- epatch ${FILESDIR}/${P}-mpg123j.patch
- else
- # add russian charset support
- epatch ${FILESDIR}/${P}-russian-charset.patch
- fi
-
- # Add dynamic taste detection patch
- epatch ${FILESDIR}/${P}-dtd.patch
-
- if [ ! -f ${S}/config.rpath ] ; then
- touch ${S}/config.rpath
- chmod +x ${S}/config.rpath
- fi
-
- # Add /usr/local/share/xmms/Skins to the search path for skins
- epatch ${FILESDIR}/${PN}-fhs-skinsdir.patch
-
- # This patch passes audio output through the output plugin
- # before recording via the diskwriter plugin
- # http://forum.xmms.org/viewtopic.php?t=500&sid=c286e1c01fb924a2f81f519969f33764
- epatch ${FILESDIR}/xmms-diskwriter-audio.patch
-
- # Patch to enable superior randomised playlists:
- epatch ${FILESDIR}/${P}-random.patch
-
- # This patch changes the search-bar's behaviour when playing
- # sid tunes using xmms-sid plugin. It enables you to select the
- # different tunes that are sometimes included in a single .sid file
- epatch ${FILESDIR}/${P}-sid-songpos.patch
-
- export WANT_AUTOCONF_2_5=1
- for x in . libxmms ; do
- cd ${S}/${x}
- automake --gnu --add-missing --include-deps || die
- done
-}
-
-src_compile() {
- local myconf=""
-
- # Allow configure to detect mipslinux systems
- use mips && gnuconfig_update
-
- if [ `use 3dnow` ] || [ `use mmx` ] ; then
- myconf="${myconf} --enable-simd"
- else
- myconf="${myconf} --disable-simd"
- fi
-
- use xml || myconf="${myconf} --disable-cdindex"
-
- econf \
- --with-dev-dsp=/dev/sound/dsp \
- --with-dev-mixer=/dev/sound/mixer \
- `use_with gnome` \
- `use_enable oggvorbis vorbis` \
- `use_enable oggvorbis oggtest` \
- `use_enable oggvorbis vorbistest` \
- `use_enable esd` \
- `use_enable esd esdtest` \
- `use_enable mikmod` \
- `use_enable mikmod mikmodtest` \
- `use_with mikmod libmikmod` \
- `use_enable opengl` \
- `use_enable nls` \
- `use_enable ipv6` \
- ${myconf} \
- || die
-
- ### emake seems to break some compiles, please keep @ make
- make || die
-}
-
-src_install() {
- einstall \
- incdir=${D}/usr/include \
- sysdir=${D}/usr/share/applets/Multimedia \
- GNOME_SYSCONFDIR=${D}/etc \
- install || die "make install failed"
-
- dodoc AUTHORS ChangeLog COPYING FAQ NEWS README TODO
-
- keepdir /usr/share/xmms/Skins
- insinto /usr/share/pixmaps/
- donewins gnomexmms/gnomexmms.xpm xmms.xpm
- doins xmms/xmms_logo.xpm
- insinto /usr/share/pixmaps/mini
- doins xmms/xmms_mini.xpm
-
- insinto /etc/X11/wmconfig
- donewins xmms/xmms.wmconfig xmms
-
- if [ `use gnome` ] ; then
- insinto /usr/share/gnome/apps/Multimedia
- doins xmms/xmms.desktop
- dosed "s:xmms_mini.xpm:mini/xmms_mini.xpm:" \
- /usr/share/gnome/apps/Multimedia/xmms.desktop
- else
- rm ${D}/usr/share/man/man1/gnomexmms*
- fi
-
- # Add the sexy Gentoo Ice skin
- insinto /usr/share/xmms/Skins/gentoo_ice
- doins ${WORKDIR}/gentoo_ice/*
- docinto gentoo_ice
- dodoc ${WORKDIR}/README
-}
-
-pkg_postinst() {
- echo
- einfo "If you have been using the xmms-sid plugin before,"
- einfo "it would be a good idea to re-emerge it now, to have"
- einfo "the additional features introduced by the xmms-songpos patch"
- einfo "which let's you select one of several tunes sometimes included"
- einfo "in a single .sid file using the song-position slider."
-}
diff --git a/media-sound/xmms/xmms-1.2.8-r3.ebuild b/media-sound/xmms/xmms-1.2.8-r3.ebuild
index 6a2c34c4ed4b..8caef061d157 100644
--- a/media-sound/xmms/xmms-1.2.8-r3.ebuild
+++ b/media-sound/xmms/xmms-1.2.8-r3.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/xmms-1.2.8-r3.ebuild,v 1.3 2003/11/21 16:42:01 mholzer Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/xmms-1.2.8-r3.ebuild,v 1.4 2003/12/01 16:24:26 seemant Exp $
IUSE="xml nls esd gnome opengl mmx oggvorbis 3dnow mikmod directfb ipv6 cjk"
@@ -10,7 +10,8 @@ filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
DESCRIPTION="X MultiMedia System"
HOMEPAGE="http://www.xmms.org/"
SRC_URI="http://www.xmms.org/files/1.2.x/${P}.tar.bz2
- mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2"
+ mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2
+ mirror://gentoo/${PF}-gentoo-patches.tar.bz2"
SLOT="0"
LICENSE="GPL-2"
@@ -29,30 +30,32 @@ RDEPEND="${DEPEND}
directfb? ( dev-libs/DirectFB )
nls? ( dev-util/intltool )"
+PATCHDIR=${WORKDIR}/patches
+
src_unpack() {
unpack ${A}
cd ${S}
# Patch to allow external programmes to have the "jump to" dialog box
- epatch ${FILESDIR}/${P}-jump.patch
+ epatch ${PATCHDIR}/${P}-jump.patch
# Save playlist, etc on SIGTERM and SIGINT, bug #13604.
- epatch ${FILESDIR}/${P}-sigterm.patch
+ epatch ${PATCHDIR}/${P}-sigterm.patch
#shadow Patch, bug #30420.
- epatch ${FILESDIR}/${P}-shadow.patch
+ epatch ${PATCHDIR}/${P}-shadow.patch
# Patch for mpg123 to convert Japanese character code of MP3 tag info
# the Japanese patch and the Russian one overlap, so its one or the other
if use cjk; then
- epatch ${FILESDIR}/${P}-mpg123j.patch
+ epatch ${PATCHDIR}/${P}-mpg123j.patch
else
# add russian charset support
- epatch ${FILESDIR}/${P}-russian-charset-csa20.patch
+ epatch ${PATCHDIR}/${P}-russian-charset-csa20.patch
fi
# Add dynamic taste detection patch
- epatch ${FILESDIR}/${P}-dtd.patch
+ epatch ${PATCHDIR}/${P}-dtd.patch
if [ ! -f ${S}/config.rpath ] ; then
touch ${S}/config.rpath
@@ -60,20 +63,20 @@ src_unpack() {
fi
# Add /usr/local/share/xmms/Skins to the search path for skins
- epatch ${FILESDIR}/${PN}-fhs-skinsdir.patch
+ epatch ${PATCHDIR}/${PN}-fhs-skinsdir.patch
# This patch passes audio output through the output plugin
# before recording via the diskwriter plugin
# http://forum.xmms.org/viewtopic.php?t=500&sid=c286e1c01fb924a2f81f519969f33764
- epatch ${FILESDIR}/xmms-diskwriter-audio.patch
+ epatch ${PATCHDIR}/${PN}-diskwriter-audio.patch
# Patch to enable superior randomised playlists:
- epatch ${FILESDIR}/${P}-random.patch
+ epatch ${PATCHDIR}/${P}-random.patch
# This patch changes the search-bar's behaviour when playing
# sid tunes using xmms-sid plugin. It enables you to select the
# different tunes that are sometimes included in a single .sid file
- epatch ${FILESDIR}/${P}-sid-songpos.patch
+ epatch ${PATCHDIR}/${P}-sid-songpos.patch
export WANT_AUTOCONF_2_5=1
for x in . libxmms ; do
diff --git a/media-sound/xmms/xmms-1.2.8.ebuild b/media-sound/xmms/xmms-1.2.8.ebuild
deleted file mode 100644
index eae9475fd8e8..000000000000
--- a/media-sound/xmms/xmms-1.2.8.ebuild
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 1999-2003 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/xmms-1.2.8.ebuild,v 1.3 2003/09/12 19:27:39 seemant Exp $
-
-IUSE="xml nls esd gnome opengl mmx oggvorbis 3dnow mikmod directfb ipv6 cjk"
-
-inherit libtool flag-o-matic eutils
-filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-
-MY_P=${P/_/-}
-S=${WORKDIR}/${MY_P}
-DESCRIPTION="X MultiMedia System"
-HOMEPAGE="http://www.xmms.org/"
-SRC_URI="http://www.xmms.org/files/1.2.x/${MY_P}.tar.bz2
- mirror://gentoo/gentoo_ice.zip"
-
-SLOT="0"
-LICENSE="GPL-2 Artistic"
-KEYWORDS="~x86 ~amd64 ~ppc ~sparc ~alpha ~hppa ~mips ~arm"
-
-DEPEND="app-arch/unzip
- =x11-libs/gtk+-1.2*
- mikmod? ( >=media-libs/libmikmod-3.1.6 )
- esd? ( >=media-sound/esound-0.2.22 )
- xml? ( >=dev-libs/libxml-1.8.15 )
- gnome? ( <gnome-base/gnome-panel-1.5.0 )
- opengl? ( virtual/opengl )
- oggvorbis? ( >=media-libs/libvorbis-1.0_beta4 )"
-RDEPEND="${DEPEND}
- directfb? ( dev-libs/DirectFB )
- nls? ( dev-util/intltool )"
-
-src_unpack() {
- unpack ${A}
- cd ${S}
-
- # Patch to allow external programmes to have the "jump to" dialog box
- epatch ${FILESDIR}/xmms-jump.patch
-
- # Save playlist, etc on SIGTERM and SIGINT, bug #13604.
- epatch ${FILESDIR}/xmms-sigterm.patch
-
- # Patch for mpg123 to convert Japanese character code of MP3 tag info
- # the Japanese patch and the Russian one overlap, so its one or the other
- if use nls
- then
- if use cjk; then
- epatch ${FILESDIR}/${P}-mpg123j.patch
-# else
-# # add russian charset support
-# epatch ${FILESDIR}/${P}-russian-charset.patch
- fi
- fi
-
- if [ ! -f ${S}/config.rpath ] ; then
- touch ${S}/config.rpath
- chmod +x ${S}/config.rpath
- fi
-
- # Add /usr/local/share/xmms/Skins to the search path for skins
- epatch ${FILESDIR}/${PN}-fhs-skinsdir.patch
-
- # We run automake and autoconf here else we get a lot of warning/errors.
- # I have tested this with gcc-2.95.3 and gcc-3.1.
- elibtoolize
-
- # This patch passes audio output through the output plugin
- # before recording via the diskwriter plugin
- # http://forum.xmms.org/viewtopic.php?t=500&sid=c286e1c01fb924a2f81f519969f33764
- epatch ${FILESDIR}/xmms-diskwriter-audio.patch
-
- echo ">>> Reconfiguring..."
- for x in ${S} ${S}/libxmms
- do
- cd ${x}
- aclocal
- automake --gnu --add-missing --include-deps Makefile || die
- autoconf || die
- done
-
- # fix broken makefile in gnomexmms
-# sed -i "s:\@LTLIBSINTL\@$::" ${S}/gnomexmms/Makefile.in
-}
-
-src_compile() {
- local myconf=""
-
- if use 3dnow || use mmx
- then
- myconf="${myconf} --enable-simd"
- else
- myconf="${myconf} --disable-simd"
- fi
-
- use xml \
- || myconf="${myconf} --disable-cdindex"
-
- econf \
- --with-dev-dsp=/dev/sound/dsp \
- --with-dev-mixer=/dev/sound/mixer \
- `use_enable oggvorbis vorbis` \
- `use_enable oggvorbis oggtest` \
- `use_enable oggvorbis vorbistest` \
- `use_enable esd` \
- `use_enable esd esdtest` \
- `use_enable mikmod` \
- `use_enable mikmod mikmodtest` \
- `use_enable opengl` \
- `use_enable nls` \
- `use_enable ipv6` \
- ${myconf} || die
- # `use_with gnome` \
- # `use_with mikmod libmikmod` \
- # `use_with oggvorbis ogg` \
-
- ### emake seems to break some compiles, please keep @ make
- make || die
-}
-
-src_install() {
- make prefix=${D}/usr \
- datadir=${D}/usr/share \
- incdir=${D}/usr/include \
- infodir=${D}/usr/share/info \
- localstatedir=${D}/var/lib \
- mandir=${D}/usr/share/man \
- sysconfdir=${D}/etc \
- sysdir=${D}/usr/share/applets/Multimedia \
- GNOME_SYSCONFDIR=${D}/etc install || die "FOO"
-
- dodoc AUTHORS ChangeLog COPYING FAQ NEWS README TODO
-
- keepdir /usr/share/xmms/Skins
- insinto /usr/share/pixmaps/
- donewins gnomexmms/gnomexmms.xpm xmms.xpm
- doins xmms/xmms_logo.xpm
- insinto /usr/share/pixmaps/mini
- doins xmms/xmms_mini.xpm
-
- insinto /etc/X11/wmconfig
- donewins xmms/xmms.wmconfig xmms
-
- if [ `use gnome` ] ; then
- insinto /usr/share/gnome/apps/Multimedia
- doins xmms/xmms.desktop
- dosed "s:xmms_mini.xpm:mini/xmms_mini.xpm:" \
- /usr/share/gnome/apps/Multimedia/xmms.desktop
- else
- rm ${D}/usr/share/man/man1/gnomexmms*
- fi
-
- # causes segfaults for ppc users #10309 and after talking
- # to xmms dev's, they've punted this from the src tree anyways ...
- rm -rf ${D}/usr/lib/xmms/Input/libidcin.so
-
- # Add the sexy Gentoo Ice skin
- insinto /usr/share/xmms/Skins
- doins ${DISTDIR}/gentoo_ice.zip
-}