tux-droid-svn Mailing List for Tux Droid CE (Page 29)
Status: Beta
Brought to you by:
ks156
You can subscribe to this list here.
| 2007 |
Jan
|
Feb
(32) |
Mar
(108) |
Apr
(71) |
May
(38) |
Jun
(128) |
Jul
(1) |
Aug
(14) |
Sep
(77) |
Oct
(104) |
Nov
(90) |
Dec
(71) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(81) |
Feb
(18) |
Mar
(40) |
Apr
(102) |
May
(151) |
Jun
(74) |
Jul
(151) |
Aug
(257) |
Sep
(447) |
Oct
(379) |
Nov
(404) |
Dec
(430) |
| 2009 |
Jan
(173) |
Feb
(236) |
Mar
(519) |
Apr
(300) |
May
(112) |
Jun
(232) |
Jul
(314) |
Aug
(58) |
Sep
(203) |
Oct
(293) |
Nov
(26) |
Dec
(109) |
| 2010 |
Jan
(19) |
Feb
(25) |
Mar
(33) |
Apr
(1) |
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: remi <c2m...@c2...> - 2009-09-04 11:18:25
|
Author: remi
Date: 2009-09-04 13:18:09 +0200 (Fri, 04 Sep 2009)
New Revision: 5330
Removed:
software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.c
software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.h
Modified:
software_suite_v2/tuxware/tuxdriver/trunk/src/tux_cmd_parser.c
software_suite_v2/tuxware/tuxdriver/trunk/src/tux_descriptor.c
software_suite_v2/tuxware/tuxdriver/trunk/src/tux_driver.c
software_suite_v2/tuxware/tuxdriver/trunk/src/tux_types.h
software_suite_v2/tuxware/tuxdriver/trunk/src/version.h
software_suite_v2/tuxware/tuxdriver/trunk/unix/Makefile
software_suite_v2/tuxware/tuxdriver/trunk/win32/Makefile
Log:
* Removed wifi avoidance functions
* Automatic Wake up of Tux Droid on dongle plug and radio connection On.
* Updated makefiles
* Updated version
Modified: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_cmd_parser.c
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_cmd_parser.c 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_cmd_parser.c 2009-09-04 11:18:09 UTC (rev 5330)
@@ -47,7 +47,6 @@
#include "tux_usb.h"
#include "tux_user_inputs.h"
#include "tux_flippers.h"
-#include "tux_wifi_avoid.h"
#define NRCMDS 512
@@ -644,29 +643,6 @@
}
/**
- * \brief Parse a WiFi avoidance command [Level 2]
- * \param tokens Command tokens.
- * \param cmd Cmd structure.
- * \return The error result.
- */
-static TuxDrvError
-parse_tux_wifi_command(tokens_t tokens, delay_cmd_t *cmd)
-{
- TuxDrvError ret = E_TUXDRV_INVALIDCOMMAND;
-
- if (strcmp(tokens[2], "AVOID_CHANNEL") == 0)
- {
- cmd->sub_command = AVOID_CHANNEL;
- if (str_to_uint8(tokens[3],
- &cmd->wifi_avoid_channel_parameters.channel))
- {
- ret = E_TUXDRV_NOERROR;
- }
- }
- return ret;
-}
-
-/**
* \brief Parse a Tux command [Level 1]
* \param tokens Command tokens.
* \param cmd Cmd structure.
@@ -717,11 +693,6 @@
cmd->command = FLIPPERS;
ret = parse_tux_flippers_command(tokens, cmd);
}
- else if (strcmp(tokens[1], "WIFI") == 0)
- {
- cmd->command = WIFI;
- ret = parse_tux_wifi_command(tokens, cmd);
- }
return ret;
}
@@ -1042,23 +1013,6 @@
}
/**
- * \brief Execute a WiFi avoidance command.
- * \param cmd Command to execute.
- */
-static void
-execute_wifi_command (delay_cmd_t *cmd)
-{
- switch (cmd->sub_command) {
- case AVOID_CHANNEL:
- tux_wifi_avoid_channel(
- cmd->wifi_avoid_channel_parameters.channel);
- break;
- default: /* should not occur */
- log_error("execute invalid flippers command");
- }
-}
-
-/**
* \brief Execute a RAW command.
* \param cmd Command to execute.
*/
@@ -1102,9 +1056,6 @@
case FLIPPERS:
execute_flippers_command(cmd);
break;
- case WIFI:
- execute_wifi_command(cmd);
- break;
}
}
else
Modified: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_descriptor.c
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_descriptor.c 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_descriptor.c 2009-09-04 11:18:09 UTC (rev 5330)
@@ -65,7 +65,7 @@
{
char descriptor[4096];
char *p; /* points to the end of the string */
- FILE *desc_file;
+ /* FILE *desc_file; */
p = descriptor;
strcpy(p, "Tux droid descriptor\n--------------------\n\n");
Modified: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_driver.c
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_driver.c 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_driver.c 2009-09-04 11:18:09 UTC (rev 5330)
@@ -40,7 +40,7 @@
#include "tux_spinning.h"
#include "tux_usb.h"
#include "tux_flippers.h"
-#include "tux_wifi_avoid.h"
+#include "tux_types.h"
#include "version.h"
static bool driver_started = false;
@@ -226,8 +226,6 @@
tux_user_inputs_init();
/* Reset the body state */
TuxDrv_ResetPositions();
- /* Wifi avoidance */
- tux_wifi_auto_avoidance("");
}
}
@@ -237,14 +235,16 @@
static void
on_usb_connect(void)
{
+ data_frame wakeup_frame = {0xB6, 0xFF, 0x01, 0x00};
+
tux_descriptor_init();
tux_hw_status_init();
tux_sw_status_init();
tux_user_inputs_init();
tux_cmd_parser_init();
- /* Wifi avoidance */
- tux_wifi_auto_avoidance("");
tux_sw_status_set_intvalue(SW_ID_DONGLE_PLUG, true, true);
+ /* Waking up Tux Droid */
+ tux_usb_send_to_tux(wakeup_frame);
if (dongle_connected_funct)
{
dongle_connected_funct();
Modified: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_types.h
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_types.h 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_types.h 2009-09-04 11:18:09 UTC (rev 5330)
@@ -46,8 +46,7 @@
MOUTH,
SOUND_FLASH,
SPINNING,
- FLIPPERS,
- WIFI
+ FLIPPERS
} tux_command_t;
/* subcommands */
@@ -71,8 +70,7 @@
SEND,
SET,
SPEED,
- UP,
- AVOID_CHANNEL
+ UP
} tux_sub_command_t;
/*
Deleted: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.c
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.c 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.c 2009-09-04 11:18:09 UTC (rev 5330)
@@ -1,120 +0,0 @@
-/*
- * Tux Droid - WIFI avoidance
- * Copyright (C) 2008 C2ME Sa <Acness : rem...@c2...>
- *
- * 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, 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.
- */
-
-#include <string.h>
-#include <stdio.h>
-
-#include "tux_hw_cmd.h"
-#include "tux_misc.h"
-#include "tux_types.h"
-#include "tux_usb.h"
-
-/**
- * \brief Configure the RF module to avoid a given wifi channel.
- *
- * This sets the frequencies to avoid in the dongle. These settings only take
- * effect when a connection is initiated with a tux. This function should
- * be called before conneting to a tux or you have to disconnect and reconnect
- * to change it on the go.
- *
- * Channels from 1 to 14 are valid wifi channels. Set the wifi channel to 0 to
- * disable channel avoidance and use the complete range of frequencies.
- *
- * \param wifi_channel Channel to avoid.
- * \return true if successful, false otherwise.
- */
-LIBLOCAL bool
-tux_wifi_avoid_channel(unsigned char wifi_channel)
-{
- /*
- * Conversion of the lower and higher frequencies of a wifi channel into
- * ATR2406 channel numbers.
- * Channels can be from 1 to 14. The channel bandwidth is 22MHz (11MHz from
- * center frequency) and we take an extra margin of 11MHz away from min and
- * max frequencies.
- * Channel 0 disables the function.
- *
- * According to ATR2406 datasheet, p.10, ATR channel 0 (C0) is 2401.056MHz
- * and channels are distant from 0.864MHz.
- * C0 2401.056
- * C1 2401.920
- * ..
- * C93 2481.408
- * C94 2482.272
- *
- * Wifi channels are:
- * W1 2412
- * W2 2417
- * W3 2422
- * W4 2427
- * W5 2432
- * W6 2437
- * W7 2442
- * W8 2447
- * W9 2452
- * W10 2457
- * W11 2462
- * W12 2467
- * W13 2472
- * W14 2484
- *
- * We can now get the following table.
- */
- static const unsigned char lower_ATR_channel[15] =
- {0, 0, 0, 0, 0, 0, 6, 12, 18, 24, 29, 35, 41, 47, 60};
- /* The ATR has only 94 channels so limit there */
- static const unsigned char higher_ATR_channel[15] =
- {1, 28, 34, 40, 46, 51, 57, 63, 69, 75, 80, 86, 92, 94, 94};
-
- if ((wifi_channel >= 15) || (wifi_channel < 1))
- {
- return false;
- }
-
- data_frame frame = { WIRELESS_FREQ_BOUNDARIES_CMD,
- lower_ATR_channel[wifi_channel],
- higher_ATR_channel[wifi_channel], 0};
-
- return tux_usb_send_to_tux(frame);
-}
-
-/**
- * \brief Load the "tux_wifi_channel" to retrieve the current used wifi
- * channel to avoid it in the Tuxdroid radio connexion.
- * \param prior_SSID To avoiding a specifique wifi network channel.
- */
-LIBLOCAL void
-tux_wifi_auto_avoidance(const char *prior_SSID)
-{
- char cmd[256];
- int ret = -1;
-
- sprintf(cmd, "tux_wifi_channel %s", (char *)prior_SSID);
- ret = system(cmd);
-
- /* If no wifi network found or "tux_wifi_channel" not present then
- * avoid the channel number 6 */
- if (ret <= 0)
- {
- ret = 6;
- }
-
- tux_wifi_avoid_channel((unsigned char)ret);
-}
Deleted: software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.h
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.h 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/tux_wifi_avoid.h 2009-09-04 11:18:09 UTC (rev 5330)
@@ -1,27 +0,0 @@
-/*
- * Tux Droid - WIFI avoidance
- * Copyright (C) 2008 C2ME Sa <Acness : rem...@c2...>
- *
- * 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, 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.
- */
-
-#ifndef _TUX_WIFI_AVOID_H_
-#define _TUX_WIFI_AVOID_H_
-
-extern bool tux_wifi_avoid_channel(unsigned char wifi_channel);
-extern void tux_wifi_auto_avoidance(const char *prior_SSID);
-
-#endif /* _TUX_WIFI_AVOID_H_ */
Modified: software_suite_v2/tuxware/tuxdriver/trunk/src/version.h
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/src/version.h 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/src/version.h 2009-09-04 11:18:09 UTC (rev 5330)
@@ -26,7 +26,7 @@
#define VER_MAJOR 0
#define VER_MINOR 0
-#define VER_UPDATE 4
+#define VER_UPDATE 5
#define VER_REVISION SVN_REV
#define VER_DATE SVN_REVDATE
#define VER_STATE " "
Modified: software_suite_v2/tuxware/tuxdriver/trunk/unix/Makefile
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/unix/Makefile 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/unix/Makefile 2009-09-04 11:18:09 UTC (rev 5330)
@@ -38,7 +38,6 @@
$(OBJ_DIR)/tux_usb.o \
$(OBJ_DIR)/tux_user_inputs.o \
$(OBJ_DIR)/tux_flippers.o \
- $(OBJ_DIR)/tux_wifi_avoid.o \
$(OBJ_DIR)/log.o
.PHONY: make clean
@@ -70,7 +69,6 @@
$(CC) -c $(CFLAGS) $(SRC_DIR)/tux_usb.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_usb.o
$(CC) -c $(CFLAGS) $(SRC_DIR)/tux_user_inputs.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_user_inputs.o
$(CC) -c $(CFLAGS) $(SRC_DIR)/tux_flippers.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_flippers.o
- $(CC) -c $(CFLAGS) $(SRC_DIR)/tux_wifi_avoid.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_wifi_avoid.o
$(CC) -c $(CFLAGS) $(SRC_DIR)/log.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/log.o
$(CC) -o "$(OUTPUT_DIR)$(TARGET)" $(SRC_OBJS) $(LIB_DIRS) $(LIBS) $(LDFLAGS)
-@ar rcs $(OUTPUT_DIR)/libtuxdriver.a $(SRC_OBJS)
Modified: software_suite_v2/tuxware/tuxdriver/trunk/win32/Makefile
===================================================================
--- software_suite_v2/tuxware/tuxdriver/trunk/win32/Makefile 2009-09-04 11:14:05 UTC (rev 5329)
+++ software_suite_v2/tuxware/tuxdriver/trunk/win32/Makefile 2009-09-04 11:18:09 UTC (rev 5330)
@@ -43,7 +43,6 @@
$(OBJ_DIR)/tux_usb.o \
$(OBJ_DIR)/tux_user_inputs.o \
$(OBJ_DIR)/tux_flippers.o \
- $(OBJ_DIR)/tux_wifi_avoid.o \
$(OBJ_DIR)/log.o
.PHONY: make clean
@@ -75,7 +74,6 @@
$(CC) -c $(CFLAGS) $(SRC_DIR)/tux_usb.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_usb.o
$(CC) -c $(CFLAGS) $(SRC_DIR)/tux_user_inputs.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_user_inputs.o
$(CC) -c $(CFLAGS) $(SRC_DIR)/tux_flippers.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_flippers.o
- $(CC) -c $(CFLAGS) $(SRC_DIR)/tux_wifi_avoid.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/tux_wifi_avoid.o
$(CC) -c $(CFLAGS) $(SRC_DIR)/log.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/log.o
$(CC) -o "$(OUTPUT_DIR)\$(TARGET)" $(SRC_OBJS) $(LIB_DIRS) $(LIBS) $(LDFLAGS)
-@rm -fR $(OBJ_DIR)/*.o
|
|
From: remi <c2m...@c2...> - 2009-09-04 11:14:18
|
Author: remi
Date: 2009-09-04 13:14:05 +0200 (Fri, 04 Sep 2009)
New Revision: 5329
Modified:
software_suite_v2/software/tux_wifi_channel/trunk/Makefile.unix
software_suite_v2/software/tux_wifi_channel/trunk/Makefile.win32
software_suite_v2/software/tux_wifi_channel/trunk/VERSION
software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_unix.c
software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_win32.c
Log:
* Updated version to 0.0.2
* Compile to library and binary
* Export get_wifi_channel method
* Updated makefiles
Modified: software_suite_v2/software/tux_wifi_channel/trunk/Makefile.unix
===================================================================
--- software_suite_v2/software/tux_wifi_channel/trunk/Makefile.unix 2009-09-03 15:21:09 UTC (rev 5328)
+++ software_suite_v2/software/tux_wifi_channel/trunk/Makefile.unix 2009-09-04 11:14:05 UTC (rev 5329)
@@ -1,16 +1,17 @@
CC = gcc
OBJ_DIR = ./
C_INCLUDE_DIRS =
-CFLAGS = -pipe -Wall -g2 -O0
+CFLAGS = -pipe -Wall -g2 -O0 -fPIC
LIB_DIRS = -L./
LIBS =
-LDFLAGS = -pipe
+LDFLAGS = -pipe -shared
.PHONY: make clean
make:
$(CC) -c $(CFLAGS) wifi_channel_unix.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/main.o
- $(CC) -o "tux_wifi_channel" $(OBJ_DIR)/main.o $(LIB_DIRS) $(LIBS) $(LDFLAGS)
+ $(CC) -o "tux_wifi_channel" $(OBJ_DIR)/main.o $(LIB_DIRS) $(LIBS) -pipe
+ $(CC) -o "libtuxwifichannel.so" $(OBJ_DIR)/main.o $(LIB_DIRS) $(LIBS) $(LDFLAGS)
-@rm -fR $(OBJ_DIR)/*.o
clean:
Modified: software_suite_v2/software/tux_wifi_channel/trunk/Makefile.win32
===================================================================
--- software_suite_v2/software/tux_wifi_channel/trunk/Makefile.win32 2009-09-03 15:21:09 UTC (rev 5328)
+++ software_suite_v2/software/tux_wifi_channel/trunk/Makefile.win32 2009-09-04 11:14:05 UTC (rev 5329)
@@ -1,16 +1,18 @@
CC = gcc
OBJ_DIR = ./
+OUTPUT_DIR = ./
C_INCLUDE_DIRS = -I"C:\MinGWStudio\MinGW\include\ddk"
CFLAGS = -pipe -Wall -g2 -O0
LIB_DIRS = -L./
-LIBS =
-LDFLAGS = -pipe
+LIBS =
+LDFLAGS = -pipe -shared -Wl,--output-def,"$(OUTPUT_DIR)\libtuxwifichannel.def",--out-implib,"$(OUTPUT_DIR)\libtuxwifichannel.a" -s
.PHONY: make clean
make:
$(CC) -c $(CFLAGS) wifi_channel_win32.c $(C_INCLUDE_DIRS) -o $(OBJ_DIR)/main.o
- $(CC) -o "tux_wifi_channel.exe" $(OBJ_DIR)/main.o $(LIB_DIRS) $(LIBS) $(LDFLAGS)
+ $(CC) -o "tux_wifi_channel.exe" $(OBJ_DIR)/main.o $(LIB_DIRS) $(LIBS) -pipe
+ $(CC) -o "libtuxwifichannel.dll" $(OBJ_DIR)/main.o $(LIB_DIRS) $(LIBS) $(LDFLAGS)
-@rm -fR $(OBJ_DIR)/*.o
clean:
Modified: software_suite_v2/software/tux_wifi_channel/trunk/VERSION
===================================================================
--- software_suite_v2/software/tux_wifi_channel/trunk/VERSION 2009-09-03 15:21:09 UTC (rev 5328)
+++ software_suite_v2/software/tux_wifi_channel/trunk/VERSION 2009-09-04 11:14:05 UTC (rev 5329)
@@ -1 +1 @@
-tux_wifi_channel_0.0.1
\ No newline at end of file
+tux_wifi_channel_0.0.2
\ No newline at end of file
Modified: software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_unix.c
===================================================================
--- software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_unix.c 2009-09-03 15:21:09 UTC (rev 5328)
+++ software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_unix.c 2009-09-04 11:14:05 UTC (rev 5329)
@@ -24,34 +24,35 @@
#include <string.h>
static int find_channel(char * iface);
+
/**
- * \brief Program entry point.
+ * \brief Get the currently used wifi channel.
+ * You can define a prior SSID name in the first argument.
* Return the current used channel or -1.
*/
-int main(int argc, char *argv[])
+int get_wifi_channel(char *requested_SSID)
{
int channel = -1;
int chan = 0;
FILE *pcmd;
char buff[80];
char iface[10];
- memset(&iface, NULL ,sizeof(iface));
+ memset(&iface, NULL ,sizeof(iface));
-
/* Try to read the file containing the wireless card informations */
pcmd = popen("cat /proc/net/wireless | grep : ", "r");
-
+
/* If the command is done without problem, read the output stream */
if (pcmd != NULL)
{
- while (fgets(buff, 80, pcmd))
- {
- /* Try to find ":" which indicate a new iface line */
- if (strstr(buff, ":") != NULL)
- {
- sscanf(strtok(buff, ":"), "%s", iface);
+ while (fgets(buff, 80, pcmd))
+ {
+ /* Try to find ":" which indicate a new iface line */
+ if (strstr(buff, ":") != NULL)
+ {
+ sscanf(strtok(buff, ":"), "%s", iface);
/* And try to determine the channel */
- chan = find_channel(iface);
+ chan = find_channel(iface);
/* If the channel has been found, break the loop.
* Otherwise, continue with the next iface (if exists) */
if (chan > 0)
@@ -59,16 +60,24 @@
channel = chan;
break;
}
- }
- }
+ }
+ }
}
- printf("[UNIX] Channel found : %d\n", channel);
fclose(pcmd);
-
return channel;
}
-/**
+/**
+ * \brief Program entry point.
+ * Return the current used channel or -1.
+ */
+int main(int argc, char *argv[])
+{
+ char *requested_SSID = "";
+ return get_wifi_channel(requested_SSID);
+}
+
+/**
* Find the channel of the current wireless interface.
* @param iface : the interface name.
* @return the channel, or -1 if no channels has been found.
@@ -78,7 +87,7 @@
FILE *pcmd;
char buff[80];
char cmd[sizeof(iface)+sizeof("iwconfig ")+1];
- memset(&cmd, NULL ,sizeof(cmd));
+ memset(&cmd, NULL ,sizeof(cmd));
float frequency;
/* Include the iface to the command */
Modified: software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_win32.c
===================================================================
--- software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_win32.c 2009-09-03 15:21:09 UTC (rev 5328)
+++ software_suite_v2/software/tux_wifi_channel/trunk/wifi_channel_win32.c 2009-09-04 11:14:05 UTC (rev 5329)
@@ -449,23 +449,16 @@
}
/**
- * \brief Program entry point.
+ * \brief Get the currently used wifi channel.
* You can define a prior SSID name in the first argument.
* Return the current used channel or -1.
*/
-int main(int argc, char *argv[])
+int get_wifi_channel(char *requested_SSID)
{
int channel = -1;
- char *requested_SSID = "";
DWORD dwVersion = 0;
DWORD dwMajorVersion = 0;
- /* Set SSID name to search */
- if (argc > 1)
- {
- requested_SSID = argv[1];
- }
-
/* Get the Windows version. */
dwVersion = GetVersion();
dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
@@ -503,8 +496,6 @@
}
}
}
-
- printf("[XP] Channel found : %d\n", channel);
}
/* Version is vista or more recently */
else
@@ -512,7 +503,7 @@
/*
* This way to retrieve the Wifi channel currently used is a bit tricky.
* Previously, an easiest code was written, but was parsing directly the
- * strings.
+ * strings.
* The major problem is that netsh return translated strings. So it's
* it's almost impossible to do it working for all languages !
*
@@ -561,7 +552,7 @@
(strstr(buff, "BSSID") == NULL))
{
sscanf(strrchr(buff, ':'), ": %s", ¤t_SSID[0]);
- /* If the current scanned SSID is the requested one,
+ /* If the current scanned SSID is the requested one,
* continue */
if (strcmp(current_SSID,requested_SSID) == 0)
{
@@ -590,7 +581,24 @@
}
fclose(pcmd);
}
- printf("[VISTA] Channel found : %d\n", channel);
}
return channel;
}
+
+/**
+ * \brief Program entry point.
+ * You can define a prior SSID name in the first argument.
+ * Return the current used channel or -1.
+ */
+int main(int argc, char *argv[])
+{
+ char *requested_SSID = "";
+
+ /* Set SSID name to search */
+ if (argc > 1)
+ {
+ requested_SSID = argv[1];
+ }
+ printf("Wifi channel is : %d\n", get_wifi_channel(requested_SSID));
+ return get_wifi_channel(requested_SSID);
+}
|
|
From: gwadavel <c2m...@c2...> - 2009-09-03 15:21:20
|
Author: gwadavel
Date: 2009-09-03 17:21:09 +0200 (Thu, 03 Sep 2009)
New Revision: 5328
Modified:
software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py
Log:
replace tux.battery.getState() by tux.charger.getState()
Modified: software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py
===================================================================
--- software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py 2009-09-03 15:02:43 UTC (rev 5327)
+++ software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py 2009-09-03 15:21:09 UTC (rev 5328)
@@ -85,7 +85,7 @@
Return Battery State
"""
- return self.tux.battery.getState()
+ return self.tux.charger.getState()
def start(self):
|
|
From: gwadavel <c2m...@c2...> - 2009-09-03 15:02:54
|
Author: gwadavel Date: 2009-09-03 17:02:43 +0200 (Thu, 03 Sep 2009) New Revision: 5327 Added: software_suite_v3/software/plugin/plugin-charger/trunk/LICENSE software_suite_v3/software/plugin/plugin-charger/trunk/build.py software_suite_v3/software/plugin/plugin-charger/trunk/builder/ software_suite_v3/software/plugin/plugin-charger/trunk/builder/PluginPackager.py software_suite_v3/software/plugin/plugin-charger/trunk/builder/__init__.py software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/ software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/__init__.py software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/ software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/DirectoriesAndFilesTools.py software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/__init__.py software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/version.py software_suite_v3/software/plugin/plugin-charger/trunk/builder/version.py software_suite_v3/software/plugin/plugin-charger/trunk/executables/ software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py software_suite_v3/software/plugin/plugin-charger/trunk/resources/ software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.wiki software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.png software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml Log: new plugin plugin-charger - Tux Droid says charger state Added: software_suite_v3/software/plugin/plugin-charger/trunk/LICENSE =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/LICENSE (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/LICENSE 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. Added: software_suite_v3/software/plugin/plugin-charger/trunk/build.py =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/build.py (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/build.py 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +# Copyleft (C) 2009 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +from builder.PluginPackager import PluginPackager + +if __name__ == "__main__": + PluginPackager().createScp("plugin-charger.scp") Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/build.py ___________________________________________________________________ Name: svn:executable + * Added: software_suite_v3/software/plugin/plugin-charger/trunk/builder/PluginPackager.py =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/builder/PluginPackager.py (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/builder/PluginPackager.py 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- + +import version +__author__ = version.author +__date__ = version.date +__version__ = version.version +__licence__ = version.licence +del version + +# Copyleft (C) 2009 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +import os +from zipfile import * + +from util.misc.DirectoriesAndFilesTools import * + +# ------------------------------------------------------------------------------ +# Class to create a SCP file from the main directory of a python plugin project. +# ------------------------------------------------------------------------------ +class PluginPackager(object): + """Class to create a SCP file from the main directory of a python plugin + project. + """ + + # -------------------------------------------------------------------------- + # Create a scp file. + # -------------------------------------------------------------------------- + def createScp(self, scpFileName): + """Create a scp file. + @param scpFileName: Smart-Core Plugin file name. + @return: The success of the file creation. + """ + self.__sourcePath = os.path.realpath("") + if not os.path.isdir(self.__sourcePath): + return False + if not os.path.isdir(os.path.join(self.__sourcePath, "executables")): + return False + if not os.path.isdir(os.path.join(self.__sourcePath, "resources")): + return False + # Get some paths + SRC_EXECUTABLES_PATH = os.path.join(self.__sourcePath, "executables") + SRC_RESOURCES_PATH = os.path.join(self.__sourcePath, "resources") + TMP_BUILD_PATH = os.path.join(self.__sourcePath, "tmp") + DEST_EXECUTABLES_PATH = os.path.join(TMP_BUILD_PATH, "executables") + DEST_RESOURCES_PATH = os.path.join(TMP_BUILD_PATH, "resources") + DEST_SCP_FILENAME = os.path.join(self.__sourcePath, scpFileName) + # Create the temporary build path + MKDirsF(TMP_BUILD_PATH) + # Copy "executables" directory + CPDir(SRC_EXECUTABLES_PATH, DEST_EXECUTABLES_PATH) + # Copy "resources" directory + CPDir(SRC_RESOURCES_PATH, DEST_RESOURCES_PATH) + # Filtering the content of temporary path + RMWithFilters(TMP_BUILD_PATH, filters = ['.svn', '.pyc']) + # Create a zip file + directory = TMP_BUILD_PATH + last_cwd = os.getcwd() + os.chdir(TMP_BUILD_PATH) + zf = ZipFile(DEST_SCP_FILENAME, 'w', compression = ZIP_DEFLATED) + def walker(zip, directory, files, root = directory): + for file in files: + file = os.path.join(directory, file) + name = file[len(TMP_BUILD_PATH) + 1:] + if os.path.isfile(file): + zip.write(file, name, ZIP_DEFLATED) + elif os.path.isdir(file): + file = os.path.join(file, "") + name = os.path.join(name, "") + zip.writestr(name, name) + os.path.walk(TMP_BUILD_PATH, walker, zf) + zf.close() + os.chdir(os.path.abspath(last_cwd)) + # Remove the temporary directory + RMDirs(TMP_BUILD_PATH) + return True Added: software_suite_v3/software/plugin/plugin-charger/trunk/builder/__init__.py =================================================================== Added: software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/__init__.py =================================================================== Added: software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/DirectoriesAndFilesTools.py =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/DirectoriesAndFilesTools.py (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/DirectoriesAndFilesTools.py 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- + +import version +__author__ = version.author +__date__ = version.date +__version__ = version.version +__licence__ = version.licence +del version + +# Copyleft (C) 2008 Acness World +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +import os +import shutil + +if os.name == 'nt': + import win32con + import win32file + +# ============================================================================== +# Public functions +# ============================================================================== + +# ------------------------------------------------------------------------------ +# Force to create a directories tree if not exists. +# ------------------------------------------------------------------------------ +def MKDirs(path): + """Force to create a directories tree if not exists. + @param path: Directory path. + """ + if not os.path.isdir(path): + try: + os.makedirs(path) + except: + pass + +# ------------------------------------------------------------------------------ +# Force to create a directories tree after having deleted the old one. +# ------------------------------------------------------------------------------ +def MKDirsF(path): + """Force to create a directories tree after having deleted the old one. + @param path: Directory path. + """ + if os.path.isdir(path): + RMDirs(path) + os.makedirs(path) + +# ------------------------------------------------------------------------------ +# Remove directories and files recursively. +# ------------------------------------------------------------------------------ +def RMDirs(path): + """Remove directories and files recursively. + @param path: Path of the base directory. + """ + if not os.path.isdir(path): + return + for root, dirs, files in os.walk(path, topdown = False): + for d in dirs: + try: + os.removedirs(os.path.join(root, d)) + except: + pass + for f in files: + try: + if os.name == 'nt': + win32file.SetFileAttributesW(os.path.join(root, f), + win32con.FILE_ATTRIBUTE_NORMAL) + os.remove(os.path.join(root, f)) + except: + pass + if os.path.isdir(path): + try: + os.removedirs(path) + except: + pass + +# ------------------------------------------------------------------------------ +# Remove directories and files recursively with filters. +# ------------------------------------------------------------------------------ +def RMWithFilters(path, filters = ['.pyc', '.pyo']): + """Remove directories and files recursively with filters. + @param path: Path of the base directory. + @param filters: Filters as list. + """ + def checkFilter(name): + for filter in filters: + if name.lower().find(filter.lower()) == (len(name) - len(filter)): + return True + return False + + if not os.path.isdir(path): + return + + for root, dirs, files in os.walk(path, topdown = False): + for d in dirs: + if checkFilter(os.path.join(root, d)): + try: + RMDirs(os.path.join(root, d)) + except: + pass + for f in files: + if checkFilter(os.path.join(root, f)): + try: + if os.name == 'nt': + win32file.SetFileAttributesW(os.path.join(root, f), + win32con.FILE_ATTRIBUTE_NORMAL) + os.remove(os.path.join(root, f)) + except: + pass + +# ------------------------------------------------------------------------------ +# Remove a file. +# ------------------------------------------------------------------------------ +def RMFile(path): + """Remove a file. + @param path: File path. + """ + if os.path.isfile(path): + try: + if os.name == 'nt': + win32file.SetFileAttributesW(path, + win32con.FILE_ATTRIBUTE_NORMAL) + os.remove(path) + except: + pass + +# ------------------------------------------------------------------------------ +# Copy a directories tree to another directory. +# ------------------------------------------------------------------------------ +def CPDir(src, dest): + """Copy a directories tree to another directory. + @param src: Source path. + @param dest: Destination path. + """ + if not os.path.isdir(src): + return + if os.path.isdir(dest): + RMDirs(dest) + shutil.copytree(src, dest) + +# ------------------------------------------------------------------------------ +# Retrieve the OS temporary directory. +# ------------------------------------------------------------------------------ +def GetOSTMPDir(): + """Retrieve the OS temporary directory. + @return: The OS temporary directory. + """ + result = None + # On Windows + if os.name == 'nt': + result = os.environ.get('tmp') + if result == None: + result = os.environ.get('temp') + if result == None: + result = "c:\\windows\\temp" + # On linux + else: + result = "/tmp" + return result Added: software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/__init__.py =================================================================== Added: software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/version.py =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/version.py (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/builder/util/misc/version.py 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +"""Version data for tuxisalive.lib.Util""" + +__author__ = "Remi Jocaille (rem...@c2...)" + +# Copyleft (C) 2008 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +name = 'util.misc' +version = '0.0.1' +author = "Remi Jocaille (rem...@c2...)" + +description = "Utilities libraries." + +licence = "GPL" +date = "December 2008" Added: software_suite_v3/software/plugin/plugin-charger/trunk/builder/version.py =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/builder/version.py (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/builder/version.py 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,9 @@ +# Copyleft (C) 2009 C2ME Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + +version = '0.0.1' +author = "Remi Jocaille (rem...@c2...)" +licence = "GPL" +date = "2009" Added: software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/executables/plugin-charger.py 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- + +# Write with Python plugin skeleton +# Copyright (C) 2009 Kysoh Sa +# Remi Jocaille <rem...@c2...> +# Distributed under the terms of the GNU General Public License +# http://www.gnu.org/copyleft/gpl.html + + +""" +CHANGES +======= + +2009/09/03 - version 0.0.1: + - Initial version + +TODO LIST +========= + +- Internationalization + +__author__ = "Eric Lescaudron AKA Gwadavel" +__appname__ = "Charger State Plugin" +__version__ = "0.0.1" +__date__ = "2009/09/03" +__license__ = "GPL" + +""" + +import os +import sys + +import locale +import gettext + +from tuxisalive.api import * + +sys.path.append(os.environ['TUXDROID_SERVER_PYTHON_UTIL']) + +from util.SimplePlugin.SimplePluginConfiguration import SimplePluginConfiguration +from util.SimplePlugin.SimplePlugin import SimplePlugin + +class Charger(object): + """ + Manage the battery. + """ + + tgp_language = "en" + tgp_ip = "127.0.0.1" + tgp_port = 270 + tux = TuxAPI("127.0.0.1", 270) + + def __init__(self, plug): + ''' + ''' + self.plugin = plug + + # Test language, ip, port + if "tgp_language" in os.environ: + self.tgp_language = os.environ["tgp_language"] + + if "tgp_ip" in os.environ: + self.tgp_ip = os.environ["tgp_ip"] + + if "tgp_port" in os.environ: + self.tgp_port = int(os.environ["tgp_port"]) + + tux = TuxAPI(self.tgp_ip, self.tgp_port) + + + def tuxConnect(self): + ''' + Wait connected + ''' + + self.tux.server.autoConnect(CLIENT_LEVEL_RESTRICTED, 'batterylevel', 'plugin-battery') + self.tux.server.waitConnected(5.0) + self.tux.dongle.waitConnected(5.0) + self.tux.radio.waitConnected(5.0) + return self.tux.access.waitAcquire(5.0, ACCESS_PRIORITY_NORMAL) + + + def getState(self): + """ + Return Battery State + """ + + return self.tux.battery.getState() + + + def start(self): + """ + """ + + if self.tuxConnect(): + + if not self.tux.radio.getConnected(): + plugin.throwTrace("I can't find my fish. Please, make sure I'm connected.") + else: + plugin.throwMessage("The charger state is {0}", self.getState()) + self.stop() + + + def stop(self): + """ + """ + + self.tux.access.release() + self.tux.server.disconnect() + self.tux.destroy() + + +class ChargerPlugin(SimplePlugin): + """This class override the SimplePlugin class to make easy + the plugin coding. + """ + + def __init__(self): + """Initialization of the class. + """ + # Call the super class + SimplePlugin.__init__(self) + self.scharger = Charger(self) + + + def start(self): + """Plugin entry point. + This method should be used to dispatch commands. + """ + self.run() + + def run(self): + """Plugin entry point for the "run" command. + """ + self.scharger.start() + + def onPluginStop(self): + """Callback on plugin stop. + """ + # Stop the fake daemon loop + self.scharger.stop() + +if __name__ == "__main__": + plugin = ChargerPlugin() + plugin.boot(sys.argv[1:], SimplePluginConfiguration()) Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,23 @@ +msgid "Charger State" +msgstr "Charger State" + +msgid "Says charger state" +msgstr "Says charger state" + +msgid "The charger state is {0}" +msgstr "The charger state is {0}" + +msgid "CHARGING" +msgstr "CHARGING" + +msgid "INHIBITED" +msgstr "INHIBITED" + +msgid "PLUGGED_NO_POWER" +msgstr "PLUGGED BUT NO POWER" + +msgid "TRICKLE" +msgstr "TRICKLE" + +msgid "UNPLUGGED" +msgstr "UNPLUGGED" Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.po ___________________________________________________________________ Name: svn:executable + * Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,2 @@ +== Synopsis == +Tux Droid says the charger state Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/en.wiki ___________________________________________________________________ Name: svn:executable + * Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,23 @@ +msgid "Charger State" +msgstr "état du chargeur" + +msgid "Says charger state" +msgstr "dit l'état du chargeur" + +msgid "The charger state is {0}" +msgstr "l'état du chargeur est {0}" + +msgid "CHARGING" +msgstr "en charge" + +msgid "INHIBITED" +msgstr "stabilisé" + +msgid "PLUGGED_NO_POWER" +msgstr "branché mais pas de courant" + +msgid "TRICKLE" +msgstr "faible charge" + +msgid "UNPLUGGED" +msgstr "débranché" Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.po ___________________________________________________________________ Name: svn:executable + * Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.wiki 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,2 @@ +==Synopsis== +Tux Droid donne l'état du chargeur. Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/fr.wiki ___________________________________________________________________ Name: svn:executable + * Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,2 @@ +== Synopsis == +Tux Droid says the charger state. Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/help.wiki ___________________________________________________________________ Name: svn:executable + * Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.png =================================================================== (Binary files differ) Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.png ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,23 @@ +msgid "Charger State" +msgstr "" + +msgid "Says charger state" +msgstr "" + +msgid "The charger state is {0}" +msgstr "" + +msgid "CHARGING" +msgstr "" + +msgid "INHIBITED" +msgstr "" + +msgid "PLUGGED_NO_POWER" +msgstr "" + +msgid "TRICKLE" +msgstr "" + +msgid "UNPLUGGED" +msgstr "" Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.pot ___________________________________________________________________ Name: svn:executable + * Added: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml =================================================================== --- software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml (rev 0) +++ software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml 2009-09-03 15:02:43 UTC (rev 5327) @@ -0,0 +1,25 @@ +<plugin> + <interpreter + kind="python"> + <executable>executables/plugin-charger.py</executable> + </interpreter> + <description> + <name>Charger State</name> + <ttsName>Charger State</ttsName> + <description>Says charger state</description> + <author>Gwadavel</author> + <version>0.0.1</version> + <iconFile>resources/plugin.png</iconFile> + <executionMode>command</executionMode> + <uuid>cc102415-02ce-4737-8cfc-c5774ccde8fe</uuid> + <platform>all</platform> + </description> + <commands> + <command + name="run" + description="Says charger state" + daemon="false" /> + </commands> + <tasks> + </tasks> +</plugin> Property changes on: software_suite_v3/software/plugin/plugin-charger/trunk/resources/plugin.xml ___________________________________________________________________ Name: svn:executable + * |
|
From: gwadavel <c2m...@c2...> - 2009-09-03 14:56:08
|
Author: gwadavel Date: 2009-09-03 16:55:55 +0200 (Thu, 03 Sep 2009) New Revision: 5326 Added: software_suite_v3/software/plugin/plugin-charger/ software_suite_v3/software/plugin/plugin-charger/branches/ software_suite_v3/software/plugin/plugin-charger/tags/ software_suite_v3/software/plugin/plugin-charger/trunk/ Log: Folder for new plugin plugin-charger |
|
From: remi <c2m...@c2...> - 2009-09-03 13:20:29
|
Author: remi
Date: 2009-09-03 15:20:17 +0200 (Thu, 03 Sep 2009)
New Revision: 5325
Modified:
software_suite_v3/smart-core/smart-server/trunk/util/player/mplayer/Mplayer.py
Log:
* Fixed a bug with m3u extension and -playlist argument. Thanks to Paul and community.
Modified: software_suite_v3/smart-core/smart-server/trunk/util/player/mplayer/Mplayer.py
===================================================================
--- software_suite_v3/smart-core/smart-server/trunk/util/player/mplayer/Mplayer.py 2009-09-03 13:03:26 UTC (rev 5324)
+++ software_suite_v3/smart-core/smart-server/trunk/util/player/mplayer/Mplayer.py 2009-09-03 13:20:17 UTC (rev 5325)
@@ -153,7 +153,7 @@
uri,
]
if uri.lower().find(".m3u") == -1:
- if uri.lower().find("http") != 0:
+ if uri.lower().find("http") == 0:
cmd.pop(4)
try:
self.__process = subprocess.Popen(
|
|
From: jerome <c2m...@c2...> - 2009-09-03 13:06:26
|
Author: jerome
Date: 2009-09-03 14:15:33 +0200 (Thu, 03 Sep 2009)
New Revision: 5322
Modified:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas
Log:
* Removed unneeded information.
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas 2009-09-02 14:43:41 UTC (rev 5321)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas 2009-09-03 12:15:33 UTC (rev 5322)
@@ -19,7 +19,6 @@
);
function GetUserLanguage() : string;
- function Time() : string;
function GetWinVersion(): TWinVersion;
implementation
@@ -36,13 +35,6 @@
end;
-{#### Return how many time the computer is running ####}
-function Time() : string;
-Begin
- Result := IntToStr(Round((GetTickCount / 1000) / (24 * 3600))) ;
-End;
-
-
function GetWinVersion(): TWinVersion;
var
osVerInfo: TOSVersionInfo;
|
|
From: gwadavel <c2m...@c2...> - 2009-09-03 13:03:42
|
Author: gwadavel
Date: 2009-09-03 15:03:26 +0200 (Thu, 03 Sep 2009)
New Revision: 5324
Modified:
software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py
software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po
software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po
software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot
software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml
Log:
use {0} for throwMessage
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py 2009-09-03 12:18:14 UTC (rev 5323)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py 2009-09-03 13:03:26 UTC (rev 5324)
@@ -40,38 +40,12 @@
from util.SimplePlugin.SimplePluginConfiguration import SimplePluginConfiguration
from util.SimplePlugin.SimplePlugin import SimplePlugin
-
-class Configuration(SimplePluginConfiguration):
- """This class make an access to the plugin parameters.
- Parameters are automatically filled by the SimplePlugin class at plugin
- starting.
- """
-
- def __init__(self):
- """Initialization of the class.
- It's necessary to initialize the values because the type of the python
- variables is set by value assignation. If we don't initialize the
- parameters the simple plugin class can't check and validate the values
- passed by the plugins server through the os environment variables.
- """
- # Call the super class
- SimplePluginConfiguration.__init__(self)
- # Initialize the parameters
-
- self.__enumState = ""
-
- def getEnumState(self):
- return self.__enumState
-
- def setEnumState(self, enumState):
- self.__enumState = enumState
-
-
class Battery(object):
"""
Manage the battery.
"""
+ tgp_language = "en"
tgp_ip = "127.0.0.1"
tgp_port = 270
tux = TuxAPI("127.0.0.1", 270)
@@ -81,7 +55,10 @@
'''
self.plugin = plug
- # Test ip, port
+ # Test language, ip, port
+ if "tgp_language" in os.environ:
+ self.tgp_language = os.environ["tgp_language"]
+
if "tgp_ip" in os.environ:
self.tgp_ip = os.environ["tgp_ip"]
@@ -128,26 +105,11 @@
if not self.tux.radio.getConnected():
plugin.throwTrace("I can't find my fish. Please, make sure I'm connected.")
else:
- level = self.getLevel()
- state = self.getState()
- message = "the battery level is %1.2f it state is %s" %(level, state)
- plugin.throwMessage(message)
-
+ plugin.throwMessage("The battery level is {0}", "%1.2f"%self.getLevel())
+ plugin.throwMessage("The battery state is {0}", self.getState())
self.stop()
- def check(self):
- """
- """
- if self.tuxConnect():
-
- if not self.tux.radio.getConnected():
- plugin.throwTrace("I can't find my fish. Please, make sure I'm connected.")
- else:
- state = self.getState()
- self.tux.access.release()
- return state
-
def stop(self):
"""
"""
@@ -168,35 +130,19 @@
# Call the super class
SimplePlugin.__init__(self)
self.sbattery = Battery(self)
+
def start(self):
"""Plugin entry point.
This method should be used to dispatch commands.
"""
- if self.getCommand() == "run":
- self.run()
- elif self.getCommand() == "check":
- self.check()
- else:
- self.run()
+ self.run()
def run(self):
"""Plugin entry point for the "run" command.
"""
self.sbattery.start()
- def check(self):
- """Plugin entry point for the "check" command.
- """
- # Check if battery state == battery state to check
- print self.sbattery.check()
- print self.configuration().getEnumState()
- if self.sbattery.check() == self.configuration().getEnumState():
- checkResult = True
- # Return the check result
- self.throwResult(checkResult)
- self.throwMessage("Battery state is %s" %self.sbattery.getState())
-
def onPluginStop(self):
"""Callback on plugin stop.
"""
@@ -205,4 +151,4 @@
if __name__ == "__main__":
plugin = BatteryPlugin()
- plugin.boot(sys.argv[1:], Configuration())
+ plugin.boot(sys.argv[1:], SimplePluginConfiguration())
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po 2009-09-03 12:18:14 UTC (rev 5323)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po 2009-09-03 13:03:26 UTC (rev 5324)
@@ -7,3 +7,20 @@
msgid "Says the battery level and it state"
msgstr "Says the battery level and it state"
+msgid "The battery level is {0}"
+msgstr "The battery level is {0}"
+
+msgid "The battery state is {0}"
+msgstr "The battery state is {0}"
+
+msgid "EMPTY"
+msgstr "empty"
+
+msgid "LOW"
+msgstr "low"
+
+msgid "HIGH"
+msgstr "high"
+
+msgid "FULL"
+msgstr "full"
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po 2009-09-03 12:18:14 UTC (rev 5323)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po 2009-09-03 13:03:26 UTC (rev 5324)
@@ -7,3 +7,20 @@
msgid "Says the battery level and it state"
msgstr "Indique le niveau de la batterie et son etat"
+msgid "The battery level is {0}"
+msgstr "Le niveau de batterie est de {0}"
+
+msgid "The battery state is {0}"
+msgstr "La batterie est {0}"
+
+msgid "EMPTY"
+msgstr "vide"
+
+msgid "LOW"
+msgstr "faible"
+
+msgid "HIGH"
+msgstr "haute"
+
+msgid "FULL"
+msgstr "pleine"
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot 2009-09-03 12:18:14 UTC (rev 5323)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot 2009-09-03 13:03:26 UTC (rev 5324)
@@ -7,3 +7,20 @@
msgid "Says the battery level and it state"
msgstr ""
+msgid "The battery level is {0}"
+msgstr ""
+
+msgid "The battery state is {0}"
+msgstr ""
+
+msgid "EMPTY"
+msgstr ""
+
+msgid "LOW"
+msgstr ""
+
+msgid "HIGH"
+msgstr ""
+
+msgid "FULL"
+msgstr ""
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml 2009-09-03 12:18:14 UTC (rev 5323)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml 2009-09-03 13:03:26 UTC (rev 5324)
@@ -14,50 +14,12 @@
<uuid>868a9389-01a9-4a8c-b63e-68414d154798</uuid>
<platform>all</platform>
</description>
- <parameters>
- <parameter
- name="enumState"
- description="Battery state to Check"
- type="enum(FULL,HIGH,LOW,EMPTY)"
- defaultValue="LOW"
- platform="all"/>
- </parameters>
<commands>
<command
name="run"
description="Says the battery level and it state"
daemon="false" />
- <command
- name="check"
- description="Check battery state"
- daemon="false" />
</commands>
<tasks>
- <task
- name="My checker"
- description="Check battery state every x minutes"
- command="check"
- type="every x"
- activated="false"
-
- weekMask="true,false,false,false,false,false,false"
- weekMaskType="exclusive"
- weekMaskVisible="true"
-
- date="0000/00/00"
- dateVisible="false"
-
- hoursBegin="00:00:00"
- hoursBeginMask="true,true,false"
- hoursBeginVisible="true"
-
- hoursEnd="23:59:00"
- hoursEndMask="true,true,false"
- hoursEndVisible="true"
-
- delay="00:01:00"
- delayMask="false,true,false"
- delayVisible="true"
- />
</tasks>
</plugin>
|
|
From: jerome <c2m...@c2...> - 2009-09-03 12:49:52
|
Author: jerome
Date: 2009-09-03 14:18:14 +0200 (Thu, 03 Sep 2009)
New Revision: 5323
Modified:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas
Log:
* Changed the way to list report directory.
* Fixed a bug zipping files on Vista ( '.' and '..' where zipped too ).
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-09-03 12:15:33 UTC (rev 5322)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-09-03 12:18:14 UTC (rev 5323)
@@ -50,6 +50,7 @@
constructor Create(AOwner : TObject; TypeReport : Integer); overload;
function compressReport(AApplication : TApplication) : boolean;
function getReport() : string;
+ procedure deleteAll();
end;
@@ -85,10 +86,6 @@
constructor TReportMaker.Create(AOwner : TObject; TypeReport : Integer);
begin
inherited Create;
- if TypeReport = Report.ERROR then
- ReportFile := GetEnvironmentVariable('TEMP') + '\error-logs.zip'
- else
- ReportFile := GetEnvironmentVariable('TEMP') + '\info-logs.zip';
ReportFilesDirectory := GetEnvironmentVariable('TEMP') + '\TuxReport';
@@ -100,6 +97,11 @@
if FileExists(ReportFile) then
DeleteFile(ReportFile);
+ if TypeReport = Report.ERROR then
+ ReportFile := GetEnvironmentVariable('TEMP') + '\error-logs.zip'
+ else
+ ReportFile := GetEnvironmentVariable('TEMP') + '\info-logs.zip';
+
CreateDir(ReportFilesDirectory);
ReportFiles := TuxUtils.GetTuxDroidDataBaseDirectory() + '\logs';
@@ -110,17 +112,24 @@
// Copy the content of a directory
function TReportMaker.CopyDir(const fromDir, toDir: string): Boolean;
var
- fos: TSHFileOpStruct;
+ List : TStringList;
+ i : Integer;
begin
- ZeroMemory(@fos, SizeOf(fos));
- with fos do
- begin
- wFunc := FO_COPY;
- fFlags := FOF_FILESONLY;
- pFrom := PChar(fromDir + #0);
- pTo := PChar(toDir)
+ List := TStringList.Create;
+ ListDir(ReportFiles, List);
+
+ try
+ for i := 0 to List.Count - 1 do
+ begin
+ CopyFile(PChar(List.Strings[i]), PChar(ReportFilesDirectory + '\' + ExtractFileName(List.Strings[i])), False);
+ end;
+ Result := true;
+ except
+ Result := false;
end;
- Result := (0 = ShFileOperation(fos));
+
+ List.Free;
+
end;
@@ -205,16 +214,27 @@
GetDir(0, s);
if length(s) <> 3 then
s := s + '\';
+ showmessage('found: ' + SearchRec.Name);
List.Add(s + SearchRec.Name);
ListDir(s + SearchRec.Name, List);
end;
- end else
+ end
+ else
begin
- GetDir(0, s);
- if length(s) <> 3 then
- List.add(s + '\' + SearchRec.Name)
- else
- List.add(s + SearchRec.Name);
+ if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
+ begin
+ GetDir(0, s);
+ if length(s) <> 3 then
+ begin
+ List.add(s + '\' + SearchRec.Name);
+ showmessage('found: ' + SearchRec.Name);
+ end
+ else
+ begin
+ List.add(s + SearchRec.Name);
+ showmessage('found: ' + SearchRec.Name);
+ end;
+ end;
end;
Result := FindNext(SearchRec);
Application.ProcessMessages;
@@ -233,8 +253,8 @@
begin
computerDatas := ReportFilesDirectory + '\info.nfo';
// Get the computer informations
- msinfo := TMsinfo.create(nil);
- msinfo.createNfo(computerDatas);
+ //msinfo := TMsinfo.create(nil);
+ //msinfo.createNfo(computerDatas);
result := (CopyDir(ReportFiles, ReportFilesDirectory));
end;
@@ -242,6 +262,7 @@
//#### This function compress the log files.
function TReportMaker.compressReport(AApplication : TApplication) : boolean;
begin
+ showmessage(ReportFilesDirectory);
Application := AApplication;
Result := true;
@@ -255,10 +276,6 @@
//And Zip all.
if not (zipDirectory(ReportFilesDirectory, ReportFile)) then
result := false;
- //Deleting Temp directory.
- sleep(500);
- if DirectoryExists(ReportFilesDirectory) then
- RMDir(ReportFilesDirectory);
end
else
result := false;
@@ -270,7 +287,17 @@
result := ReportFile;
end;
+ {#### Delete temporary files ####}
+ procedure TReportMaker.deleteAll();
+ begin
+ if DirectoryExists(ReportFilesDirectory) then
+ RMDir(ReportFilesDirectory);
+ if FileExists(ReportFile) then
+ DeleteFile(ReportFile);
+ end;
+
+
{##############################################################################
################# TReportSender object implementation #####################
##############################################################################}
@@ -381,7 +408,6 @@
body.Add(slinebreak + 'Windows version: ' + osType);
body.Add('User locale: ' + ComputerInfos.GetUserLanguage());
- body.Add('Computer ran: ' + ComputerInfos.Time());
IdMessage1.Body := body;
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas 2009-09-03 12:15:33 UTC (rev 5322)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas 2009-09-03 12:18:14 UTC (rev 5323)
@@ -713,9 +713,10 @@
//We can now send the report to kysoh team.
ReportSender1.setReport(report);
ReportSender1.send(ReportType, IdSSLIOHandlerSocket1);
- end
+ end;
finally
+ ReportMaker1.deleteAll();
ReportMaker1.Free;
ReportSender1.Free;
end;
|
|
From: jerome <c2m...@c2...> - 2009-09-02 14:43:57
|
Author: jerome
Date: 2009-09-02 16:43:41 +0200 (Wed, 02 Sep 2009)
New Revision: 5321
Added:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas
Modified:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas
Log:
* Added 'computerInfos' class that provide some information to put on the emails ( Os information, locale, ... ) Goal : improve mails visibility.
Added: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas (rev 0)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ComputerInfos.pas 2009-09-02 14:43:41 UTC (rev 5321)
@@ -0,0 +1,90 @@
+unit ComputerInfos;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, Grids, ExtCtrls, StdCtrls;
+
+ type TWinVersion = (
+ wvUnknown,
+ wvWin95,
+ wvWin98,
+ wvWin98SE,
+ wvWinNT,
+ wvWinME,
+ wvWin2000,
+ wvWinXP,
+ wvWinVista
+ );
+
+ function GetUserLanguage() : string;
+ function Time() : string;
+ function GetWinVersion(): TWinVersion;
+
+implementation
+
+
+{#### Return the user locale ####}
+function GetUserLanguage() : string;
+var
+ sz: Integer;
+begin
+ sz:= GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SNATIVELANGNAME, nil, 0);
+ SetLength(result, sz - 1);
+ GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SNATIVELANGNAME, Pchar(result), sz);
+end;
+
+
+{#### Return how many time the computer is running ####}
+function Time() : string;
+Begin
+ Result := IntToStr(Round((GetTickCount / 1000) / (24 * 3600))) ;
+End;
+
+
+function GetWinVersion(): TWinVersion;
+var
+ osVerInfo: TOSVersionInfo;
+ majorVersion, minorVersion: Integer;
+begin
+ Result := wvUnknown;
+ osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo) ;
+ if GetVersionEx(osVerInfo) then
+ begin
+ minorVersion := osVerInfo.dwMinorVersion;
+ majorVersion := osVerInfo.dwMajorVersion;
+ case osVerInfo.dwPlatformId of
+ VER_PLATFORM_WIN32_NT:
+ begin
+ if majorVersion <= 4 then
+ Result := wvWinNT
+ else if (majorVersion = 5) and (minorVersion = 0) then
+ Result := wvWin2000
+ else if (majorVersion = 5) and (minorVersion = 1) then
+ Result := wvWinXP
+ else if (majorVersion = 6) then
+ Result := wvWinVista;
+ end;
+ VER_PLATFORM_WIN32_WINDOWS:
+ begin
+ if (majorVersion = 4) and (minorVersion = 0) then
+ Result := wvWin95
+ else if (majorVersion = 4) and (minorVersion = 10) then
+ begin
+ if osVerInfo.szCSDVersion[1] = 'A' then
+ Result := wvWin98SE
+ else
+ Result := wvWin98;
+ end
+ else if (majorVersion = 4) and (minorVersion = 90) then
+ Result := wvWinME
+ else
+ Result := wvUnknown;
+ end;
+ end;
+ end;
+end;
+
+
+end.
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-09-02 10:08:17 UTC (rev 5320)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-09-02 14:43:41 UTC (rev 5321)
@@ -27,7 +27,7 @@
ShellAPI, Windows, TuxUtils, Dialogs, zLib, SysUtils, Controls, Classes,
StdCtrls, ShlObj, Msinfo32Wrapper, KAZip, Forms, IdComponent, IdMessageCoder,
IdMessageCoderMIME, IdBaseComponent, IdMessage, IdSMTP, IdIOHandler,
- IdIOHandlerSocket, IdSSLOpenSSL, WinInet, IdHttp;
+ IdIOHandlerSocket, IdSSLOpenSSL, WinInet, IdHttp, ComputerInfos;
{#### This object manage the Complete report creation ####}
type
@@ -319,6 +319,7 @@
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
body : TStringList;
+ osType : string;
begin
IdSMTP1 := TIdSMTP.Create(nil);
@@ -360,6 +361,28 @@
end;
end;
+ //Formating Quick vew computer informations.
+ body.Add(slinebreak + slinebreak + '************************* Error Infos *************************');
+
+ body.Add(slinebreak + slinebreak + '************************ ComputerInfos ************************');
+
+ osType := 'Unknown';
+
+ case ComputerInfos.GetWinVersion() of
+ ComputerInfos.wvUnknown : osType := 'Os not reconized';
+ ComputerInfos.wvWin98 : osType := 'Windows 98';
+ ComputerInfos.wvWin98SE : osType := 'Windows 98 Se';
+ ComputerInfos.wvWinNT : osType := 'Windows NT';
+ ComputerInfos.wvWinME : osType := 'Windows Milenium';
+ ComputerInfos.wvWin2000 : osType := 'Windows 2000';
+ ComputerInfos.wvWinXP : osType := 'Windows XP';
+ ComputerInfos.wvWinVista : osType := 'Windows Vista';
+ end;
+
+ body.Add(slinebreak + 'Windows version: ' + osType);
+ body.Add('User locale: ' + ComputerInfos.GetUserLanguage());
+ body.Add('Computer ran: ' + ComputerInfos.Time());
+
IdMessage1.Body := body;
try
|
|
From: jerome <c2m...@c2...> - 2009-09-02 10:08:30
|
Author: jerome
Date: 2009-09-02 12:08:17 +0200 (Wed, 02 Sep 2009)
New Revision: 5320
Modified:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm
Log:
* Checking internet connection before sending email.
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-09-01 13:40:26 UTC (rev 5319)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-09-02 10:08:17 UTC (rev 5320)
@@ -27,7 +27,7 @@
ShellAPI, Windows, TuxUtils, Dialogs, zLib, SysUtils, Controls, Classes,
StdCtrls, ShlObj, Msinfo32Wrapper, KAZip, Forms, IdComponent, IdMessageCoder,
IdMessageCoderMIME, IdBaseComponent, IdMessage, IdSMTP, IdIOHandler,
- IdIOHandlerSocket, IdSSLOpenSSL;
+ IdIOHandlerSocket, IdSSLOpenSSL, WinInet, IdHttp;
{#### This object manage the Complete report creation ####}
type
@@ -61,6 +61,8 @@
private
Adress : string;
ReportFile : string;
+ function isInternetConnected() : boolean;
+
public
constructor Create; overload;
procedure setReport(AReportFile : string);
@@ -287,6 +289,30 @@
end;
+ //Check if internet connection was detected.
+ function TReportSender.isInternetConnected() : boolean;
+ var
+ idHTTP : TIdHTTP;
+ begin
+ idHTTP := TIdHTTP.Create(nil);
+ idHTTP.ConnectTimeout := 6400;
+ idHTTP.Request.CacheControl := 'no-cache';
+ idHTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
+ result := false;
+
+ try
+ idHTTP.Head('http://www.ftp.kysoh.com/');
+ result := true;
+ except
+ Result := false;
+ end;
+
+ idHttp.Disconnect;
+ idHttp.DisconnectSocket;
+ idHTTP.Free;
+ end;
+
+
//#### Send the report to tux...@ky... ####
procedure TReportSender.send(MsgType : Integer; IdSSLIOHandlerSocket1 : TIdSSLIOHandlerSocket);
var
@@ -330,7 +356,7 @@
Report.INFO :
begin
IdMessage1.Subject := 'Info log';
- body.Add('User is sending installation information on for his computer');
+ body.Add('User is sending installation information for his computer');
end;
end;
@@ -346,14 +372,18 @@
//Connectig and sending email.
try
try
- IdSMTP1.Connect;
- IdSMTP1.Authenticate;
- IdSMTP1.Send(IdMessage1);
+ if isInternetConnected() then
+ begin
+ IdSMTP1.Connect(60);
+ IdSMTP1.Authenticate;
+ IdSMTP1.Send(IdMessage1);
+ end
+ else
+ showmessage('internet is not connected');
except
on E : Exception do
begin
Application.Terminate;
- showmessage('error');
end;
end;
finally
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm 2009-09-01 13:40:26 UTC (rev 5319)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm 2009-09-02 10:08:17 UTC (rev 5320)
@@ -1,6 +1,6 @@
object Form1: TForm1
- Left = 490
- Top = 179
+ Left = 491
+ Top = 180
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsNone
Caption = 'TuxBox 2.0'
|
|
From: jerome <c2m...@c2...> - 2009-09-01 14:09:48
|
Author: jerome
Date: 2009-09-01 15:40:26 +0200 (Tue, 01 Sep 2009)
New Revision: 5319
Modified:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas
Log:
* Invalidate form before starting test procedure.
* Updated wait time while starting smart core.
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm 2009-08-31 13:57:30 UTC (rev 5318)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm 2009-09-01 13:40:26 UTC (rev 5319)
@@ -1,6 +1,6 @@
object Form1: TForm1
- Left = 404
- Top = 131
+ Left = 490
+ Top = 179
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsNone
Caption = 'TuxBox 2.0'
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas 2009-08-31 13:57:30 UTC (rev 5318)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas 2009-09-01 13:40:26 UTC (rev 5319)
@@ -311,6 +311,7 @@
//Checking current step and starting test.
if Steps.ActivePageIndex = 4 then
begin
+ Form1.Enabled := false;
setExitEnabled(false);
setNextEnabled(false);
setPreviousEnabled(false);
@@ -341,7 +342,7 @@
end
else
begin
- //define a default time to wait.
+ //define a defaulit.
time := 10;
end;
@@ -399,10 +400,7 @@
if testCount < 2 then
begin
TuxUtils.stopServer();
- Form1.Enabled := false;
- Form1.ShowSplashScreen();
- TuxUtils.startServer(Application);
- Form1.HideSplashScreen();
+ sleep(500);
Steps.ActivePageIndex := 1;
Inc(testCount, 1);
NextLabel.Caption := gettext(NEXTB);
@@ -475,17 +473,15 @@
else
//Starting the server and Display error message.
begin
- Form1.Enabled := false;
- sleep(4000);
Form1.ShowSplashScreen();
TuxUtils.startServer(Application);
Form1.HideSplashScreen();
BoxOk1.showMessageDialog(gettext(SERVER_RESTART), gettext(OK));
- Form1.Enabled := true;
end;
Except
setExitEnabled(true);
setNextEnabled(true);
+ Form1.Enabled := true;
end;
end
@@ -494,6 +490,7 @@
Steps.ActivePageIndex := 4;
end;
+ Form1.Enabled := true;
setExitEnabled(true);
setNextEnabled(true);
end;
@@ -729,19 +726,33 @@
//Show the splash screen
procedure TForm1.ShowSplashScreen;
begin
- if not Form2.Visible then
+ if not Form4.Visible then
begin
Form4.PmGauge1.Progress := 0;
+ sleep(2000);
Form4.Timer1.Enabled := true;
Form4.Visible := true;
Application.ProcessMessages;
+ sleep(1000);
end;
end;
//Hide the splash screen
procedure TForm1.HideSplashScreen;
begin
+ sleep(2000);
Form4.Timer1.Enabled := false;
+ Form4.PmGauge1.Progress := 70;
+ Application.ProcessMessages;
+ sleep(2000);
+ Form4.PmGauge1.Progress := 80;
+ sleep(2000);
+ Application.ProcessMessages;
+ Form4.PmGauge1.Progress := 90;
+ sleep(1000);
+ Form4.PmGauge1.Progress := 95;
+ Application.ProcessMessages;
+ sleep(1000);
Form4.PmGauge1.Progress := 100;
Sleep(500);
Form4.Visible := false;
|
|
From: jerome <c2m...@c2...> - 2009-08-31 13:58:10
|
Author: jerome
Date: 2009-08-31 15:57:30 +0200 (Mon, 31 Aug 2009)
New Revision: 5318
Added:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/TuxGauge.dfm
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/TuxGauge.pas
Modified:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.dpr
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas
Log:
* Restarting smart_server if installation test faild ( before trying again ).
* Make use of Gauge while starting smart_core.
Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.dpr
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.dpr 2009-08-31 12:50:35 UTC (rev 5317)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.dpr 2009-08-31 13:57:30 UTC (rev 5318)
@@ -7,7 +7,8 @@
DongleHIDCheck in 'DongleHIDCheck.pas',
Box in 'Box.pas' {Form2},
BoxOk in 'BoxOk.pas' {Form3},
- Report in 'Report.pas';
+ Report in 'Report.pas',
+ TuxGauge in 'TuxGauge.pas' {Form4};
{$R *.res}
@@ -16,5 +17,6 @@
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
+ Application.CreateForm(TForm4, Form4);
Application.Run;
end.
Added: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/TuxGauge.dfm
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/TuxGauge.dfm (rev 0)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/TuxGauge.dfm 2009-08-31 13:57:30 UTC (rev 5318)
@@ -0,0 +1,3559 @@
+object Form4: TForm4
+ Left = 496
+ Top = 260
+ BorderStyle = bsNone
+ Caption = 'Form4'
+ ClientHeight = 103
+ ClientWidth = 329
+ Color = clFuchsia
+ TransparentColor = True
+ TransparentColorValue = clFuchsia
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ FormStyle = fsStayOnTop
+ OldCreateOrder = False
+ Position = poOwnerFormCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Image1: TImage
+ Left = -4
+ Top = -4
+ Width = 337
+ Height = 111
+ AutoSize = True
+ Picture.Data = {
+ 07544269746D617002B70100424D02B701000000000036000000280000005101
+ 00006F0000000100180000000000CCB60100120B0000120B0000000000000000
+ 0000FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF00FF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFF0F0F0F0F0F0FFFFFFFDFDFDFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFF0F0
+ F0F0F0F0FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FF00FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFF00
+ FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF00FF00FFFF00FF
+ FF00FFFF00FFFF00FFFF00FFFF00FFE5E5E5FFFFFFFFFFFFEAEAEA9191915E5E
+ 5E5050502D2D2D25252525252526262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626262626262626
+ 2626262626262626262626262626262626262626262626262626252525252525
+ 2D2D2D5050505E5E5E919191EAEAEAFFFFFFFFFFFFE5E5E5FF00FFFF00FFFF00
+ FFFF00FFFF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
+ EBEBEBFFFFFFF7F7F78484842A2A2A2828282A2A2A2B2B2B2C2C2C2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2C2C2C2B2B2B2A2A2A282828
+ 2A2A2A848484F7F7F7FFFFFFEBEBEBFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ FF00FF00FFFF00FFFF00FFFF00FFFF00FFE5E5E5FFFFFFEAEAEA525252272727
+ 2B2B2B2E2E2E3030303131313131313232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 3232323232323232323232323232323232323232323232323232323232323232
+ 32323232323232323131313131313030302E2E2E2B2B2B272727525252EAEAEA
+ FFFFFFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFFF
+ 00FFFF00FFFFFFFFF7F7F75252522929292D2D2D313131333333343434353535
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363636
+ 3636363636363636363636363636363636363636363636363636363636363635
+ 35353434343333333131312D2D2D292929525252F7F7F7FFFFFFFF00FFFF00FF
+ FF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFFF00FFEFEFEFFFFFFF87878728
+ 28282E2E2E333333353535373737383838393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393938383837373735353533
+ 33332E2E2E282828878787FFFFFFEFEFEFFF00FFFF00FFFF00FFFF00FF00FF00
+ FFFF00FFFF00FFFF00FFFFFFFFE7E7E72B2B2B2C2C2C32323235353538383839
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 3939393939393939393939393939393939393939393939393939393939393939
+ 393939393939393939393939393939393838383535353232322C2C2C2B2B2BE7
+ E7E7FFFFFFFF00FFFF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFFF00FFFFFF
+ FF9C9C9C2A2A2A3030303535353838383A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A
+ 3A3A3A3A3A3A3A3838383535353030302A2A2A9C9C9CFFFFFFF0F0F0FF00FFFF
+ 00FFFF00FF00FF00FFFF00FFFF00FFF0F0F0FFFFFF6363632D2D2D3333333737
+ 373A3A3A3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B
+ 3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3A3A3A3737
+ 373333332D2D2D636363FFFFFFF0F0F0FF00FFFF00FFFF00FF00FF00FFFF00FF
+ FF00FFFFFFFFFFFFFF4D4D4D2F2F2F3535353939393B3B3B3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C
+ 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3B3B3B3939393535352F2F2F4D4D4DFFFF
+ FFFFFFFFFF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFF7F7F7FFFFFF424242
+ 3131313636363A3A3A3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
+ 3D3D3D3D3D3D3A3A3A363636313131424242FFFFFFF7F7F7FF00FFFF00FFFF00
+ FF00FF00FFFF00FFFF00FFF7F7F7FFFFFF4343433232323838383C3C3C3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E
+ 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3C3C3C383838
+ 323232434343FFFFFFF7F7F7FF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFF7
+ F7F7FFFFFF4444443333333939393D3D3D3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F
+ 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3D3D3D393939333333444444FFFFFFF7F7F7
+ FF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFF7F7F7FFFFFF4545453434343A
+ 3A3A3D3D3D404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 40403D3D3D3A3A3A343434454545FFFFFFF7F7F7FF00FFFF00FFFF00FF00FF00
+ FFFF00FFFF00FFFFFFFFFFFFFF4545453434343A3A3A3D3D3D40404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 4040404040404040404040404040404040404040404040404040404040404040
+ 404040404040404040404040404040404040404040403D3D3D3A3A3A34343445
+ 4545FFFFFFFFFFFFFF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFF6F6F6FFFF
+ FF4545453535353B3B3B3E3E3E41414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 4141414141414141414141414141414141414141414141414141414141414141
+ 414141414141414141413E3E3E3B3B3B353535454545FFFFFFF6F6F6FF00FFFF
+ 00FFFF00FF00FF00FFFF00FFFF00FFF6F6F6FFFFFF4747473636363C3C3C4040
+ 4043434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434343
+ 4343434343434343434343434343434343434343434343434343434343434040
+ 403C3C3C363636474747FFFFFFF6F6F6FF00FFFF00FFFF00FF00FF00FFFF00FF
+ FF00FFF6F6F6FFFFFF4747473737373D3D3D4141414444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444444444444444444444444444444
+ 4444444444444444444444444444444444444141413D3D3D373737474747FFFF
+ FFF6F6F6FF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFF6F6F6FFFFFF474747
+ 3838383E3E3E4242424545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454545454545454545454545454545454545454545454545454545
+ 4545454545454242423E3E3E383838474747FFFFFFF6F6F6FF00FFFF00FFFF00
+ FF00FF00FFFF00FFFF00FFF6F6F6FFFFFF4848483939393F3F3F434343464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 4646464646464646464646464646464646464646464646464646464646464646
+ 46464646464646464646464646464646464646464646464646464343433F3F3F
+ 393939484848FFFFFFF6F6F6FF00FFFF00FFFF00FF00FF00FFFF00FFFF00FFF6
+ F6F6FFFFFF484848393939404040444444474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474747474747
+ 4747474747474747474747474747474747474747474747474747474...
[truncated message content] |
|
From: jerome <c2m...@c2...> - 2009-08-31 12:50:54
|
Author: jerome Date: 2009-08-31 14:50:35 +0200 (Mon, 31 Aug 2009) New Revision: 5317 Added: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/pmgauge.zip Log: * Added PmGauge dependency. Added: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/pmgauge.zip =================================================================== (Binary files differ) Property changes on: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/pmgauge.zip ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
|
From: jerome <c2m...@c2...> - 2009-08-31 12:06:59
|
Author: jerome Date: 2009-08-31 14:06:40 +0200 (Mon, 31 Aug 2009) New Revision: 5316 Added: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe.manifest Log: * Added manifest. Added: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe.manifest =================================================================== --- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe.manifest (rev 0) +++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe.manifest 2009-08-31 12:06:40 UTC (rev 5316) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity version="1.0.0.0" + processorArchitecture="msil" + name="SecondInstaller.exe" + type="win32"/> +<description>elevate execution level</description> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> + |
|
From: jerome <c2m...@c2...> - 2009-08-31 12:02:01
|
Author: jerome Date: 2009-08-31 14:01:41 +0200 (Mon, 31 Aug 2009) New Revision: 5315 Removed: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe Log: * Removed a binary. Deleted: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe =================================================================== (Binary files differ) |
|
From: jerome <c2m...@c2...> - 2009-08-31 11:59:16
|
Author: jerome Date: 2009-08-31 13:59:01 +0200 (Mon, 31 Aug 2009) New Revision: 5314 Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe Log: * Updater eMail sender mail from tuxdroid.kysoh to 'Quick Install Guide'. Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas =================================================================== --- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-08-31 11:47:35 UTC (rev 5313) +++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas 2009-08-31 11:59:01 UTC (rev 5314) @@ -300,6 +300,8 @@ IdMessage1.Recipients.EMailAddresses := 'tux...@ky...'; IdMessage1.From.Address := 'tux...@gm...'; + IdMessage1.From.Name := 'Quick Install Guide'; + IdMessage1.ReplyTo.EMailAddresses := 'no-...@ky...'; IdSMTP1.AuthenticationType := atLogin; IdSMTP1.Host := 'smtp.gmail.com'; Modified: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe =================================================================== (Binary files differ) |
|
From: jerome <c2m...@c2...> - 2009-08-31 11:47:57
|
Author: jerome
Date: 2009-08-31 13:47:35 +0200 (Mon, 31 Aug 2009)
New Revision: 5313
Added:
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Box.dfm
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Box.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/BoxOk.dfm
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/BoxOk.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/DongleHIDCheck.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Msinfo32Wrapper.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Report.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.dpr
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.exe
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/SecondInstaller.res
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/TuxUtils.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.dfm
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Unit1.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/en/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/en/test_attitune.att
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/fr/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/fr/test_attitune.att
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/nl/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/nl/test_attitune.att
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/attitunes/times.is2
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/RoundedPanel.dcu
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/RoundedPanel.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/indy9.0.18_source.zip
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/kazip20.zip
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/dependencies/openSSL-0.96.zip
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/gnugettext.pas
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/1.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/2.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/3.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/4.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/5.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/6.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/Thumbs.db
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/box-title.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/btn-desactivated.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/btn-over.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/btn.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/btn_close.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/btn_close_down.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/btn_info.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/error.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/kysoh-logo.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/main-frame.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/plain.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/step_1.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/step_2.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/step_3.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/step_4.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/step_5.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/step_6.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/title.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/tuxbox_installer.ico
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/bmp/tuxbox_installer.png
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/ico/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/ico/16.ico
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/images/ico/Thumbs.db
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/info.bat
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/libeay32.dll
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/default.pot
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/en/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/en/LC_MESSAGES/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/en/LC_MESSAGES/en.mo
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/en/LC_MESSAGES/en.po
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/fr/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/fr/LC_MESSAGES/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/fr/LC_MESSAGES/fr.mo
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/fr/LC_MESSAGES/fr.po
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/nl/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/nl/LC_MESSAGES/
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/nl/LC_MESSAGES/nl.mo
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/nl/LC_MESSAGES/nl.po
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/nl/nl.mo
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/locale/nl/nl.po
software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/ssleay32.dll
Log:
* Added Quick Install Guide project.
Added: software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Box.dfm
===================================================================
--- software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Box.dfm (rev 0)
+++ software_suite_v3/software/tool/tool-second-installer/trunk/tool-second-installer/Box.dfm 2009-08-31 11:47:35 UTC (rev 5313)
@@ -0,0 +1,819 @@
+object Form2: TForm2
+ Left = 473
+ Top = 408
+ BorderStyle = bsNone
+ Caption = 'Form2'
+ ClientHeight = 143
+ ClientWidth = 505
+ Color = clFuchsia
+ TransparentColor = True
+ TransparentColorValue = clFuchsia
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ FormStyle = fsStayOnTop
+ OldCreateOrder = False
+ Position = poOwnerFormCenter
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object RoundedPanel1: TRoundedPanel
+ Left = 8
+ Top = 8
+ Width = 489
+ Height = 130
+ Caption = 'RoundedPanel1'
+ Color = clFuchsia
+ TabOrder = 0
+ object box: TImage
+ Left = 0
+ Top = 1
+ Width = 486
+ Height = 128
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000021E00
+ 00019B08060000008B5699BC000000017352474200AECE1CE900000006624B47
+ 4400FF00FF00FFA0BDA793000000097048597300000B1300000B1301009A9C18
+ 0000000774494D45000000000000000973942E0000001974455874436F6D6D65
+ 6E74004372656174656420776974682047494D5057810E17000008BB49444154
+ 78DAEDDBCB8EDB540080617B36202AB140028907980BEFFF34A5BC40A5EE400C
+ AB9AD871A3549D5B3BCEBF70BFCF72AE67B2388BF88F8F671C567FFDF9EEBF61
+ 1A7E589E8C0300C026A6799F86FB9BDBEB9F4E89213C00804B101E0040467800
+ 0019E101006484070090111E00404678000019E101006484070090111E004046
+ 78000019E101006484070090111E00404678000019E101006484070090111E00
+ 404678000019E101006484070090111E00404678000019E10100648407009011
+ 1E00404678000019E101006484070090111E00404678000019E1010064840700
+ 90111E00404678000019E101006484070090111E00404678000019E101006484
+ 070090111E00404678000019E101006484070090111E00404678000019E10100
+ 6484070090111E00404678000019E10100641E0F8F610D8F65C84C8100005F69
+ 5A6FC625380EFB34EFF7B77FDC3D161E0000AFB746C797E1F1F6EDBBFB711A7E
+ 1C0FAF8C4E740000AF31AD273EC6D3D37F6F6EAEDF9C9FF1F8E7F0EA9BE16C10
+ 00C06B4CC3E98CC7DFB777773F9F87C787C37BBFCC2B32D3B85C0672E88FE3E6
+ 8A0F00E029735CCCC679D964BD9A74D996A594C3DD307DB8BEB9FDED3C3CDE1F
+ 06FD3AF7C6741C71F8E3E5D1F0E976F940F901009C396F84E574C51C114B482C
+ A73396B498A6F1FDCDEDF5EF5F86C77C85C7B89E1A397D0800C013A6E1B37F8A
+ FDB4C4321E2F1E9D1F3E1D1E00005B5812E4B9331E00005B101E004046780000
+ 19E101006484070090111E00404678000019E101006484070090111E00404678
+ 000019E101006484070090111E00404678000019E101006484070090111E0040
+ 4678000019E101006484070090111E00404678000019E101006484070090111E
+ 00404678000019E101006484070090111E00404678000019E101006484070090
+ 111E00404678000019E101006484070090111E00404678000019E10100648407
+ 0090111E00404678000019E101006484070090111E00404678000019E1010064
+ 84070090111E00404678000019E101006484070090111E00404678000019E101
+ 006484070090111E00404678000019E101006484070090111E00404678000019
+ E101006484070090111E00404678000019E101006484070090111E0040467800
+ 0019E101006484070090111E00404678000019E101006484070090111E004046
+ 78000019E101006484070090111E00404678000019E101006484070090111E00
+ 404678000019E101006484070090111E00404678000019E10100648407009011
+ 1E00404678000019E101006484070090111E00404678000019E1010064840700
+ 90111E00404678000019E101006484070090111E00404678000019E101006484
+ 070090111E00404678000019E101006484070090111E00404678000019E10100
+ 6484070090111E00404678000019E101006484070090111E00404678000019E1
+ 01006484070090111E00404678000019E101006484070090111E004046780000
+ 19E101006484070090111E00404678000019E101006484070090111E00404678
+ 000019E101006484070090111E00404678000019E101006484070090111E0040
+ 4678000019E101006484070090111E00404678000019E101006484070090111E
+ 00404678000019E101006484070090111E00404678000019E101006484070090
+ 111E00404678000019E101006484070090111E00404678000019E10100648407
+ 0090111E00404678000019E101006484070090111E00404678000019E1010064
+ 84070090111E00404678000019E101006484070090111E00404678000019E101
+ 006484070090111E00404678000019E101006484070090111E00404678000019
+ E101006484070090111E00404678000019E101006484070090111E0040467800
+ 0019E101006484070090111E00404678000019E101006484070090111E004046
+ 78000019E101006484070090111E00404678000019E101006484070090111E00
+ 404678000019E101006484070090111E00404678000019E10100648407009011
+ 1E00404678000019E101006484070090111E00404678000019E1010064840700
+ 90111E00404678000019E101006484070090111E00404678000019E101006484
+ 070090111E00404678000019E101006484070090111E00404678000019E10100
+ 6484070090111E00404678000019E101006484070090111E00404678000019E1
+ 01006484070090111E00404678000019E101006484070090111E004046780000
+ 19E101006484070090111E00404678000019E101006484070090111E00404678
+ 000019E101006484070090111E00404678000019E101006484070090111E0040
+ 4678000019E101006484070090111E00404678000019E101006484070090111E
+ 00404678000019E101006484070090111E00404678000019E101006484070090
+ 111E00404678000019E101006484070090111E00404678000019E10100648407
+ 0090111E00404678000019E101006484070090111E00404678000019E1010064
+ 84070090111E00404678000019E101006484070090111E00404678000019E101
+ 006484070090111E00404678000019E101006484070090111E00404678000019
+ E101006484070090111E00404678000019E101006484070090111E0040467800
+ 0019E101006484070090111E00404678000019E101006484070090111E004046
+ 78000019E10100648407C00E4DEB3E1E6EC7F5D1F09D7EA19FE6623AEEF3344C
+ EB7BE30BA7C47C3E3017DF389FC20360673E7E3C1E06C6B3A3C04B0FB0BBB71C
+ 350F87BEC311F378CCBC7A766EA679FC643E1FF42DF3293C00F6655AB7F93070
+ DC78D0E967FA73C3CCE78BBC7C3E8507C05E7C5CEFBFDF8580E7AD3FD28F4B05
+ F3B3ABF9D5F1F1B183F97CCAD7CCE771BCF000D885E97C89C577F7B38E4B28C7
+ 39BBBABA7AF0FD61329F2FF5DC7C9EC6090F803D993EBB26617431C22B99CFAD
+ 090F80BDB0CEB22DEB2C17213C00F642786C4B785C84F000D80BE1B12DE17111
+ C203602F84C7B684C745080F80BD101EDB121E17213C00F642786C4B785C84F0
+ 00D80BE1B12DE17111C203602F84C7B684C7459C87C7FFDF3F40B9175ED1A300
+ 00000049454E44AE426082}
+ end
+ object ok: TImage
+ Left = 312
+ Top = 93
+ Width = 81
+ Height = 33
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000004E00
+ 0000200806000000BC544E37000000097048597300000B1300000B1301009A9C
+ 1800000A4F6943435050686F746F73686F70204943432070726F66696C650000
+ 78DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A
+ 2109104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807
+ E421A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C008
+ 0C9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173
+ FD230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA4299
+ 5C01808401C07491384B08801400407A8E42A600404601809D98265300A00400
+ 60CB6362E300502D0060277FE6D300809DF8997B01005B94211501A091002013
+ 65884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0
+ B700C0CE100BB200080C00305188852900047B0060C8232378008499001446F2
+ 573CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE4917
+ 2B14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE
+ 0EAECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C
+ 2FB31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370
+ F87E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E
+ 3CFCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FC
+ B70BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525
+ D2FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F7
+ 0000F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E
+ 44242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC60
+ 36844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C0
+ 51688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA88
+ 01628A58238E08179985F821C14804128B2420C9881451224B91354831528A54
+ 2055481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB5
+ 43B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA
+ 8F3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB0
+ 56AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A8
+ 201C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C
+ 23D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E52
+ 23E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE4
+ 21F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52
+ DDA8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D3
+ 1A681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D8615
+ 83C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F
+ 996F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB
+ 548FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67
+ A86F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C21
+ 6B0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B3
+ 52F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB9
+ 31655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C7
+ 4A275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB44
+ 77BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C58
+ 06B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E1
+ 8491B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4D
+ EE9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79B
+ DFB7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB3
+ 46AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D8
+ 06DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB
+ 1D5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B6
+ 13CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8
+ BDE44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F29
+ 9E593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F
+ 9157ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7
+ C8B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02
+ FBF87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8
+ EC90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C278587855786
+ 3F8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A
+ 3EAA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBE
+ DFFCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A9640
+ 4C884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D843
+ 5C2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B
+ 3A9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC65
+ 85B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B267
+ 655766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5
+ 864B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD5
+ 4FABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED
+ 5D4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCA
+ BF99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB4
+ 0DDF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54
+ A454F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BE
+ DB5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D2
+ 03FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D
+ 558D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F
+ 6A429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C5979
+ 4AF354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A
+ 0F6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F
+ 6DEA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDD
+ F4BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD977
+ 27EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47
+ F7068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA7
+ 43CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7C
+ A5FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4F
+ E47C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB000003F3
+ 4944415478DAED9A5D48536118C79F99B6ADB650733A87E9564160E48D624EF3
+ 63A2F891295D0846415EA48176298149187517E29DBBD084058574A328CB0F14
+ BFA7E68517914298694C626BD6446D4EABD5F3E87B348F716ECF21CF0FFE9CF9
+ 9E5D3CFE78CF19EFFB3E0AD845C1128C09C12859E8F3314C10BB7F14F8CDF20B
+ B3CDCB4F4C80EE73C248CC718C1AA3C168312731AABFE471DFFD9FE1A4059824
+ 3FC6875967F13181BF144CCA71262C0C1361B3D9AE2726265E31180CA6F0F0F0
+ 28B1FF1B31585D5DF5B8DD6EE7E2E2E2DB9A9A9A57B3B3B34E1CFE8A59237924
+ 4EC9A445582C968BADADAD8F4C26D325B10B97126B6B6B2BB5B5B50FAC56EB04
+ FEF98586481C493BADD168E2E6E7E75BF57AFD7997CB05EDEDED30333303CBCB
+ CB62D72D0AF8B481D16884C2C242484A4A828D8D8DD5FCFCFCDB0E87E31DDE5E
+ 2171A731D16D6D6D77CBCACAEE2D2C2C405D5D1D78BD5EB16B97040A8502EAEB
+ EBC16C36C3F8F8787B7A7AFA631CFE4CE2A231B14EA7F3794C4CCC85C6C646E8
+ EDED15BB5E49919090000D0D0DE0F1789C9191916538F489C4C5624C3E9FCFAE
+ 56AB35A5A5A5F46214BB564981AF31E8E8E880EDEDED4DA5525988438B24CE84
+ 39EBF7FBED38A82A2929A1E759EC5A250589EBECEC84ADAD2DBF4AA5BA86431F
+ 49DC59CC3914D745E28A8B8B65713C485C57571727AE1887163871E7515C2789
+ 2B2A2A92C5F1207176BB9D135782431F0E89A39F5F59DC41485C7777B7B0B882
+ 8202591C0F12D7D3D3232C2E2F2F4F16C783C4F5F5F5098BCBCDCD95C5F12071
+ FDFDFDC2E2727272607D7D5DEC5A258556AB858181016171D9D9D9B2381E246E
+ 707050589CC56291C5F12071434343C2E232333365713C48DCC8C888B0385CFD
+ CBE27890B8B1B1316171696969B2381E24CEE170088B4B4D4D95C5F120711313
+ 13FF14B7B7C84F494991C5F120715353538716F907B69592939365713C48DCF4
+ F43427AE08D8B6521CC6B4B9B9F91A074FD08C9337320F121A1ABA33E37072F9
+ D46AF555601B99064C9CCBE56A8B8A8A8AABACAC84E1E161B16B9514595959D0
+ DCDC0C6EB7FB935EAFBF016CEB3C0263C0B5D87D5C6EDD1C1D1D858A8A0A0804
+ 0262D72B09828282A0A5A50532323268D9F512D7F24F811DD6D0A9BD2E3E3EFE
+ 024EC717F83C874F4E4E82D56A05BA1E65E864ABAAAA6AE78AEFFD6FF81ABB35
+ 3737F71E6F79B803E95398C8EAEA6AF313242C2C4C2F76D152C2EBF5BA1E224D
+ 4D4D3493F60EA4A90582E4D1CC8B301A8D31369BED0ECEC0CB3A9DEE8CD8458B
+ 091D07E20C7B535E5EFE6C6969894EE65760B787648B6BA4E1FA47A8D1460B07
+ 9B6E82E16834DC70708D375CD3CD77D86FBAA1CF7B4D3700FB1D4BC14CA08A5D
+ 4360BFC5EBA889A35FC71F4C941F786D5E7F0051D4F11D7B432C880000000049
+ 454E44AE426082}
+ OnMouseDown = okMouseDown
+ OnMouseUp = okMouseUp
+ end
+ object toolbar: TImage
+ Left = 3
+ Top = 3
+ Width = 486
+ Height = 20
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D49484452000001E400
+ 00001408060000005C4B4E5400000A4F6943435050686F746F73686F70204943
+ 432070726F66696C65000078DA9D53675453E9163DF7DEF4424B8880944B6F52
+ 15082052428B801491262A2109104A8821A1D91551C1114545041BC8A088038E
+ 8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5
+ D73EE7ACF39DB3CF07C0080C9648335135800CA9421E11E083C7C4C6E1E42E40
+ 810A2470001008B3642173FD230100F87E3C3C2B22C007BE000178D30B0800C0
+ 4D9BC0301C87FF0FEA42995C01808401C07491384B08801400407A8E42A60040
+ 4601809D98265300A0040060CB6362E300502D0060277FE6D300809DF8997B01
+ 005B94211501A09100201365884400683B00ACCF568A450058300014664BC439
+ 00D82D00304957664800B0B700C0CE100BB200080C00305188852900047B0060
+ C8232378008499001446F2573CF12BAE10E72A00007899B23CB9243945815B08
+ 2D710757572E1E28CE49172B14366102619A402EC27999193281340FE0F3CC00
+ 00A0911511E083F3FD78CE0EAECECE368EB60E5F2DEABF06FF226262E3FEE5CF
+ AB70400000E1747ED1FE2C2FB31A803B06806DFEA225EE04685E0BA075F78B66
+ B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA57
+ 7DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D814704F8E0C2CCF44CA5
+ 1CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9582A14E35112718E449A
+ 8CF332A52289429229C525D2FF64E2DF2CFB033EDF3500B06A3E017B912DA85D
+ 6303F64B27105874C0E2F70000F2BB6FC1D4280803806883E1CF77FFEF3FFD47
+ A02500806649927100005E44242E54CAB33FC708000044A0812AB0411BF4C118
+ 2CC0061CC105DCC10BFC6036844224C4C24210420A64801C726029AC82422886
+ CDB01D2A602FD4401D34C051688693700E2EC255B80E3D700FFA61089EC128BC
+ 81090441C808136121DA8801628A58238E08179985F821C14804128B2420C988
+ 1451224B91354831528A542055481DF23D720239875C46BA913BC8003282FC86
+ BC47319481B2513DD40CB543B9A8371A8446A20BD06474319A8F16A09BD072B4
+ 1A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C46C302EC6C342B1382C09
+ 9363CBB122AC0CABC61AB056AC03BB89F563CFB17704128145C0093604774220
+ 611E4148584C584ED848A8201C243411DA093709038451C2272293A84BB426BA
+ 11F9C4186232318758482C23D6128F132F107B8843C437241289433227B99002
+ 49B1A454D212D246D26E5223E92CA99B34481A2393C9DA646BB20739942C202B
+ C885E49DE4C3E433E41BE421F25B0A9D624071A4F853E22852CA6A4A19E510E5
+ 34E5066598324155A39A52DDA8A15411358F5A42ADA1B652AF5187A81334759A
+ 39CD8316494BA5ADA295D31A681768F769AFE874BA11DD951E4E97D057D2CBE9
+ 47E897E803F4770C0D861583C7886728199B18071867197718AF984CA619D38B
+ 19C754303731EB98E7990F996F55582AB62A7C1591CA0A954A9526951B2A2F54
+ A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353E3A909D496AB55AA9D50
+ EB531B5367A93BA887AA67A86F543FA47E59FD890659C34CC34F43A451A0B15F
+ E3BCC6200B6319B3782C216B0DAB86758135C426B1CDD97C762ABB98FD1DBB8B
+ 3DAAA9A13943334A3357B352F394663F07E39871F89C744E09E728A797F37E8A
+ DE14EF29E2291BA6344CB931655C6BAA96979658AB48AB51AB47EBBD36AEEDA7
+ 9DA6BD45BB59FB810E41C74A275C2747678FCE059DE753D953DDA70AA7164D3D
+ 3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D
+ 2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC535716F3C1D2FC7DBF151
+ 435DC34043A561956197E18491B9D13CA3D5468D460F8C69C65CE324E36DC66D
+ C6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD69935
+ 9B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B86549B2E45AA659EEB6BC
+ 6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3
+ B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D6167621767B7C5AEC3EE93BD937D
+ BA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496
+ E92F6758CF10CFD833E3B613CB29C4699D539BD347671767B97383F3888B894B
+ 82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE
+ 36EE69EE87DC9FCC349F299E593373D0C3C843E051E5D13F0B9F95306BDFAC7E
+ 4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761EF173EF63E729FE33EE3
+ 3C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A7
+ 8025016703898141815B02FBF87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115
+ 418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE690E85507EE8D6D00761E6
+ 618BC37E0C2785878557863F8E7088581AD131973577D1DC4373DF44FA449644
+ DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3FC62E6659CCD5589D5849
+ 6C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B17982FC85D7079A1CEC2
+ F485A716A92E122C3A96404C884E3894F041102AA8168C25F21377258E0A79C2
+ 1DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC91BC357924C533A52CE5
+ B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD31839291907142AA214D
+ 93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507C96BB390AC05592D0AB6
+ 42A6E8545A28D72A07B267655766BFCD89CA3996AB9E2BCDEDCCB3CADB90379C
+ EF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39B23C7179DB0AE315052B
+ 865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D6B815EC1CA82C1B5016B
+ EB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D1B3E15898AAE14DB1797
+ 157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E
+ 96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF
+ 3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB561D7F86ED1EE1B7BBCF6
+ 34ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49FBB3F73FAE89AAE9F896
+ FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51DD23D54528FD62BEB470E
+ C71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9F709DFF71E0D3ADA768C
+ 7BACE107D31F761D671D2F6A429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE
+ 7AFC47DB1F0F9C343C59794AF354C969DAE982D39367F2CF8C9D959D7D7E2EF9
+ DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2
+ B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7A
+ BDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF
+ 16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8
+ EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43058F998FCB860D86EB9E
+ 383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CE
+ D198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FB
+ EDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553D0A7FB93199393FF0403
+ 98F3FC63332DDB00000006624B474400FF00FF00FFA0BDA79300000009704859
+ 7300000B1300000B1301009A9C180000000774494D4500000000000000097394
+ 2E000002F14944415478DAEDDCBB4B5B511CC0F1DFCDC34732B8B4828ECDA4A0
+ E0D2C53FC2470C3E7153D4A6BEDF128C2F5C74D241C82408FD0F44A3F8402777
+ 37355B3B18173134913C7ACE850BB625694B7311E4FB81C3156E0871FAF23BF7
+ 24868838D42AF5783C155B5B5B75353535BE5C2EF72E994C96A7D369A7FADB50
+ F7C5BA020080BF631846CEBABA5CAE6C5959D977A7D319BFB9B9B90B8542D7B1
+ 58EC41DD4EA995D591AD0E0402F5914864F7F1F1B172676747AEAEAE249148E8
+ 3778EDFF05008037410DB6E2F57AA5A1A141FAFAFAA4AAAAEA7E737333180E87
+ 2FD5EDB82EEE87EEEEEE8F7B7B7B5F2E2E2E647D7D5D9E9F9F4515FCB53F3B00
+ 006F4A369B95929212E9EFEF97A6A6A68C0AF2E7C9C9C9A8BAF5EDA7209F9F9F
+ 136400006CA283EC76BB656060409A9B9BF307F9ECEC4CD6D6D60832000036B0
+ 26E4C1C141696969291CE4D5D55549A552669079860C004071E867C856908786
+ 86A4B5B5357F904F4E4E646565C50CB2CBE57AEDCF0E00C09B92C964CC200783
+ 41F1FBFD8583BCB4B4C49635000036B09E210F0F0FFF39C88B8B8B6C59030060
+ 036B421E191991B6B6B6FC413E3E3E965028C4840C00800DAC0979747454DADB
+ DBF307F9E8E848161616CC20F30C190080E2B226E4B1B131E9E8E8281CE4B9B9
+ 39266400006C604DC8131313D2D9D9993FC8D1685466676739650D00800DAC09
+ 796A6AAA70900F0F0F657A7A9A091900001B58DF43D6ADEDEAEACA1FE4838303
+ B3DA9CB20600A0B85EFE30C8CCCC8CF4F4F4140EB2DED726C80000149FB565AD
+ CF6B150CF2FEFEBE8C8F8FB3650D00800DAC095907B9B7B7F76590BFFE16647D
+ 149B435D0000149F3521EBAF18FF12647342AE0E0402F5914864371E8F572E2F
+ 2FCBE9E9A93C3D3D99FBDD0000E0FFE89E3A1C0EF17ABDD2D8D828F3F3F3E2F3
+ F9E21B1B1B9FC2E1F0A57A495C07D9A156A9C7E3A9D8DEDEAEABADADF5A982BF
+ 4F2412E5E9745ADF33F41BA9C503650000FE816118397D1E4B5F9D4E6756B536
+ E976BBEF6F6F6FEFD4947C1D8BC51ED4CB526A657F000A72DFCF211D835B0000
+ 000049454E44AE426082}
+ OnMouseMove = toolbarMouseMove
+ end
+ object title: TLabel
+ Left = 12
+ Top = 5
+ Width = 62
+ Height = 16
+ Caption = 'Tux Droid'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindow
+ Font.Height = -13
+ Font.Name = 'Verdana'
+ Font.Style = []
+ ParentFont = False
+ Transparent = True
+ end
+ object okLabel: TLabel
+ Left = 320
+ Top = 102
+ Width = 60
+ Height = 13
+ Alignment = taCenter
+ AutoSize = False
+ Caption = 'okLabel'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindow
+ Font.Height = -12
+ Font.Name = 'Verdana'
+ Font.Style = []
+ ParentFont = False
+ Transparent = True
+ OnMouseDown = okMouseDown
+ OnMouseUp = okMouseUp
+ end
+ object ExitButton: TImage
+ Left = 452
+ Top = 1
+ Width = 25
+ Height = 25
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001700
+ 0000170806000000E02AD4A0000000097048597300000B1300000B1301009A9C
+ 1800000A4F6943435050686F746F73686F70204943432070726F66696C650000
+ 78DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A
+ 2109104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807
+ E421A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C008
+ 0C9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173
+ FD230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA4299
+ 5C01808401C07491384B08801400407A8E42A600404601809D98265300A00400
+ 60CB6362E300502D0060277FE6D300809DF8997B01005B94211501A091002013
+ 65884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0
+ B700C0CE100BB200080C00305188852900047B0060C8232378008499001446F2
+ 573CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE4917
+ 2B14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE
+ 0EAECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C
+ 2FB31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370
+ F87E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E
+ 3CFCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FC
+ B70BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525
+ D2FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F7
+ 0000F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E
+ 44242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC60
+ 36844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C0
+ 51688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA88
+ 01628A58238E08179985F821C14804128B2420C9881451224B91354831528A54
+ 2055481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB5
+ 43B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA
+ 8F3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB0
+ 56AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A8
+ 201C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C
+ 23D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E52
+ 23E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE4
+ 21F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52
+ DDA8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D3
+ 1A681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D8615
+ 83C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F
+ 996F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB
+ 548FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67
+ A86F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C21
+ 6B0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B3
+ 52F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB9
+ 31655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C7
+ 4A275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB44
+ 77BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C58
+ 06B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E1
+ 8491B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4D
+ EE9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79B
+ DFB7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB3
+ 46AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D8
+ 06DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB
+ 1D5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B6
+ 13CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8
+ BDE44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F29
+ 9E593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F
+ 9157ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7
+ C8B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02
+ FBF87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8
+ EC90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C278587855786
+ 3F8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A
+ 3EAA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBE
+ DFFCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A9640
+ 4C884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D843
+ 5C2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B
+ 3A9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC65
+ 85B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B267
+ 655766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5
+ 864B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD5
+ 4FABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED
+ 5D4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCA
+ BF99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB4
+ 0DDF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54
+ A454F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BE
+ DB5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D2
+ 03FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D
+ 558D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F
+ 6A429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C5979
+ 4AF354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A
+ 0F6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F
+ 6DEA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDD
+ F4BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD977
+ 27EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47
+ F7068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA7
+ 43CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7C
+ A5FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4F
+ E47C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB0000048E
+ 4944415478DA8D956D2CA45714C7CF18763A8BF53E8851339692F04143191521
+ 25257CD8FA62BE18528904F192064B30B4C16287906AAB54B3ADB05F2AEC56D7
+ 90268448D65B427642D9B0D8B621D2463B9D31D3CE0C3DE7E97D84356D9DE49F
+ 79E63EF7FECE79CE3DF71EC1D9D919F02640638F4294134A84BAC1E4887240D1
+ 021BCA82FA0BF5277BB6A24ED9FB7F783C9C811D18448CBA897261BAC91C0819
+ 8040669481C9883A61CE6CBC030ECEC0420620903BCA332B2B2BBCB4B4F44E64
+ 64E45B3E3E3E817C4466B3F9647B7BFBD9ECECEC4C4949C9240EFD8A3A46FDC1
+ 9C92F33382F2118B5894DE128924607474B45CA150A40BD1E03FECF0F070B7B1
+ B151D3DFDFBF8C7F8F50BFA14CE4808753C4AE2849525252C4D0D0D03DA9541A
+ 428BA7A7A761727212D6D6D6CE81E81C701E2427274368682858AD56CBC0C040
+ 575151D137E48F39300B588EF988E508E9F5F7F7BFBDBBBB0B5D5D5DB0B1B1F1
+ AF5153362B2B2B212D2D0D6C686D6D6D0DF5F5F54FF0D5014A2FB890E3C0F9F9
+ 797542424226E613AAABABE1F8F818AE63E4202323038C46A33E3A3A5AB5B5B5
+ F503A548C0C0BE4AA5F2EDE1E1E12F28C7C5C5C5B0BEBE7E2D306F1A8D066263
+ 630137F911A6AB05877E22B804259D999969C0C13B535353D0DCDC0C2E562B7C
+ ACD341A8D1085A5F5FB887B9E5CDDEBBA8A828E8E9E90193C964C0CA7A0FBF62
+ 87E05294ECE8E8E821951B9616ACAEAE9E433EC12F20C8046E624B4888DD31DE
+ FAFAFA00CB16D46AF55D0C709CE032D46D8BC5A275747474A20AC03A3E5FE06A
+ B3C1A7B8A96F9C9CC0131F1F0ECA3F3705075F4A0D422133331330BD9FE5E4E4
+ F4113C382E2EEECD85858511BD5E0F29292957F2490E3EDFDAE2A064DF797BC3
+ 4732D99579656565A052A9606262E2213AD170F0B0B0B0C8CDCDCDC727B83831
+ 31D12EBCEFF973083399B8FFE35E5EF06150D09579E5E5E5909B9B0B5AAD7618
+ AB8783D32C3982C7C562B14B7A7A3A9DBA4BE0819D1D0EFCADA727F7CB3F3704
+ 065E8277777773070B0F94A6A0A0E06B82FBA35ED7E974DDB8198A8E8E0E181C
+ 1C3C077FF9E20584E31E3CF6F000B5546A778C4C2412C1F2F232E05D751A1F1F
+ AF5C5C5C5C23B81739E8EDED55151616DEA513999D9DCD411EECED719047EEEE
+ 501F1070E96B5E7D57555505797979B0B7B7B72197CB0B70DA4B82BB3007B283
+ 8383077E7E7EF2B1B131A8ADADBDF6010A0F0F075A4356535353D5DEDEAEC5C7
+ 4382D36D4897961F1EE3D4D6D6D6FB5492232323505757F7BFE0888808EE0E0A
+ C20DC6B47C8FA7B411877F441DF3F73839F0A0F4E0D5A9CCCFCFFF80AE81B9B9
+ 39EE602C2D2D5DAD205757AE3A281564FBFBFBEBB867650683E125FEFD0565E4
+ AF5C7220660E7C9B9A9ADEADA8A8A8A1EAA1852B2B2BB0831583070D9C9C9CC0
+ 1BEB3C262606DCDCDC38306EDE546A6AEA7D04FFCCC0D49D2C173B11F5CCD750
+ B7680FB0F68330EAF711F28EB3B3F32D7B294187CFB010BEEAECEC7CCAA0748D
+ 52CBA39E7AFA6A0F75642972664E2834D79696160536051966EA063506BA5AD1
+ F1538C98EEEDDF99285AAE03016BD4023BDD5F78C189987D0D89BA95035B484D
+ 98BABE99014D2C5ABE3973D0BF012EF003D0211639A80000000049454E44AE42
+ 6082}
+ OnMouseDown = ExitButtonMouseDown
+ OnMouseUp = ExitButtonMouseUp
+ end
+ object StringMessage: TLabel
+ Left = 48
+ Top = 40
+ Width = 425
+ Height = 57
+ AutoSize = False
+ Caption = 'StringMessage'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -12
+ Font.Name = 'Verdana'
+ Font.Style = [fsBold]
+ ParentFont = False
+ Transparent = True
+ WordWrap = True
+ end
+ object Image1: TImage
+ Left = 8
+ Top = 39
+ Width = 33
+ Height = 33
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
+ 00001C0806000000720DDF94000000097048597300000B1300000B1301009A9C
+ 1800000A4F6943435050686F746F73686F70204943432070726F66696C650000
+ 78DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A
+ 2109104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807
+ E421A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C008
+ 0C9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173
+ FD230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA4299
+ 5C01808401C07491384B08801400407A8E42A600404601809D98265300A00400
+ 60CB6362E300502D0060277FE6D300809DF8997B01005B94211501A091002013
+ 65884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0
+ B700C0CE100BB200080C00305188852900047B0060C8232378008499001446F2
+ 573CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE4917
+ 2B14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE
+ 0EAECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C
+ 2FB31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370
+ F87E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E
+ 3CFCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FC
+ B70BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525
+ D2FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F7
+ 0000F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E
+ 44242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC60
+ 36844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C0
+ 51688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA88
+ 01628A58238E08179985F821C14804128B2420C9881451224B91354831528A54
+ 2055481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB5
+ 43B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA
+ 8F3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB0
+ 56AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A8
+ 201C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C
+ 23D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E52
+ 23E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE4
+ 21F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52
+ DDA8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D3
+ 1A681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D8615
+ 83C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F
+ 996F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB
+ 548FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67
+ A86F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C21
+ 6B0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B3
+ 52F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB9
+ 31655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C7
+ 4A275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB44
+ 77BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C58
+ 06B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E1
+ 8491B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4D
+ EE9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79B
+ DFB7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB3
+ 46AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D8
+ 06DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB
+ 1D5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B6
+ 13CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8
+ BDE44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F29
+ 9E593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F
+ 9157ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7
+ C8B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02
+ FBF87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8
+ EC90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C278587855786
+ 3F8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A
+ 3EAA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBE
+ DFFCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A9640
+ 4C884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D843
+ 5C2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B
+ 3A9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC65
+ 85B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B267
+ 655766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5
+ 864B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD5
+ 4FABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED
+ 5D4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCA
+ BF99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB4
+ 0DDF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54
+ A454F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BE
+ DB5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D2
+ 03FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D
+ 558D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F
+ 6A429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C5979
+ 4AF354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A
+ 0F6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F
+ 6DEA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDD
+ F4BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD977
+ 27EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47
+ F7068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA7
+ 43CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7C
+ A5FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4F
+ E47C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB00000561
+ 4944415478DAAD56694C5557109E27BB6C4F2AFBF64482353469802846896517
+ 0229D02AB63FA8202541A8D020464B20ECB690B084A6610D8881420385901848
+ 64918280068D1514642BC122B5D6AA28086591CE9C9C5B9EE4BEDB259DE4CBB9
+ 77EE79E77BE73B33734606AA4D86D88650E7D0406822D438C8D639569520F8C8
+ 36C416952222021D8EED086DEE535722249265C412E2151FE97D0DF17A2BA94C
+ 844C4D89C8006188909F3973C6292020C04D5F5FFF2D2B2BAB5D34F9F1E3C70F
+ 5FBE7CF9B4AFAFEFE6B973E77AD1F51C318F78815844AC70E20D3142818C76A1
+ 873042185756567E10141474DCC8C8C854427E585E5E7ED5DEDEDE74FAF4E9BA
+ 99999959743DE5E4CBCAA4321132DA95B1B7B7B7635555553AEEC69E264C4C4C
+ C0BD7BF7E0C18307EC99CCC6C606CCCCCCC0D9D9191C1D1D996F7E7EFEF78C8C
+ 8C0BF9F9F93D2402DFF592402A1012991697CF342E2EEEBDECECEC343D3D3DF9
+ F4F4345CBE7C9941CA0E1D3A048181818C7C6D6D6DB5BCBCBC302626A6013FFD
+ C24969A7EB32BE3B4D2EA3299E93737D7DFDD74436303000797979F4AFE19FDA
+ D9B367C1D7D717D6D1929292BEC8CDCD6DE7A474AE7F08525204EE44D8CECDCD
+ 55989B9BEFEEEFEF87949414D1453B3B3BD9E8E5E525FA3D313111FCFDFD6169
+ 6969C1C3C323E2C68D1B435CDE05999294961820E11111117193939380510918
+ 81A20B767575B1D1D3D353E54EB3B2B2E0E0C18380641D070E1C4846D7CF8867
+ 44A84B418212DA61747D4BD1585050002D2D2D2A17EBEEEE66A3BBBBBBCA39F6
+ F6F6505151C1A4F5F3F3FBA4A3A363907649843B10E6696969EFA7A6A67E393C
+ 3C0CB1B1B192E7D4D3D3C3C6C3870F4BCEC368657F0AFFFCA5E0E0E002743D24
+ 421384F5D5AB5753F063504D4D0D949494482E74EDDA3536BAB9B949CEC3F383
+ CCCC4C181F1FBFB367CF9E53E89A21420B84EDD8D858B18383C3BB5831A0B7B7
+ 5772210A28323A2329B3B0B080C6C646969B72B9FC43744D13A11542313B3B5B
+ 6D6969691715150524AB945DBF7E9D8D180C92F3B4B5B5D979535E6A6868F8A3
+ 6B4A20DC85E97009D341111E1ECE2A8A940D0E0EB271DFBE7D92F334353501EB
+ 2C0B1C7575F523E8FA499054313535556A6767F70ED6C2BF245365B76EDD62A3
+ 8B8B8BE43C131313686B6BA3F49A373030081624A5A26C8D3265B9BABA1E292A
+ 2A02ACA1920BDDBE7D9B8D4E4E4E92F348F2E2E262C074BBAF50282281070DDD
+ 0A168585851FC7C7C72751398B8E8E86FFC330D5202424043007BFF7F1F1B980
+ AE5922D44718DBDADABE3D3A3AFA9D8E8E8E1EE5A1906BFFD50C0D0DA1A9A989
+ C97AF2E4C96854ED07743F124A1B25BF556B6B6B22D6C0E3588E6892CAC584A0
+ 12AE2431C3DB0630D9E92AFB11D3ED339213F19408A95D60E50DCD1E83A7166F
+ 75A3E6E666C06A2FBA182AC1C6BD7BF78A7E0F0D0D85F4F474169D274E9C3855
+ 5B5BDB87EE5F112F94AF272AE066090909DE3939395F61186B50D2262727FF2B
+ 298F1E3DCA0A37597575F537986617F1710EF89D281052D3A4CDA5352B2D2DFD
+ 283232F2733534BA8A28D286868624895015387FFE3C1C3B768CBDF340C9E764
+ D46E5083B5AEDC6290B4D438C911A628A72722495757975A0EB872E50A035D5D
+ 77EFDE653FA21BC1DADA1AF0D286FDFBF7B3524632D6D5D595858585D5509028
+ 915177B7B1B5891248896427E6E56EBCF13FC5D18B24FE3B39F1FC87F0862F29
+ 2B2BBB89AFBFC1663F4364AF05121021D5E28144E7BA03AF2105A68A17561657
+ DCB11C1B271B9AFCE4C993478B8B8BCF474646EE60D8B7373434DC47F7334EB4
+ 006FF6A7204628F8D438319DEB764EBE9DEF5E0BDE6C8457F82E963889F0BCC2
+ BF4B36C25BFD44AC019B6DBED0756FE3DF37F80E5639C10A6CB6FB1B20D2EAFF
+ 09F515175A24390F980000000049454E44AE426082}
+ end
+ object cancel: TImage
+ Left = 400
+ Top = 93
+ Width = 81
+ Height = 33
+ Picture.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000004E00
+ 0000200806000000BC544E37000000097048597300000B1300000B1301009A9C
+ 1800000A4F6943435050686F746F73686F70204943432070726F66696C650000
+ 78DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A
+ 2109104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807
+ E421A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C008
+ 0C9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173
+ FD230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA4299
+ 5C01808401C07491384B08801400407A8E42A600404601809D98265300A00400
+ 60CB6362E300502D0060277FE6D300809DF8997B01005B94211501A091002013
+ 65884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0
+ B700C0CE100BB200080C00305188852900047B0060C8232378008499001446F2
+ 573CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE4917
+ 2B14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE
+ 0EAECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C
+ 2FB31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370
+ F87E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E
+ 3CFCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FC
+ B70BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525
+ D2FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F7
+ 0000F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E
+ 44242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC60
+ 36844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C0
+ 51688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA88
+ 01628A58238E08179985F821C14804128B2420C9881451224B91354831528A54
+ 2055481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB5
+ 43B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA
+ 8F3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB0
+ 56AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A8
+ 201C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C
+ 23D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E52
+ 23E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE4
+ 21F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52
+ DDA8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D3
+ 1A681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D8615
+ 83C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F
+ 996F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB
+ 548FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67
+ A86F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C21
+ 6B0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B3
+ 52F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB9
+ 31655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C7
+ 4A275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB44
+ 77BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C58
+ 06B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E1
+ 8491B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4D
+ EE9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79B
+ DFB7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB3
+ 46AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D8
+ 06DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB
+ 1D5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B6
+ 13CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8
+ BDE44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F29
+ 9E593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F
+ 9157ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7
+ C8B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02
+ FBF87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8
+ EC90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C278587855786
+ 3F8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A
+ 3EAA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBE
+ DFFCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A9640
+ 4C884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D843
+ 5C2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B
+ 3A9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC65
+ 85B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B267
+ 655766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5
+ 864B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD5
+ 4FABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED
+ 5D4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCA
+ BF99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB4
+ 0DDF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54
+ A454F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BE
+ DB5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D2
+ 03FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D
+ 558D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F
+ 6A429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C5979
+ 4AF354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A
+ 0F6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F
+ 6DEA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDD
+ F4BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD977
+ 27EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47
+ F7068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA7
+ 43CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7C
+ A5FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4F
+ E47C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB000003F3
+ 4944415478DAED9A5D48536118C79F99B6ADB650733A87E9564160E48D624EF3
+ 63A2F891295D0846415EA48176298149187517E29DBBD084058574A328CB0F14
+ BFA7E68517914298694C626BD6446D4EABD5F3E87B348F716ECF21CF0FFE9CF9
+ 9E5D3CFE78CF19EFFB3E0AD845C1128C09C12859E8F3314C10BB7F14F8CDF20B
+ B3CDCB4F4C80EE73C248CC718C1AA3C168312731AABFE471DFFD9FE1A4059824
+ 3FC6875967F13181BF144CCA71262C0C1361B3D9AE2726265E31180CA6F0F0F0
+ 28B1FF1B31585D5DF5B8DD6EE7E2E2E2DB9A9A9A57B3B3B34E1CFE8A59237924
+ 4EC9A445582C968BADADAD8F4C26D325B10B97126B6B6B2BB5B5B50FAC56EB04
+ FEF98586481C493BADD168E2E6E7E75BF57AFD7997CB05EDEDED30333303CBCB
+ CB62D72D0AF8B481D16884C2C242484A4A828D8D8DD5FCFCFCDB0E87E31DDE5E
+ 2171A731D16D6D6D77CBCACAEE2D2C2C405D5D1D78BD5EB16B97040A8502EAEB
+ EBC16C36C3F8F8787B7A7AFA631CFE4CE2A231B14EA7F3794C4CCC85C6C646E8
+ EDED15BB5E49919090000D0D0DE0F1789C9191916538F489C4C5624C3E9FCFAE
+ 56AB35A5A5A5F46214BB564981AF31E8E8E880EDEDED4DA5525988438B24CE84
+ 39EBF7FBED38A82A2929A1E759EC5A250589EBECEC84ADAD2DBF4AA5BA86431F
+ 49DC59CC3914D745E28A8B8B65713C485C57571727AE1887163871E7515C2789
+ 2B2A2A92C5F1207176BB9D135782431F0E89A39F5F59DC41485C7777B7B0B882
+ 8202591C0F12D7D3D3232C2E2F2F4F16C783C4F5F5F5098BCBCDCD95C5F12071
+ FDFDFDC2E2727272607D7D5DEC5A258556AB858181016171D9D9D9B2381E246E
+ 707050589CC56291C5F12071434343C2E232333365713C48DCC8C888B0385CFD
+ CBE27890B8B1B1316171696969B2381E24CEE170088B4B4D4D95C5F120711313
+ 13FF14B7B7C84F494991C5F120715353538716F907B69592939365713C48DCF4
+ F43427AE08D8B6521CC6B4B9B9F91A074FD08C9337320F121A1ABA33E37072F9
+ D46AF555601B99064C9CCBE56A8B8A8A8AABACAC84E1E161B16...
[truncated message content] |
|
From: remi <c2m...@c2...> - 2009-08-31 08:38:23
|
Author: remi
Date: 2009-08-31 10:38:01 +0200 (Mon, 31 Aug 2009)
New Revision: 5312
Modified:
software_suite_v3/software/plugin/plugin-webradio/trunk/executables/plugin-webradio.py
software_suite_v3/software/plugin/plugin-webradio/trunk/resources/plugin.xml
Log:
* Added method to clean mplayer instances on Windows.
* Updated version to 0.0.9
Modified: software_suite_v3/software/plugin/plugin-webradio/trunk/executables/plugin-webradio.py
===================================================================
--- software_suite_v3/software/plugin/plugin-webradio/trunk/executables/plugin-webradio.py 2009-08-18 15:18:42 UTC (rev 5311)
+++ software_suite_v3/software/plugin/plugin-webradio/trunk/executables/plugin-webradio.py 2009-08-31 08:38:01 UTC (rev 5312)
@@ -55,17 +55,21 @@
2009/06/29 - version 0.0.8:
- Added support of webradio address
+
+2009/08/31 - version 0.0.9:
+ - Added method to clean mplayer instances at plugin exit (Windows)
"""
__author__ = "Eric Lescaudron AKA Gwadavel"
__appname__ = "tux web radio"
-__version__ = "0.0.8"
-__date__ = "2009/06/05"
+__version__ = "0.0.9"
+__date__ = "2009/08/31"
__license__ = "GPL"
import os
import time
import sys
+import threading
sys.path.append(os.environ['TUXDROID_SERVER_PYTHON_UTIL'])
@@ -164,10 +168,46 @@
self.__speakRadioName(radioName)
self.__player.start(radioUrl, True)
+ def __killMplayerInstances(self):
+ """Kill mplayer instances.
+ """
+ if os.name == "nt":
+ import pythoncom
+ import win32api
+ from win32com.client import GetObject
+ pythoncom.CoInitialize()
+ WMI = GetObject('winmgmts:')
+ processes = WMI.InstancesOf('Win32_Process')
+ pidToKill = []
+ for process in processes:
+ name = process.Properties_('Name').Value
+ cmdLine = process.Properties_('CommandLine').Value
+ pid = process.Properties_('ProcessId').Value
+ if name.lower() == "mplayer.exe":
+ if (cmdLine.lower().find('smart-server') != -1) and \
+ (cmdLine.lower().find('util') != -1):
+ pidToKill.append(pid)
+ for pid in pidToKill:
+ try:
+ handle = win32api.OpenProcess(1, False, pid)
+ win32api.TerminateProcess(handle, -1)
+ win32api.CloseHandle(handle)
+ except:
+ pass
+ pythoncom.CoUninitialize()
+
+ def cleanUp(self):
+ """Clean up mplayer.
+ """
+ t = threading.Thread(target = self.__killMplayerInstances)
+ t.start()
+ time.sleep(0.25)
+
def onPluginStop(self):
"""Event on plugin stop.
"""
self.__player.stop()
+ self.cleanUp()
def onPluginEvent(self, eventName, eventValues):
"""Callback on plugin event.
Modified: software_suite_v3/software/plugin/plugin-webradio/trunk/resources/plugin.xml
===================================================================
--- software_suite_v3/software/plugin/plugin-webradio/trunk/resources/plugin.xml 2009-08-18 15:18:42 UTC (rev 5311)
+++ software_suite_v3/software/plugin/plugin-webradio/trunk/resources/plugin.xml 2009-08-31 08:38:01 UTC (rev 5312)
@@ -8,7 +8,7 @@
<ttsName>Plugin webradio.</ttsName>
<description>This plugin controls the webradios.</description>
<author>Gwadavel and Kysoh</author>
- <version>0.0.8</version>
+ <version>0.0.9</version>
<iconFile>resources/icon.png</iconFile>
<uuid>8349ed52-572d-4c3f-a7b8-05c2a8aec2c6</uuid>
<platform>all</platform>
|
|
From: gwadavel <c2m...@c2...> - 2009-08-18 15:19:12
|
Author: gwadavel
Date: 2009-08-18 17:18:42 +0200 (Tue, 18 Aug 2009)
New Revision: 5311
Modified:
software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py
software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po
software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml
Log:
add check command
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py 2009-08-14 14:31:02 UTC (rev 5310)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/executables/plugin-battery.py 2009-08-18 15:18:42 UTC (rev 5311)
@@ -40,12 +40,38 @@
from util.SimplePlugin.SimplePluginConfiguration import SimplePluginConfiguration
from util.SimplePlugin.SimplePlugin import SimplePlugin
+
+class Configuration(SimplePluginConfiguration):
+ """This class make an access to the plugin parameters.
+ Parameters are automatically filled by the SimplePlugin class at plugin
+ starting.
+ """
+
+ def __init__(self):
+ """Initialization of the class.
+ It's necessary to initialize the values because the type of the python
+ variables is set by value assignation. If we don't initialize the
+ parameters the simple plugin class can't check and validate the values
+ passed by the plugins server through the os environment variables.
+ """
+ # Call the super class
+ SimplePluginConfiguration.__init__(self)
+ # Initialize the parameters
+
+ self.__enumState = ""
+
+ def getEnumState(self):
+ return self.__enumState
+
+ def setEnumState(self, enumState):
+ self.__enumState = enumState
+
+
class Battery(object):
"""
Manage the battery.
"""
- tgp_language = "en"
tgp_ip = "127.0.0.1"
tgp_port = 270
tux = TuxAPI("127.0.0.1", 270)
@@ -55,10 +81,7 @@
'''
self.plugin = plug
- # Test language, ip, port
- if "tgp_language" in os.environ:
- self.tgp_language = os.environ["tgp_language"]
-
+ # Test ip, port
if "tgp_ip" in os.environ:
self.tgp_ip = os.environ["tgp_ip"]
@@ -103,7 +126,7 @@
if self.tuxConnect():
if not self.tux.radio.getConnected():
- plugin.throwTrace("I can't find my fish. Please, make sure I'm connected.")
+ plugin.throwTrace("I can't find my fish. Please, make sure I'm connected.")
else:
level = self.getLevel()
state = self.getState()
@@ -112,7 +135,19 @@
self.stop()
+ def check(self):
+ """
+ """
+ if self.tuxConnect():
+
+ if not self.tux.radio.getConnected():
+ plugin.throwTrace("I can't find my fish. Please, make sure I'm connected.")
+ else:
+ state = self.getState()
+ self.tux.access.release()
+ return state
+
def stop(self):
"""
"""
@@ -133,19 +168,35 @@
# Call the super class
SimplePlugin.__init__(self)
self.sbattery = Battery(self)
-
def start(self):
"""Plugin entry point.
This method should be used to dispatch commands.
"""
- self.run()
+ if self.getCommand() == "run":
+ self.run()
+ elif self.getCommand() == "check":
+ self.check()
+ else:
+ self.run()
def run(self):
"""Plugin entry point for the "run" command.
"""
self.sbattery.start()
+ def check(self):
+ """Plugin entry point for the "check" command.
+ """
+ # Check if battery state == battery state to check
+ print self.sbattery.check()
+ print self.configuration().getEnumState()
+ if self.sbattery.check() == self.configuration().getEnumState():
+ checkResult = True
+ # Return the check result
+ self.throwResult(checkResult)
+ self.throwMessage("Battery state is %s" %self.sbattery.getState())
+
def onPluginStop(self):
"""Callback on plugin stop.
"""
@@ -154,4 +205,4 @@
if __name__ == "__main__":
plugin = BatteryPlugin()
- plugin.boot(sys.argv[1:], SimplePluginConfiguration())
+ plugin.boot(sys.argv[1:], Configuration())
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po 2009-08-14 14:31:02 UTC (rev 5310)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po 2009-08-18 15:18:42 UTC (rev 5311)
@@ -1,9 +1,9 @@
msgid "Battery Level"
-msgstr ""
+msgstr "Niveau de la batterie"
msgid "Says battery level"
-msgstr ""
+msgstr "Indique le niveau de la batterie"
msgid "Says the battery level and it state"
-msgstr ""
+msgstr "Indique le niveau de la batterie et son etat"
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml 2009-08-14 14:31:02 UTC (rev 5310)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml 2009-08-18 15:18:42 UTC (rev 5311)
@@ -14,12 +14,50 @@
<uuid>868a9389-01a9-4a8c-b63e-68414d154798</uuid>
<platform>all</platform>
</description>
+ <parameters>
+ <parameter
+ name="enumState"
+ description="Battery state to Check"
+ type="enum(FULL,HIGH,LOW,EMPTY)"
+ defaultValue="LOW"
+ platform="all"/>
+ </parameters>
<commands>
<command
name="run"
description="Says the battery level and it state"
daemon="false" />
+ <command
+ name="check"
+ description="Check battery state"
+ daemon="false" />
</commands>
<tasks>
+ <task
+ name="My checker"
+ description="Check battery state every x minutes"
+ command="check"
+ type="every x"
+ activated="false"
+
+ weekMask="true,false,false,false,false,false,false"
+ weekMaskType="exclusive"
+ weekMaskVisible="true"
+
+ date="0000/00/00"
+ dateVisible="false"
+
+ hoursBegin="00:00:00"
+ hoursBeginMask="true,true,false"
+ hoursBeginVisible="true"
+
+ hoursEnd="23:59:00"
+ hoursEndMask="true,true,false"
+ hoursEndVisible="true"
+
+ delay="00:01:00"
+ delayMask="false,true,false"
+ delayVisible="true"
+ />
</tasks>
</plugin>
|
|
From: gwadavel <c2m...@c2...> - 2009-08-14 14:31:23
|
Author: gwadavel
Date: 2009-08-14 16:31:02 +0200 (Fri, 14 Aug 2009)
New Revision: 5310
Added:
software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po
software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.wiki
software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po
software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.wiki
software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.png
Removed:
software_suite_v3/software/plugin/plugin-battery/trunk/resources/battery.png
Modified:
software_suite_v3/software/plugin/plugin-battery/trunk/resources/help.wiki
software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot
software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml
Log:
rename battery.png to plugin.png and change resolution to 48x48. Add fr.po, fr.wiki, en.po and en.wiki
Deleted: software_suite_v3/software/plugin/plugin-battery/trunk/resources/battery.png
===================================================================
(Binary files differ)
Added: software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po (rev 0)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.po 2009-08-14 14:31:02 UTC (rev 5310)
@@ -0,0 +1,9 @@
+msgid "Battery Level"
+msgstr "Battery Level"
+
+msgid "Says battery level"
+msgstr "Says battery level"
+
+msgid "Says the battery level and it state"
+msgstr "Says the battery level and it state"
+
Added: software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.wiki
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.wiki (rev 0)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/en.wiki 2009-08-14 14:31:02 UTC (rev 5310)
@@ -0,0 +1,2 @@
+== Synopsis ==
+Tux Droid says the battery level and it state
Added: software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po (rev 0)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.po 2009-08-14 14:31:02 UTC (rev 5310)
@@ -0,0 +1,9 @@
+msgid "Battery Level"
+msgstr ""
+
+msgid "Says battery level"
+msgstr ""
+
+msgid "Says the battery level and it state"
+msgstr ""
+
Added: software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.wiki
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.wiki (rev 0)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/fr.wiki 2009-08-14 14:31:02 UTC (rev 5310)
@@ -0,0 +1,2 @@
+==Synopsis==
+Tux Droid donne le niveau de la batterie et son etat.
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/help.wiki
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/help.wiki 2009-08-14 02:41:48 UTC (rev 5309)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/help.wiki 2009-08-14 14:31:02 UTC (rev 5310)
@@ -1,4 +1,2 @@
-= Synopsis =
-Tux Droid says battery level and it's state.
-
-
+== Synopsis ==
+Tux Droid says the battery level and it state
Added: software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.png
===================================================================
(Binary files differ)
Property changes on: software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot 2009-08-14 02:41:48 UTC (rev 5309)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.pot 2009-08-14 14:31:02 UTC (rev 5310)
@@ -1,8 +1,9 @@
-msgid "Battery Level"
-msgstr ""
-msgid "Says battery level and it's state or says if battery is low"
+msgid "Battery Level"
msgstr ""
-msgid "Says the battery level and it's state"
+
+msgid "Says battery level"
msgstr ""
-msgid "Says if battery is low"
+
+msgid "Says the battery level and it state"
msgstr ""
+
Modified: software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml
===================================================================
--- software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml 2009-08-14 02:41:48 UTC (rev 5309)
+++ software_suite_v3/software/plugin/plugin-battery/trunk/resources/plugin.xml 2009-08-14 14:31:02 UTC (rev 5310)
@@ -9,7 +9,7 @@
<description>Says battery level</description>
<author>Gwadavel</author>
<version>0.0.1</version>
- <iconFile>resources/battery.png</iconFile>
+ <iconFile>resources/plugin.png</iconFile>
<executionMode>command</executionMode>
<uuid>868a9389-01a9-4a8c-b63e-68414d154798</uuid>
<platform>all</platform>
@@ -17,7 +17,7 @@
<commands>
<command
name="run"
- description="Says the battery level and it's state"
+ description="Says the battery level and it state"
daemon="false" />
</commands>
<tasks>
|
|
From: ks156 <c2m...@c2...> - 2009-08-14 03:06:29
|
Author: ks156 Date: 2009-08-14 04:39:33 +0200 (Fri, 14 Aug 2009) New Revision: 5308 Added: firmware/tuxcore/tags/0.9.2/ Log: * Tagged version 0.9.2 Copied: firmware/tuxcore/tags/0.9.2 (from rev 5307, firmware/tuxcore/trunk) Property changes on: firmware/tuxcore/tags/0.9.2 ___________________________________________________________________ Name: svn:externals + common -r 5307 http://svn.tuxisalive.com/firmware/tuxdefs |
|
From: ks156 <c2m...@c2...> - 2009-08-14 02:49:40
|
Author: ks156 Date: 2009-08-14 04:23:15 +0200 (Fri, 14 Aug 2009) New Revision: 5307 Modified: firmware/tuxcore/trunk/version.h Log: * Prepared to tag version 0.9.2 Modified: firmware/tuxcore/trunk/version.h =================================================================== --- firmware/tuxcore/trunk/version.h 2009-08-13 04:41:17 UTC (rev 5306) +++ firmware/tuxcore/trunk/version.h 2009-08-14 02:23:15 UTC (rev 5307) @@ -34,7 +34,7 @@ /** RELEASE should be set to '1' prior to tagging a release, and reset * immediately after. It's like appending (SVN_UNRELEASED) to a version number * when equal to '0'. */ -#define RELEASE 0 +#define RELEASE 1 #define AUTHOR_ID 0 /* official release */ #define VARIATION 0 /* generic firmware */ |
|
From: ks156 <c2m...@c2...> - 2009-08-14 02:42:03
|
Author: ks156 Date: 2009-08-14 04:41:48 +0200 (Fri, 14 Aug 2009) New Revision: 5309 Modified: firmware/tuxcore/trunk/version.h Log: * Bumped to 0.9.3 Modified: firmware/tuxcore/trunk/version.h =================================================================== --- firmware/tuxcore/trunk/version.h 2009-08-14 02:39:33 UTC (rev 5308) +++ firmware/tuxcore/trunk/version.h 2009-08-14 02:41:48 UTC (rev 5309) @@ -30,11 +30,11 @@ #define VER_MAJOR 0 #define VER_MINOR 9 -#define VER_UPDATE 2 +#define VER_UPDATE 3 /** RELEASE should be set to '1' prior to tagging a release, and reset * immediately after. It's like appending (SVN_UNRELEASED) to a version number * when equal to '0'. */ -#define RELEASE 1 +#define RELEASE 0 #define AUTHOR_ID 0 /* official release */ #define VARIATION 0 /* generic firmware */ |
|
From: ks156 <c2m...@c2...> - 2009-08-13 04:41:43
|
Author: ks156 Date: 2009-08-13 06:41:17 +0200 (Thu, 13 Aug 2009) New Revision: 5306 Modified: firmware/tuxcore/trunk/motors.c Log: * Reduced the hysteresis value for the wings startup sequence to avoid too many movements. The new mechanics is a bit different than the previous versions. Modified: firmware/tuxcore/trunk/motors.c =================================================================== --- firmware/tuxcore/trunk/motors.c 2009-08-09 14:12:30 UTC (rev 5305) +++ firmware/tuxcore/trunk/motors.c 2009-08-13 04:41:17 UTC (rev 5306) @@ -69,7 +69,7 @@ #define FLIP_TIMER_INIT 0xFF /** Minimum difference required between the period the flippers are moving from * up to down and from down to up. */ -#define FLIPPERS_RESETTIMER_HYST 0x10 +#define FLIPPERS_RESETTIMER_HYST 0x0A /** Number of periods remaining before stopping the eyes. * Normally used when braking, to stop the motor after a short period of |