wmacpi: Bump to wmacpi-ng version 0.90.
Source obtained from http://sourceforge.net/projects/wmacpi/files/. 2003 July 16 0.90 Make the time display show '--:--' instead of '00:00' when the time remaining is 0 - I think this is reasonable, since it'll only get into this state when the present rate value is 0. This only happens when the battery is fully charged and neither discharging or charging, or when the battery is completely drained. In any of these states the time remaining is of very little interest, so we don't lose anything. We also get to handle the (sadly, very common) case where the ACPI subsystem doesn't report sane values for the things we depend on.
This commit is contained in:
parent
a68f78f034
commit
61ea0840d6
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,3 +1,50 @@
|
||||||
|
2003 July 16 0.90
|
||||||
|
Make the time display show '--:--' instead of '00:00' when the
|
||||||
|
time remaining is 0 - I think this is reasonable, since it'll only
|
||||||
|
get into this state when the present rate value is 0. This only
|
||||||
|
happens when the battery is fully charged and neither discharging
|
||||||
|
or charging, or when the battery is completely drained. In any of
|
||||||
|
these states the time remaining is of very little interest, so we
|
||||||
|
don't lose anything. We also get to handle the (sadly, very
|
||||||
|
common) case where the ACPI subsystem doesn't report sane values
|
||||||
|
for the things we depend on.
|
||||||
|
|
||||||
|
2003 July 11 0.50a2
|
||||||
|
Make the time display show nothing (as opposed to 00:00) when the
|
||||||
|
time remaining is unknown, as requested by Emma Jane Hogbin.
|
||||||
|
|
||||||
|
Respect the critical level specified on the command line, and add
|
||||||
|
a new message to differentiate between the command line critical
|
||||||
|
level and the critical state reported by the battery.
|
||||||
|
|
||||||
|
Speed up the message scrolling, so that there isn't quite such a
|
||||||
|
painful delay between repeats. Also, up the speed when the battery
|
||||||
|
is low, more when it's critical, and scroll continuously when it's
|
||||||
|
hardware critical.
|
||||||
|
|
||||||
|
Finally, add support for disabling the blinking power and battery
|
||||||
|
glyphs from the command line, as requested by Sebastian
|
||||||
|
Henschel. We still blink the battery glyph when the battery
|
||||||
|
reports hardware critical level - I think that's worth being a bit
|
||||||
|
annoying about.
|
||||||
|
|
||||||
|
Also, added an acpi-ng manpage.
|
||||||
|
|
||||||
|
2003 July 11 0.50a1
|
||||||
|
Properly fix the AC adapter issue - it's not much use adding the
|
||||||
|
infrastructure and then forgetting to fix the code that uses it.
|
||||||
|
|
||||||
|
Fix the time disiplay so that it doesn't try to display values
|
||||||
|
greater than 99:59, since the display area won't fit anything
|
||||||
|
beyond that.
|
||||||
|
|
||||||
|
2003 July 10 0.50a
|
||||||
|
Bugfixes, to handle two problems: the case where something like
|
||||||
|
the present rate or some such is "unknown" (reported initially by
|
||||||
|
Emma Jane Hogbin, and where the AC adapter is called something
|
||||||
|
other than "AC" (reported by Sebastian Henschel). This an 'a'
|
||||||
|
release because I can't test these myself . . .
|
||||||
|
|
||||||
2003 July 6 0.50
|
2003 July 6 0.50
|
||||||
Finally got rid of that annoying button - that space now contains
|
Finally got rid of that annoying button - that space now contains
|
||||||
a 'B 1' or 'B 2' (only those two at present, since I'm too lazy to
|
a 'B 1' or 'B 2' (only those two at present, since I'm too lazy to
|
||||||
|
|
|
@ -17,6 +17,9 @@ WMSRC := wmacpi-ng.c libacpi.c
|
||||||
CLSRC := acpi-ng.c libacpi.c
|
CLSRC := acpi-ng.c libacpi.c
|
||||||
HEADERS := libacpi.h wmacpi-ng.h
|
HEADERS := libacpi.h wmacpi-ng.h
|
||||||
targets := wmacpi-ng acpi-ng
|
targets := wmacpi-ng acpi-ng
|
||||||
|
doc_targets := debian/wmacpi-ng.1 debian/acpi-ng.1
|
||||||
|
|
||||||
|
PREFIX := /usr/local
|
||||||
|
|
||||||
all: $(targets)
|
all: $(targets)
|
||||||
|
|
||||||
|
@ -29,10 +32,10 @@ include $(WMOBJ:.o=.d)
|
||||||
include $(CLOBJ:.o=.d)
|
include $(CLOBJ:.o=.d)
|
||||||
|
|
||||||
wmacpi-ng: $(WMOBJ)
|
wmacpi-ng: $(WMOBJ)
|
||||||
gcc $(LDFLAGS) -o $@ $^
|
$(CC) $(LDFLAGS) -o $@ $^
|
||||||
|
|
||||||
acpi-ng: $(CLOBJ)
|
acpi-ng: $(CLOBJ)
|
||||||
gcc $(LDFLAGS) -o $@ $^
|
$(CC) $(LDFLAGS) -o $@ $^
|
||||||
|
|
||||||
# build per-file dependencies - note that -MM may not be supported
|
# build per-file dependencies - note that -MM may not be supported
|
||||||
# in gcc versions older than 2.95.4, but most likely is.
|
# in gcc versions older than 2.95.4, but most likely is.
|
||||||
|
@ -45,5 +48,11 @@ clean:
|
||||||
clean-all: clean
|
clean-all: clean
|
||||||
rm -f *.d $(targets)
|
rm -f *.d $(targets)
|
||||||
|
|
||||||
|
install: $(targets)
|
||||||
|
install -d $(PREFIX)/bin/
|
||||||
|
install -pc $(targets) $(PREFIX)/bin/
|
||||||
|
install -d $(PREFIX)/man/man1/
|
||||||
|
install -pc $(doc_targets) $(PREFIX)/man/man1/
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
etags $(WMSRC) $(CLSRC) $(HEADERS)
|
etags $(WMSRC) $(CLSRC) $(HEADERS)
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include "libacpi.h"
|
#include "libacpi.h"
|
||||||
|
|
||||||
#define ACPI_NG_VER "0.50"
|
#define ACPI_NG_VER "0.90"
|
||||||
|
|
||||||
APMInfo *apminfo;
|
APMInfo *apminfo;
|
||||||
|
|
||||||
|
@ -53,7 +53,8 @@ int main(int argc, char *argv[])
|
||||||
int i, j, ch;
|
int i, j, ch;
|
||||||
int sleep_time = 0;
|
int sleep_time = 0;
|
||||||
int samples = 1;
|
int samples = 1;
|
||||||
battery *binfo;
|
battery_t *binfo;
|
||||||
|
adapter_t *ap;
|
||||||
|
|
||||||
while((ch = getopt(argc, argv, "hvVa::")) != EOF) {
|
while((ch = getopt(argc, argv, "hvVa::")) != EOF) {
|
||||||
switch(ch) {
|
switch(ch) {
|
||||||
|
@ -98,27 +99,32 @@ int main(int argc, char *argv[])
|
||||||
usleep(sleep_time);
|
usleep(sleep_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(apminfo->power == AC) {
|
ap = &apminfo->adapter;
|
||||||
|
if(ap->power == AC) {
|
||||||
printf("On AC Power");
|
printf("On AC Power");
|
||||||
for(i = 0; i < batt_count; i++) {
|
for(i = 0; i < batt_count; i++) {
|
||||||
binfo = &batteries[i];
|
binfo = &batteries[i];
|
||||||
if(binfo->present && binfo->charging) {
|
if(binfo->present && (binfo->charge_state == CHARGE)) {
|
||||||
printf("; Battery %s charging", binfo->name);
|
printf("; Battery %s charging", binfo->name);
|
||||||
printf(", %2d:%02d remaining", binfo->charge_time/60,
|
if(binfo->charge_time >= 0)
|
||||||
|
printf(", %2d:%02d remaining",
|
||||||
|
binfo->charge_time/60,
|
||||||
binfo->charge_time%60);
|
binfo->charge_time%60);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
} else if(apminfo->power == BATT) {
|
} else if(ap->power == BATT) {
|
||||||
printf("On Battery");
|
printf("On Battery");
|
||||||
for(i = 0; i < batt_count; i++) {
|
for(i = 0; i < batt_count; i++) {
|
||||||
binfo = &batteries[i];
|
binfo = &batteries[i];
|
||||||
if(binfo->present)
|
if(binfo->present && (binfo->percentage >= 0))
|
||||||
printf(", Battery %s at %d%%", binfo->name,
|
printf(", Battery %s at %d%%", binfo->name,
|
||||||
binfo->percentage);
|
binfo->percentage);
|
||||||
}
|
}
|
||||||
printf("; %d:%02d remaining\n", apminfo->rtime/60,
|
if(apminfo->rtime >= 0)
|
||||||
|
printf("; %d:%02d remaining", apminfo->rtime/60,
|
||||||
apminfo->rtime%60);
|
apminfo->rtime%60);
|
||||||
|
printf("\n");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
1
wmacpi/debian/acpi-ng.1
Normal file
1
wmacpi/debian/acpi-ng.1
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.so man1/wmacpi-ng.1
|
|
@ -1,3 +1,27 @@
|
||||||
|
wmacpi-ng (0.90-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
|
||||||
|
-- Simon Fowler <simon@hollie.himi.private> Wed, 16 Jul 2003 18:52:04 +1000
|
||||||
|
|
||||||
|
wmacpi-ng (0.50a2-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New alpha upstream version.
|
||||||
|
|
||||||
|
-- Simon Fowler <simon@dreamcraft.com.au> Fri, 11 Jul 2003 14:29:44 +1000
|
||||||
|
|
||||||
|
wmacpi-ng (0.50a1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New alpha upstream version.
|
||||||
|
|
||||||
|
-- Simon Fowler <simon@hollie.himi.private> Thu, 10 Jul 2003 11:46:11 +1000
|
||||||
|
|
||||||
|
wmacpi-ng (0.50a-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New alpha upstream version.
|
||||||
|
|
||||||
|
-- Simon Fowler <simon@hollie.himi.private> Thu, 10 Jul 2003 00:07:44 +1000
|
||||||
|
|
||||||
wmacpi-ng (0.50-1) unstable; urgency=low
|
wmacpi-ng (0.50-1) unstable; urgency=low
|
||||||
|
|
||||||
* New upstream version.
|
* New upstream version.
|
||||||
|
|
|
@ -70,7 +70,7 @@ binary-arch: build install
|
||||||
# dh_installpam
|
# dh_installpam
|
||||||
# dh_installinit
|
# dh_installinit
|
||||||
# dh_installcron
|
# dh_installcron
|
||||||
dh_installman debian/wmacpi-ng.1
|
dh_installman debian/wmacpi-ng.1 debian/acpi-ng.1
|
||||||
# dh_installinfo
|
# dh_installinfo
|
||||||
# dh_undocumented
|
# dh_undocumented
|
||||||
dh_installchangelogs ChangeLog
|
dh_installchangelogs ChangeLog
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.TH WMACPI-NG 1 "May 30, 2003"
|
.TH WMACPI-NG 1 "July 11, 2003"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
wmacpi-ng \- Battery status monitor for systems supporting ACPI
|
wmacpi-ng \- Battery status monitor for systems supporting ACPI
|
||||||
.SH NAME
|
.SH NAME
|
||||||
|
@ -20,6 +20,9 @@ battery no ]
|
||||||
[
|
[
|
||||||
.RI -v
|
.RI -v
|
||||||
]
|
]
|
||||||
|
]
|
||||||
|
.RI -n
|
||||||
|
]
|
||||||
[
|
[
|
||||||
.RI -V
|
.RI -V
|
||||||
]
|
]
|
||||||
|
@ -79,6 +82,9 @@ Set the X display to open the window on.
|
||||||
.B \-m
|
.B \-m
|
||||||
Set the battery to monitor initially.
|
Set the battery to monitor initially.
|
||||||
.TP
|
.TP
|
||||||
|
.B \-n
|
||||||
|
Disable blinking power glyph when charging. Note that it still blinks when
|
||||||
|
the battery reports its capacity state as critical.
|
||||||
.B \-v
|
.B \-v
|
||||||
Increase the verbosity of the program. Can be used more than once -
|
Increase the verbosity of the program. Can be used more than once -
|
||||||
each successive use increases the verbosity.
|
each successive use increases the verbosity.
|
||||||
|
@ -122,4 +128,4 @@ This manual page was originally written by Simon Richter
|
||||||
.B wmacpi-ng
|
.B wmacpi-ng
|
||||||
by Simon Fowler.
|
by Simon Fowler.
|
||||||
.br
|
.br
|
||||||
Last modification by Simon Fowler <simon@dreamcraft.com.au>, 2003-05-30.
|
Last modification by Simon Fowler <simon@dreamcraft.com.au>, 2003-07-11.
|
||||||
|
|
247
wmacpi/libacpi.c
247
wmacpi/libacpi.c
|
@ -15,37 +15,16 @@ extern APMInfo *apminfo;
|
||||||
char buf[512];
|
char buf[512];
|
||||||
|
|
||||||
/* local proto */
|
/* local proto */
|
||||||
int acpi_get_design_cap(int battery);
|
int acpi_get_design_cap(int batt);
|
||||||
|
|
||||||
/* see if we have ACPI support and check version */
|
/* initialise the batteries */
|
||||||
int power_init(void)
|
int init_batteries(void)
|
||||||
{
|
{
|
||||||
FILE *acpi;
|
|
||||||
char buf[4096];
|
|
||||||
DIR *battdir;
|
DIR *battdir;
|
||||||
struct dirent *batt;
|
struct dirent *batt;
|
||||||
char *name, *tmp1, *tmp2;
|
char *name, *tmp1, *tmp2;
|
||||||
char *names[MAXBATT];
|
char *names[MAXBATT];
|
||||||
int i, j;
|
int i, j;
|
||||||
int acpi_ver = 0;
|
|
||||||
|
|
||||||
if (!(acpi = fopen("/proc/acpi/info", "r"))) {
|
|
||||||
fprintf(stderr, "This system does not support ACPI\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* okay, now see if we got the right version */
|
|
||||||
fread(buf, 4096, 1, acpi);
|
|
||||||
acpi_ver = strtol(buf + 25, NULL, 10);
|
|
||||||
eprint(0, "ACPI version detected: %d\n", acpi_ver);
|
|
||||||
if (acpi_ver < 20020214) {
|
|
||||||
fprintf(stderr, "This version requires ACPI subsystem version 20020214\n");
|
|
||||||
fclose(acpi);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* yep, all good */
|
|
||||||
fclose(acpi);
|
|
||||||
|
|
||||||
/* now enumerate batteries */
|
/* now enumerate batteries */
|
||||||
batt_count = 0;
|
batt_count = 0;
|
||||||
|
@ -95,12 +74,77 @@ int power_init(void)
|
||||||
|
|
||||||
/* tell user some info */
|
/* tell user some info */
|
||||||
eprint(0, "%d batteries detected\n", batt_count);
|
eprint(0, "%d batteries detected\n", batt_count);
|
||||||
fprintf(stderr, "wmacpi: found %d batter%s\n", batt_count,
|
fprintf(stderr, "libacpi: found %d batter%s\n", batt_count,
|
||||||
(batt_count == 1) ? "y" : "ies");
|
(batt_count == 1) ? "y" : "ies");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* the actual name of the subdirectory under ac_adapter may
|
||||||
|
* be anything, so we need to read the directory and use the
|
||||||
|
* name we find there. */
|
||||||
|
int init_ac_adapters(void)
|
||||||
|
{
|
||||||
|
DIR *acdir;
|
||||||
|
struct dirent *adapter;
|
||||||
|
adapter_t *ap = &apminfo->adapter;
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
acdir = opendir("/proc/acpi/ac_adapter");
|
||||||
|
if (acdir == NULL) {
|
||||||
|
fprintf(stderr, "Unable to open /proc/acpi/ac_adapter -"
|
||||||
|
" are you sure this system supports ACPI?\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
name = NULL;
|
||||||
|
while ((adapter = readdir(acdir)) != NULL) {
|
||||||
|
name = adapter->d_name;
|
||||||
|
|
||||||
|
if (!strncmp(".", name, 1) || !strncmp("..", name, 2))
|
||||||
|
continue;
|
||||||
|
fprintf(stderr, "found adapter %s\n", name);
|
||||||
|
}
|
||||||
|
/* we /should/ only see one filename other than . and .. so
|
||||||
|
* we'll just use the last value name acquires . . . */
|
||||||
|
ap->name = strdup(name);
|
||||||
|
snprintf(ap->state_file, MAX_NAME, "/proc/acpi/ac_adapter/%s/state",
|
||||||
|
ap->name);
|
||||||
|
fprintf(stderr, "libacpi: found ac adapter %s\n", ap->name);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* see if we have ACPI support and check version */
|
||||||
|
int power_init(void)
|
||||||
|
{
|
||||||
|
FILE *acpi;
|
||||||
|
char buf[4096];
|
||||||
|
int acpi_ver = 0;
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
if (!(acpi = fopen("/proc/acpi/info", "r"))) {
|
||||||
|
fprintf(stderr, "This system does not support ACPI\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* okay, now see if we got the right version */
|
||||||
|
fread(buf, 4096, 1, acpi);
|
||||||
|
acpi_ver = strtol(buf + 25, NULL, 10);
|
||||||
|
eprint(0, "ACPI version detected: %d\n", acpi_ver);
|
||||||
|
if (acpi_ver < 20020214) {
|
||||||
|
fprintf(stderr, "This version requires ACPI subsystem version 20020214\n");
|
||||||
|
fclose(acpi);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
/* yep, all good */
|
||||||
|
fclose(acpi);
|
||||||
|
|
||||||
|
if (!(retval = init_batteries()))
|
||||||
|
retval = init_ac_adapters();
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
char *get_value(char *string)
|
char *get_value(char *string)
|
||||||
{
|
{
|
||||||
char *retval;
|
char *retval;
|
||||||
|
@ -122,9 +166,11 @@ power_state_t get_power_status(void)
|
||||||
FILE *file;
|
FILE *file;
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
char *val;
|
char *val;
|
||||||
|
adapter_t *ap = &apminfo->adapter;
|
||||||
|
|
||||||
if ((file = fopen("/proc/acpi/ac_adapter/AC/state", "r")) == NULL) {
|
if ((file = fopen(ap->state_file, "r")) == NULL) {
|
||||||
perror("Could not open /proc/acpi/ac_adapter/AC/state\n");
|
snprintf(buf, 1024, "Could not open state file %s", ap->state_file);
|
||||||
|
perror(buf);
|
||||||
return PS_ERR;
|
return PS_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,7 +186,7 @@ power_state_t get_power_status(void)
|
||||||
int get_battery_info(int batt_no)
|
int get_battery_info(int batt_no)
|
||||||
{
|
{
|
||||||
FILE *file;
|
FILE *file;
|
||||||
battery *info = &batteries[batt_no];
|
battery_t *info = &batteries[batt_no];
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
char *entry;
|
char *entry;
|
||||||
int buflen;
|
int buflen;
|
||||||
|
@ -221,7 +267,9 @@ int get_battery_info(int batt_no)
|
||||||
* source code) - ok and critical. */
|
* source code) - ok and critical. */
|
||||||
entry = strstr(buf, "capacity state:");
|
entry = strstr(buf, "capacity state:");
|
||||||
val = get_value(entry);
|
val = get_value(entry);
|
||||||
if ((strncmp(val, "ok", 2)) == 0)
|
if (val[0] == 'u')
|
||||||
|
info->capacity_state = CS_ERR;
|
||||||
|
else if ((strncmp(val, "ok", 2)) == 0)
|
||||||
info->capacity_state = OK;
|
info->capacity_state = OK;
|
||||||
else
|
else
|
||||||
info->capacity_state = CRITICAL;
|
info->capacity_state = CRITICAL;
|
||||||
|
@ -229,10 +277,12 @@ int get_battery_info(int batt_no)
|
||||||
/* get charging state */
|
/* get charging state */
|
||||||
entry = strstr(buf, "charging state:");
|
entry = strstr(buf, "charging state:");
|
||||||
val = get_value(entry);
|
val = get_value(entry);
|
||||||
if ((strncmp(val, "discharging", 10)) == 0)
|
if (val[0] == 'u')
|
||||||
info->charging = 0;
|
info->charge_state = CH_ERR;
|
||||||
|
else if ((strncmp(val, "discharging", 10)) == 0)
|
||||||
|
info->charge_state = DISCHARGE;
|
||||||
else
|
else
|
||||||
info->charging = 1;
|
info->charge_state = CHARGE;
|
||||||
|
|
||||||
/* get current rate of burn
|
/* get current rate of burn
|
||||||
* note that if it's on AC, this will report 0 */
|
* note that if it's on AC, this will report 0 */
|
||||||
|
@ -275,10 +325,67 @@ int get_battery_info(int batt_no)
|
||||||
* some stuff to provide a similar interface to now.
|
* some stuff to provide a similar interface to now.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void acquire_batt_info(int batt)
|
/* calculate the percentage remaining, using the values of
|
||||||
|
* remaining capacity and last full capacity, as outlined in
|
||||||
|
* the ACPI spec v2.0a, section 3.9.3. */
|
||||||
|
static int calc_remaining_percentage(int batt)
|
||||||
{
|
{
|
||||||
float rcap, lfcap;
|
float rcap, lfcap;
|
||||||
battery *binfo;
|
battery_t *binfo;
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
binfo = &batteries[batt];
|
||||||
|
|
||||||
|
rcap = (float)binfo->remaining_cap;
|
||||||
|
lfcap = (float)binfo->last_full_cap;
|
||||||
|
|
||||||
|
/* we use -1 to indicate that the value is unknown . . . */
|
||||||
|
if (rcap < 0) {
|
||||||
|
eprint(0, "unknown percentage value\n");
|
||||||
|
retval = -1;
|
||||||
|
} else {
|
||||||
|
if (lfcap <= 0)
|
||||||
|
lfcap = 1;
|
||||||
|
retval = (int)((rcap/lfcap) * 100.0);
|
||||||
|
eprint(0, "percent: %d\n", retval);
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* calculate remaining time until the battery is charged.
|
||||||
|
* when charging, the battery state file reports the
|
||||||
|
* current being used to charge the battery. We can use
|
||||||
|
* this and the remaining capacity to work out how long
|
||||||
|
* until it reaches the last full capacity of the battery.
|
||||||
|
* XXX: make sure this is actually portable . . . */
|
||||||
|
static int calc_charge_time(int batt)
|
||||||
|
{
|
||||||
|
float rcap, lfcap;
|
||||||
|
battery_t *binfo;
|
||||||
|
int charge_time = 0;
|
||||||
|
|
||||||
|
binfo = &batteries[batt];
|
||||||
|
|
||||||
|
if (binfo->charge_state == CHARGE) {
|
||||||
|
if (binfo->present_rate == -1) {
|
||||||
|
eprint(0, "unknown present rate\n");
|
||||||
|
charge_time = -1;
|
||||||
|
} else {
|
||||||
|
lfcap = (float)binfo->last_full_cap;
|
||||||
|
rcap = (float)binfo->remaining_cap;
|
||||||
|
|
||||||
|
charge_time = (int)(((lfcap - rcap)/binfo->present_rate) * 60.0);
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (binfo->charge_time)
|
||||||
|
charge_time = 0;
|
||||||
|
return charge_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
void acquire_batt_info(int batt)
|
||||||
|
{
|
||||||
|
battery_t *binfo;
|
||||||
|
adapter_t *ap = &apminfo->adapter;
|
||||||
|
|
||||||
get_battery_info(batt);
|
get_battery_info(batt);
|
||||||
|
|
||||||
|
@ -292,60 +399,37 @@ void acquire_batt_info(int batt)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* calculate the percentage remaining, using the values of
|
binfo->percentage = calc_remaining_percentage(batt);
|
||||||
* remaining capacity and last full capacity, as outlined in
|
|
||||||
* the ACPI spec v2.0a, section 3.9.3. */
|
|
||||||
{
|
|
||||||
rcap = (float)binfo->remaining_cap;
|
|
||||||
lfcap = (float)binfo->last_full_cap;
|
|
||||||
if (rcap <= 0)
|
|
||||||
rcap = 0;
|
|
||||||
if (lfcap <= 0)
|
|
||||||
lfcap = 1;
|
|
||||||
binfo->percentage = (int)((rcap/lfcap) * 100.0);
|
|
||||||
eprint(0, "percent: %d\n", binfo->percentage);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* set the battery's capacity state, based (at present) on some
|
/* set the battery's capacity state, based (at present) on some
|
||||||
* guesstimated values: more than 75% == HIGH, 25% to 75% MED, and
|
* guesstimated values: more than 75% == HIGH, 25% to 75% MED, and
|
||||||
* less than 25% is LOW. Less than apminfo->crit_level is CRIT. */
|
* less than 25% is LOW. Less than apminfo->crit_level is CRIT. */
|
||||||
if (binfo->percentage > 75)
|
if (binfo->percentage == -1)
|
||||||
|
binfo->state = BS_ERR;
|
||||||
|
if (binfo->percentage < apminfo->crit_level)
|
||||||
|
binfo->state = CRIT;
|
||||||
|
else if (binfo->percentage > 75)
|
||||||
binfo->state = HIGH;
|
binfo->state = HIGH;
|
||||||
else if (binfo->percentage > 25)
|
else if (binfo->percentage > 25)
|
||||||
binfo->state = MED;
|
binfo->state = MED;
|
||||||
else
|
else
|
||||||
/* we only go to critical state if the battery is reporting
|
|
||||||
* critical itself . . . */
|
|
||||||
binfo->state = LOW;
|
binfo->state = LOW;
|
||||||
|
|
||||||
/* we need to /know/ that we've got a valid state for the
|
/* we need to /know/ that we've got a valid state for the
|
||||||
* apminfo->power value . . . .*/
|
* apminfo->power value . . . .*/
|
||||||
apminfo->power = get_power_status();
|
ap->power = get_power_status();
|
||||||
|
|
||||||
if ((apminfo->power != AC) && !binfo->charging) {
|
if ((ap->power != AC) && (binfo->charge_state == DISCHARGE)) {
|
||||||
/* we're not on power, and not charging. So we might as well
|
/* we're not on power, and not charging. So we might as well
|
||||||
* check if we're at a critical battery level, and calculate
|
* check if we're at a critical battery level, and calculate
|
||||||
* other interesting stuff . . . */
|
* other interesting stuff . . . */
|
||||||
if (binfo->capacity_state == CRITICAL) {
|
if (binfo->capacity_state == CRITICAL) {
|
||||||
eprint(1, "Received critical battery status");
|
eprint(1, "Received critical battery status");
|
||||||
apminfo->power = CRIT;
|
ap->power = HARD_CRIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (binfo->charging) {
|
binfo->charge_time = calc_charge_time(batt);
|
||||||
/* calculate remaining time until the battery is charged.
|
|
||||||
* when charging, the battery state file reports the
|
|
||||||
* current being used to charge the battery. We can use
|
|
||||||
* this and the remaining capacity to work out how long
|
|
||||||
* until it reaches the last full capacity of the battery.
|
|
||||||
* XXX: make sure this is actually portable . . . */
|
|
||||||
lfcap = (float)binfo->last_full_cap;
|
|
||||||
rcap = (float)binfo->remaining_cap;
|
|
||||||
|
|
||||||
binfo->charge_time = (int)(((lfcap - rcap)/binfo->present_rate) * 60.0);
|
|
||||||
} else
|
|
||||||
if (binfo->charge_time)
|
|
||||||
binfo->charge_time = 0;
|
|
||||||
|
|
||||||
/* and finally, we tell anyone who wants to use this information
|
/* and finally, we tell anyone who wants to use this information
|
||||||
* that it's now valid . . .*/
|
* that it's now valid . . .*/
|
||||||
|
@ -366,6 +450,8 @@ void acquire_global_info(void)
|
||||||
int rtime;
|
int rtime;
|
||||||
float rcap = 0;
|
float rcap = 0;
|
||||||
float rate = 0;
|
float rate = 0;
|
||||||
|
battery_t *binfo;
|
||||||
|
adapter_t *ap = &apminfo->adapter;
|
||||||
static float rate_samples[SAMPLES];
|
static float rate_samples[SAMPLES];
|
||||||
static int j = 0;
|
static int j = 0;
|
||||||
static int sample_count = 0;
|
static int sample_count = 0;
|
||||||
|
@ -376,12 +462,14 @@ void acquire_global_info(void)
|
||||||
* For added accuracy, we average the value over the last
|
* For added accuracy, we average the value over the last
|
||||||
* SAMPLES number of calls, or for anything less than this we
|
* SAMPLES number of calls, or for anything less than this we
|
||||||
* simply report the raw number. */
|
* simply report the raw number. */
|
||||||
{
|
/* XXX: this needs to correctly handle the case where
|
||||||
|
* any of the values used is unknown (which we flag using
|
||||||
|
* -1). */
|
||||||
for (i = 0; i < batt_count; i++) {
|
for (i = 0; i < batt_count; i++) {
|
||||||
if (batteries[i].present && batteries[i].valid) {
|
binfo = &batteries[i];
|
||||||
rcap += (float)batteries[i].remaining_cap;
|
if (binfo->present && binfo->valid) {
|
||||||
rate += (float)batteries[i].present_rate;
|
rcap += (float)binfo->remaining_cap;
|
||||||
|
rate += (float)binfo->present_rate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rate_samples[j] = rate;
|
rate_samples[j] = rate;
|
||||||
|
@ -395,9 +483,17 @@ void acquire_global_info(void)
|
||||||
/* when this fails, n should be equal to SAMPLES. */
|
/* when this fails, n should be equal to SAMPLES. */
|
||||||
if (sample_count < SAMPLES)
|
if (sample_count < SAMPLES)
|
||||||
n++;
|
n++;
|
||||||
for (i = 0, rate = 0; i < n; i++)
|
for (i = 0, rate = 0; i < n; i++) {
|
||||||
|
/* if any of our samples are invalid, we drop
|
||||||
|
* straight out, and flag our unknown values. */
|
||||||
|
if (rate_samples[i] < 0) {
|
||||||
|
rate = -1;
|
||||||
|
rtime = -1;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
rate += rate_samples[i];
|
rate += rate_samples[i];
|
||||||
rate = rate/n;
|
}
|
||||||
|
rate = rate/(float)n;
|
||||||
|
|
||||||
if ((rcap < 1) || (rate < 1)) {
|
if ((rcap < 1) || (rate < 1)) {
|
||||||
rtime = 0;
|
rtime = 0;
|
||||||
|
@ -412,12 +508,11 @@ void acquire_global_info(void)
|
||||||
out:
|
out:
|
||||||
eprint(0, "time rem: %d\n", rtime);
|
eprint(0, "time rem: %d\n", rtime);
|
||||||
apminfo->rtime = rtime;
|
apminfo->rtime = rtime;
|
||||||
}
|
|
||||||
|
|
||||||
/* get the power status.
|
/* get the power status.
|
||||||
* note that this is actually reported seperately from the
|
* note that this is actually reported seperately from the
|
||||||
* battery info, under /proc/acpi/ac_adapter/AC/state */
|
* battery info, under /proc/acpi/ac_adapter/AC/state */
|
||||||
apminfo->power = get_power_status();
|
ap->power = get_power_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
void acquire_all_info(void)
|
void acquire_all_info(void)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define _LIBACPI_H_
|
#define _LIBACPI_H_
|
||||||
|
|
||||||
|
|
||||||
#define LIBACPI_VER "0.50"
|
#define LIBACPI_VER "0.90"
|
||||||
|
|
||||||
/* Here because we need it for definitions in this file . . . */
|
/* Here because we need it for definitions in this file . . . */
|
||||||
#define MAX_NAME 128
|
#define MAX_NAME 128
|
||||||
|
@ -14,11 +14,6 @@ typedef enum {
|
||||||
TIMER
|
TIMER
|
||||||
} DspMode;
|
} DspMode;
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
BLINK,
|
|
||||||
OFF
|
|
||||||
} Mode;
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
AC,
|
AC,
|
||||||
BATT,
|
BATT,
|
||||||
|
@ -30,11 +25,20 @@ typedef enum {
|
||||||
MED,
|
MED,
|
||||||
LOW,
|
LOW,
|
||||||
CRIT,
|
CRIT,
|
||||||
|
HARD_CRIT,
|
||||||
|
BS_ERR,
|
||||||
} batt_state_t;
|
} batt_state_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
CHARGE,
|
||||||
|
DISCHARGE,
|
||||||
|
CH_ERR,
|
||||||
|
} charge_state_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OK,
|
OK,
|
||||||
CRITICAL,
|
CRITICAL,
|
||||||
|
CS_ERR,
|
||||||
} cap_state_t;
|
} cap_state_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -49,7 +53,7 @@ typedef struct {
|
||||||
int design_voltage; /* in mV */
|
int design_voltage; /* in mV */
|
||||||
/* state info */
|
/* state info */
|
||||||
cap_state_t capacity_state;
|
cap_state_t capacity_state;
|
||||||
int charging;
|
charge_state_t charge_state;
|
||||||
int present_rate; /* in mAh */
|
int present_rate; /* in mAh */
|
||||||
int remaining_cap; /* in mAh */
|
int remaining_cap; /* in mAh */
|
||||||
int present_voltage; /* in mV */
|
int present_voltage; /* in mV */
|
||||||
|
@ -59,14 +63,20 @@ typedef struct {
|
||||||
int charge_time; /* time left to charge this battery */
|
int charge_time; /* time left to charge this battery */
|
||||||
/* and a flag to indicate that this is valid . . . */
|
/* and a flag to indicate that this is valid . . . */
|
||||||
int valid;
|
int valid;
|
||||||
} battery;
|
} battery_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
power_state_t power; /* On AC or not? */
|
char *name;
|
||||||
|
char state_file[MAX_NAME];
|
||||||
|
power_state_t power;
|
||||||
|
} adapter_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
adapter_t adapter;
|
||||||
int rtime; /* remaining time */
|
int rtime; /* remaining time */
|
||||||
int timer; /* how long been on battery? */
|
int timer; /* how long been on battery? */
|
||||||
int crit_level; /* anything below this is critical low */
|
int crit_level; /* anything below this is critical low */
|
||||||
battery *binfo; /* pointer to the battery being monitored */
|
battery_t *binfo; /* pointer to the battery being monitored */
|
||||||
} APMInfo;
|
} APMInfo;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -104,7 +114,7 @@ static int verbosity = 0;
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
/* since these /are/ needed here . . . */
|
/* since these /are/ needed here . . . */
|
||||||
battery batteries[MAXBATT];
|
battery_t batteries[MAXBATT];
|
||||||
int batt_count;
|
int batt_count;
|
||||||
|
|
||||||
/* check if apm/acpi is enabled, etc */
|
/* check if apm/acpi is enabled, etc */
|
||||||
|
|
|
@ -93,13 +93,13 @@ static char * master_xpm[] = {
|
||||||
"Y c #054000",
|
"Y c #054000",
|
||||||
"Z c #034000",
|
"Z c #034000",
|
||||||
"` c #C7C7C7",
|
"` c #C7C7C7",
|
||||||
" . c #303030",
|
" . c #004941",
|
||||||
".. c #20B2AE",
|
".. c #20B2AE",
|
||||||
"+. c #004941",
|
"+. c #303030",
|
||||||
"@. c #188A86",
|
"@. c #027E72",
|
||||||
"#. c #22B2AE",
|
"#. c #188A86",
|
||||||
"$. c #107D79",
|
"$. c #22B2AE",
|
||||||
"%. c #027E72",
|
"%. c #107D79",
|
||||||
"&. c #034A40",
|
"&. c #034A40",
|
||||||
" . + @ # $ % & * = - % ; > , ' % ) ! ~ { % ] ^ / ( % _ : < [ % } | 1 2 % 3 4 5 6 % 7 8 9 0 % a b c d % e f g h ",
|
" . + @ # $ % & * = - % ; > , ' % ) ! ~ { % ] ^ / ( % _ : < [ % } | 1 2 % 3 4 5 6 % 7 8 9 0 % a b c d % e f g h ",
|
||||||
" . + @ # $ % & * = - % ; > , ' % ) ! ~ { % ] ^ / ( % _ : < [ % } | 1 2 % 3 4 5 6 % 7 8 9 0 % a b c d % e f g h ",
|
" . + @ # $ % & * = - % ; > , ' % ) ! ~ { % ] ^ / ( % _ : < [ % } | 1 2 % 3 4 5 6 % 7 8 9 0 % a b c d % e f g h ",
|
||||||
|
@ -114,78 +114,78 @@ static char * master_xpm[] = {
|
||||||
" . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % ",
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % .% % % % .% .% % % % .% % ..% % .% % % % .% .% % % % .% ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % ` . . . . .% . . . .% . . . .% . . . .% . . . .% . . . .% . . . .% . . . .% . . . .% . . . .% . . . . ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % ` . +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+.% +.+.+.+. % .% % % % .% .% % % % .% % ..% % .% % % % .% .% % % % .% ",
|
||||||
" . % % % % % % ..........% % % % ....................% % ` . % % % % % +.+.+.% % % +.+.+.% % % ..% % % % % ` . ",
|
" . % % % % % % ..........% % % % ....................% % ` . % % % % % . . .% % % . . .% % % ..% % % % % ` . % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% ",
|
||||||
" . % % % % % ..% % % % ......% % ..% % % % % % % % ..% % ` . % % +.% +.% % % +.% +.% % % +.% ..% ..% ..% % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % % % % % ..% % % % ......% % ..% % % % % % % % ..% % ` . % % .% .% % % .% .% % % .% ..% ..% ..% % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % @.........@.% @.........@.% % % % % @.........@.% @.........@.% ",
|
||||||
" . % % % % % ..% % % % ..% % % % ..% % % % % % % % ....% ` . % % +.% +.% % % +.% +.% % % +.% % ..% ..% % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % % % % % ..% % % % ..% % % % ..% % % % % % % % ....% ` . % % .% .% % % .% .% % % .% % ..% ..% % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % % % ......% % % % ..% % % % ..% % % % % % % % ....% ` . % % % % % +.+.+.% % % +.+.+.% % % % ..% % % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % % % ......% % % % ..% % % % ..% % % % % % % % ....% ` . % % % % % . . .% % % . . .% % % % ..% % % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % .% % % % .% .% % % % .% % ..% % .% % % % .% .% % % % .% ",
|
||||||
" . % % ..% % ..% % % % ......% % ..% % % % % % % % ....% ` . % % +.% +.% % % +.% +.% % % +.% % ..% ..% % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % % ..% % ..% % % % ......% % ..% % % % % % % % ....% ` . % % .% .% % % .% .% % % .% % ..% ..% % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % .% % % % .% .% % % % .% % ..% % .% % % % .% .% % % % .% ",
|
||||||
" . % ..% % % % ..........% % % % ..% % % % % % % % ..% % ` . % % +.% +.% % % +.% +.% % % +.% ..% ..% ..% % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % ..% % % % ..........% % % % ..% % % % % % % % ..% % ` . % % .% .% % % .% .% % % .% ..% ..% ..% % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% ",
|
||||||
" . % ..% % % % % % % % % % % % % ....................% % ` . % % % % % +.+.+.% % % +.+.+.% % % % % ..% % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % ..% % % % % % % % % % % % % ....................% % ` . % % % % % . . .% % % . . .% % % % % ..% % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % ` . i j k l % m n o p % q r s t % u v w x % y z A B % C D E F % G H I J % K L M N % O P Q R % S T U V % W X Y Z % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . ",
|
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % % ......% % % +.+.+.@.% @.......@.% @.......@.% @.+.+.+.@.% @.......@.% @.......@.% @.......@.% @.......@.% @.......@.% % ..% % % % % % % ",
|
" . % % ......% % % . . .#.% #.......#.% #.......#.% #. . . .#.% #.......#.% #.......#.% #.......#.% #.......#.% #.......#.% % ..% % % % % % % ",
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ` . % ..% % % ..% +.% % % ..% +.% % % ..% +.% % % ..% ..% % % ..% ..% % % +.% ..% % % +.% +.% % % ..% ..% % % ..% ..% % % ..% ..% ..% ..% % ..% ",
|
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ` . % ..% % % ..% .% % % ..% .% % % ..% .% % % ..% ..% % % ..% ..% % % .% ..% % % .% .% % % ..% ..% % % ..% ..% % % ..% ..% ..% ..% % ..% ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % ..% % % ..% +.% % % ..% +.% % % ..% +.% % % ..% ..% % % ..% ..% % % +.% ..% % % +.% +.% % % ..% ..% % % ..% ..% % % ..% % ..% ..% % % @.% ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % ..% % % ..% .% % % ..% .% % % ..% .% % % ..% ..% % % ..% ..% % % .% ..% % % .% .% % % ..% ..% % % ..% ..% % % ..% % ..% ..% % % #.% ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % @.+.+.+.@.% % +.+.+.@.% @.......@.% % ......@.% @.......@.% @.......@.% @.......@.% % +.+.+.@.% @.......@.% @.......@.% % % ..% % % % % % ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % #. . . .#.% % . . .#.% #.......#.% % ......#.% #.......#.% #.......#.% #.......#.% % . . .#.% #.......#.% #.......#.% % % ..% % % % % % ",
|
||||||
" . % % % +.+.+.+.% % % +.+.+.+.% % % % % % % +.+.+.+.% % % +.+.+.+.% % % ` % % % % % % % % % +.+.+.+.% % % ` . % ..% % % ..% +.% % % ..% ..% % % +.% +.% % % ..% +.% % % ..% +.% % % ..% ..% % % ..% +.% % % ..% ..% % % ..% +.% % % ..% % ..% ..% % % % % ",
|
" . % % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % % ` % % % % % % % % % . . . .% % % ` . % ..% % % ..% .% % % ..% ..% % % .% .% % % ..% .% % % ..% .% % % ..% ..% % % ..% .% % % ..% ..% % % ..% .% % % ..% % ..% ..% % % % % ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % ` % % % % % % % % +.% % % % +.% % ` . % ..% % % ..% +.% % % ..% ..% % % +.% +.% % % ..% +.% % % ..% +.% % % ..% ..% % % ..% +.% % % ..% ..% % % ..% +.% % % ..% ..% ..% ..% % ..% ",
|
" . % % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % ` % % % % % % % % .% % % % .% % ` . % ..% % % ..% .% % % ..% ..% % % .% .% % % ..% .% % % ..% .% % % ..% ..% % % ..% .% % % ..% ..% % % ..% .% % % ..% ..% ..% ..% % ..% ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % ` % #.#.#.#.% % % +.% % % % +.% % ` . % % ......% % % +.+.+.@.% @.......@.% @.......@.% % +.+.+.@.% @.......@.% @.......@.% % +.+.+.@.% @.......@.% @.......@.% % % % ..% % % @.% ",
|
" . % % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % ` % $.$.$.$.% % % .% % % % .% % ` . % % ......% % % . . .#.% #.......#.% #.......#.% % . . .#.% #.......#.% #.......#.% % . . .#.% #.......#.% #.......#.% % % % ..% % % #.% ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % ` % #.% % % #.% % +.% % % % +.% % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . % % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % ` % $.% % % $.% % .% % % % .% % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % ` % #.% % % #.% % +.% % % % +.% % ` . ",
|
" . % % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % ` % $.% % % $.% % .% % % % .% % ` . ",
|
||||||
" . % % % +.+.+.+.% % % +.+.+.+.% % % % % % % +.+.+.+.% % % +.+.+.+.% % % ` % #.% % % #.% % % +.+.+.+.% % % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % . . . . . . . . . . . . . . . . ` . . . . . . . . . . . . . . . . ` ",
|
" . % % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % % ` % $.% % % $.% % % . . . .% % % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % . . . . . . . . . . . . . . . . ` . . . . . . . . . . . . . . . . ` ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % ` % #.#.#.#.% % % +.% % % % +.% % ` . % % % % % % ..........% % % % ....................% % % @.% % ......% % % ......% % % ..% % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
" . % % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % ` % $.$.$.$.% % % .% % % % .% % ` . % % % % % % ..........% % % % ....................% % % #.% % ......% % % ......% % % ..% % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % ` % #.% % % #.% % +.% % % % +.% % ` . % % % % % ..% % % % ......% % ..% % % % % % % % ..% % % ..% ..% % % ..% ..% % % ..% ..% ..% ..% % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
" . % % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % ` % $.% % % $.% % .% % % % .% % ` . % % % % % ..% % % % ......% % ..% % % % % % % % ..% % % ..% ..% % % ..% ..% % % ..% ..% ..% ..% % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % ` % #.% % % #.% % +.% % % % +.% % ` . % % % % % ..% % % % ..% % % % ..% % % % % % % % ....% % ..% ..% % % ..% ..% % % ..% % ..% ..% % % % % % % % % % % +.+.+.+.$.% % ` % % % % % % % % $.........@.% % ` ",
|
" . % % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % ` % $.% % % $.% % .% % % % .% % ` . % % % % % ..% % % % ..% % % % ..% % % % % % % % ....% % ..% ..% % % ..% ..% % % ..% % ..% ..% % % % % % % % % % % . . . .%.% % ` % % % % % % % % %.........#.% % ` ",
|
||||||
" . % % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % ` % #.% % % #.% % +.% % % % +.% % ` . % % % ......% % % % ..% % % % ..% % % % % % % % ....% % @.% @.+.+.+.@.% @.+.+.+.@.% % % ..% % % % % % % % % % % +.% % % % ..% % ` % % % % % % % % +.% % % % ..% % ` ",
|
" . % % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % ` % $.% % % $.% % .% % % % .% % ` . % % % ......% % % % ..% % % % ..% % % % % % % % ....% % #.% #. . . .#.% #. . . .#.% % % ..% % % % % % % % % % % .% % % % ..% % ` % % % % % % % % .% % % % ..% % ` ",
|
||||||
" . % % % +.+.+.+.% % % +.+.+.+.% % % % % % % +.+.+.+.% % % +.+.+.+.% % % ` % #.#.#.#.% % % % +.+.+.+.% % % ` . % % ..% % ..% % % % ......% % ..% % % % % % % % ....% % ..% ..% % % ..% ..% % % ..% % ..% ..% % % #.#.#.#.% % % +.% % % % ..% % ` % #.#.#.#.% % % +.% % % % ..% % ` ",
|
" . % % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % % ` % $.$.$.$.% % % % . . . .% % % ` . % % ..% % ..% % % % ......% % ..% % % % % % % % ....% % ..% ..% % % ..% ..% % % ..% % ..% ..% % % $.$.$.$.% % % .% % % % ..% % ` % $.$.$.$.% % % .% % % % ..% % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % ..% % % % ..........% % % % ..% % % % % % % % ..% % % ..% ..% % % ..% ..% % % ..% ..% ..% ..% % #.% % % #.% % +.% % % % ..% % ` % #.% % % #.% % +.% % % % ..% % ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % ..% % % % ..........% % % % ..% % % % % % % % ..% % % ..% ..% % % ..% ..% % % ..% ..% ..% ..% % $.% % % $.% % .% % % % ..% % ` % $.% % % $.% % .% % % % ..% % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % ..% % % % % % % % % % % % % ....................% % % @.% % ......% % % ......% % % % % ..% % % #.% % % #.% % +.% % % % ..% % ` % #.% % % #.% % +.% % % % ..% % ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` . % ..% % % % % % % % % % % % % ....................% % % #.% % ......% % % ......% % % % % ..% % % $.% % % $.% % .% % % % ..% % ` % $.% % % $.% % .% % % % ..% % ` ",
|
||||||
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % #.% % % #.% % % +.+.+.+.$.% % ` % #.% % % #.% % $.........$.% % ` ",
|
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % $.% % % $.% % % . . . .%.% % ` % $.% % % $.% % %.........%.% % ` ",
|
||||||
" . % #.#.#.#.% % % +.% % % % ..% % ` % #.#.#.#.% % % ..% % % % +.% % ` ",
|
" . % $.$.$.$.% % % .% % % % ..% % ` % $.$.$.$.% % % ..% % % % .% % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % #.% % % #.% % +.% % % % ..% % ` % #.% % % #.% % ..% % % % +.% % ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % $.% % % $.% % .% % % % ..% % ` % $.% % % $.% % ..% % % % .% % ` ",
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % % % % % % +.+.+.+.+.% % % % +.+.+.+.+.+.+.+.+.+.% % % % % % +.+.+.% % % +.+.+.% % % +.% % % % % #.% % % #.% % +.% % % % ..% % ` % #.% % % #.% % ..% % % % +.% % ` ",
|
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % % % % % % . . . . .% % % % . . . . . . . . . .% % % % % % . . .% % % . . .% % % .% % % % % $.% % % $.% % .% % % % ..% % ` % $.% % % $.% % ..% % % % .% % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % +.% % % % +.+.+.% % +.% % % % % % % % +.% % % +.% +.% % % +.% +.% % % +.% +.% +.% +.% % #.% % % #.% % +.% % % % ..% % ` % #.% % % #.% % ..% % % % +.% % ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % .% % % % . . .% % .% % % % % % % % .% % % .% .% % % .% .% % % .% .% .% .% % $.% % % $.% % .% % % % ..% % ` % $.% % % $.% % ..% % % % .% % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % +.% % % % +.% % % % +.% % % % % % % % +.+.% % +.% +.% % % +.% +.% % % +.% % +.% +.% % % #.#.#.#.% % % % +.+.+.+.$.% % ` % #.#.#.#.% % % $.........$.% % ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % .% % % % .% % % % .% % % % % % % % . .% % .% .% % % .% .% % % .% % .% .% % % $.$.$.$.% % % % . . . .%.% % ` % $.$.$.$.% % % %.........%.% % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % +.+.+.% % % % +.% % % % +.% % % % % % % % +.+.% % % % % +.+.+.% % % +.+.+.% % % % +.% % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % . . .% % % % .% % % % .% % % % % % % % . .% % % % % . . .% % % . . .% % % % .% % % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % +.% % +.% % % % +.+.+.% % +.% % % % % % % % +.+.% % +.% +.% % % +.% +.% % % +.% % +.% +.% % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % .% % .% % % % . . .% % .% % % % % % % % . .% % .% .% % % .% .% % % .% % .% .% % % % % % % % % % % % % % % % % % ` % % % % % % % % % % % % % % % % ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % +.% % % % +.+.+.+.+.% % % % +.% % % % % % % % +.% % % +.% +.% % % +.% +.% % % +.% +.% +.% +.% ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % .% % % % . . . . .% % % % .% % % % % % % % .% % % .% .% % % .% .% % % .% .% .% .% ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % +.% % % % % % % % % % % % % +.+.+.+.+.+.+.+.+.+.% % % % % % +.+.+.% % % +.+.+.% % % % % +.% % ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % .% % % % % % % % % % % % % . . . . . . . . . .% % % % % % . . .% % % . . .% % % % % .% % ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % #.#.#.% % % % % % %.% %.#.#.#.%.% %.#.#.#.%.% %.% % % %.% %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% % % % % % % % % % % % % % % % % % % ",
|
" . % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ` . % % $.$.$.% % % % % % @.% @.$.$.$.@.% @.$.$.$.@.% @.% % % @.% @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% % % % % % % % % % % % % % % % % % % ",
|
||||||
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . % #.% % % #.% % % % % #.% % % % % #.% % % % % #.% #.% % % #.% #.% % % % % #.% % % % % % % % % #.% #.% % % #.% #.% % % #.% % % % % % % % % % % % % % % % % % % ",
|
" ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` . % $.% % % $.% % % % % $.% % % % % $.% % % % % $.% $.% % % $.% $.% % % % % $.% % % % % % % % % $.% $.% % % $.% $.% % % $.% % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % #.% % % #.% % % % % #.% % % % % #.% % % % % #.% #.% % % #.% #.% % % % % #.% % % % % % % % % #.% #.% % % #.% #.% % % #.% % % % % % % % % % % % % % % % % % % ",
|
" . % $.% % % $.% % % % % $.% % % % % $.% % % % % $.% $.% % % $.% $.% % % % % $.% % % % % % % % % $.% $.% % % $.% $.% % % $.% % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % %.% % % %.% % % % % %.% %.#.#.#.%.% % #.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% % % % % %.% &.#.#.#.&.% %.#.#.#.%.% %.#.#.#.%.% % % % % % % % % % % % % ",
|
" . % @.% % % @.% % % % % @.% @.$.$.$.@.% % $.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% % % % % @.% &.$.$.$.&.% @.$.$.$.@.% @.$.$.$.@.% % % % % % % % % % % % % ",
|
||||||
" . % #.% % % #.% % % % % #.% #.% % % % % % % % % #.% % % % % #.% % % % % #.% #.% % % #.% % % % % #.% #.% % % #.% % % % % #.% % % % % % % % % % % % % % % % % % % ",
|
" . % $.% % % $.% % % % % $.% $.% % % % % % % % % $.% % % % % $.% % % % % $.% $.% % % $.% % % % % $.% $.% % % $.% % % % % $.% % % % % % % % % % % % % % % % % % % ",
|
||||||
" . % #.% % % #.% % % % % #.% #.% % % % % % % % % #.% % % % % #.% % % % % #.% #.% % % #.% % % % % #.% #.% % % #.% % % % % #.% % % % % % % % % % % % % % % % % % % ",
|
" . % $.% % % $.% % % % % $.% $.% % % % % % % % % $.% % % % % $.% % % % % $.% $.% % % $.% % % % % $.% $.% % % $.% % % % % $.% % % % % % % % % % % % % % % % % % % ",
|
||||||
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % % #.#.#.% % % % % % #.% %.#.#.#.%.% %.#.#.#.%.% % % % % %.% %.#.#.#.%.% %.#.#.#.%.% % % % % %.% %.#.#.#.%.% %.#.#.#.%.% % % % % % % % % % % % % % % % % #.% ",
|
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . % % $.$.$.% % % % % % $.% @.$.$.$.@.% @.$.$.$.@.% % % % % @.% @.$.$.$.@.% @.$.$.$.@.% % % % % @.% @.$.$.$.@.% @.$.$.$.@.% % % % % % % % % % % % % % % % % $.% ",
|
||||||
" % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
" % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
"% &.#.#.#.&.% %.#.#.#.% % %.#.#.#.%.% %.#.#.#.% % %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.% % % %.% % % %.% % % % % % % %.% %.% % % %.% %.% % % % % #.% % % #.% %.#.#.#.% % %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.#.#.#.%.% %.% % % %.% %.% % % %.% %.% % % %.% %.% % % %.% %.% % % %.% %.#.#.#.%.% ",
|
"% &.$.$.$.&.% @.$.$.$.% % @.$.$.$.@.% @.$.$.$.% % @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.% % % @.% % % @.% % % % % % % @.% @.% % % @.% @.% % % % % $.% % % $.% @.$.$.$.% % @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.$.$.$.@.% @.% % % @.% @.% % % @.% @.% % % @.% @.% % % @.% @.% % % @.% @.$.$.$.@.% ",
|
||||||
"% #.% % % #.% #.% % % #.% #.% % % % % #.% % % #.% #.% % % % % #.% % % % % #.% % % % % #.% % % #.% % % #.% % % % % % % #.% #.% % % #.% #.% % % % % #.#.% #.#.% #.% % % #.% #.% % % #.% #.% % % #.% #.% % % #.% #.% % % #.% #.% % % % % % % #.% % % #.% % % #.% #.% % % #.% #.% % % #.% #.% % % #.% #.% % % #.% % % % % #.% ",
|
"% $.% % % $.% $.% % % $.% $.% % % % % $.% % % $.% $.% % % % % $.% % % % % $.% % % % % $.% % % $.% % % $.% % % % % % % $.% $.% % % $.% $.% % % % % $.$.% $.$.% $.% % % $.% $.% % % $.% $.% % % $.% $.% % % $.% $.% % % $.% $.% % % % % % % $.% % % $.% % % $.% $.% % % $.% $.% % % $.% $.% % % $.% $.% % % $.% % % % % $.% ",
|
||||||
"% #.% % % #.% #.% % % #.% #.% % % % % #.% % % #.% #.% % % % % #.% % % % % #.% % % % % #.% % % #.% % % #.% % % % % % % #.% #.% % #.&.% #.% % % % % #.% #.% #.% #.% % % #.% #.% % % #.% #.% % % #.% #.% % % #.% #.% % % #.% #.% % % % % % % #.% % % #.% % % #.% #.% % % #.% #.% % % #.% &.#.% #.&.% #.% % % #.% % % % #.&.% ",
|
"% $.% % % $.% $.% % % $.% $.% % % % % $.% % % $.% $.% % % % % $.% % % % % $.% % % % % $.% % % $.% % % $.% % % % % % % $.% $.% % $.&.% $.% % % % % $.% $.% $.% $.% % % $.% $.% % % $.% $.% % % $.% $.% % % $.% $.% % % $.% $.% % % % % % % $.% % % $.% % % $.% $.% % % $.% $.% % % $.% &.$.% $.&.% $.% % % $.% % % % $.&.% ",
|
||||||
"% %.#.#.#.%.% %.#.#.#.% % %.% % % % % %.% % % %.% %.#.#.#.% % %.#.#.#.% % %.&.#.#.%.% %.#.#.#.%.% % % %.% % % % % % % %.% %.#.#.&.% % %.% % % % % %.% % % %.% %.% % % %.% %.% % % %.% %.#.#.#.%.% %.#.% % %.% %.#.#.#.% % %.#.#.#.%.% % % %.% % % %.% % % %.% %.% % % %.% %.% % % %.% % &.#.&.% % %.#.#.#.%.% % &.#.&.% % ",
|
"% @.$.$.$.@.% @.$.$.$.% % @.% % % % % @.% % % @.% @.$.$.$.% % @.$.$.$.% % @.&.$.$.@.% @.$.$.$.@.% % % @.% % % % % % % @.% @.$.$.&.% % @.% % % % % @.% % % @.% @.% % % @.% @.% % % @.% @.$.$.$.@.% @.$.% % @.% @.$.$.$.% % @.$.$.$.@.% % % @.% % % @.% % % @.% @.% % % @.% @.% % % @.% % &.$.&.% % @.$.$.$.@.% % &.$.&.% % ",
|
||||||
"% #.% % % #.% #.% % % #.% #.% % % % % #.% % % #.% #.% % % % % #.% % % % % #.% % % #.% #.% % % #.% % % #.% % % % % % % #.% #.% % #.&.% #.% % % % % #.% % % #.% #.% % % #.% #.% % % #.% #.% % % % % #.% #.% #.% #.% % % #.% % % % % #.% % % #.% % % #.% % % #.% #.% % % #.% #.% #.% #.% &.#.% #.&.% % % % % #.% &.#.% % % % ",
|
"% $.% % % $.% $.% % % $.% $.% % % % % $.% % % $.% $.% % % % % $.% % % % % $.% % % $.% $.% % % $.% % % $.% % % % % % % $.% $.% % $.&.% $.% % % % % $.% % % $.% $.% % % $.% $.% % % $.% $.% % % % % $.% $.% $.% $.% % % $.% % % % % $.% % % $.% % % $.% % % $.% $.% % % $.% $.% $.% $.% &.$.% $.&.% % % % % $.% &.$.% % % % ",
|
||||||
"% #.% % % #.% #.% % % #.% #.% % % % % #.% % % #.% #.% % % % % #.% % % % % #.% % % #.% #.% % % #.% % % #.% % % % % % % #.% #.% % % #.% #.% % % % % #.% % % #.% #.% % % #.% #.% % % #.% #.% % % % % #.% % #.#.% #.% % % #.% % % % % #.% % % #.% % % #.% % % #.% #.% % % #.% #.#.% #.#.% #.% % % #.% % % % % #.% #.% % % % % ",
|
"% $.% % % $.% $.% % % $.% $.% % % % % $.% % % $.% $.% % % % % $.% % % % % $.% % % $.% $.% % % $.% % % $.% % % % % % % $.% $.% % % $.% $.% % % % % $.% % % $.% $.% % % $.% $.% % % $.% $.% % % % % $.% % $.$.% $.% % % $.% % % % % $.% % % $.% % % $.% % % $.% $.% % % $.% $.$.% $.$.% $.% % % $.% % % % % $.% $.% % % % % ",
|
||||||
"% %.% % % %.% %.#.#.#.% % %.#.#.#.%.% #.#.#.#.% % %.#.#.#.%.% #.% % % % % %.#.#.#.%.% %.% % % %.% % % #.% % % %.#.#.#.%.% %.% % % %.% %.#.#.#.&.% %.% % % %.% #.% % % #.% %.#.#.#.%.% %.% % % % % %.#.#.#.%.% %.% % % %.% %.#.#.#.%.% % % %.% % % &.#.#.#.#.% % #.#.#.% % #.% % % #.% %.% % % #.% %.#.#.#.%.% %.#.#.#.%.% ",
|
"% @.% % % @.% @.$.$.$.% % @.$.$.$.@.% $.$.$.$.% % @.$.$.$.@.% $.% % % % % @.$.$.$.@.% @.% % % @.% % % $.% % % @.$.$.$.@.% @.% % % @.% @.$.$.$.&.% @.% % % @.% $.% % % $.% @.$.$.$.@.% @.% % % % % @.$.$.$.@.% @.% % % @.% @.$.$.$.@.% % % @.% % % &.$.$.$.$.% % $.$.$.% % $.% % % $.% @.% % % $.% @.$.$.$.@.% @.$.$.$.@.% ",
|
||||||
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ",
|
||||||
"% % ........% % % +.+.+.+.$.% $.........@.% $.........$.% $.+.+.+.+.$.% $.........$.% $.........@.% $.........$.% $.........@.% $.........@.% % % % % % % ........% % % ........% % % % % % % ........% % % ........% % % % +.+.+.+.% % % +.+.+.+.% % % % % % % +.+.+.+.% % % +.+.+.+.% % % % #.+.+.+.#.% ",
|
"% % ........% % % . . . .%.% %.........#.% %.........%.% %. . . . .%.% %.........%.% %.........#.% %.........%.% %.........#.% %.........#.% % % % % % % ........% % % ........% % % % % % % ........% % % ........% % % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % % % $. . . .$.% ",
|
||||||
"% ..% % % % ..% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% ..% % % % +.% ..% % % % +.% +.% % % % ..% ..% % % % ..% ..% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % #.% #.% #.+.% ",
|
"% ..% % % % ..% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% ..% % % % .% ..% % % % .% .% % % % ..% ..% % % % ..% ..% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % $.% $.% $. .% ",
|
||||||
"% ..% % % % ..% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% ..% % % % +.% ..% % % % +.% +.% % % % ..% ..% % % % ..% ..% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % +.#.% #.% +.% ",
|
"% ..% % % % ..% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% ..% % % % .% ..% % % % .% .% % % % ..% ..% % % % ..% ..% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % .$.% $.% .% ",
|
||||||
"% ..% % % % ..% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% ..% % % % +.% ..% % % % +.% +.% % % % ..% ..% % % % ..% ..% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % +.% #.% #.+.% ",
|
"% ..% % % % ..% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% ..% % % % .% ..% % % % .% .% % % % ..% ..% % % % ..% ..% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % .% $.% $. .% ",
|
||||||
"% ..% % % % ..% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% ..% % % % +.% ..% % % % +.% +.% % % % ..% ..% % % % ..% ..% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % +.#.% #.% #.% ",
|
"% ..% % % % ..% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% ..% % % % .% ..% % % % .% .% % % % ..% ..% % % % ..% ..% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % .$.% $.% $.% ",
|
||||||
"% $.+.+.+.+.$.% % +.+.+.+.$.% $.........$.% $.........$.% $.........$.% $.........$.% $.........$.% % +.+.+.+.$.% $.........$.% $.........$.% % % % % % $.+.+.+.+.$.% $.+.+.+.+.$.% % % % % $.+.+.+.+.$.% $.+.+.+.+.$.% % % +.+.+.+.% % % +.+.+.+.% % % % % % % +.+.+.+.% % % +.+.+.+.% % % #.+.+.+.#.% % ",
|
"% %. . . . .%.% % . . . .%.% %.........%.% %.........%.% %.........%.% %.........%.% %.........%.% % . . . .%.% %.........%.% %.........%.% % % % % % %. . . . .%.% %. . . . .%.% % % % % %. . . . .%.% %. . . . .%.% % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % % $. . . .$.% % ",
|
||||||
"% ..% % % % ..% +.% % % % ..% ..% % % % +.% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % +.% % % % +.% ",
|
"% ..% % % % ..% .% % % % ..% ..% % % % .% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % .% % % % .% ",
|
||||||
"% ..% % % % ..% +.% % % % ..% ..% % % % +.% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % % % % +.% % % % +.% +.% % % % +.% % #.#.#.#.#.+.% ",
|
"% ..% % % % ..% .% % % % ..% ..% % % % .% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% % % % % % ..% % % % ..% ..% % % % ..% % % % % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % % % % .% % % % .% .% % % % .% % $.$.$.$.$. .% ",
|
||||||
"% ..% % % % ..% +.% % % % ..% ..% % % % +.% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % #.% % % #.#.% ",
|
"% ..% % % % ..% .% % % % ..% ..% % % % .% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % $.% % % $.$.% ",
|
||||||
"% ..% % % % ..% +.% % % % ..% ..% % % % +.% +.% % % % ..% +.% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% ..% % % % ..% +.% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % +.% % % % +.% +.% % % % +.% % +.% % +.% % % % +.% +.% % % % +.% % #.% % % #.#.% ",
|
"% ..% % % % ..% .% % % % ..% ..% % % % .% .% % % % ..% .% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% ..% % % % ..% .% % % % ..% % ..% % % ..% % % % ..% ..% % % % ..% % ..% % ..% % % % ..% ..% % % % ..% % .% % % % .% .% % % % .% % .% % .% % % % .% .% % % % .% % $.% % % $.$.% ",
|
||||||
"% % ........% % % +.+.+.+.$.% $.........$.% $.........$.% % +.+.+.+.$.% $.........$.% $.........$.% % +.+.+.+.$.% $.........$.% $.........$.% % % % % % % ........% % % ........% % % % % % % ........% % % ........% % % % +.+.+.+.% % % +.+.+.+.% % % % % % % +.+.+.+.% % % +.+.+.+.% % % #.#.#.#.#.% % ",
|
"% % ........% % % . . . .%.% %.........%.% %.........%.% % . . . .%.% %.........%.% %.........%.% % . . . .%.% %.........%.% %.........%.% % % % % % % ........% % % ........% % % % % % % ........% % % ........% % % % . . . .% % % . . . .% % % % % % % . . . .% % % . . . .% % % $.$.$.$.$.% % ",
|
||||||
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "};
|
"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "};
|
||||||
|
|
|
@ -11,13 +11,13 @@ static char * master_low_xpm[] = {
|
||||||
"& c #403B00",
|
"& c #403B00",
|
||||||
"* c #034000",
|
"* c #034000",
|
||||||
"= c #AAAFA9",
|
"= c #AAAFA9",
|
||||||
"- c #20B2AE",
|
"- c #004941",
|
||||||
"; c #004941",
|
"; c #20B2AE",
|
||||||
"> c #188A86",
|
"> c #027E72",
|
||||||
", c #22B2AE",
|
", c #188A86",
|
||||||
"' c #C7C7C7",
|
"' c #22B2AE",
|
||||||
") c #107D79",
|
") c #C7C7C7",
|
||||||
"! c #027E72",
|
"! c #107D79",
|
||||||
"~ c #034A40",
|
"~ c #034A40",
|
||||||
" . ++++@++++@++++@####@####@####@####@$$$$@$$$$@$$$$@$$$$ ",
|
" . ++++@++++@++++@####@####@####@####@$$$$@$$$$@$$$$@$$$$ ",
|
||||||
" . ++++@++++@++++@####@####@####@####@$$$$@$$$$@$$$$@$$$$ ",
|
" . ++++@++++@++++@####@####@####@####@$$$$@$$$$@$$$$@$$$$ ",
|
||||||
|
@ -32,78 +32,78 @@ static char * master_low_xpm[] = {
|
||||||
" .%%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@****= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" .%%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@****= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" .%%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@****= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" .%%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@****= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" .%%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@****= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" .%%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@****= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" ======================================================== . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" ======================================================== . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@----@@@----@@@@@@@----@@@----@@ ",
|
||||||
" ............................. ......................... . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" ............................. ......................... . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @-@@@@-@-@@@@-@@;@@-@@@@-@-@@@@-@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@= .@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@= .@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @-@@@@-@-@@@@-@@;@@-@@@@-@-@@@@-@ ",
|
||||||
" .@@@@@@-----@@@@----------@@= .@@@@@;;;@@@;;;@@@-@@@@@= . ",
|
" .@@@@@@;;;;;@@@@;;;;;;;;;;@@= .@@@@@---@@@---@@@;@@@@@= . @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ ",
|
||||||
" .@@@@@-@@@@---@@-@@@@@@@@-@@= .@@;@;@@@;@;@@@;@-@-@-@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@@@@@;@@@@;;;@@;@@@@@@@@;@@= .@@-@-@@@-@-@@@-@;@;@;@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @>;;;;>@>;;;;>@@@@@>;;;;>@>;;;;>@ ",
|
||||||
" .@@@@@-@@@@-@@@@-@@@@@@@@--@= .@@;@;@@@;@;@@@;@@-@-@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@@@@@;@@@@;@@@@;@@@@@@@@;;@= .@@-@-@@@-@-@@@-@@;@;@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" .@@@---@@@@-@@@@-@@@@@@@@--@= .@@@@@;;;@@@;;;@@@@-@@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@@@;;;@@@@;@@@@;@@@@@@@@;;@= .@@@@@---@@@---@@@@;@@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @-@@@@-@-@@@@-@@;@@-@@@@-@-@@@@-@ ",
|
||||||
" .@@-@@-@@@@---@@-@@@@@@@@--@= .@@;@;@@@;@;@@@;@@-@-@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@@;@@;@@@@;;;@@;@@@@@@@@;;@= .@@-@-@@@-@-@@@-@@;@;@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @-@@@@-@-@@@@-@@;@@-@@@@-@-@@@@-@ ",
|
||||||
" .@-@@@@-----@@@@-@@@@@@@@-@@= .@@;@;@@@;@;@@@;@-@-@-@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@;@@@@;;;;;@@@@;@@@@@@@@;@@= .@@-@-@@@-@-@@@-@;@;@;@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ ",
|
||||||
" .@-@@@@@@@@@@@@@----------@@= .@@@@@;;;@@@;;;@@@@@-@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@;@@@@@@@@@@@@@;;;;;;;;;;@@= .@@@@@---@@@---@@@@@;@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@= .@@@@@@@@@@@@@@@@@@@@@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@= .@@@@@@@@@@@@@@@@@@@@@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @@----@@@----@@@@@@@----@@@----@@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@= .@@@@@@@@@@@@@@@@@@@@@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@= .@@@@@@@@@@@@@@@@@@@@@@@= . %%%%@%%%%@%%%%@&&&&@&&&&@&&&&@&&&&@****@****@****@**** @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" ============================= ========================= . ",
|
" ============================= ========================= . ",
|
||||||
" . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" . @@---@@@;;;>@>--->@>--->@>;;;>@>--->@>--->@>--->@>--->@>--->@@-@@@@@@@ ",
|
" . @@;;;@@@---,@,;;;,@,;;;,@,---,@,;;;,@,;;;,@,;;;,@,;;;,@,;;;,@@;@@@@@@@ ",
|
||||||
" ..................................... ................= . @-@@@-@;@@@-@;@@@-@;@@@-@-@@@-@-@@@;@-@@@;@;@@@-@-@@@-@-@@@-@-@-@-@@-@ ",
|
" ..................................... ................= . @;@@@;@-@@@;@-@@@;@-@@@;@;@@@;@;@@@-@;@@@-@-@@@;@;@@@;@;@@@;@;@;@;@@;@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @-@@@-@;@@@-@;@@@-@;@@@-@-@@@-@-@@@;@-@@@;@;@@@-@-@@@-@-@@@-@@-@-@@@>@ ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @;@@@;@-@@@;@-@@@;@-@@@;@;@@@;@;@@@-@;@@@-@-@@@;@;@@@;@;@@@;@@;@;@@@,@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @>;;;>@@;;;>@>--->@@--->@>--->@>--->@>--->@@;;;>@>--->@>--->@@@-@@@@@@ ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @,---,@@---,@,;;;,@@;;;,@,;;;,@,;;;,@,;;;,@@---,@,;;;,@,;;;,@@@;@@@@@@ ",
|
||||||
" .@@@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@@= @@@@@@@@@;;;;@@@= . @-@@@-@;@@@-@-@@@;@;@@@-@;@@@-@;@@@-@-@@@-@;@@@-@-@@@-@;@@@-@@-@-@@@@@ ",
|
" .@@@----@@@----@@@@@@@----@@@----@@@= @@@@@@@@@----@@@= . @;@@@;@-@@@;@;@@@-@-@@@;@-@@@;@-@@@;@;@@@;@-@@@;@;@@@;@-@@@;@@;@;@@@@@ ",
|
||||||
" .@@;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@@= @@@@@@@@;@@@@;@@= . @-@@@-@;@@@-@-@@@;@;@@@-@;@@@-@;@@@-@-@@@-@;@@@-@-@@@-@;@@@-@-@-@-@@-@ ",
|
" .@@-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@@= @@@@@@@@-@@@@-@@= . @;@@@;@-@@@;@;@@@-@-@@@;@-@@@;@-@@@;@;@@@;@-@@@;@;@@@;@-@@@;@;@;@;@@;@ ",
|
||||||
" .@@;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@@= @,,,,@@@;@@@@;@@= . @@---@@@;;;>@>--->@>--->@@;;;>@>--->@>--->@@;;;>@>--->@>--->@@@@-@@@>@ ",
|
" .@@-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@@= @''''@@@-@@@@-@@= . @@;;;@@@---,@,;;;,@,;;;,@@---,@,;;;,@,;;;,@@---,@,;;;,@,;;;,@@@@;@@@,@ ",
|
||||||
" .@@;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@@= @,@@@,@@;@@@@;@@= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" .@@-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@@= @'@@@'@@-@@@@-@@= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" .@@;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@@= @,@@@,@@;@@@@;@@= . ",
|
" .@@-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@@= @'@@@'@@-@@@@-@@= . ",
|
||||||
" .@@@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@@= @,@@@,@@@;;;;@@@= . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ ................' ................' ",
|
" .@@@----@@@----@@@@@@@----@@@----@@@= @'@@@'@@@----@@@= . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ ................) ................) ",
|
||||||
" .@@;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@@= @,,,,@@@;@@@@;@@= . @@@@@@-----@@@ @----------@@ @>@@---@@@---@@@-@@@@ @@@@@@@@@@@@@@@@' @@@@@@@@@@@@@@@@' ",
|
" .@@-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@@= @''''@@@-@@@@-@@= . @@@@@@;;;;;@@@ @;;;;;;;;;;@@ @,@@;;;@@@;;;@@@;@@@@ @@@@@@@@@@@@@@@@) @@@@@@@@@@@@@@@@) ",
|
||||||
" .@@;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@@= @,@@@,@@;@@@@;@@= . @@@@@-@@@@---@ @-@@@@@@@@-@@ @-@-@@@-@-@@@-@-@-@-@ @@@@@@@@@@@@@@@@' @@@@@@@@@@@@@@@@' ",
|
" .@@-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@@= @'@@@'@@-@@@@-@@= . @@@@@;@@@@;;;@ @;@@@@@@@@;@@ @;@;@@@;@;@@@;@;@;@;@ @@@@@@@@@@@@@@@@) @@@@@@@@@@@@@@@@) ",
|
||||||
" .@@;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@@= @,@@@,@@;@@@@;@@= . @@@@@-@@@@-@@@ @-@@@@@@@@--@ @-@-@@@-@-@@@-@@-@-@@ @@@@@@@@@;;;;)@@' @@@@@@@@)---->@@' ",
|
" .@@-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@@= @'@@@'@@-@@@@-@@= . @@@@@;@@@@;@@@ @;@@@@@@@@;;@ @;@;@@@;@;@@@;@@;@;@@ @@@@@@@@@----!@@) @@@@@@@@!;;;;,@@) ",
|
||||||
" .@@;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@@= @,@@@,@@;@@@@;@@= . @@@---@@@@-@@@ @-@@@@@@@@--@ @>@>;;;>@>;;;>@@@-@@@ @@@@@@@@;@@@@-@@' @@@@@@@@;@@@@-@@' ",
|
" .@@-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@@= @'@@@'@@-@@@@-@@= . @@@;;;@@@@;@@@ @;@@@@@@@@;;@ @,@,---,@,---,@@@;@@@ @@@@@@@@-@@@@;@@) @@@@@@@@-@@@@;@@) ",
|
||||||
" .@@@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@@= @,,,,@@@@;;;;@@@= . @@-@@-@@@@---@ @-@@@@@@@@--@ @-@-@@@-@-@@@-@@-@-@@ @,,,,@@@;@@@@-@@' @,,,,@@@;@@@@-@@' ",
|
" .@@@----@@@----@@@@@@@----@@@----@@@= @''''@@@@----@@@= . @@;@@;@@@@;;;@ @;@@@@@@@@;;@ @;@;@@@;@;@@@;@@;@;@@ @''''@@@-@@@@;@@) @''''@@@-@@@@;@@) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @-@@@@-----@@@ @-@@@@@@@@-@@ @-@-@@@-@-@@@-@-@-@-@ @,@@@,@@;@@@@-@@' @,@@@,@@;@@@@-@@' ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @;@@@@;;;;;@@@ @;@@@@@@@@;@@ @;@;@@@;@;@@@;@;@;@;@ @'@@@'@@-@@@@;@@) @'@@@'@@-@@@@;@@) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @-@@@@@@@@@@@@ @----------@@ @>@@---@@@---@@@@@-@@ @,@@@,@@;@@@@-@@' @,@@@,@@;@@@@-@@' ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= @@@@@@@@@@@@@@@@= . @;@@@@@@@@@@@@ @;;;;;;;;;;@@ @,@@;;;@@@;;;@@@@@;@@ @'@@@'@@-@@@@;@@) @'@@@'@@-@@@@;@@) ",
|
||||||
" ===================================== ================= . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ @,@@@,@@@;;;;)@@' @,@@@,@@)----)@@' ",
|
" ===================================== ================= . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ @'@@@'@@@----!@@) @'@@@'@@!;;;;!@@) ",
|
||||||
" . @,,,,@@@;@@@@-@@' @,,,,@@@-@@@@;@@' ",
|
" . @''''@@@-@@@@;@@) @''''@@@;@@@@-@@) ",
|
||||||
" . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ @,@@@,@@;@@@@-@@' @,@@@,@@-@@@@;@@' ",
|
" . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ @'@@@'@@-@@@@;@@) @'@@@'@@;@@@@-@@) ",
|
||||||
" ........................................................ . @@@@@@;;;;;@@@ @;;;;;;;;;;@@ @@@@;;;@@@;;;@@@;@@@@ @,@@@,@@;@@@@-@@' @,@@@,@@-@@@@;@@' ",
|
" ........................................................ . @@@@@@-----@@@ @----------@@ @@@@---@@@---@@@-@@@@ @'@@@'@@-@@@@;@@) @'@@@'@@;@@@@-@@) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@;@@@@;;;@ @;@@@@@@@@;@@ @;@;@@@;@;@@@;@;@;@;@ @,@@@,@@;@@@@-@@' @,@@@,@@-@@@@;@@' ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@-@@@@---@ @-@@@@@@@@-@@ @-@-@@@-@-@@@-@-@-@-@ @'@@@'@@-@@@@;@@) @'@@@'@@;@@@@-@@) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@;@@@@;@@@ @;@@@@@@@@;;@ @;@;@@@;@;@@@;@@;@;@@ @,,,,@@@@;;;;)@@' @,,,,@@@)----)@@' ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@-@@@@-@@@ @-@@@@@@@@--@ @-@-@@@-@-@@@-@@-@-@@ @''''@@@@----!@@) @''''@@@!;;;;!@@) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@;;;@@@@;@@@ @;@@@@@@@@;;@ @@@@;;;@@@;;;@@@@;@@@ @@@@@@@@@@@@@@@@' @@@@@@@@@@@@@@@@' ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@---@@@@-@@@ @-@@@@@@@@--@ @@@@---@@@---@@@@-@@@ @@@@@@@@@@@@@@@@) @@@@@@@@@@@@@@@@) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@;@@;@@@@;;;@ @;@@@@@@@@;;@ @;@;@@@;@;@@@;@@;@;@@ @@@@@@@@@@@@@@@@' @@@@@@@@@@@@@@@@' ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@-@@-@@@@---@ @-@@@@@@@@--@ @-@-@@@-@-@@@-@@-@-@@ @@@@@@@@@@@@@@@@) @@@@@@@@@@@@@@@@) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @;@@@@;;;;;@@@ @;@@@@@@@@;@@ @;@;@@@;@;@@@;@;@;@;@ ''''''''''''''''' ''''''''''''''''' ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @-@@@@-----@@@ @-@@@@@@@@-@@ @-@-@@@-@-@@@-@-@-@-@ ))))))))))))))))) ))))))))))))))))) ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @;@@@@@@@@@@@@ @;;;;;;;;;;@@ @@@@;;;@@@;;;@@@@@;@@ ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @-@@@@@@@@@@@@ @----------@@ @@@@---@@@---@@@@@-@@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ ",
|
||||||
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@,,,@@@@@@!@!,,,!@!,,,!@!@@@!@!,,,!@!,,,!@!,,,!@!,,,!@!,,,!@@@@@@@@@@@@@ @@@@@@ ",
|
" .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= . @@'''@@@@@@>@>'''>@>'''>@>@@@>@>'''>@>'''>@>'''>@>'''>@>'''>@@@@@@@@@@@@@ @@@@@@ ",
|
||||||
" ======================================================== . @,@@@,@@@@@,@@@@@,@@@@@,@,@@@,@,@@@@@,@@@@@@@@@,@,@@@,@,@@@,@@@@@@@@@@@@@ @@@@@@ ",
|
" ======================================================== . @'@@@'@@@@@'@@@@@'@@@@@'@'@@@'@'@@@@@'@@@@@@@@@'@'@@@'@'@@@'@@@@@@@@@@@@@ @@@@@@ ",
|
||||||
" . @,@@@,@@@@@,@@@@@,@@@@@,@,@@@,@,@@@@@,@@@@@@@@@,@,@@@,@,@@@,@@@@@@@@@@@@@ @@@@@@ ",
|
" . @'@@@'@@@@@'@@@@@'@@@@@'@'@@@'@'@@@@@'@@@@@@@@@'@'@@@'@'@@@'@@@@@@@@@@@@@ @@@@@@ ",
|
||||||
" . @!@@@!@@@@@!@!,,,!@@,,,!@!,,,!@!,,,!@!,,,!@@@@@!@~,,,~@!,,,!@!,,,!@@@@@@@ @@@@@@ ",
|
" . @>@@@>@@@@@>@>'''>@@'''>@>'''>@>'''>@>'''>@@@@@>@~'''~@>'''>@>'''>@@@@@@@ @@@@@@ ",
|
||||||
" . @,@@@,@@@@@,@,@@@@@@@@@,@@@@@,@@@@@,@,@@@,@@@@@,@,@@@,@@@@@,@@@@@@@@@@@@@ @@@@@@ ",
|
" . @'@@@'@@@@@'@'@@@@@@@@@'@@@@@'@@@@@'@'@@@'@@@@@'@'@@@'@@@@@'@@@@@@@@@@@@@ @@@@@@ ",
|
||||||
" . @,@@@,@@@@@,@,@@@@@@@@@,@@@@@,@@@@@,@,@@@,@@@@@,@,@@@,@@@@@,@@@@@@@@@@@@@ @@@@@@ ",
|
" . @'@@@'@@@@@'@'@@@@@@@@@'@@@@@'@@@@@'@'@@@'@@@@@'@'@@@'@@@@@'@@@@@@@@@@@@@ @@@@@@ ",
|
||||||
"................................................................. @@,,,@@@@@@,@!,,,!@!,,,!@@@@@!@!,,,!@!,,,!@@@@@!@!,,,!@!,,,!@@@@@@@@@@@@@ @@@@,@ ",
|
"................................................................. @@'''@@@@@@'@>'''>@>'''>@@@@@>@>'''>@>'''>@@@@@>@>'''>@>'''>@@@@@@@@@@@@@ @@@@'@ ",
|
||||||
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
|
||||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
|
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
|
||||||
"@~,,,~@!,,,@@!,,,!@!,,,@@!,,,!@!,,,!@!,,,!@!@@@!@@@!@@@@@@@!@!@@@!@!@@@@@,@@@,@!,,,@@!,,,!@!,,,!@!,,,!@!,,,!@!,,,!@!,,,!@!@@@!@!@@@!@!@@@!@!@@@!@!@@@!@!,,,!@",
|
"@~'''~@>'''@@>'''>@>'''@@>'''>@>'''>@>'''>@>@@@>@@@>@@@@@@@>@>@@@>@>@@@@@'@@@'@>'''@@>'''>@>'''>@>'''>@>'''>@>'''>@>'''>@>@@@>@>@@@>@>@@@>@>@@@>@>@@@>@>'''>@",
|
||||||
"@,@@@,@,@@@,@,@@@@@,@@@,@,@@@@@,@@@@@,@@@@@,@@@,@@@,@@@@@@@,@,@@@,@,@@@@@,,@,,@,@@@,@,@@@,@,@@@,@,@@@,@,@@@,@,@@@@@@@,@@@,@@@,@,@@@,@,@@@,@,@@@,@,@@@,@@@@@,@",
|
"@'@@@'@'@@@'@'@@@@@'@@@'@'@@@@@'@@@@@'@@@@@'@@@'@@@'@@@@@@@'@'@@@'@'@@@@@''@''@'@@@'@'@@@'@'@@@'@'@@@'@'@@@'@'@@@@@@@'@@@'@@@'@'@@@'@'@@@'@'@@@'@'@@@'@@@@@'@",
|
||||||
"@,@@@,@,@@@,@,@@@@@,@@@,@,@@@@@,@@@@@,@@@@@,@@@,@@@,@@@@@@@,@,@@,~@,@@@@@,@,@,@,@@@,@,@@@,@,@@@,@,@@@,@,@@@,@,@@@@@@@,@@@,@@@,@,@@@,@,@@@,@~,@,~@,@@@,@@@@,~@",
|
"@'@@@'@'@@@'@'@@@@@'@@@'@'@@@@@'@@@@@'@@@@@'@@@'@@@'@@@@@@@'@'@@'~@'@@@@@'@'@'@'@@@'@'@@@'@'@@@'@'@@@'@'@@@'@'@@@@@@@'@@@'@@@'@'@@@'@'@@@'@~'@'~@'@@@'@@@@'~@",
|
||||||
"@!,,,!@!,,,@@!@@@@@!@@@!@!,,,@@!,,,@@!~,,!@!,,,!@@@!@@@@@@@!@!,,~@@!@@@@@!@@@!@!@@@!@!@@@!@!,,,!@!,@@!@!,,,@@!,,,!@@@!@@@!@@@!@!@@@!@!@@@!@@~,~@@!,,,!@@~,~@@",
|
"@>'''>@>'''@@>@@@@@>@@@>@>'''@@>'''@@>~''>@>'''>@@@>@@@@@@@>@>''~@@>@@@@@>@@@>@>@@@>@>@@@>@>'''>@>'@@>@>'''@@>'''>@@@>@@@>@@@>@>@@@>@>@@@>@@~'~@@>'''>@@~'~@@",
|
||||||
"@,@@@,@,@@@,@,@@@@@,@@@,@,@@@@@,@@@@@,@@@,@,@@@,@@@,@@@@@@@,@,@@,~@,@@@@@,@@@,@,@@@,@,@@@,@,@@@@@,@,@,@,@@@,@@@@@,@@@,@@@,@@@,@,@@@,@,@,@,@~,@,~@@@@@,@~,@@@@",
|
"@'@@@'@'@@@'@'@@@@@'@@@'@'@@@@@'@@@@@'@@@'@'@@@'@@@'@@@@@@@'@'@@'~@'@@@@@'@@@'@'@@@'@'@@@'@'@@@@@'@'@'@'@@@'@@@@@'@@@'@@@'@@@'@'@@@'@'@'@'@~'@'~@@@@@'@~'@@@@",
|
||||||
"@,@@@,@,@@@,@,@@@@@,@@@,@,@@@@@,@@@@@,@@@,@,@@@,@@@,@@@@@@@,@,@@@,@,@@@@@,@@@,@,@@@,@,@@@,@,@@@@@,@@,,@,@@@,@@@@@,@@@,@@@,@@@,@,@@@,@,,@,,@,@@@,@@@@@,@,@@@@@",
|
"@'@@@'@'@@@'@'@@@@@'@@@'@'@@@@@'@@@@@'@@@'@'@@@'@@@'@@@@@@@'@'@@@'@'@@@@@'@@@'@'@@@'@'@@@'@'@@@@@'@@''@'@@@'@@@@@'@@@'@@@'@@@'@'@@@'@''@''@'@@@'@@@@@'@'@@@@@",
|
||||||
"@!@@@!@!,,,@@!,,,!@,,,,@@!,,,!@,@@@@@!,,,!@!@@@!@@@,@@@!,,,!@!@@@!@!,,,~@!@@@!@,@@@,@!,,,!@!@@@@@!,,,!@!@@@!@!,,,!@@@!@@@~,,,,@@,,,@@,@@@,@!@@@,@!,,,!@!,,,!@",
|
"@>@@@>@>'''@@>'''>@''''@@>'''>@'@@@@@>'''>@>@@@>@@@'@@@>'''>@>@@@>@>'''~@>@@@>@'@@@'@>'''>@>@@@@@>'''>@>@@@>@>'''>@@@>@@@~''''@@'''@@'@@@'@>@@@'@>'''>@>'''>@",
|
||||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
|
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
|
||||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@",
|
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@",
|
||||||
"@@----@@@;;;;)@)---->@)----)@);;;;)@)----)@)---->@)----)@)---->@)---->@@@@@ @@----@@@----@@@@@@@----@@@----@@ @@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@ @@,;;;,@",
|
"@@;;;;@@@----!@!;;;;,@!;;;;!@!----!@!;;;;!@!;;;;,@!;;;;!@!;;;;,@!;;;;,@@@@@ @@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@ @@----@@@----@@@@@@@----@@@----@@ @@'---'@",
|
||||||
"@-@@@@-@;@@@@-@;@@@@-@;@@@@-@-@@@@-@-@@@@;@-@@@@;@;@@@@-@-@@@@-@-@@@@-@@-@@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @,@,@,;@",
|
"@;@@@@;@-@@@@;@-@@@@;@-@@@@;@;@@@@;@;@@@@-@;@@@@-@-@@@@;@;@@@@;@;@@@@;@@;@@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @'@'@'-@",
|
||||||
"@-@@@@-@;@@@@-@;@@@@-@;@@@@-@-@@@@-@-@@@@;@-@@@@;@;@@@@-@-@@@@-@-@@@@-@@-@@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @;,@,@;@",
|
"@;@@@@;@-@@@@;@-@@@@;@-@@@@;@;@@@@;@;@@@@-@;@@@@-@-@@@@;@;@@@@;@;@@@@;@@;@@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @-'@'@-@",
|
||||||
"@-@@@@-@;@@@@-@;@@@@-@;@@@@-@-@@@@-@-@@@@;@-@@@@;@;@@@@-@-@@@@-@-@@@@-@@@@@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @;@,@,;@",
|
"@;@@@@;@-@@@@;@-@@@@;@-@@@@;@;@@@@;@;@@@@-@;@@@@-@-@@@@;@;@@@@;@;@@@@;@@@@@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @-@'@'-@",
|
||||||
"@-@@@@-@;@@@@-@;@@@@-@;@@@@-@-@@@@-@-@@@@;@-@@@@;@;@@@@-@-@@@@-@-@@@@-@@@@@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @;,@,@,@",
|
"@;@@@@;@-@@@@;@-@@@@;@-@@@@;@;@@@@;@;@@@@-@;@@@@-@-@@@@;@;@@@@;@;@@@@;@@@@@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @-'@'@'@",
|
||||||
"@);;;;)@@;;;;)@)----)@)----)@)----)@)----)@)----)@@;;;;)@)----)@)----)@@@@@ @);;;;)@);;;;)@@@@@);;;;)@);;;;)@ @@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@ @,;;;,@@",
|
"@!----!@@----!@!;;;;!@!;;;;!@!;;;;!@!;;;;!@!;;;;!@@----!@!;;;;!@!;;;;!@@@@@ @!----!@!----!@@@@@!----!@!----!@ @@----@@@----@@@@@@@----@@@----@@ @'---'@@",
|
||||||
"@-@@@@-@;@@@@-@-@@@@;@;@@@@-@;@@@@-@;@@@@-@-@@@@-@;@@@@-@-@@@@-@;@@@@-@@@@@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @;@@@@;@",
|
"@;@@@@;@-@@@@;@;@@@@-@-@@@@;@-@@@@;@-@@@@;@;@@@@;@-@@@@;@;@@@@;@-@@@@;@@@@@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @-@@@@-@",
|
||||||
"@-@@@@-@;@@@@-@-@@@@;@;@@@@-@;@@@@-@;@@@@-@-@@@@-@;@@@@-@-@@@@-@;@@@@-@@@@@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @,,,,,;@",
|
"@;@@@@;@-@@@@;@;@@@@-@-@@@@;@-@@@@;@-@@@@;@;@@@@;@-@@@@;@;@@@@;@-@@@@;@@@@@ @;@@@@;@;@@@@;@@@@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@@@@-@@@@-@-@@@@-@ @'''''-@",
|
||||||
"@-@@@@-@;@@@@-@-@@@@;@;@@@@-@;@@@@-@;@@@@-@-@@@@-@;@@@@-@-@@@@-@;@@@@-@@-@@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @,@@@,,@",
|
"@;@@@@;@-@@@@;@;@@@@-@-@@@@;@-@@@@;@-@@@@;@;@@@@;@-@@@@;@;@@@@;@-@@@@;@@;@@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @'@@@''@",
|
||||||
"@-@@@@-@;@@@@-@-@@@@;@;@@@@-@;@@@@-@;@@@@-@-@@@@-@;@@@@-@-@@@@-@;@@@@-@@-@@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @,@@@,,@",
|
"@;@@@@;@-@@@@;@;@@@@-@-@@@@;@-@@@@;@-@@@@;@;@@@@;@-@@@@;@;@@@@;@-@@@@;@@;@@ @;@@@@;@;@@@@;@@;@@;@@@@;@;@@@@;@ @-@@@@-@-@@@@-@@-@@-@@@@-@-@@@@-@ @'@@@''@",
|
||||||
"@@----@@@;;;;)@)----)@)----)@@;;;;)@)----)@)----)@@;;;;)@)----)@)----)@@@@@ @@----@@@----@@@@@@@----@@@----@@ @@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@ @,,,,,@@",
|
"@@;;;;@@@----!@!;;;;!@!;;;;!@@----!@!;;;;!@!;;;;!@@----!@!;;;;!@!;;;;!@@@@@ @@;;;;@@@;;;;@@@@@@@;;;;@@@;;;;@@ @@----@@@----@@@@@@@----@@@----@@ @'''''@@",
|
||||||
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@"};
|
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@"};
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
#include "libacpi.h"
|
#include "libacpi.h"
|
||||||
#include "wmacpi-ng.h"
|
#include "wmacpi-ng.h"
|
||||||
|
|
||||||
#define WMACPI_NG_VER "0.50"
|
#define WMACPI_NG_VER "0.90"
|
||||||
|
|
||||||
/* main pixmap */
|
/* main pixmap */
|
||||||
#ifdef LOW_COLOR
|
#ifdef LOW_COLOR
|
||||||
|
@ -56,9 +56,7 @@ typedef struct {
|
||||||
Pixmap text; /* pixmap for text scroller */
|
Pixmap text; /* pixmap for text scroller */
|
||||||
int tw; /* text width inside text pixmap */
|
int tw; /* text width inside text pixmap */
|
||||||
int update; /* need to redraw? */
|
int update; /* need to redraw? */
|
||||||
int pressed; /* is the button pressed? */
|
int blink; /* should we blink the LED? (critical battery) */
|
||||||
DspMode dspmode; /* time remaining or battery timer */
|
|
||||||
Mode blink; /* should we blink the LED? (critical battery) */
|
|
||||||
} Dockapp;
|
} Dockapp;
|
||||||
|
|
||||||
/* for debug printing */
|
/* for debug printing */
|
||||||
|
@ -72,6 +70,10 @@ APMInfo *apminfo;
|
||||||
int count = 0; /* global timer variable */
|
int count = 0; /* global timer variable */
|
||||||
int noisy_critical = 0; /* ring xbell annoyingly if critical? */
|
int noisy_critical = 0; /* ring xbell annoyingly if critical? */
|
||||||
|
|
||||||
|
/* Time for scroll updates */
|
||||||
|
#define DEFAULT_UPDATE 150
|
||||||
|
static int update_timeout = DEFAULT_UPDATE;
|
||||||
|
|
||||||
/* proto for local stuff */
|
/* proto for local stuff */
|
||||||
static void new_window(char *name);
|
static void new_window(char *name);
|
||||||
static int open_display(char *display);
|
static int open_display(char *display);
|
||||||
|
@ -112,6 +114,18 @@ static void kill_battery_glyph(void)
|
||||||
copy_xpm_area(82, 48, 12, 7, 20, 17);
|
copy_xpm_area(82, 48, 12, 7, 20, 17);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* clear the time display */
|
||||||
|
static void clear_time_display(void)
|
||||||
|
{
|
||||||
|
copy_xpm_area(114, 76, 31, 11, 7, 32);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set time display to -- -- */
|
||||||
|
static void invalid_time_display(void)
|
||||||
|
{
|
||||||
|
copy_xpm_area(122, 13, 31, 11, 7, 32);
|
||||||
|
}
|
||||||
|
|
||||||
static void redraw_window(void)
|
static void redraw_window(void)
|
||||||
{
|
{
|
||||||
if (dockapp->update) {
|
if (dockapp->update) {
|
||||||
|
@ -312,6 +326,9 @@ static void display_percentage(int percent)
|
||||||
|
|
||||||
eprint(0, "received: %d\n", percent);
|
eprint(0, "received: %d\n", percent);
|
||||||
|
|
||||||
|
if (percent == -1)
|
||||||
|
percent = 0;
|
||||||
|
|
||||||
if (op == percent)
|
if (op == percent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -343,24 +360,24 @@ static void display_percentage(int percent)
|
||||||
static void display_time(int minutes)
|
static void display_time(int minutes)
|
||||||
{
|
{
|
||||||
static int ohour = -1, omin = -1;
|
static int ohour = -1, omin = -1;
|
||||||
static int counter;
|
|
||||||
int hour, min, tmp;
|
int hour, min, tmp;
|
||||||
|
|
||||||
if (minutes == -1) { /* error - blink 00:00 */
|
if (minutes <= 0) { /* error - clear the display */
|
||||||
counter++;
|
invalid_time_display();
|
||||||
if (counter == 5) {
|
|
||||||
copy_xpm_area(80, 76, 31, 11, 7, 32);
|
|
||||||
} else if (counter == 10) {
|
|
||||||
copy_xpm_area(114, 76, 31, 11, 7, 32);
|
|
||||||
}
|
|
||||||
if (counter > 10)
|
|
||||||
counter = 0;
|
|
||||||
ohour = omin = -1;
|
ohour = omin = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* render time on the display */
|
/* render time on the display */
|
||||||
hour = minutes / 60;
|
hour = minutes / 60;
|
||||||
|
/* our display area only fits %2d:%2d, so we need to make sure
|
||||||
|
* what we're displaying will fit in those constraints. I don't
|
||||||
|
* think we're likely to see any batteries that do more than
|
||||||
|
* 100 hours any time soon, so it's fairly safe. */
|
||||||
|
if (hour >= 100) {
|
||||||
|
hour = 99;
|
||||||
|
min = 59;
|
||||||
|
} else
|
||||||
min = minutes % 60;
|
min = minutes % 60;
|
||||||
|
|
||||||
if (hour == ohour && min == omin)
|
if (hour == ohour && min == omin)
|
||||||
|
@ -391,19 +408,57 @@ enum panel_states {
|
||||||
PS_NULL,
|
PS_NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void really_blink_power_glyph(void)
|
||||||
|
{
|
||||||
|
static int counter = 0;
|
||||||
|
|
||||||
|
if (counter == 10)
|
||||||
|
display_power_glyph();
|
||||||
|
else if (counter == 20)
|
||||||
|
kill_power_glyph();
|
||||||
|
else if (counter > 30)
|
||||||
|
counter = 0;
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void blink_power_glyph(void)
|
||||||
|
{
|
||||||
|
if (dockapp->blink)
|
||||||
|
really_blink_power_glyph();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void really_blink_battery_glyph(void)
|
||||||
|
{
|
||||||
|
static int counter = 0;
|
||||||
|
|
||||||
|
if (counter == 10)
|
||||||
|
display_battery_glyph();
|
||||||
|
else if (counter == 20)
|
||||||
|
kill_battery_glyph();
|
||||||
|
else if (counter > 30)
|
||||||
|
counter = 0;
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void blink_battery_glyph(void)
|
||||||
|
{
|
||||||
|
if (dockapp->blink)
|
||||||
|
really_blink_battery_glyph();
|
||||||
|
}
|
||||||
|
|
||||||
static void set_power_panel(void)
|
static void set_power_panel(void)
|
||||||
{
|
{
|
||||||
enum panel_states power = PS_NULL;
|
enum panel_states power = PS_NULL;
|
||||||
static int counter = 0;
|
battery_t *binfo = apminfo->binfo;
|
||||||
battery *binfo = apminfo->binfo;
|
adapter_t *ap = &apminfo->adapter;
|
||||||
|
|
||||||
if (apminfo->power == AC) {
|
if (ap->power == AC) {
|
||||||
if (power != PS_AC) {
|
if (power != PS_AC) {
|
||||||
power = PS_AC;
|
power = PS_AC;
|
||||||
kill_battery_glyph();
|
kill_battery_glyph();
|
||||||
display_power_glyph();
|
display_power_glyph();
|
||||||
}
|
}
|
||||||
} else if (apminfo->power == BATT) {
|
} else if (ap->power == BATT) {
|
||||||
if (power != PS_BATT) {
|
if (power != PS_BATT) {
|
||||||
power = PS_BATT;
|
power = PS_BATT;
|
||||||
kill_power_glyph();
|
kill_power_glyph();
|
||||||
|
@ -411,25 +466,14 @@ static void set_power_panel(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (binfo->charging) {
|
if (binfo->charge_state == CHARGE)
|
||||||
if (counter == 10)
|
blink_power_glyph();
|
||||||
display_power_glyph();
|
|
||||||
else if (counter == 20)
|
|
||||||
kill_power_glyph();
|
|
||||||
else if (counter > 30)
|
|
||||||
counter = 0;
|
|
||||||
counter++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (binfo->capacity_state == CRITICAL) {
|
if (binfo->state == CRIT)
|
||||||
if (counter == 10)
|
blink_battery_glyph();
|
||||||
display_battery_glyph();
|
|
||||||
else if (counter == 20)
|
if (binfo->state == HARD_CRIT)
|
||||||
kill_battery_glyph();
|
really_blink_battery_glyph();
|
||||||
else if (counter > 30)
|
|
||||||
counter = 0;
|
|
||||||
counter++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -453,13 +497,15 @@ enum messages {
|
||||||
M_BATT, /* on battery */
|
M_BATT, /* on battery */
|
||||||
M_LB, /* low battery */
|
M_LB, /* low battery */
|
||||||
M_CB, /* critical low battery */
|
M_CB, /* critical low battery */
|
||||||
|
M_HCB, /* battery reported critical capacity state */
|
||||||
M_NULL, /* empty starting state */
|
M_NULL, /* empty starting state */
|
||||||
};
|
};
|
||||||
|
|
||||||
static void set_message(void)
|
static void set_message(void)
|
||||||
{
|
{
|
||||||
static enum messages state = M_NULL;
|
static enum messages state = M_NULL;
|
||||||
battery *binfo = apminfo->binfo;
|
battery_t *binfo = apminfo->binfo;
|
||||||
|
adapter_t *ap = &apminfo->adapter;
|
||||||
|
|
||||||
/* battery not present case */
|
/* battery not present case */
|
||||||
if (!binfo->present) {
|
if (!binfo->present) {
|
||||||
|
@ -467,15 +513,17 @@ static void set_message(void)
|
||||||
state = M_NP;
|
state = M_NP;
|
||||||
render_text("not present");
|
render_text("not present");
|
||||||
}
|
}
|
||||||
} else if (apminfo->power == AC) {
|
} else if (ap->power == AC) {
|
||||||
if (binfo->charging) {
|
if (binfo->charge_state == CHARGE) {
|
||||||
if (state != M_CH) {
|
if (state != M_CH) {
|
||||||
state = M_CH;
|
state = M_CH;
|
||||||
|
update_timeout = DEFAULT_UPDATE;
|
||||||
render_text("battery charging");
|
render_text("battery charging");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (state != M_AC) {
|
if (state != M_AC) {
|
||||||
state = M_AC;
|
state = M_AC;
|
||||||
|
update_timeout = DEFAULT_UPDATE;
|
||||||
render_text("on ac power");
|
render_text("on ac power");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -483,22 +531,43 @@ static void set_message(void)
|
||||||
if (binfo->state == CRIT) {
|
if (binfo->state == CRIT) {
|
||||||
if (state != M_CB) {
|
if (state != M_CB) {
|
||||||
state = M_CB;
|
state = M_CB;
|
||||||
|
update_timeout = 80;
|
||||||
render_text("critical low battery");
|
render_text("critical low battery");
|
||||||
}
|
}
|
||||||
|
} else if (binfo->state == HARD_CRIT) {
|
||||||
|
if (state != M_HCB) {
|
||||||
|
state = M_HCB;
|
||||||
|
update_timeout = 60;
|
||||||
|
render_text("hard critical low battery");
|
||||||
|
}
|
||||||
} else if (binfo->state == LOW) {
|
} else if (binfo->state == LOW) {
|
||||||
if (state != M_LB) {
|
if (state != M_LB) {
|
||||||
state = M_LB;
|
state = M_LB;
|
||||||
|
update_timeout = 100;
|
||||||
render_text("low battery");
|
render_text("low battery");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (state != M_BATT) {
|
if (state != M_BATT) {
|
||||||
state = M_BATT;
|
state = M_BATT;
|
||||||
|
update_timeout = DEFAULT_UPDATE;
|
||||||
render_text("on battery");
|
render_text("on battery");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_time_display(void)
|
||||||
|
{
|
||||||
|
battery_t *binfo = &batteries[battery_no];
|
||||||
|
|
||||||
|
if (binfo->charge_state == CHARGE)
|
||||||
|
display_time(binfo->charge_time);
|
||||||
|
else if (binfo->charge_state == DISCHARGE)
|
||||||
|
display_time(apminfo->rtime);
|
||||||
|
else
|
||||||
|
invalid_time_display();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This should really be fixed so that it can handle more than two batteries.
|
* This should really be fixed so that it can handle more than two batteries.
|
||||||
*/
|
*/
|
||||||
|
@ -549,12 +618,12 @@ int main(int argc, char **argv)
|
||||||
char *display = NULL;
|
char *display = NULL;
|
||||||
char ch;
|
char ch;
|
||||||
int update = 0;
|
int update = 0;
|
||||||
battery *binfo;
|
battery_t *binfo;
|
||||||
|
|
||||||
dockapp = calloc(1, sizeof(Dockapp));
|
dockapp = calloc(1, sizeof(Dockapp));
|
||||||
apminfo = calloc(1, sizeof(APMInfo));
|
apminfo = calloc(1, sizeof(APMInfo));
|
||||||
|
|
||||||
dockapp->blink = OFF;
|
dockapp->blink = 1;
|
||||||
apminfo->crit_level = 10;
|
apminfo->crit_level = 10;
|
||||||
battery_no = 1;
|
battery_no = 1;
|
||||||
|
|
||||||
|
@ -564,7 +633,7 @@ int main(int argc, char **argv)
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
/* parse command-line options */
|
/* parse command-line options */
|
||||||
while ((ch = getopt(argc, argv, "bd:c:m:hvV")) != EOF) {
|
while ((ch = getopt(argc, argv, "bd:c:m:hnvV")) != EOF) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'b':
|
case 'b':
|
||||||
noisy_critical = 1;
|
noisy_critical = 1;
|
||||||
|
@ -608,6 +677,9 @@ int main(int argc, char **argv)
|
||||||
case 'V':
|
case 'V':
|
||||||
print_version();
|
print_version();
|
||||||
return 0;
|
return 0;
|
||||||
|
case 'n':
|
||||||
|
dockapp->blink = 0;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -621,15 +693,17 @@ int main(int argc, char **argv)
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
/* make new dockapp window */
|
/* make new dockapp window */
|
||||||
new_window("apm");
|
new_window("acpi");
|
||||||
|
|
||||||
/* get initial statistics */
|
/* get initial statistics */
|
||||||
acquire_all_info();
|
acquire_all_info();
|
||||||
binfo = &batteries[battery_no];
|
binfo = &batteries[battery_no];
|
||||||
apminfo->binfo = binfo;
|
apminfo->binfo = binfo;
|
||||||
fprintf(stderr, "monitoring battery %s\n", binfo->name);
|
fprintf(stderr, "monitoring battery %s\n", binfo->name);
|
||||||
|
clear_time_display();
|
||||||
|
set_power_panel();
|
||||||
|
set_message();
|
||||||
set_batt_id_area(battery_no);
|
set_batt_id_area(battery_no);
|
||||||
dockapp->dspmode = REMAIN;
|
|
||||||
|
|
||||||
/* main loop */
|
/* main loop */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@ -663,12 +737,11 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (update++ == 30) {
|
if (update++ == 30) {
|
||||||
eprint(0, "polling apm");
|
|
||||||
acquire_all_info();
|
acquire_all_info();
|
||||||
update = 0;
|
update = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count++ == 256) {
|
if (count++ == update_timeout) {
|
||||||
scroll_text(6, 50, 52, dockapp->tw, 1);
|
scroll_text(6, 50, 52, dockapp->tw, 1);
|
||||||
count = 0;
|
count = 0;
|
||||||
}
|
}
|
||||||
|
@ -684,10 +757,7 @@ int main(int argc, char **argv)
|
||||||
* much time remained until the batteries were fully charged . . .
|
* much time remained until the batteries were fully charged . . .
|
||||||
* That would be rather useful, though given it would vary rather a lot
|
* That would be rather useful, though given it would vary rather a lot
|
||||||
* it seems likely that it'd be little more than a rough guesstimate. */
|
* it seems likely that it'd be little more than a rough guesstimate. */
|
||||||
if (binfo->charging)
|
set_time_display();
|
||||||
display_time(binfo->charge_time);
|
|
||||||
else
|
|
||||||
display_time(apminfo->rtime);
|
|
||||||
set_power_panel();
|
set_power_panel();
|
||||||
set_message();
|
set_message();
|
||||||
display_percentage(binfo->percentage);
|
display_percentage(binfo->percentage);
|
||||||
|
|
Loading…
Reference in a new issue