summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/.cvsignore2
-rw-r--r--noncore/net/wellenreiter/Makefile28
-rw-r--r--noncore/net/wellenreiter/gui/.cvsignore4
-rw-r--r--noncore/net/wellenreiter/gui/gui.pro11
-rw-r--r--noncore/net/wellenreiter/gui/main.cpp13
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.cpp17
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.h6
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp34
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiterbase.cpp1281
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiterbase.h60
-rw-r--r--noncore/net/wellenreiter/gui/wellenreitertemplate.ui (renamed from noncore/net/wellenreiter/gui/wellenreiterbase.ui)8
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/libwellenreiter.pro15
-rw-r--r--noncore/net/wellenreiter/wellenreiter.pro13
13 files changed, 1448 insertions, 44 deletions
diff --git a/noncore/net/wellenreiter/.cvsignore b/noncore/net/wellenreiter/.cvsignore
index 6a208ca..ed65c71 100644
--- a/noncore/net/wellenreiter/.cvsignore
+++ b/noncore/net/wellenreiter/.cvsignore
@@ -1,5 +1,3 @@
1*.o 1*.o
2*~ 2*~
3Makefile*
4moc_* 3moc_*
5wellenreiterbase.h
diff --git a/noncore/net/wellenreiter/Makefile b/noncore/net/wellenreiter/Makefile
new file mode 100644
index 0000000..22b23f4
--- a/dev/null
+++ b/noncore/net/wellenreiter/Makefile
@@ -0,0 +1,28 @@
1# Warning: Handcrafted!
2
3#############################################################################
4# Makefile for building targets in sub directories.
5# Project: wellenreiter
6# Template: subdirs
7#############################################################################
8
9 MAKEFILE=Makefile
10 TMAKE =tmake
11
12 SUBDIRS =libwellenreiter/source daemon/source gui
13
14all: $(SUBDIRS)
15
16$(SUBDIRS): FORCE
17 cd $@; $(MAKE)
18
19tmake:
20 tmake wellenreiter.pro
21
22tmake_all:
23 for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; pro=`basename $$i`.pro ; $(TMAKE) $$pro -o $(MAKEFILE); grep "TEMPLATE.*subdirs" $$pro 2>/dev/null >/dev/null && $(MAKE) -f $(MAKEFILE) tmake_all || true; fi; ) ; done
24
25clean release debug:
26 for i in $(SUBDIRS); do ( if [ -d $$i ]; then cd $$i ; $(MAKE) $@; fi; ) ; done
27
28FORCE:
diff --git a/noncore/net/wellenreiter/gui/.cvsignore b/noncore/net/wellenreiter/gui/.cvsignore
index b126f44..aa4bd0e 100644
--- a/noncore/net/wellenreiter/gui/.cvsignore
+++ b/noncore/net/wellenreiter/gui/.cvsignore
@@ -1,6 +1,6 @@
1*.o 1*.o
2*~ 2*~
3Makefile* 3Makefile*
4moc_* 4moc_*
5wellenreiterbase.cpp 5wellenreitertemplate.cpp
6wellenreiterbase.h 6wellenreitertemplate.h
diff --git a/noncore/net/wellenreiter/gui/gui.pro b/noncore/net/wellenreiter/gui/gui.pro
new file mode 100644
index 0000000..fbe2c11
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/gui.pro
@@ -0,0 +1,11 @@
1DESTDIR = $(OPIEDIR)/bin
2TEMPLATE = app
3CONFIG = qt warn_on debug
4#CONFIG = qt warn_on release
5HEADERS = wellenreiterbase.h wellenreiter.h scanlistitem.h scanlist.h
6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp
7INCLUDEPATH += $(OPIEDIR)/include ../daemon
8DEPENDPATH += $(OPIEDIR)/include ../daemon
9LIBS += -lqpe -lopie -L../libwellenreiter/source -lwellenreiter
10INTERFACES = wellenreitertemplate.ui
11TARGET = wellenreiter
diff --git a/noncore/net/wellenreiter/gui/main.cpp b/noncore/net/wellenreiter/gui/main.cpp
index f8dc5d7..4b8d489 100644
--- a/noncore/net/wellenreiter/gui/main.cpp
+++ b/noncore/net/wellenreiter/gui/main.cpp
@@ -1,29 +1,42 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "wellenreiter.h" 16#include "wellenreiter.h"
17
18#ifdef QWS
17#include <qpe/qpeapplication.h> 19#include <qpe/qpeapplication.h>
20#else
21#include <qapplication.h>
22#endif
18 23
19int main( int argc, char **argv ) 24int main( int argc, char **argv )
20{ 25{
26#ifdef QWS
21 QPEApplication a( argc, argv ); 27 QPEApplication a( argc, argv );
28#else
29 QApplication a( argc, argv );
30#endif
22 31
23 Wellenreiter e; 32 Wellenreiter e;
24 33
25 e.setCaption( Wellenreiter::tr("Wellenreiter") ); 34 e.setCaption( Wellenreiter::tr("Wellenreiter") );
35#ifdef QWS
26 a.showMainWidget(&e); 36 a.showMainWidget(&e);
37#else
38 a.setMainWidget(&e);
39#endif
27 40
28 return a.exec(); 41 return a.exec();
29} 42}
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.cpp b/noncore/net/wellenreiter/gui/scanlistitem.cpp
index 63caefb..9532a01 100644
--- a/noncore/net/wellenreiter/gui/scanlistitem.cpp
+++ b/noncore/net/wellenreiter/gui/scanlistitem.cpp
@@ -5,60 +5,61 @@
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "scanlistitem.h" 16#include "scanlistitem.h"
17#include <qpe/resource.h> 17#include <qpe/resource.h>
18#include <assert.h> 18#include <assert.h>
19#include <qpixmap.h> 19#include <qpixmap.h>
20 20
21const int col_type = 0; 21const int col_type = 0;
22const int col_essid = 0; 22const int col_essid = 0;
23const int col_sig = 1; 23const int col_sig = 1;
24const int col_ap = 2; 24const int col_ap = 2;
25const int col_channel = 3; 25const int col_channel = 3;
26const int col_wep = 4; 26const int col_wep = 4;
27const int col_traffic = 5; 27const int col_traffic = 5;
28 28
29MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString ap, 29MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
30 bool wep, int channel, int signal ) 30 bool wep, int channel, int signal )
31 :QListViewItem( parent, essid, ap, QString::null, QString::null, QString::null ) 31 :QListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
32{ 32{
33 qDebug( "creating scanlist item" ); 33 qDebug( "creating scanlist item" );
34 decorateItem( type, essid, ap, wep, channel, signal ); 34 decorateItem( type, essid, macaddr, wep, channel, signal );
35} 35}
36 36
37MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString ap, 37MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
38 bool wep, int channel, int signal ) 38 bool wep, int channel, int signal )
39 :QListViewItem( parent, essid, ap, QString::null, QString::null, QString::null ) 39 :QListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
40{ 40{
41 qDebug( "creating scanlist item" ); 41 qDebug( "creating scanlist item" );
42 decorateItem( type, essid, ap, wep, channel, signal ); 42 decorateItem( type, essid, macaddr, wep, channel, signal );
43} 43}
44 44
45void MScanListItem::decorateItem( QString type, QString essid, QString ap, bool wep, int channel, int signal ) 45void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
46{ 46{
47 qDebug( "decorating scanlist item" ); 47 qDebug( "decorating scanlist item" );
48 48
49 // set icon for managed or adhoc mode 49 // set icon for managed or adhoc mode
50 QString name; 50 QString name;
51 name.sprintf( "wellenreiter/%s", (const char*) type ); 51 name.sprintf( "wellenreiter/%s", (const char*) type );
52 setPixmap( col_type, Resource::loadPixmap( name ) ); 52 setPixmap( col_type, Resource::loadPixmap( name ) );
53 53
54 // set icon for wep (wireless encryption protocol) 54 // set icon for wep (wireless encryption protocol)
55 if ( wep ) 55 if ( wep )
56 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); // rename the pixmap! 56 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); // rename the pixmap!
57 57
58 // set channel and signal text 58 // set channel and signal text
59 setText( col_sig, QString::number( signal ) ); 59 setText( col_sig, QString::number( signal ) );
60 setText( col_channel, QString::number( channel ) ); 60 setText( col_channel, QString::number( channel ) );
61 //setText
61 62
62 listView()->triggerUpdate(); 63 listView()->triggerUpdate();
63 64
64} \ No newline at end of file 65}
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.h b/noncore/net/wellenreiter/gui/scanlistitem.h
index a786482..dd8219a 100644
--- a/noncore/net/wellenreiter/gui/scanlistitem.h
+++ b/noncore/net/wellenreiter/gui/scanlistitem.h
@@ -6,46 +6,46 @@
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#ifndef SCANLISTITEM_H 16#ifndef SCANLISTITEM_H
17#define SCANLISTITEM_H 17#define SCANLISTITEM_H
18 18
19#include <qlistview.h> 19#include <qlistview.h>
20 20
21class QString; 21class QString;
22 22
23class MScanListItem: public QListViewItem 23class MScanListItem: public QListViewItem
24{ 24{
25 public: 25 public:
26 26
27 MScanListItem::MScanListItem( QListView* parent, 27 MScanListItem::MScanListItem( QListView* parent,
28 QString type, 28 QString type,
29 QString essid, 29 QString essid,
30 QString ap, 30 QString macaddr,
31 bool wep, 31 bool wep,
32 int channel, 32 int channel,
33 int signal ); 33 int signal );
34 34
35 MScanListItem::MScanListItem( QListViewItem* parent, 35 MScanListItem::MScanListItem( QListViewItem* parent,
36 QString type, 36 QString type,
37 QString essid, 37 QString essid,
38 QString ap, 38 QString macaddr,
39 bool wep, 39 bool wep,
40 int channel, 40 int channel,
41 int signal ); 41 int signal );
42 42
43 43
44 protected: 44 protected:
45 45
46 virtual void decorateItem( QString type, QString essid, QString ap, bool wep, int channel, int signal ); 46 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
47 47
48}; 48};
49 49
50#endif 50#endif
51 51
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 693f20d..11cdaef 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -24,153 +24,159 @@
24 24
25// Local 25// Local
26 26
27#include "wellenreiter.h" 27#include "wellenreiter.h"
28#include "scanlistitem.h" 28#include "scanlistitem.h"
29 29
30#include "../libwellenreiter/source/sock.hh" // <--- ugly path, FIX THIS! 30#include "../libwellenreiter/source/sock.hh" // <--- ugly path, FIX THIS!
31#include "../libwellenreiter/source/proto.hh" // <--- ugly path, FIX THIS! 31#include "../libwellenreiter/source/proto.hh" // <--- ugly path, FIX THIS!
32#include "../daemon/source/config.hh" // <--- ugly path, FIX THIS! 32#include "../daemon/source/config.hh" // <--- ugly path, FIX THIS!
33 33
34Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) 34Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl )
35 : WellenreiterBase( parent, name, fl ) 35 : WellenreiterBase( parent, name, fl )
36{ 36{
37 37
38 connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) ); 38 connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) );
39 netview->setColumnWidthMode( 1, QListView::Manual ); 39 netview->setColumnWidthMode( 1, QListView::Manual );
40 40
41 // 41 //
42 // setup socket for daemon communication and start poller 42 // setup socket for daemon communication and start poller
43 // 43 //
44 44
45 daemon_fd = commsock( GUIADDR, GUIPORT ); 45 daemon_fd = commsock( GUIADDR, GUIPORT );
46 if ( daemon_fd == -1 ) 46 if ( daemon_fd == -1 )
47 qDebug( "D'oh! Could not get file descriptor for daemon-->gui communication socket." ); 47 qDebug( "D'oh! Could not get file descriptor for daemon-->gui communication socket." );
48 //else 48 else
49 //startTimer( 700 ); 49 startTimer( 700 );
50 50
51} 51}
52 52
53Wellenreiter::~Wellenreiter() 53Wellenreiter::~Wellenreiter()
54{ 54{
55 // no need to delete child widgets, Qt does it all for us 55 // no need to delete child widgets, Qt does it all for us
56} 56}
57 57
58void Wellenreiter::handleMessage() 58void Wellenreiter::handleMessage()
59{ 59{
60 // FIXME: receive message and handle it 60 // FIXME: receive message and handle it
61 61
62 qDebug( "received message from daemon." ); 62 qDebug( "received message from daemon." );
63 63
64 char buffer[128]; 64 char buffer[128];
65 65
66 int result = recvcomm( &daemon_fd, (char*) &buffer, sizeof(buffer) ); 66 int result = recvcomm( &daemon_fd, (char*) &buffer, sizeof(buffer) );
67 qDebug( "received %d from recvcomm", result ); 67 qDebug( "received %d from recvcomm", result );
68 68
69/* 69/*
70typedef struct { 70typedef struct {
71 int net_type; 1 = Accesspoint ; 2 = Ad-Hoc 71 int net_type; 1 = Accesspoint ; 2 = Ad-Hoc
72 int ssid_len; Length of SSID 72 int ssid_len; Length of SSID
73 int channel; Channel 73 int channel; Channel
74 int wep; 1 = WEP enabled ; 0 = disabled 74 int wep; 1 = WEP enabled ; 0 = disabled
75 char mac[64]; MAC address of Accesspoint 75 char mac[64]; MAC address of Accesspoint
76 char bssid[128]; BSSID of Accesspoint 76 char bssid[128]; BSSID of Accesspoint
77} wl_network_t; 77} wl_network_t;
78*/ 78*/
79 79
80 qDebug( "Sniffer sent: '%s'", buffer );
81
80 if ( result == NETFOUND ) /* new network found */ 82 if ( result == NETFOUND ) /* new network found */
81 { 83 {
82 qDebug( "Sniffer said: new network found." ); 84 qDebug( "Sniffer said: new network found." );
83 wl_network_t n; 85 wl_network_t n;
84 get_network_found( &n, (char*) &buffer ); 86 get_network_found( &n, (char*) &buffer );
85 n.bssid[n.ssid_len] = "\0"; 87
88 qDebug( "Sniffer said: net_type is %d.", n.net_type );
89 qDebug( "Sniffer said: MAC is %s", (const char*) &n.mac );
90
91 //n.bssid[n.ssid_len] = "\0";
86 92
87 QString type; 93 QString type;
88 94
89 if ( n.net_type == 1 ) 95 if ( n.net_type == 1 )
90 type == "managed"; 96 type = "managed";
91 else 97 else
92 type == "adhoc"; 98 type = "adhoc";
93 99
94 addNewItem( type, n.bssid, n.mac, n.wep, n.channel, 0 ); 100 addNewItem( type, n.bssid, QString( (const char*) &n.mac ), n.wep, n.channel, 0 );
95 101
96 } 102 }
97 103
98 else 104 else
99 105
100 { 106 {
101 qDebug( "unknown sniffer command." ); 107 qDebug( "unknown sniffer command." );
102 } 108 }
103 109
104} 110}
105 111
106 112
107bool Wellenreiter::hasMessage() 113bool Wellenreiter::hasMessage()
108{ 114{
109 115
110 // FIXME: do this in libwellenreiter, not here!!! 116 // FIXME: do this in libwellenreiter, not here!!!
111 117
112 fd_set rfds; 118 fd_set rfds;
113 FD_ZERO( &rfds ); 119 FD_ZERO( &rfds );
114 FD_SET( daemon_fd, &rfds ); 120 FD_SET( daemon_fd, &rfds );
115 struct timeval tv; 121 struct timeval tv;
116 tv.tv_sec = 0; 122 tv.tv_sec = 0;
117 tv.tv_usec = 0; 123 tv.tv_usec = 10;
118 int result = select( daemon_fd+1, &rfds, NULL, NULL, &tv ); 124 int result = select( daemon_fd+1, &rfds, NULL, NULL, &tv );
119 return FD_ISSET( daemon_fd, &rfds ); 125 return FD_ISSET( daemon_fd, &rfds );
120} 126}
121 127
122void Wellenreiter::timerEvent( QTimerEvent* e ) 128void Wellenreiter::timerEvent( QTimerEvent* e )
123{ 129{
124 //qDebug( "checking for message..." ); 130 qDebug( "checking for message..." );
125 131
126 if ( hasMessage() ) 132 if ( hasMessage() )
127 { 133 {
128 handleMessage(); 134 handleMessage();
129 } 135 }
130 else 136 else
131 { 137 {
132 //qDebug( "no message :(" ); 138 qDebug( "no message :(" );
133 } 139 }
134} 140}
135 141
136void Wellenreiter::addNewItem( QString type, QString essid, QString ap, bool wep, int channel, int signal ) 142void Wellenreiter::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
137{ 143{
138 // FIXME: this code belongs in customized QListView, not into this class 144 // FIXME: this code belongs in customized QListView, not into this class
139 145
140 // search, if we had an item with this essid once before 146 // search, if we had an item with this essid once before
141 147
142 QListViewItem* item = netview->firstChild(); 148 QListViewItem* item = netview->firstChild();
143 149
144 while ( item && ( item->text( 0 ) != essid ) ) 150 while ( item && ( item->text( 0 ) != essid ) )
145 { 151 {
146 qDebug( "itemtext: %s", (const char*) item->text( 0 ) ); 152 qDebug( "itemtext: %s", (const char*) item->text( 0 ) );
147 item = item->itemBelow(); 153 item = item->itemBelow();
148 } 154 }
149 if ( item ) 155 if ( item )
150 { 156 {
151 qDebug( "found!" ); 157 qDebug( "found!" );
152 new MScanListItem( item, type, essid, ap, wep, channel, signal ); 158 new MScanListItem( item, type, essid, macaddr, wep, channel, signal );
153 } 159 }
154 else 160 else
155 { 161 {
156 new MScanListItem( netview, type, essid, ap, wep, channel, signal ); 162 new MScanListItem( netview, type, essid, macaddr, wep, channel, signal );
157 } 163 }
158} 164}
159 165
160void Wellenreiter::buttonClicked() 166void Wellenreiter::buttonClicked()
161{ 167{
162 168
163 // FIXME: communicate with daemon and set button text according to state 169 // FIXME: communicate with daemon and set button text according to state
164 170
165 button->setText( "Stop Scanning" ); 171 button->setText( "Stop Scanning" );
166 172
167 // add some icons, so that we can see if this works 173 // add some icons, so that we can see if this works
168 174
169 addNewItem( "managed", "DummyNet", "04:00:20:EF:A6:43", true, 6, 80 ); 175 addNewItem( "managed", "DummyNet", "04:00:20:EF:A6:43", true, 6, 80 );
170 addNewItem( "adhoc", "DummyNet", "40:03:A3:E7:56:22", false, 11, 30 ); 176 addNewItem( "adhoc", "DummyNet", "40:03:A3:E7:56:22", false, 11, 30 );
171 177
172 QString command ("98"); 178 QString command ("98");
173 179
174 sendcomm( DAEMONADDR, DAEMONPORT, (const char*) command ); 180 sendcomm( DAEMONADDR, DAEMONPORT, (const char*) command );
175 181
176} 182}
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
new file mode 100644
index 0000000..d938561
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
@@ -0,0 +1,1281 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14***********************************************************************/
15
16#include "wellenreiterbase.h"
17
18#include <qheader.h>
19#include <qlabel.h>
20#include <qlistview.h>
21#include <qmultilineedit.h>
22#include <qpushbutton.h>
23#include <opie/otabwidget.h>
24#include <qlayout.h>
25#include <qvariant.h>
26#include <qtooltip.h>
27#include <qwhatsthis.h>
28#include <qimage.h>
29#include <qpixmap.h>
30
31static const char* const image0_data[] = {
32"150 105 949 2",
33"g0 c #000000",
34"g3 c #000008",
35"g1 c #000400",
36"i5 c #000408",
37"g2 c #080000",
38"hD c #080008",
39"hB c #080400",
40"g4 c #080408",
41"gA c #080808",
42"gz c #080c08",
43"kk c #080c10",
44"ij c #100000",
45"kQ c #100408",
46"hA c #100c10",
47"gB c #101010",
48"lD c #101410",
49"ie c #180000",
50"iC c #180400",
51"gC c #181418",
52"lb c #181810",
53"gy c #181818",
54"kM c #181c18",
55"j2 c #182018",
56"lB c #200000",
57"jx c #200408",
58"jv c #201820",
59"hY c #201c20",
60"iz c #202020",
61"ho c #202420",
62"lR c #290000",
63"lS c #290008",
64"mi c #292429",
65"gx c #292829",
66"iB c #292c29",
67"hC c #312c29",
68"im c #312c31",
69"hj c #313031",
70"mR c #313431",
71"kP c #390000",
72"ku c #393439",
73"hi c #393831",
74"kt c #393839",
75"kN c #393c39",
76"ii c #410000",
77"mE c #413c41",
78"gw c #414041",
79"hX c #414441",
80"lf c #41444a",
81"kD c #4a0000",
82"g5 c #4a444a",
83"iK c #4a484a",
84"mS c #4a4c4a",
85"jw c #520008",
86"hn c #524c4a",
87"hp c #524c52",
88"hT c #525052",
89"lx c #52505a",
90"hG c #525552",
91"jh c #5a555a",
92"iL c #5a595a",
93"gv c #5a5d5a",
94"iJ c #620000",
95"mq c #625d62",
96"hU c #626162",
97"l8 c #626562",
98"ig c #6a0000",
99"jk c #6a0400",
100"ik c #6a246a",
101"hH c #6a286a",
102"jM c #6a656a",
103"hm c #6a696a",
104"mj c #6a6d6a",
105"i1 c #730008",
106"kr c #732c73",
107"mm c #733073",
108"le c #736d73",
109"gY c #737173",
110"mh c #737573",
111"lA c #7b0000",
112"i6 c #7b347b",
113"hE c #7b387b",
114"lu c #7b6d10",
115"kh c #7b797b",
116"kj c #7b7d7b",
117"lc c #830000",
118"kW c #830400",
119"mA c #833c83",
120"gZ c #834083",
121"lF c #836900",
122"bd c #836d00",
123"fO c #836d08",
124"lv c #836d10",
125"c8 c #837100",
126"cq c #837108",
127"fB c #837110",
128"lG c #837118",
129"f7 c #837120",
130"iQ c #837129",
131"hv c #837518",
132"d1 c #837520",
133"jy c #837529",
134"gm c #837531",
135"ha c #837539",
136"fp c #837931",
137"kv c #837939",
138"mu c #837d83",
139"iy c #83817b",
140"gD c #838183",
141"kF c #838583",
142"iD c #8b0000",
143"lT c #8b448b",
144"mG c #8b488b",
145"mM c #8b4c8b",
146"bb c #8b6d00",
147"lE c #8b6d08",
148"aT c #8b7100",
149"cH c #8b7108",
150"ft c #8b7110",
151"#H c #8b7500",
152"af c #8b7508",
153"az c #8b7510",
154"#K c #8b7518",
155"ds c #8b7520",
156"lX c #8b7529",
157"fe c #8b7900",
158"#q c #8b7908",
159"jO c #8b7910",
160"bg c #8b7918",
161"c. c #8b7920",
162"fL c #8b7929",
163"h4 c #8b7939",
164"i9 c #8b7941",
165"jE c #8b7d20",
166"i. c #8b7d29",
167"cb c #8b7d31",
168"ex c #8b7d39",
169"eO c #8b7d41",
170"e5 c #8b7d4a",
171"iu c #8b8129",
172"hS c #8b8131",
173"eQ c #8b8139",
174"ls c #8b8141",
175"gM c #8b814a",
176"dN c #8b8152",
177"k# c #8b855a",
178"i0 c #8b858b",
179"id c #8b898b",
180"hh c #8b8d8b",
181"hk c #8b8d94",
182"if c #940400",
183"mw c #944c94",
184"il c #945094",
185"eX c #947500",
186"eV c #947508",
187"aE c #947510",
188"mF c #947594",
189"i# c #947900",
190"e7 c #947908",
191"bR c #947910",
192"bu c #947918",
193"c6 c #947920",
194"jf c #947d08",
195"## c #947d10",
196"b2 c #947d18",
197"a5 c #947d20",
198"jb c #948110",
199"aG c #948118",
200".Z c #948120",
201"#2 c #948129",
202"bw c #948131",
203"#8 c #948139",
204"fI c #948141",
205"kc c #948152",
206"gf c #948520",
207"bP c #948529",
208"c2 c #948531",
209"d4 c #948539",
210"ek c #948541",
211"gg c #94854a",
212"cd c #948552",
213"dR c #948939",
214"dp c #948941",
215"by c #94894a",
216"fF c #948952",
217"ky c #94895a",
218"fK c #948962",
219"h. c #94896a",
220"ff c #948d52",
221"cR c #948d5a",
222"eA c #948d6a",
223"me c #948d94",
224"lL c #94916a",
225"hu c #949173",
226"hw c #94917b",
227"hI c #949194",
228"ms c #949594",
229"mU c #9c759c",
230"mn c #9c799c",
231"j9 c #9c7d10",
232"kR c #9c7d9c",
233"ic c #9c7da4",
234"e4 c #9c8118",
235"dH c #9c8120",
236"fc c #9c8129",
237"e# c #9c8518",
238"dj c #9c8520",
239".O c #9c8529",
240"#p c #9c8531",
241"#T c #9c8539",
242"fD c #9c854a",
243"e0 c #9c8920",
244"cC c #9c8929",
245"#t c #9c8931",
246".G c #9c8939",
247"dF c #9c8941",
248"#Z c #9c894a",
249"jC c #9c8952",
250"cA c #9c8d31",
251"d7 c #9c8d39",
252"#V c #9c8d41",
253"ao c #9c8d4a",
254"fT c #9c8d52",
255"fG c #9c8d62",
256"#x c #9c914a",
257"df c #9c9152",
258"fy c #9c9162",
259"da c #9c916a",
260"du c #9c9173",
261"gX c #9c9573",
262"lJ c #9c957b",
263"ef c #9c9583",
264"jI c #9c959c",
265"m# c #9c9983",
266"jL c #9c999c",
267"jP c #9c9d8b",
268"mr c #9c9d9c",
269"ji c #a40000",
270"ld c #a40408",
271"mL c #a47da4",
272"kS c #a481a4",
273"cS c #a48929",
274"bI c #a48931",
275"ew c #a48d29",
276"ai c #a48d31",
277"gr c #a48d39",
278"l# c #a49131",
279"gV c #a49139",
280"eT c #a49141",
281".x c #a4914a",
282"#. c #a49152",
283"dg c #a4915a",
284"l. c #a49539",
285"#9 c #a49541",
286"ep c #a4954a",
287"a3 c #a49552",
288"#i c #a4955a",
289"lp c #a4956a",
290"bf c #a49952",
291"aR c #a4995a",
292".8 c #a49962",
293"gh c #a4997b",
294"bq c #a49d5a",
295"cB c #a49d6a",
296"fv c #a49d73",
297"ax c #a49d7b",
298"bl c #a49d83",
299"eb c #a49d8b",
300"jq c #a49d94",
301"eM c #a4a17b",
302"fi c #a4a183",
303"d2 c #a4a18b",
304"jY c #a4a194",
305"mb c #a4a19c",
306"mO c #a4a1a4",
307"dI c #a4a58b",
308"hK c #a4a59c",
309"mp c #a4a5a4",
310"kB c #a4a5ac",
311"ks c #ac0400",
312"hz c #ac85ac",
313"ml c #ac89ac",
314"iV c #ac9139",
315"ez c #ac9541",
316"cr c #ac954a",
317"j8 c #ac994a",
318"#G c #ac9952",
319".r c #ac995a",
320"fQ c #ac996a",
321"ck c #ac9d4a",
322"g8 c #ac9d52",
323"eW c #ac9d5a",
324"bB c #ac9d62",
325"eZ c #ac9d6a",
326"#D c #aca162",
327".U c #aca16a",
328".9 c #aca173",
329"ei c #aca17b",
330"jV c #aca194",
331"dC c #aca56a",
332"ae c #aca573",
333"e. c #aca583",
334"i8 c #aca58b",
335"fm c #aca594",
336"f2 c #aca59c",
337"my c #aca5ac",
338"jU c #acaa8b",
339"jg c #acaa94",
340"dd c #acaa9c",
341"l2 c #acaaa4",
342"jN c #acaaac",
343"kx c #acaea4",
344"lU c #acaeac",
345"iI c #b40000",
346"ih c #b40400",
347"ki c #b46db4",
348"md c #b48db4",
349"mB c #b491b4",
350"eD c #b4a152",
351"cV c #b4a15a",
352"iv c #b4a162",
353"b0 c #b4a16a",
354".l c #b4a173",
355"dT c #b4a17b",
356"iO c #b4a55a",
357"dU c #b4a562",
358"eE c #b4a56a",
359".V c #b4a573",
360"at c #b4a57b",
361"jG c #b4aa62",
362"d# c #b4aa6a",
363"dm c #b4aa73",
364".S c #b4aa7b",
365".J c #b4aa83",
366"cY c #b4aa8b",
367"bA c #b4ae7b",
368"#k c #b4ae8b",
369"jA c #b4ae94",
370"cl c #b4ae9c",
371"fY c #b4aea4",
372"lI c #b4aeac",
373"mD c #b4aeb4",
374"dB c #b4b294",
375"eC c #b4b29c",
376"dP c #b4b2a4",
377"gT c #b4b2ac",
378"gt c #b4b2b4",
379"bZ c #b4b6ac",
380"l5 c #b4b6b4",
381"h1 c #b4babd",
382"j3 c #bd0408",
383"mJ c #bd75bd",
384"jl c #bd79bd",
385"mx c #bd95bd",
386"mg c #bd99bd",
387"mz c #bd9dbd",
388"db c #bdaa62",
389"go c #bdaa6a",
390"bK c #bdae6a",
391"is c #bdae73",
392"cL c #bdae7b",
393"ap c #bdae83",
394"f3 c #bdae8b",
395"gN c #bdb273",
396"aN c #bdb27b",
397".h c #bdb283",
398".C c #bdb294",
399"dX c #bdb2a4",
400"kl c #bdb67b",
401"aa c #bdb68b",
402".Y c #bdb694",
403"c4 c #bdb69c",
404"gb c #bdb6a4",
405"bW c #bdb6ac",
406"gs c #bdb6b4",
407"in c #bdb6bd",
408"lo c #bdba9c",
409"al c #bdbaa4",
410"aY c #bdbaac",
411"fZ c #bdbab4",
412"gP c #bdbabd",
413"eR c #bdbebd",
414"cU c #bdbec5",
415"fl c #bdc2bd",
416"ib c #bdc6c5",
417"lz c #c50000",
418"kC c #c50400",
419"lw c #c56d08",
420"dc c #c57108",
421"lt c #c57118",
422"mH c #c57dc5",
423"gu c #c581c5",
424"hV c #c585cd",
425"iT c #c58d00",
426"jc c #c58d08",
427"lQ c #c59100",
428"k. c #c59531",
429"j6 c #c59dc5",
430"mN c #c5a1c5",
431"k4 c #c5b673",
432"jo c #c5b67b",
433"dM c #c5b683",
434"lV c #c5ba7b",
435"dO c #c5ba83",
436"#d c #c5ba8b",
437"#3 c #c5ba94",
438"ab c #c5ba9c",
439"#F c #c5be9c",
440"cy c #c5beac",
441"fj c #c5beb4",
442".5 c #c5c29c",
443".e c #c5c2a4",
444"cg c #c5c2ac",
445"dx c #c5c2bd",
446"f1 c #c5c2c5",
447"eG c #c5c6bd",
448"hc c #c5c6c5",
449"cX c #c5c6cd",
450"kT c #c5cacd",
451"jj c #cd0000",
452"jJ c #cd0008",
453"jK c #cd0400",
454"j5 c #cd0408",
455"cx c #cd6d00",
456"b1 c #cd7100",
457"aX c #cd7108",
458"ht c #cd7110",
459"kn c #cd7129",
460"ed c #cd7500",
461"as c #cd7508",
462"kG c #cd7510",
463"bi c #cd7518",
464"gp c #cd7910",
465"kd c #cd7931",
466"h0 c #cd7d39",
467"lC c #cd89cd",
468"br c #cd8d00",
469"bT c #cd9100",
470"bU c #cd9108",
471"cT c #cd9118",
472"jW c #cd9120",
473"bt c #cd9500",
474"g9 c #cd9508",
475"fA c #cd9510",
476"gQ c #cd9518",
477"ip c #cd9520",
478"lW c #cd956a",
479"bp c #cd9908",
480"e2 c #cd9920",
481"cW c #cd9929",
482"lP c #cd9931",
483"lY c #cd9939",
484"lO c #cd9d7b",
485"lZ c #cd9d8b",
486"g6 c #cda5cd",
487"j1 c #cdaacd",
488"kL c #cdaecd",
489"k2 c #cdbe8b",
490"fr c #cdbe9c",
491"ec c #cdc294",
492"cP c #cdc29c",
493"aW c #cdc2a4",
494"eU c #cdc2ac",
495"lk c #cdc694",
496"h7 c #cdc69c",
497"ct c #cdc6a4",
498"#Q c #cdc6ac",
499".p c #cdc6b4",
500"b6 c #cdc6bd",
501".W c #cdcaac",
502"ln c #cdcab4",
503"eK c #cdcabd",
504"cD c #cdcacd",
505"mc c #cdcad5",
506"cN c #cdcec5",
507"bF c #cdcecd",
508"eP c #cdced5",
509"iF c #d50000",
510"i3 c #d50400",
511"fo c #d57100",
512"c5 c #d57500",
513"f5 c #d57508",
514"cZ c #d57510",
515"gI c #d57900",
516"b5 c #d57908",
517"b3 c #d57910",
518"#4 c #d57918",
519"c9 c #d57920",
520"ke c #d57d08",
521"aw c #d57d10",
522"bC c #d57d18",
523"be c #d57d20",
524"fk c #d57d31",
525"fV c #d58120",
526"aU c #d58129",
527"fh c #d58131",
528"hZ c #d58139",
529"hg c #d58141",
530"jD c #d58539",
531"bL c #d58541",
532"lH c #d5854a",
533"lr c #d58552",
534"gO c #d5855a",
535"cE c #d58952",
536"iq c #d5895a",
537"fq c #d58962",
538"jH c #d589cd",
539"mW c #d58dd5",
540"cQ c #d59100",
541"dk c #d59108",
542"hl c #d591d5",
543"aJ c #d59500",
544"a4 c #d59508",
545"eu c #d59510",
546"cM c #d59518",
547"mo c #d595d5",
548"bx c #d59900",
549"#A c #d59908",
550"ak c #d59910",
551"bY c #d59918",
552"er c #d59d08",
553"#h c #d59d10",
554"cG c #d59d18",
555"bn c #d59d20",
556"#X c #d59d31",
557"dZ c #d59d6a",
558"kq c #d59d83",
559"dh c #d5a118",
560"#B c #d5a120",
561"di c #d5a129",
562"eS c #d5a139",
563"a8 c #d5a17b",
564"e8 c #d5a18b",
565"aL c #d5a583",
566"dr c #d5a58b",
567"hM c #d5a59c",
568"fz c #d5aa83",
569"kK c #d5aa8b",
570"jZ c #d5aa94",
571"lN c #d5aa9c",
572"jd c #d5aaa4",
573"kw c #d5aaac",
574"jt c #d5ae9c",
575"mv c #d5aed5",
576"hF c #d5b2d5",
577"a7 c #d5c69c",
578"js c #d5ca9c",
579"fR c #d5caa4",
580"d5 c #d5caac",
581"bN c #d5cab4",
582"h2 c #d5cea4",
583"a1 c #d5ceac",
584"aO c #d5cebd",
585"c1 c #d5cec5",
586"jm c #d5cecd",
587"mT c #d5ced5",
588"c0 c #d5d2b4",
589"an c #d5d2bd",
590"gG c #d5d2c5",
591"aB c #d5d2cd",
592"bj c #d5d2d5",
593"l4 c #d5d2de",
594"b# c #d5d6cd",
595"#N c #d5d6d5",
596"hs c #d5d6de",
597"kp c #d5d6ff",
598"f# c #d5dade",
599"iG c #de0000",
600"ly c #de0008",
601"i4 c #de0400",
602"he c #de7d10",
603"cv c #de8120",
604"aQ c #de8129",
605"dA c #de8520",
606"aq c #de8529",
607"au c #de8531",
608"cu c #de8539",
609"gL c #de8920",
610"cc c #de8929",
611"aP c #de8931",
612"#M c #de8941",
613"hr c #de8962",
614"aS c #de8d31",
615"fg c #de8d41",
616"#I c #de8d4a",
617"hf c #de8d52",
618"bJ c #de8d5a",
619"iR c #de8d62",
620"fX c #de8d6a",
621"ea c #de9162",
622"ko c #de9173",
623"kb c #de9573",
624"iA c #de95de",
625"fN c #de9908",
626"kE c #de99de",
627"mt c #de9dde",
628"iU c #dea110",
629"hx c #dea118",
630".7 c #dea120",
631"hL c #dea518",
632"fJ c #dea520",
633".T c #dea529",
634"bv c #dea56a",
635"dl c #dea573",
636"do c #dea57b",
637"iY c #dea583",
638"dS c #deaa31",
639"#f c #deaa39",
640".I c #deaa7b",
641"cm c #deaa8b",
642"et c #deaa94",
643"dw c #deae41",
644"fC c #deae9c",
645"iS c #deaea4",
646"lM c #deaeac",
647"ey c #deb2ac",
648"l0 c #deb2b4",
649"lK c #deb6b4",
650"fP c #deb6bd",
651"i7 c #deb6de",
652"kO c #debade",
653"mX c #debede",
654"iM c #ded6b4",
655"g. c #ded6bd",
656".b c #ded6c5",
657"bh c #ded6d5",
658"f0 c #ded6de",
659"b9 c #dedac5",
660".z c #dedacd",
661"#5 c #dedad5",
662"aV c #dedade",
663"eF c #dedae6",
664"b. c #dedecd",
665".R c #deded5",
666"cF c #dedede",
667"h6 c #dee2e6",
668"dK c #e68929",
669"bk c #e68939",
670"ca c #e68d31",
671"d9 c #e68d52",
672"gq c #e69139",
673"dD c #e69141",
674"#n c #e6914a",
675"fa c #e69162",
676"gH c #e69539",
677"kf c #e69541",
678"eI c #e6954a",
679"#r c #e69552",
680"jT c #e69562",
681"lq c #e6956a",
682"m. c #e695bd",
683"cw c #e6995a",
684"fW c #e6996a",
685"l9 c #e69973",
686"dL c #e69983",
687"dG c #e699b4",
688"ix c #e699cd",
689"jB c #e69d73",
690"gJ c #e69d8b",
691"mK c #e69de6",
692"l6 c #e6a18b",
693"gF c #e6a1d5",
694"ma c #e6a1de",
695"hW c #e6a1e6",
696"mI c #e6a5e6",
697"la c #e6aa20",
698"dQ c #e6aa6a",
699"kU c #e6ae31",
700"ej c #e6ae41",
701"ci c #e6ae7b",
702"#R c #e6ae83",
703"gj c #e6b231",
704"g7 c #e6b27b",
705"#y c #e6b283",
706".B c #e6b28b",
707"en c #e6b294",
708"aj c #e6b29c",
709"h9 c #e6b2ac",
710"ce c #e6b69c",
711"fE c #e6b6ac",
712"dW c #e6baa4",
713"el c #e6baac",
714"ju c #e6bac5",
715"kV c #e6bacd",
716"gi c #e6bec5",
717"l1 c #e6becd",
718"mC c #e6bee6",
719"mf c #e6c2e6",
720"mQ c #e6c6e6",
721"de c #e6dac5",
722"aC c #e6decd",
723"#1 c #e6ded5",
724"mP c #e6dee6",
725"bM c #e6deee",
726"fn c #e6e2cd",
727".w c #e6e2d5",
728".N c #e6e2de",
729"bD c #e6e2e6",
730"fU c #e6e2ee",
731"dy c #e6e6d5",
732"av c #e6e6e6",
733"gE c #e6e6ee",
734"kY c #e6eae6",
735"d8 c #e6eaee",
736"f9 c #e6eaf6",
737"iP c #ee8d31",
738"fb c #ee9141",
739"dz c #ee9541",
740"d6 c #ee954a",
741"bE c #ee955a",
742"h3 c #ee9941",
743"jS c #ee994a",
744"eH c #ee9952",
745"#a c #ee9962",
746"jF c #ee9d4a",
747"kz c #ee9d52",
748"hO c #ee9d5a",
749"aA c #ee9d62",
750".0 c #ee9d6a",
751"bH c #ee9d7b",
752"a. c #ee9db4",
753"#0 c #eea16a",
754".1 c #eea173",
755"b8 c #eea17b",
756"hR c #eea183",
757"kH c #eea1de",
758"kg c #eea583",
759"gn c #eea5cd",
760"eN c #eea5d5",
761"f8 c #eea5de",
762"h5 c #eea5e6",
763"mk c #eea5ee",
764"ja c #eeb639",
765"gc c #eeb641",
766"ad c #eeb68b",
767"cK c #eeb694",
768"jX c #eeba83",
769"k9 c #eeba8b",
770"aH c #eeba94",
771".u c #eeba9c",
772"gk c #eebe8b",
773"fH c #eebe9c",
774"eY c #eebeb4",
775"iX c #eebec5",
776"ia c #eebecd",
777"ka c #eebed5",
778"ge c #eec29c",
779"cs c #eec2c5",
780"co c #eec2cd",
781"fs c #eec6cd",
782"kJ c #eec6d5",
783"ee c #eecade",
784"hb c #eecae6",
785"l7 c #eecaee",
786"jR c #eee2cd",
787".E c #eee2de",
788"eg c #eee6d5",
789"kA c #eee6de",
790"ar c #eee6ee",
791"jQ c #eee6f6",
792"#L c #eeeade",
793"#m c #eeeae6",
794"#6 c #eeeaee",
795"bG c #eeeaf6",
796"f. c #eeeee6",
797".# c #eeeeee",
798".2 c #eeeef6",
799"hP c #eeeeff",
800"ga c #eef2f6",
801"eJ c #eef2ff",
802"jp c #f69952",
803"ir c #f69d41",
804"km c #f6a152",
805"hd c #f6a15a",
806"eL c #f6a162",
807"bc c #f6a56a",
808".M c #f6a573",
809"fd c #f6a58b",
810"#c c #f6a5bd",
811".P c #f6a5c5",
812"gR c #f6ba8b",
813"lh c #f6be8b",
814"k8 c #f6be94",
815"#j c #f6be9c",
816"hJ c #f6bea4",
817"h# c #f6c294",
818"k7 c #f6c29c",
819"em c #f6c2a4",
820".o c #f6c2ac",
821"gU c #f6c2cd",
822"li c #f6c69c",
823"lg c #f6c6a4",
824"eo c #f6c6ac",
825"aD c #f6c6b4",
826"eq c #f6c6bd",
827"gl c #f6c6e6",
828"f4 c #f6ca62",
829"dE c #f6ca6a",
830"cJ c #f6cab4",
831".6 c #f6cabd",
832"hN c #f6cac5",
833"iw c #f6cad5",
834"j0 c #f6caee",
835"dV c #f6cecd",
836"kZ c #f6ced5",
837"e1 c #f6cede",
838"hQ c #f6cee6",
839"f6 c #f6ceee",
840"hq c #f6cef6",
841"aK c #f6d2de",
842"io c #f6d2e6",
843"d. c #f6d2ee",
844"l3 c #f6d2f6",
845"mY c #f6d6f6",
846"a0 c #f6eee6",
847".3 c #f6eeee",
848"#o c #f6eef6",
849"gK c #f6eeff",
850"dJ c #f6f2e6",
851"c# c #f6f2ee",
852".L c #f6f2f6",
853"#s c #f6f2ff",
854"je c #f6f6ee",
855".t c #f6f6f6",
856"a# c #f6f6ff",
857"#b c #f6faff",
858"j4 c #ff0000",
859"kX c #ff0008",
860"iH c #ff0400",
861"iE c #ff0408",
862"i2 c #ff0808",
863"#7 c #ffa56a",
864"k6 c #ffaa62",
865"fu c #ffae73",
866"cf c #ffae7b",
867"bo c #ffae8b",
868"k5 c #ffb26a",
869"dt c #ffb273",
870"#z c #ffb28b",
871"fM c #ffb67b",
872"cj c #ffb683",
873"#P c #ffb68b",
874"h8 c #ffb6ac",
875"kI c #ffb6b4",
876"e3 c #ffb6ff",
877"k3 c #ffba83",
878"jr c #ffba8b",
879".K c #ffba94",
880".v c #ffbaa4",
881"bV c #ffbaac",
882"ev c #ffbab4",
883"mV c #ffbaff",
884"lj c #ffbe8b",
885"#W c #ffbe94",
886"ch c #ffbea4",
887"eB c #ffbeb4",
888"j7 c #ffbeff",
889"d0 c #ffc294",
890"bs c #ffc29c",
891"bm c #ffc2a4",
892"fx c #ffc2ff",
893"k1 c #ffc694",
894"iW c #ffc69c",
895"bS c #ffc6a4",
896"fw c #ffc6b4",
897"cI c #ffc6bd",
898"e9 c #ffc6ff",
899"g# c #ffca6a",
900"lm c #ffca9c",
901"gS c #ffcaa4",
902"am c #ffcaac",
903"#S c #ffcab4",
904"#l c #ffcac5",
905"#C c #ffcaff",
906"c3 c #ffce73",
907".H c #ffce8b",
908"cp c #ffceac",
909"b7 c #ffceb4",
910".j c #ffcebd",
911".Q c #ffcec5",
912"bQ c #ffcecd",
913"aI c #ffceff",
914"fS c #ffd27b",
915"dv c #ffd2ac",
916"dY c #ffd2b4",
917"c7 c #ffd2bd",
918"ac c #ffd2c5",
919".X c #ffd2cd",
920"bO c #ffd2d5",
921"dn c #ffd2de",
922"bz c #ffd2e6",
923"hy c #ffd2ee",
924".k c #ffd2ff",
925"eh c #ffd683",
926"b4 c #ffd68b",
927"jz c #ffd6b4",
928"bX c #ffd6bd",
929"ah c #ffd6c5",
930".4 c #ffd6cd",
931"a2 c #ffd6d5",
932"es c #ffd6de",
933"cO c #ffd6ee",
934"iZ c #ffd6f6",
935".A c #ffd6ff",
936"iN c #ffda83",
937"d3 c #ffda8b",
938"j. c #ffdabd",
939"a9 c #ffdac5",
940".g c #ffdacd",
941".f c #ffdad5",
942".y c #ffdade",
943"aZ c #ffdae6",
944"gW c #ffdaee",
945"a6 c #ffdaf6",
946"#U c #ffdaff",
947"e6 c #ffdec5",
948"gd c #ffdecd",
949"ay c #ffded5",
950"ba c #ffdede",
951"#u c #ffdee6",
952"#E c #ffdeee",
953"cz c #ffdef6",
954"#g c #ffdeff",
955"j# c #ffe2d5",
956"dq c #ffe2de",
957".F c #ffe2e6",
958".s c #ffe2ee",
959"ag c #ffe2f6",
960"#e c #ffe2ff",
961"cn c #ffe6de",
962"#Y c #ffe6e6",
963"aF c #ffe6ee",
964".d c #ffe6ff",
965"ll c #ffeade",
966"#v c #ffeae6",
967"aM c #ffeaee",
968"#w c #ffeaf6",
969".D c #ffeaff",
970"jn c #ffeee6",
971"k0 c #ffeeee",
972".c c #ffeef6",
973".m c #ffeeff",
974"it c #fff2ee",
975"#J c #fff2f6",
976".a c #fff2ff",
977"#O c #fff6f6",
978".i c #fff6ff",
979".q c #fffaf6",
980".n c #fffaff",
981"Qt c #ffffff",
982"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
983"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
984"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
985"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
986"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
987"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
988"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
989"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
990"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
991"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
992"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
993"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.eQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
994"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.gQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
995"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.h.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
996"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.j.kQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
997"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.l.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
998"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.n.o.pQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
999"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qQtQtQtQtQtQtQtQtQt.r.sQtQtQtQtQtQtQtQt.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1000"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.iQtQtQtQtQtQtQt.n.u.vQtQtQtQtQtQtQt.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1001"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.wQtQtQtQtQtQtQtQtQt.x.yQtQtQtQtQtQtQtQt.zQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1002"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.AQtQtQtQtQtQtQt.i.B.CQtQtQtQtQtQtQt.D.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1003"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQtQtQtQtQtQtQt.E.FQtQtQtQtQtQtQtQt.G.HQtQtQtQtQtQtQt.a.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1004"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.mQtQtQtQtQtQtQt.hQtQtQtQtQtQtQt.a.I.JQtQtQtQtQtQtQt.K.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1005"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQt.qQtQtQtQtQt.L.M.NQtQtQtQtQtQtQt.O.PQtQtQtQtQtQt.n.Q.RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1006"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.AQtQtQtQtQtQtQt.S.aQtQtQtQtQtQt.m.T.UQtQtQtQtQtQtQt.VQtQtQtQtQtQtQt.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1007"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.WQtQtQtQtQtQt.X.YQtQtQtQtQtQtQt.Z.0.nQtQtQtQtQt.w.1.2QtQtQtQtQt.3.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1008"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.D.4.nQtQtQtQtQt.5.6QtQtQtQtQtQt.D.7.8QtQtQtQtQtQt.c.9QtQtQtQtQtQt.i.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1009"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQtQtQtQtQtQtQt.hQtQtQtQtQtQt.a#.QtQtQtQtQtQtQt###a#bQtQtQtQtQt.h#c.nQtQtQtQtQt#dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1010"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.dQtQtQtQtQtQt.F.YQtQtQtQtQt#e#f#gQtQtQtQtQt.d#h#iQtQtQtQtQtQt#j#kQtQtQtQtQt.D#l.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1011"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#mQtQtQtQtQt.b#n#oQtQtQtQtQt#p.DQtQtQtQtQtQt#q#r#sQtQtQtQtQt#t#uQtQtQtQtQt#v.JQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1012"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.D#wQtQtQtQtQtQt#x.aQtQtQtQt.i#y#zQtQtQtQtQt#g#A#xQtQtQtQtQt.d#B#CQtQtQtQtQt#D#EQtQtQtQtQtQt.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1013"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#FQtQtQtQtQtQt#c.SQtQtQtQtQt#G#a.nQtQtQtQtQt#H#I.2QtQtQtQt#J#K.iQtQtQtQt#L#M#NQtQtQtQtQt#O.n.qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1014"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a#PQtQtQtQtQt#Q#R.mQtQtQtQt#S#TQtQtQtQtQt#U#A#VQtQtQtQtQt#W#X#eQtQtQtQt#Y#ZQtQtQtQtQtQt.i.kQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1015"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.tQtQtQtQtQt#o#0#1QtQtQtQtQt#2.mQtQtQtQt#3#4#5QtQtQtQt.n#H#M#6QtQtQtQt#7#8QtQtQtQtQt#9a.a#QtQtQtQtQtaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1016"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a.n.nQtQtQtQtQtabacQtQtQtQt.iadaeQtQtQtQt.mafagQtQtQtQtah#A#TQtQtQtQtQtaiaj.aQtQtQt#eakalQtQtQtQtQtam.y.iQtQtQtQtQt.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1017"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtan.nQtQtQtQtQtQtaoQtQtQtQtQtapaqarQtQtQt.RasatQtQtQtQt.a#HauavQtQtQt#mawaxQtQtQtQtayaz.aQtQtQtQt.qaAaBQtQtQtQtQtaCQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1018"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.hQtQtQtQtQtQtaDapQtQtQtQt.iaEaFQtQtQtQtaGaH.iQtQtQtaIaJ#2QtQtQtQtQtafaKQtQtQtQt#9aL.dQtQtQtQtaM.8QtQtQtQtQt#U.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1019"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.aaNQtQtQtQtQtaOaPavQtQtQt#6aQaRQtQtQt.LaS#2QtQtQtQt#waTaUaVQtQtQtaWaXaYQtQtQt#1afaxQtQtQtQtQt#taZQtQtQtQta0.X#6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1020"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQtQtQtQtQtQtQt.iaDa1QtQtQtQtQt#Za2QtQtQtQtaR.7.dQtQtQta3aka2QtQtQt#Qa4a5.nQtQtQtacaf.mQtQtQtayaTa6QtQtQtQta7a8#gQtQtQtQta9alQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1021"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtb.QtQtQtQtQtQtQtb##r#mQtQtQtQta2#2QtQtQtQtbabb.sQtQtQtbcbdagQtQtQt#YaTbe#NQtQtQtbfbgbhQtQtQt#9bibjQtQtQt.tbkblQtQtQtQt.n#.QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1022"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbmQtQtQtQtQtQtQtae#SQtQtQtQt#ebnboQtQtQt#UbpbqQtQtQt.hbratQtQtQtbsbtbu.iQtQt.abvbwQtQtQt#ebxbyQtQtQtQt#v#K.mQtQtQtQt#tbzQtQtQtQtQtQtQtQt.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1023"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbAQtQtQtQtQtQtQtbwaMQtQtQtQtbBaq#6QtQtQt#VbCbDQtQt.FbdbEa#QtQtayaTbCbFQtQtQt#H#IbGQtQtbabdbH.nQtQtQtbIbJbGQtQtQtbKbLbMQtQtQtQtQtQtQtbNQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1024"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.m.VQtQtQtQtQtQtbObPQtQtQtQt.maf.yQtQtQtbQbb.sQtQt.k#AbPQtQtQt#daJbR.mQtQtbSbT#iQtQtQt#9bUbVQtQtQtbSbUbWQtQtQtbXbYbZQtQtQtQtQtQtQtbAQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1025"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nbQb0QtQtQtQtQt#6#M#DQtQtQt#s#n.OQtQtQtbNb1bfQtQtQtb2b3b#QtQtb4aTb5b6QtQtb7bdb8.nQtb9b5c..iQtQtc#cacbQtQtQt.3cccdQtQtQtQtQtQtQtaR.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1026"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.dQtQtQtQtQtQtQt.DcecfQtQtQtQtQtcgak#SQtQtQtchbt#FQtQtQtb2.7#eQt.mciaT.sQtQtcjbtaf.dQtQtckbTclQtQtacbbcm.DQtQtcnbbco.nQtQtcpcq#UQtQtQtQtQtQtcrcs.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1027"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtctQtQtQtQtQtQtQt#5cu#dQtQtQtQtQt#.cvavQtQtQta5aq#6Qt#bcwaTaZQtQtbfcx.SQtQtacaTb5cyQt.LaPaTczQtQtcAb1cBQtQtQtcC#KcDQtQt.iaTbJarQtQtQtQtQtckcEcFQtQtQtQtQtc#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1028"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.S.iQtQtQtQtQtQtb6cGbSQtQtQtQt.acH.oQtQtQtcIbb#uQtQt#PbT.xQtQtcJbbcK.iQtcLa4af#EQtQtbRcMcNQt#U#AaTcOQtQtcPcQcRQtQtQtcScTcUQtQtQtQtQtcVcWcXQtQtQtQtQt.m.F.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1029"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaRay.nQtQtQtQtQtcYcZc0QtQtQta#.1aT.cQtQtc1as.GQtQt.a#Hb3#5QtaaaTc2QtQtc3bbb5c4Qtc0c5c6.nQtc7c8c9bFQt.taSbbd.QtQtd#b1daQtQtQtQtQtdbdcddQtQtQtQtQtde#0aBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1030"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtdfam.iQtQtQtQtQtdgdh#UQtQtQt#gdidjQtQtQt.xdkbmQt.mdlaTa2QtaF#HcGb#Qtdmbt#HdnQt.gbbdo#eQtaiaJdpQtQtdqaTdr#gQtb7aJds.DQtQtQtQtdtbTduQtQtQtQtQtdvdwdxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1031"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtdyQtQtQtQtQtQtQtQtQtbydz#mQtQtQtQtQt#8dA.NQtQtQtdBaTdCQtQtagaTdD#oQtbBb1#VQt.bb5#H#uQtdEaT#H#kQtcVaTdFQtb9b5aTdG.nQtdHb1dIQtdJdKbddL#sQtQtQtdMb1dN.nQtQtQtQtdObedPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1032"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbSQtQtQtQtQtQtQtQt.nc2dQ#UQtQtQtQt.Daz#y.DQtQtQtdRbt#QQt.DdSaTaFQt.FaTak#UQt##btdTQtdUdk#HdV.iadbbdW.ib7aTa4dXQt#WbTc..aQtdYbbdZ#CQtQtQtd0#Ad1#eQtQtQtQtdtbUd2QtQtQtQtQtQtQtQtQt#eQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1033"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Sd3.3QtQtQtQtQtQt.id4#4d5QtQtQt.ndnbdd6.3QtQt#EaTaqavQt.Sbbd7Qt#5b3aTbOd8aqaTd9.2bcaTc5e.Qte#aX.9Qtdjc5bg.ac#ccaTea#s.n#H#HebQtQtQtecedcqee.iQtQtQtcVcxefQtQtQtQtQtQtQtegeh.pQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1034"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteiejdYQtQtQtQtQtQt.nekbtcjQtQtQt.aelbdem.nQt.menbdeoQt.nbRbt.pQt.Gbt#xQtepbta5QtdUaJ#HeqaIeraTesb7#A#Het.DcnaTeuevQtewaJex.iQtQtcp#AaTey.dQtQtQtezbUeAQtQtQtQtQtQtQta7.BeBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1035"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteCaUeDQtQtQtQtQtQt.i#8b1eEQtQtQteF#Mbd.j.nQteGb3#H#wa#eHbbeIeJ#laTb3b6bcaTb5eKeLaTc5eies#Hb5aY#SaT#HeMQtcCaT#8QtbKaTaTeN#bQta1awaTeOePQtQtQtaicxdN.iQtQtQtQtQtQtckeQeRQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1036"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#CeS##ay.iQtQtQtQt.iekbTeTQtQtQtaIbnaT.4QtQt.9bTdHQteUa4eV.mcN#AaT.6.JaJeVbOeWaJeXeYeZaJbucOe0#A#Hcz#FaJafe1.W#A#HeS#UQt.AcG#He2e3QtQt#Je4bTe5.mQtQtQtQt.ne6e7e8e9QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1037"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQta0Qtf.QtQtQtQtQtQtQtQtQtf#fabdfb.bQtQtQtQt.id4cxbP.nQtQteC#H#HaFQt.nbub1eEQt.Gb1bfQtfced.Gfdfec5.8#n#Hc5fffg#Hfhfib5eXbefjca#HfkflcaaTasfmQtfncvaTafebQtQt#ve7fofp#eQtQtQtQtaCd6bdfqePQtQtQtQtQtQtQtQtQt.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1038"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.d.FfrQt.nQtQtQtQtQtQtQt.Dfsft#AfuQtQtQtQt.iekbT##aMQtQtfvbtbR.aQtbQaT#AfwesaT#hfx.uaT#hfy#AaTfzdFfAfBfCfDfAcdfEafbTfFeYaTaJfGfH#HbxfIQt.dfJ#Ha4fKQtQt.g#HaJfL#U.nQtQtQtfMfNfOfP#gQtQtQtQtQtQtQtQtQta1.a.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1039"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.L.mfQeLfRQtQtQtQtQtQtQta##ecbb1aGdq#OQtQt.idFb1#HfS.nQtfTaT##.ifUcuaTaPaYfVaT#re.azd1fWfyfXfY.DfZ#ef0.nf1.i#5a6f2#ef3bLexeN#2edcHd..wdKaT#HeO.a#Of4aTf5d1f6a#QtQt#JcCb1f7f8f9QtQtQtQtQtQtQtg.g##i.dgaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1040"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtgbaL.Oay.aQtQtQtQtQtQt.afFbTaTgcgdQtQt.neka4aTge.a.ia5aJgfQteB#A#HcedgbUgg.Dev.d.dQtQtQtQtQt.mQt#U.i.k.n#eQt.mQt.dQt.i.aghgi.kgjaTbx#K#e.mgkaTbxazgl.iQt.aameXbtgm.A.iQtQtQtQtQt.i#vbIe2bl.n.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1041"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteFgnc.cvgoQtQtQtQtQtQtQtghgpc8awaNQtQt.id4edaTgq#5czafaTgr.i#xaTc.d.gsQtQtQtQtQtgtgugvgwgxgygzgAgAgAgAgBgCgxgwgvgD.AgEQtQtQtfvcbftgFgGgHaTgIcHgJgKQtfRgLaTedgM#e.nQtQtQtQtQtgNgLbdgOgPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1042"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.i.ighgQafgRgSQtQtQtQtQtgTdZ#HcQdjaMQt.iekaJaTfJcggU#HaJgVgWgX#U.iQtQt.dgYgZgBg0g0g1g0g0g0g2g0g3g0g4g1g0g0g3g0g3g0gCg5g6bFQt#g.D#Ug7bbbx#HfP.mQtg8a4#Hg9h..iQtQtQtQtdvh###brhahb#eQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1043"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qQtc#QtQtQtQtQtQtQtQtQtQtQtQtQthceacqb1aiay#mQtQtQtf1bL#H#HaThd.w.aekc5#Hhee.hfc8hgbjQtQtQthhhig0g0g0g0g0g0g0g0g0g0g0g0g0g0g0hjhkhlhmhnhog4g0g0g0gAhphq.LQtdxcEazhrhscn##c5eXhthuQtQtQtf.dqgVc5bbhvhw.Da#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1044"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.m.actaM.AQtQtQtQtQtQtQtQtQtQtQt.m#ecRbUbbhxbKQt.nQt#gelafbxaThxcj#e#Z#AeXeughhy#gQtcDhzhAg0g0hBhCgCg0hDg0g0g0g0g0g0g0g0g0g3g0hE#UQtQtQt.khFhGgyg0g0g0hHhIQt.a.D.AhJbbbx#HcWhKQtQtQtbKhL#HcQfBhMe3QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.aQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1045"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#bQteKhNa3hOdM#J#LQtQtQtQtQtQtQtQtQtbZcEcqaT#Hd6fRQthPhQc.gI#Hc5cAhRhSbieA.nQt.dhTg1g0g0gyhUf1hVg0g0g0g0g0g0g0g0g0g0g0g0g0g0g0gyhcQtQtQtQtQt#6hWhXhBg0g0hYhl.LQtcyhZaTh0h1Qth2h3#HaT#Hash4h5h6QtQtQtQtQtQtQtQtQtQtQtc#Qth7baab.i.tQtQtQtQtQtQtQtQtQtQtQtQtQt",
1046"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.aQth8h9i.cGgVbXdYQtQtQtQtQtQtQt.dhQexg9aTg9dja9#e#eekaJi#aJafiaibQt#gicg0g0g0hYidQtQt#Ug1g1g0g0g0g3ieifigihiiijg0g3g0g2g0ik#eQtQtQtQtQtQtQt#Cilg0g0g0iminQt#giofZc7e#bt#H#A#Hiphw.a.nQtQtQtQtQtQtQt.nQtdYbX#9diekcoe9Qt.nQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1047"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbG.acliqd1af##irisit#mQtQtQtQt.nbliuaTc5aTcviviwcdaTd1ix#6QtiygCg0g0iziA#6QtQtQtiBg0g0g0g0iCiDiEiFiEiGiHiIiJg0g3g0g0g0gvQtQtQtQtQtQtQtQtQt.diKg0g0g1iLQtQtQtdgb1#HgIfBgOgPQtQtQtQtQt.nQtiMiNiOiPe7cHiQiRfY.i.2QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1048"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.m.acliSf7iTaTiUiVb7iWQtQtQt.AiXfLaJeXaJi#iYeb.D.niZiBg1g0gyidQtQtQtQtQti0g0g0g1g0i1iHi2iFiEiHiEi3iEiHi4g2i5g0g0g1.dQtQtQtQtQtQtQtQtQtQtgPi6g0g3gyi7QtQti8e2i9f6.dQtQtQtj.j#dUjajb#AbbjciQjdf2.a.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1049"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtjeQtc#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtd8.Dfmiqhvc8bbfojfdzgN.cb##Udac9aTdsjgQth6hmg1g0g1jhaVQtQtQtQtQt.Lgxg0g0g0g2jiiEjjiHjjiEjjiHjjiHiGjkg0g3g0g0hmQtQtQtQtQtQtQtQtQtQtQt.#jlgzg0g0iKePQtjm.aaCjnjojpe4b5aTfoaTaTf7gOjq.dgEQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#OQtQtQtQtQtQtQt",
1050"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#UaM#F.fjrj#js#O#gQt.iQtQtQtQtQtQtQtQtQtQtQt.D.mjgjtc.g9aTbT#Hhxai.ufKjuaIQthIjvg0g1iz.dQtQtQtQtQtQtQt.dg0g1g0g2jwiEi3iEiEiHjjiEiHiEiFiEiHjxg0g0g0hj.nQtQtQtQtQtQtQtQtQtQtQtQt.ahXg3g0hAgY.nQt.cbgbTaTbxeXg9jyhMjq#e.dQtQtQtQtQtQtQtQtQtQtQt.aQtjzjncPaFam.n.aQtQtQtQtQtQt",
1051"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQta#Qtb#.djAjBjCjDjEfVaijFjGiNecitb9Qta0Qt.nQtQtQthP.addiRfLaf#Hc5fOiwhsjHhog0g0g0g0gBgDQtQtQtQtQtQtQtjIg0g0g0g0i3i3iEjJiHjjiEjKiEjjiHjjiHiJg0g0g0gzQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtjLizg0g2gzjMjN#gfFjOdsgOjP.djQQtQtQtQtQt.tQtjR.ia7iNdbjS#taUekjTjUagbjQt#bQtQtQtQtQtQtQt",
1052"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.aQtbF#UjVeyeOjWbdbTaTaJi#iUcCjXcVc7ec#J#gQt#U#ejYjZfIj0.ij1g0i5g0g3g0g3g0g0j2#UQtQtQtQtQtg6g0g0g0ijj3iEj4iEiFiEiHiEjJiEiHiEiHj5g0g0g0g4fxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.ij6g0i5g0gBbjQtj7.d#eQt.iQte6jncjamj8dQj9bxaTbUfOk.k#kaev.a.dQtQtQtQtQtQtQtQtQtQtQtQt",
1053"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtgaQteP#gf2kbkckdfBaTbbcxbb#H#Hke##gLgrkfdFkg.LQtkhg0g0g0g0g0g0g0g0g0g4ki.#QtQtQtkjg0g0g0g2iHi3iEjjiEjKiEjjiHjjiHjjiHiDg0g0g0g0#gQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQthhgAg0g0kk.DQtQtklkmgVccjfb5#Hb1bdaTcqkne5kof2#ghsQta#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1054"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.iQtkp#efYgifKkqdsg9aTaJ#HaJ#H#Ai#c7.n.ahGhAg0g0g0g3g0g0g0g3g0krfxQtQtj1g0g0g0g2ksiEi3iEiHiEjKiEiHiEjKiEj4j3g0g0g0g4bFQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Dktg0g0gAkug6.ditcCdkaTaJaTbtc8ipkvkwebiZcDQt.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1055"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQta#Qths.dkxdLkyhgdsazaTedbdkzkAQtkBhXg0g0g0g0g0g0g0g0g0gAkjQtjNg0g0g0g0kCi4iHjjiEjjiHjjiEjjiHiFiHkDg0g0g0gBQtQtQtQtQtQtQtQtQtQtQtQtQtQtkEkkg0g0gxkF.n.wg#aTaTaTkGd1gMeAkHin.igEQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1056"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQt#g.mkIkJgXkKfLce.DQt.dkLkMhDg0g3g0g4g0g0g0g0kNkOgzg0g0g1kPiEiHiEjKiEiHiEi3iEiEiEiIkQg0g0g0gZQtQtQtQtQtQtQtQtQtQtQtQt.dkRg0g0gAkSkTQtjzkUfBkqkykVgt.D#gQt.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1057"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQt.nQt.nQt.qQt.3Qtbj#edP.a.3Qt.n.diKg0g0g0g0g3g0g0g0g0gAg1g0g0g0g0kWiHjKiEjKiEjKiHiFkXiFiig0g0g0g0kFQtQtQtQtQtQtQtQtQtQtQtgPhYg0g0izhlkYQt#mkZhK#UbjQt#sQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1058"QtQtQtQtQtQtQt.mQt#g.nbX#Jcpk0fR#vk1j#k2gdk3j.k4jzk5dvbKcpk6gSdUbScVk7g8k8j8k9ezjXl.jal#g7aikUcCdQe0ladjfJjb#hcVQtQtQtkFlbg0g1g0g0g0g0g0g0g0g0g0g2g0ijlciEj4iEi3iEiHiEjKldg0g0g0g0gyQtQtQtQtQtQtQtQtQtQtQtlegAg0g1lf#g.nQt#UlgcA#yezlhj8k7eDlicVgSk6cpbKdYfuc7jogdljj#lklllmjnh2itdv.ij.Qt.dQt.mQtQtQtQtQtQt",
1059"QtQtQtQtQtQt#OQt.w.iln.slodne.b8lplqcRlrlsh0jyjyf7ltlulvfOlwbdbdbdcxbdbbbdb1bdaTbbb1aTaTaTc5#Hc5eXgI#HgI#HgIfeaT.O.aQtQteRlxg0g0g0g0g0g0g0g0g0g0g0g0g0g0kPlylziEjjiElAlBg0g2g0g0g0lCQtQtQtQtQtQtQtQtQthWhYg0g0lDkhQt.tk0ezb5aTgIeXc5#Hc5aTb1aTaTbdcxbdlElFcxbdbdlFlwfOlGf7kdh4lHkylqfvkg.C.saO.n#mQtQtQtQtQt",
1060"QtQtQtQtQtQtQtQtQtQtQt.nQt.iQt.aQt.mQt.dQt#g.n.A.abF.Dfx#efZiZlIhQf2kJd2gilJlKlLlMfKlNdNe8eOlOfplPdsiphvgQftfAaflQaT.j.iQt.DkOimg1g0g0g0g0g0g0g0g0g0g0g0g0g0ielRlSijg0g0g3g0hDg0kSQtQtQtQtQtQtQtQtgthEg0g0g0lTlUQtlVdQaTbT#Hg9cHgQhvlWlXlYexlZdNjdfKl0dul1d2eel2l3fZ#gfx.mbj.n#gQt.DQt.aQt.iQtQtQtQtQtQtQtQt",
1061"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQtQtQta#Qt#oQt#6QtfUQtf#.il4.mkT.deR#Ul5d.l2h5jYl6jAQtQtQt.n.igYgyg0g0g0g0g0g0g0g3g0g0g0g0g0g0g0g0g0g0g0g0g0iL.tQtQtQtQtQt#Nl7iKg0g0g0g1l8#NQtaWl9dam.m#mambf6bZ#gcU.dmc.ifUQtfUQtbGQtQtQt.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1062"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtgtQtQtQt.il3bjQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.nQtQtQtQtQtQtQte9mdkMg0g0g0g0g0g0g0g0g0g0g0g0g0g0g1g0g0g0gymemfhIj1leilizgAg0g0g0g0gAmg.dQtQtQt.aQt.iQtQtQtQtQtQtQtQtQt.ml3.AQtQtQt.Al3.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1063"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtgtg0gYQtQt.Dg0hT.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.t.dmhmig0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g1g0g0gAkF.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtl3g0hUQtQtQtmjg0mkQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1064"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtl3g0mlQtQtf1g0hXQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbji7hTizg0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g4g0g0lDmmlDg0gyi7.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbFmnhIQtQtQthmg0jLQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1065"QtQtQtQtQtQtgPiLf1Qt#NgvjNQtavhUjLQtQtQtQtl7l8gvhTmoQtQtlUg0l8QtQt.dg0g5.LQtQtQtmpjMiLjhhhQtQt.ahUmqiLmqkhQtQtQtQtQtQtQtmri0ms.a.nQtQtQtQtQtQtQtcDmthmhXizgAg0g0g0g0g0g0g0g0g0g0g0hAgxiLkhiLlDg0gxhq.tQt.tmugvmql8#eQtQtQtQtlUjMiLjhhhQtQt.ahpkEQtQtkFizg0kugv.mQtQt.LmogvgvhG.AQtQtgtiLgvhUhIQtQtQtQtQtQtQt",
1066"QtQtQtQtQtQtj1g0mvQtl3g0kSQt.mg0mw.nQtQtmxg0gAlDgBmqQtQthqg0mlQtQtfxg0hXQtQtQthmg0gAgygBmn.iQtmyg0g4gChAg0hjQtQtQt.nmzgzg0g0g0g0mAe9QtQtQtQtQtQtQtQtQt.d.mgtkOgDmBjMkSgvkSjMmBgDmCj7QtmDgZg0g0mE#eQtQtQtQtmig0gzg4gB.mQtQtmhg0g4gyhAmn.aQtjNg0gvQt.nmFg0g4gzgyjNQt.amGg0hAgCgChhQtQtmgg0gAg4g1khQtQtQtQtQtQt",
1067"QtQtQtQtQtQtkFg0kFQtlUg0iLQtcDg0iKQtQt.Dg0gxmp.dhc.n.nQtlUg0l8QtQt.dg0iK.LQthcg0homkhc.daVQtQtmkg0iKhc#ekNg0lUQtQtmHg0g0g0kMhGkhgvgweRQtQtQtQtQtQtQtQtQtQtQtQtQt.LQt.#Qt.#Qt.tQtQtQtkhhAg0g4iL.mQtQtQtQtarizlDl7iLg0msQtbFg1izmIhc.d#NQtQtl7g0iLQtQtavhTg0mJcDQtQthlg0iKgt.dhcQtQtQtgYg0mhmKg0gw.LQtQtQtQtQt",
1068"QtQtQtQtQtQtg6g0j1Qtl3g0mLQt.mg0mM.iQtkFg0gylTiKgwi0QtQthqg0mlQtQtf1g0hXQtQthFg0kMgwmGgwmNQtQtmpg0gvQtQtmBg0mCQt.ngzg0g0ktl5Qt.nQtf1mx.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.mmvkMg0g0lDkhQtQtQtQtQtQtQthYiz.dl3gxmfQtkOg0gygwmGgwmNQtQtjNg0iLQtQtQthmg0jLQtQtQthGg0mimGg5lTlUQtQtmxg0mC.mgZiLQtQtQtQtQtQt",
1069"QtQtQtQtQtQtkFg0kFQtgtg0gvQtcDg0iKQtQtjlg0gChohogyhm.LQtlUg0l8QtQt.dg0iK.tQtgDg0lDgxizkMgvQtQtmkg0iLQtQtgYg0jLQtlUg0g0gAjNQtQtQtQtQtmr#gQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtjLizg0g0g0gxmOQtQtQtQtQtQtQt#6izkMQt.t.n#6QtkFg0gBmiizgygvQtQtl7g0iLQtQtQtjMg0kEQtQt.niKg0hYhohokMhlQtQtmhg0msQtmPQt.nQtQtQtQtQt",
1070"QtQtQtQtQtQthFg0mgQtl3g0kSQt.mg0mw.iQtmrg4ku.D.A.i.dQtQthqg0mlQtQtfxg0hXQtQtmQg0hEe9.n#NQtQtQtmpg4iLQtQtmBg0kOQtl3g0g0hY.nQtQtQtQtQtQt.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.mi7iBg0g0g0g0ilf1QtQtQtQtQtQtQtQtQthYiz#gQtQtQtQtl7g0kuf1.n.AQtQtQtjNg0iLQtQtQtjMg0hhQtQtQthmg0gv.i.A.n.DQtQtmxg0kOQtQtQtQtQtQtQtQtQt",
1071"QtQtQtQtQtQtf1hAgAgwiBg0gCg5mRg0iKQtQtQtkNg0iBmSgwlCQtQtjNg0l8QtQt#eg0hX.LQtavktg0hjiKgwmuQtQtmIg0iLQtQtmjg0msQtmThAg0gBbjQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtkhizg0g0g0g0gygucFQtQtQtQtQtQtQtQtQtarhYkMQtQtQtQtQtargwg0imiKhXkjQtQtl7g0iLQtQtQtidg0gCgw.dQt.dkMg1ktiKgwhqQtQtmhg0hIQtQtQtQtQtQtQtQtQt",
1072"QtQtQtQtQtQtQtmekuizikimgxizikhomB.nQtQt.mhGhHizgyl8QtQt#eiBg6QtQtbjmmhmQtQtQte9mUgxizgykS.aQtmVgxkhQtQthFhohqQtQtgvg4g0mvQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQte9mBgyg0g0g0g0g4gwl3.aQtQtQtQtQtQtQtQtQtQtQthTmw#eQtQtQtQtQtmTmLmiizgykS.aQteRkrkhQtQtQt#ekShoiklUQtQtl3gwmiizhYhIQtQti7mihqQtQtQtQtQtQtQtQtQt",
1073"QtQtQtQtQtQtQtQtbD.nbj.ibj.ibj.iavQtQtQtQtQtaV.ibjQt.nQt.tQtavQtQtQtcFQt.nQtQtQt.L.n#N.ibDQtQtQtaVQtQtQt.LQt.#QtQt.niBg0lD#gQtQtQtQtQtQtQtQtQtQtQtQtQtQt#NmWktg1g0g0g0g0g0hogD.nQtQtQtQtQtQtQtQtQtQtQtQt.nQtcFQtQtQtQtQtQtQt.LQt#N.ibDQtQtQtcFQtQtQtQtQt.L.n#NQtQtQtQtQt#N.i#NQtQtQt.LQt.#QtQtQtQtQtQtQtQtQt",
1074"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#UkMg0lDmX.aQtQtQtQtQtQtQtQtQtj7g6kNgAg0g1g0g0g0g0gChze9QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1075"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQthqgyg0g0hohmhWgt#UlUiAgYgwlDg0g0g0g0g0g0g0g0hAhTl3#6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1076"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#Uktg0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g0g4gymnmpQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1077"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtkjmig0g0g0g0g0g0g0g0g0g0g0g0gzkNmh#g#6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1078"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcDg6hXmigBg4g1g4gAgCgxlTgYl7.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1079"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbFmYmphWmOl7in.mavQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1080"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1081"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1082"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1083"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1084"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1085"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
1086"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
1087
1088
1089/*
1090 * Constructs a WellenreiterBase which is a child of 'parent', with the
1091 * name 'name' and widget flags set to 'f'
1092 */
1093WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags fl )
1094 : QWidget( parent, name, fl )
1095{
1096 QPixmap image0( ( const char** ) image0_data );
1097 if ( !name )
1098 setName( "WellenreiterBase" );
1099 resize( 191, 294 );
1100 setCaption( tr( "Wellenreiter" ) );
1101 WellenreiterBaseLayout = new QVBoxLayout( this );
1102 WellenreiterBaseLayout->setSpacing( 2 );
1103 WellenreiterBaseLayout->setMargin( 0 );
1104
1105 TabWidget = new OTabWidget( this, "TabWidget", OTabWidget::Global );
1106
1107 ap = new QWidget( TabWidget, "ap" );
1108 apLayout = new QVBoxLayout( ap );
1109 apLayout->setSpacing( 2 );
1110 apLayout->setMargin( 2 );
1111
1112 netview = new QListView( ap, "netview" );
1113 netview->addColumn( tr( "SSID" ) );
1114 netview->addColumn( tr( "Sig" ) );
1115 netview->addColumn( tr( "AP" ) );
1116 netview->addColumn( tr( "Chn" ) );
1117 netview->addColumn( tr( "W" ) );
1118 netview->addColumn( tr( "T" ) );
1119 netview->setFrameShape( QListView::StyledPanel );
1120 netview->setFrameShadow( QListView::Sunken );
1121 netview->setRootIsDecorated( TRUE );
1122 apLayout->addWidget( netview );
1123 TabWidget->addTab( ap, "wellenreiter/networks", tr( "Networks" ) );
1124
1125 Log = new QWidget( TabWidget, "Log" );
1126 LogLayout = new QVBoxLayout( Log );
1127 LogLayout->setSpacing( 2 );
1128 LogLayout->setMargin( 2 );
1129
1130 Log_2 = new QMultiLineEdit( Log, "Log_2" );
1131 Log_2->setText( tr( "11/18 18:15 - log started\n"
1132"11/19 20:13 - new net : \"ELAN\"\n"
1133"11/19 20:15 - new station : \"pegasus\"" ) );
1134 LogLayout->addWidget( Log_2 );
1135 TabWidget->addTab( Log, "wellenreiter/log", tr( "Log" ) );
1136
1137 tab = new QWidget( TabWidget, "tab" );
1138 tabLayout = new QGridLayout( tab );
1139 tabLayout->setSpacing( 2 );
1140 tabLayout->setMargin( 2 );
1141
1142 Log_2_2 = new QMultiLineEdit( tab, "Log_2_2" );
1143 QPalette pal;
1144 QColorGroup cg;
1145 cg.setColor( QColorGroup::Foreground, white );
1146 cg.setColor( QColorGroup::Button, QColor( 192, 192, 192) );
1147 cg.setColor( QColorGroup::Light, white );
1148 cg.setColor( QColorGroup::Midlight, QColor( 223, 223, 223) );
1149 cg.setColor( QColorGroup::Dark, QColor( 96, 96, 96) );
1150 cg.setColor( QColorGroup::Mid, QColor( 128, 128, 128) );
1151 cg.setColor( QColorGroup::Text, white );
1152 cg.setColor( QColorGroup::BrightText, white );
1153 cg.setColor( QColorGroup::ButtonText, white );
1154 cg.setColor( QColorGroup::Base, black );
1155 cg.setColor( QColorGroup::Background, black );
1156 cg.setColor( QColorGroup::Shadow, black );
1157 cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
1158 cg.setColor( QColorGroup::HighlightedText, white );
1159 pal.setActive( cg );
1160 cg.setColor( QColorGroup::Foreground, white );
1161 cg.setColor( QColorGroup::Button, QColor( 192, 192, 192) );
1162 cg.setColor( QColorGroup::Light, white );
1163 cg.setColor( QColorGroup::Midlight, QColor( 220, 220, 220) );
1164 cg.setColor( QColorGroup::Dark, QColor( 96, 96, 96) );
1165 cg.setColor( QColorGroup::Mid, QColor( 128, 128, 128) );
1166 cg.setColor( QColorGroup::Text, white );
1167 cg.setColor( QColorGroup::BrightText, white );
1168 cg.setColor( QColorGroup::ButtonText, white );
1169 cg.setColor( QColorGroup::Base, black );
1170 cg.setColor( QColorGroup::Background, black );
1171 cg.setColor( QColorGroup::Shadow, black );
1172 cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
1173 cg.setColor( QColorGroup::HighlightedText, white );
1174 pal.setInactive( cg );
1175 cg.setColor( QColorGroup::Foreground, QColor( 128, 128, 128) );
1176 cg.setColor( QColorGroup::Button, QColor( 192, 192, 192) );
1177 cg.setColor( QColorGroup::Light, white );
1178 cg.setColor( QColorGroup::Midlight, QColor( 220, 220, 220) );
1179 cg.setColor( QColorGroup::Dark, QColor( 96, 96, 96) );
1180 cg.setColor( QColorGroup::Mid, QColor( 128, 128, 128) );
1181 cg.setColor( QColorGroup::Text, QColor( 128, 128, 128) );
1182 cg.setColor( QColorGroup::BrightText, white );
1183 cg.setColor( QColorGroup::ButtonText, QColor( 128, 128, 128) );
1184 cg.setColor( QColorGroup::Base, black );
1185 cg.setColor( QColorGroup::Background, black );
1186 cg.setColor( QColorGroup::Shadow, black );
1187 cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
1188 cg.setColor( QColorGroup::HighlightedText, white );
1189 pal.setDisabled( cg );
1190 Log_2_2->setPalette( pal );
1191 QFont Log_2_2_font( Log_2_2->font() );
1192 Log_2_2_font.setFamily( "adobe-courier" );
1193 Log_2_2_font.setPointSize( 8 );
1194 Log_2_2->setFont( Log_2_2_font );
1195 Log_2_2->setText( tr( "00 0a 20 00 a8 00 e2 00 ...ESD..\n"
1196"00 0a 20 00 a8 00 e2 00 .*&23...\n"
1197"00 0a 20 00 a8 00 e2 00 ........\n"
1198"00 0a 20 00 a8 00 e2 00 ........\n"
1199"00 0a 20 00 a8 00 e2 00 ........\n"
1200"00 0a 20 00 a8 00 e2 00 ...BRA22" ) );
1201
1202 tabLayout->addWidget( Log_2_2, 0, 0 );
1203 TabWidget->addTab( tab, "wellenreiter/hex", tr( "Hex" ) );
1204
1205 about = new QWidget( TabWidget, "about" );
1206 aboutLayout = new QGridLayout( about );
1207 aboutLayout->setSpacing( 6 );
1208 aboutLayout->setMargin( 11 );
1209
1210 PixmapLabel1_3_2 = new QLabel( about, "PixmapLabel1_3_2" );
1211 PixmapLabel1_3_2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, PixmapLabel1_3_2->sizePolicy().hasHeightForWidth() ) );
1212 PixmapLabel1_3_2->setFrameShape( QLabel::Panel );
1213 PixmapLabel1_3_2->setFrameShadow( QLabel::Sunken );
1214 PixmapLabel1_3_2->setLineWidth( 2 );
1215 PixmapLabel1_3_2->setMargin( 0 );
1216 PixmapLabel1_3_2->setMidLineWidth( 0 );
1217 PixmapLabel1_3_2->setPixmap( image0 );
1218 PixmapLabel1_3_2->setScaledContents( TRUE );
1219 PixmapLabel1_3_2->setAlignment( int( QLabel::AlignCenter ) );
1220
1221 aboutLayout->addWidget( PixmapLabel1_3_2, 0, 0 );
1222
1223 TextLabel1_4_2 = new QLabel( about, "TextLabel1_4_2" );
1224 QFont TextLabel1_4_2_font( TextLabel1_4_2->font() );
1225 TextLabel1_4_2_font.setFamily( "adobe-helvetica" );
1226 TextLabel1_4_2_font.setPointSize( 10 );
1227 TextLabel1_4_2->setFont( TextLabel1_4_2_font );
1228 TextLabel1_4_2->setText( tr( "<p align=center>\n"
1229"<hr>\n"
1230"Max Moser<br>\n"
1231"Martin J. Muench<br>\n"
1232"Michael Lauer<br><hr>\n"
1233"<b>www.remote-exploit.org</b>\n"
1234"</p>" ) );
1235 TextLabel1_4_2->setAlignment( int( QLabel::AlignCenter ) );
1236
1237 aboutLayout->addWidget( TextLabel1_4_2, 1, 0 );
1238 TabWidget->addTab( about, "wellenreiter/about", tr( "About" ) );
1239 WellenreiterBaseLayout->addWidget( TabWidget );
1240
1241 button = new QPushButton( this, "button" );
1242 button->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, button->sizePolicy().hasHeightForWidth() ) );
1243 button->setText( tr( "Start Scanning" ) );
1244 WellenreiterBaseLayout->addWidget( button );
1245
1246 // tab order
1247 setTabOrder( button, netview );
1248 setTabOrder( netview, TabWidget );
1249
1250 TabWidget->setCurrentTab( tr( "Networks" ) );
1251
1252}
1253
1254/*
1255 * Destroys the object and frees any allocated resources
1256 */
1257WellenreiterBase::~WellenreiterBase()
1258{
1259 // no need to delete child widgets, Qt does it all for us
1260}
1261
1262/*
1263 * Main event handler. Reimplemented to handle application
1264 * font changes
1265 */
1266bool WellenreiterBase::event( QEvent* ev )
1267{
1268 bool ret = QWidget::event( ev );
1269 if ( ev->type() == QEvent::ApplicationFontChange ) {
1270 QFont Log_2_font( Log_2->font() );
1271 Log_2_font.setFamily( "adobe-courier" );
1272 Log_2_font.setPointSize( 8 );
1273 Log_2->setFont( Log_2_font );
1274 QFont TextLabel1_4_2_font( TextLabel1_4_2->font() );
1275 TextLabel1_4_2_font.setFamily( "adobe-helvetica" );
1276 TextLabel1_4_2_font.setPointSize( 10 );
1277 TextLabel1_4_2->setFont( TextLabel1_4_2_font );
1278 }
1279 return ret;
1280}
1281
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.h b/noncore/net/wellenreiter/gui/wellenreiterbase.h
new file mode 100644
index 0000000..b133d28
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/wellenreiterbase.h
@@ -0,0 +1,60 @@
1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3**
4** This file is part of Opie Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14**********************************************************************/
15
16#ifndef WELLENREITERBASE_H
17#define WELLENREITERBASE_H
18
19#include <qvariant.h>
20#include <qwidget.h>
21class QVBoxLayout;
22class QHBoxLayout;
23class QGridLayout;
24class QLabel;
25class QListView;
26class QListViewItem;
27class QMultiLineEdit;
28class QPushButton;
29class OTabWidget;
30
31class WellenreiterBase : public QWidget
32{
33 Q_OBJECT
34
35public:
36 WellenreiterBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
37 ~WellenreiterBase();
38
39 OTabWidget* TabWidget;
40 QWidget* ap;
41 QListView* netview;
42 QWidget* Log;
43 QMultiLineEdit* Log_2;
44 QWidget* tab;
45 QMultiLineEdit* Log_2_2;
46 QWidget* about;
47 QLabel* PixmapLabel1_3_2;
48 QLabel* TextLabel1_4_2;
49 QPushButton* button;
50
51protected:
52 QVBoxLayout* WellenreiterBaseLayout;
53 QVBoxLayout* apLayout;
54 QVBoxLayout* LogLayout;
55 QGridLayout* tabLayout;
56 QGridLayout* aboutLayout;
57 bool event( QEvent* );
58};
59
60#endif // WELLENREITERBASE_H
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.ui b/noncore/net/wellenreiter/gui/wellenreitertemplate.ui
index b290b49..63c14d1 100644
--- a/noncore/net/wellenreiter/gui/wellenreiterbase.ui
+++ b/noncore/net/wellenreiter/gui/wellenreitertemplate.ui
@@ -1,38 +1,38 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>WellenreiterBase</class> 2<class>WellenreiterTemplate</class>
3<widget> 3<widget>
4 <class>QWidget</class> 4 <class>QWidget</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>WellenreiterBase</cstring> 7 <cstring>WellenreiterTemplate</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>191</width> 14 <width>188</width>
15 <height>294</height> 15 <height>294</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Wellenreiter</string> 20 <string>Wellenreiter</string>
21 </property> 21 </property>
22 <property> 22 <property>
23 <name>layoutMargin</name> 23 <name>layoutMargin</name>
24 </property> 24 </property>
25 <property> 25 <property>
26 <name>layoutSpacing</name> 26 <name>layoutSpacing</name>
27 </property> 27 </property>
28 <vbox> 28 <vbox>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>0</number> 31 <number>0</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>2</number> 35 <number>2</number>
36 </property> 36 </property>
37 <widget> 37 <widget>
38 <class>QTabWidget</class> 38 <class>QTabWidget</class>
@@ -573,33 +573,33 @@ Michael Lauer&lt;br&gt;&lt;hr&gt;
573 </widget> 573 </widget>
574 <widget> 574 <widget>
575 <class>QPushButton</class> 575 <class>QPushButton</class>
576 <property stdset="1"> 576 <property stdset="1">
577 <name>name</name> 577 <name>name</name>
578 <cstring>button</cstring> 578 <cstring>button</cstring>
579 </property> 579 </property>
580 <property stdset="1"> 580 <property stdset="1">
581 <name>sizePolicy</name> 581 <name>sizePolicy</name>
582 <sizepolicy> 582 <sizepolicy>
583 <hsizetype>1</hsizetype> 583 <hsizetype>1</hsizetype>
584 <vsizetype>0</vsizetype> 584 <vsizetype>0</vsizetype>
585 </sizepolicy> 585 </sizepolicy>
586 </property> 586 </property>
587 <property stdset="1"> 587 <property stdset="1">
588 <name>text</name> 588 <name>text</name>
589 <string>Start Scanning</string> 589 <string>Start Scanning</string>
590 </property> 590 </property>
591 </widget> 591 </widget>
592 </vbox> 592 </vbox>
593</widget> 593</widget>
594<images> 594<images>
595 <image> 595 <image>
596 <name>image0</name> 596 <name>image0</name>