summaryrefslogtreecommitdiff
path: root/src/cups
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2017-07-17 21:45:54 +0200
committerDidier Raboud <odyx@debian.org>2017-07-17 21:45:54 +0200
commit337ffefc0bdf252749c81ebb9255556d54c3e632 (patch)
tree5d769771acb1ce6b14d5be80ca7775c2d279b404 /src/cups
parentaedf3e93e811c6c9d504274172861d266e1c5c97 (diff)
New upstream version 5.2.13
Diffstat (limited to 'src/cups')
-rw-r--r--src/cups/backend_canonselphy.c76
-rw-r--r--src/cups/backend_canonselphyneo.c26
-rw-r--r--src/cups/backend_citizencw01.c16
-rw-r--r--src/cups/backend_common.c14
-rw-r--r--src/cups/backend_dnpds40.c24
-rw-r--r--src/cups/backend_kodak1400.c48
-rw-r--r--src/cups/backend_kodak605.c4
-rw-r--r--src/cups/backend_kodak6800.c8
-rw-r--r--src/cups/backend_mitsu70x.c22
-rw-r--r--src/cups/backend_mitsu9550.c50
-rw-r--r--src/cups/backend_mitsup95d.c6
-rw-r--r--src/cups/backend_shinkos1245.c14
-rw-r--r--src/cups/backend_shinkos2145.c32
-rw-r--r--src/cups/backend_shinkos6145.c90
-rw-r--r--src/cups/backend_shinkos6245.c52
-rw-r--r--src/cups/backend_sonyupdr150.c22
-rw-r--r--src/cups/blacklist2
-rw-r--r--src/cups/calibrate.ppm38
-rw-r--r--src/cups/commands/SetAlignment.cmd1
-rw-r--r--src/cups/cups-genppdupdate.in2
-rw-r--r--src/cups/genppd.c30
-rw-r--r--src/cups/i18n.c2
-rwxr-xr-xsrc/cups/test-rastertogutenprint.in6
23 files changed, 283 insertions, 302 deletions
diff --git a/src/cups/backend_canonselphy.c b/src/cups/backend_canonselphy.c
index 501cb0a..1fdd3a5 100644
--- a/src/cups/backend_canonselphy.c
+++ b/src/cups/backend_canonselphy.c
@@ -92,7 +92,7 @@ struct printer_data {
int16_t pgcode_offset; /* Offset into printjob for paper type */
int16_t paper_code_offset; /* Offset in readback for paper type */
int (*error_detect)(uint8_t *rdbuf);
- char *(*pgcode_names)(uint8_t pgcode);
+ char *(*pgcode_names)(uint8_t pgcode);
};
static char *generic_pgcode_names(uint8_t pgcode)
@@ -137,7 +137,7 @@ static int es2_error_detect(uint8_t *rdbuf)
ERROR("Printer cover open!\n");
return 1;
}
-
+
if (rdbuf[0] == 0x02 &&
rdbuf[4] == 0x05 &&
rdbuf[5] == 0x05 &&
@@ -165,13 +165,13 @@ static int es3_error_detect(uint8_t *rdbuf)
ATTR("marker-levels=%d\n", 0);
ERROR("No media loaded!\n");
} else {
- ERROR("Unknown error - %02x + %02x\n",
+ ERROR("Unknown error - %02x + %02x\n",
rdbuf[8], rdbuf[10]);
}
return 1;
} else if (rdbuf[8] == 0x03 &&
rdbuf[10] == 0x02) {
- ATTR("marker-levels=%d\n", 0);
+ ATTR("marker-levels=%d\n", 0);
ERROR("No media loaded!\n");
return 1;
} else if (rdbuf[8] == 0x08 &&
@@ -185,11 +185,11 @@ static int es3_error_detect(uint8_t *rdbuf)
}
if (rdbuf[8] || rdbuf[10]) {
- ERROR("Unknown error - %02x + %02x\n",
+ ERROR("Unknown error - %02x + %02x\n",
rdbuf[8], rdbuf[10]);
return 1;
}
-
+
return 0;
}
@@ -198,7 +198,7 @@ static int es40_error_detect(uint8_t *rdbuf)
/* ES40 */
if (!rdbuf[3])
return 0;
-
+
if (rdbuf[3] == 0x01)
ERROR("Generic communication error\n");
else if (rdbuf[3] == 0x32) {
@@ -206,7 +206,7 @@ static int es40_error_detect(uint8_t *rdbuf)
ERROR("Cover open or media empty!\n");
} else
ERROR("Unknown error - %02x\n", rdbuf[3]);
-
+
return 1;
}
@@ -224,7 +224,7 @@ static int cp790_error_detect(uint8_t *rdbuf)
if ((rdbuf[3] & 0xf) == 0x02) { // 0x12 0x22
ATTR("marker-levels=%d\n", 0);
ERROR("No paper tray loaded!\n");
- } else if ((rdbuf[3] & 0xf) == 0x03) { // 0x13 0x23
+ } else if ((rdbuf[3] & 0xf) == 0x03) { // 0x13 0x23
ATTR("marker-levels=%d\n", 0);
ERROR("Empty paper tray or feed error!\n");
} else if (rdbuf[3] == 0x11)
@@ -253,7 +253,7 @@ static int cp10_error_detect(uint8_t *rdbuf)
return 0;
if (rdbuf[2] == 0x80) {
- ATTR("marker-levels=%d\n", 0);
+ ATTR("marker-levels=%d\n", 0);
ERROR("No ribbon loaded\n");
} else if (rdbuf[2] == 0x08) {
ATTR("marker-levels=%d\n", 0);
@@ -272,7 +272,7 @@ static int cpxxx_error_detect(uint8_t *rdbuf)
return 0;
if (rdbuf[2] == 0x01) {
- ATTR("marker-levels=%d\n", 0);
+ ATTR("marker-levels=%d\n", 0);
ERROR("Paper feed problem!\n");
} else if (rdbuf[2] == 0x04)
ERROR("Ribbon problem!\n");
@@ -363,7 +363,7 @@ static struct printer_data selphy_printers[] = {
.pgcode_offset = 2,
.paper_code_offset = -1, /* Uses a different technique */
.error_detect = cp790_error_detect,
- .pgcode_names = generic_pgcode_names,
+ .pgcode_names = generic_pgcode_names,
},
{ .type = P_CP_XXX,
.model = "SELPHY CP Series (!CP-10/CP790)",
@@ -379,7 +379,7 @@ static struct printer_data selphy_printers[] = {
.pgcode_offset = 3,
.paper_code_offset = 6,
.error_detect = cpxxx_error_detect,
- .pgcode_names = generic_pgcode_names,
+ .pgcode_names = generic_pgcode_names,
},
{ .type = P_CP10,
.model = "SELPHY CP-10",
@@ -395,7 +395,7 @@ static struct printer_data selphy_printers[] = {
.pgcode_offset = 2,
.paper_code_offset = -1,
.error_detect = cp10_error_detect,
- .pgcode_names = cp10_pgcode_names,
+ .pgcode_names = cp10_pgcode_names,
},
{ .type = -1 },
};
@@ -411,7 +411,7 @@ static void setup_paper_codes(void)
if (selphy_printers[i].type == -1)
break;
/* Default all to IGNORE */
- for (j = 0 ; j < 256 ; j++)
+ for (j = 0 ; j < 256 ; j++)
selphy_printers[i].paper_codes[j] = -1;
/* Set up specifics */
@@ -467,10 +467,10 @@ enum {
S_FINISHED,
};
-static int fancy_memcmp(const uint8_t *buf_a, const int16_t *buf_b, uint len)
+static int fancy_memcmp(const uint8_t *buf_a, const int16_t *buf_b, uint len)
{
uint i;
-
+
for (i = 0 ; i < len ; i++) {
if (buf_b[i] == -1)
continue;
@@ -482,7 +482,7 @@ static int fancy_memcmp(const uint8_t *buf_a, const int16_t *buf_b, uint len)
return 0;
}
-static int parse_printjob(uint8_t *buffer, uint8_t *bw_mode, uint32_t *plane_len)
+static int parse_printjob(uint8_t *buffer, uint8_t *bw_mode, uint32_t *plane_len)
{
int printer_type = -1;
@@ -490,7 +490,7 @@ static int parse_printjob(uint8_t *buffer, uint8_t *bw_mode, uint32_t *plane_len
buffer[1] != 0x00) {
goto done;
}
-
+
if (buffer[12] == 0x40 &&
buffer[13] == 0x01) {
*plane_len = *(uint32_t*)(&buffer[16]);
@@ -599,7 +599,7 @@ static void *canonselphy_init(void)
extern struct dyesub_backend canonselphy_backend;
-static void canonselphy_attach(void *vctx, struct libusb_device_handle *dev,
+static void canonselphy_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct canonselphy_ctx *ctx = vctx;
@@ -678,7 +678,7 @@ static int canonselphy_read_parse(void *vctx, int data_fd)
if (i != MAX_HEADER - offset) {
if (i == 0)
return CUPS_BACKEND_CANCEL;
- ERROR("Read failed (%d/%d)\n",
+ ERROR("Read failed (%d/%d)\n",
i, MAX_HEADER - offset);
perror("ERROR: Read failed");
return CUPS_BACKEND_FAILED;
@@ -691,9 +691,9 @@ static int canonselphy_read_parse(void *vctx, int data_fd)
if (ctx->type == P_CP790)
printer_type = P_CP790;
else
- printer_type = P_ES40;
+ printer_type = P_ES40;
}
-
+
/* Look up the printer entry */
for (i = 0; selphy_printers[i].type != -1; i++) {
if (selphy_printers[i].type == printer_type) {
@@ -758,7 +758,7 @@ static int canonselphy_read_parse(void *vctx, int data_fd)
/* Move over chunks already read in */
memcpy(ctx->header, ctx->buffer, ctx->printer->init_length);
- memcpy(ctx->plane_y, ctx->buffer+ctx->printer->init_length,
+ memcpy(ctx->plane_y, ctx->buffer+ctx->printer->init_length,
MAX_HEADER-ctx->printer->init_length);
/* Read in YELLOW plane */
@@ -864,7 +864,7 @@ top:
INFO("Waiting for printer idle\n");
if (fancy_memcmp(rdbuf, ctx->printer->init_readback, READBACK_LEN))
break;
-
+
/* Make sure paper/ribbon is correct */
if (ctx->paper_code != -1) {
if (ctx->type == P_CP_XXX) {
@@ -892,7 +892,7 @@ top:
} else {
if (rdbuf[ctx->printer->paper_code_offset] !=
ctx->paper_code) {
- ERROR("Incorrect media/ribbon loaded (%02x vs %02x), aborting job!\n",
+ ERROR("Incorrect media/ribbon loaded (%02x vs %02x), aborting job!\n",
ctx->paper_code,
rdbuf[ctx->printer->paper_code_offset]);
return CUPS_BACKEND_HOLD; /* Hold this job, don't stop queue */
@@ -904,7 +904,7 @@ top:
if (ribbon == 0xf) {
ERROR("No ribbon loaded, aborting!\n");
- return CUPS_BACKEND_STOP;
+ return CUPS_BACKEND_STOP;
} else if (ribbon != ctx->paper_code) {
ERROR("Incorrect ribbon loaded, aborting job!\n");
return CUPS_BACKEND_HOLD;
@@ -977,7 +977,7 @@ top:
if (!fancy_memcmp(rdbuf, ctx->printer->done_c_readback, READBACK_LEN)) {
if (ctx->cp900)
state = S_PRINTER_CP900_FOOTER;
- else
+ else
state = S_FINISHED;
}
break;
@@ -985,7 +985,7 @@ top:
uint32_t empty = 0;
INFO("Sending CP900 Footer\n");
- if ((ret = send_data(ctx->dev, ctx->endp_down,
+ if ((ret = send_data(ctx->dev, ctx->endp_down,
(uint8_t*)&empty, sizeof(empty))))
return CUPS_BACKEND_FAILED;
@@ -1002,7 +1002,7 @@ top:
state = S_FINISHED;
/* Intentional Fallthrough */
case S_FINISHED:
- INFO("All data sent to printer!\n");
+ INFO("All data sent to printer!\n");
break;
}
if (state != S_FINISHED)
@@ -1177,7 +1177,7 @@ struct dyesub_backend canonselphy_backend = {
16 01 00 00 [pg] 00 [pg2] 00 00 00 00 00 [error, cover open]
02 00 00 00 05 05 02 00 00 00 00 00 [error, no media]
- [xx] can be 0x00 or 0xff, depending on if a previous print job has
+ [xx] can be 0x00 or 0xff, depending on if a previous print job has
completed or not.
[pg] is: 0x01 for P-papers
@@ -1193,7 +1193,7 @@ struct dyesub_backend canonselphy_backend = {
Selphy ES3/30:
Init func: 40 00 [pgcode] [type] 00 00 00 00 00 00 00 00 [length, 32-bit LE]
- Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
+ Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
End func: 40 20 00 00 00 00 00 00 00 00 00 00
@@ -1232,7 +1232,7 @@ struct dyesub_backend canonselphy_backend = {
Selphy ES40:
Init func: 40 00 [pgcode] [type] 00 00 00 00 00 00 00 00 [length, 32-bit LE]
- Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
+ Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
End func: 40 20 00 00 00 00 00 00 00 00 00 00
@@ -1276,7 +1276,7 @@ struct dyesub_backend canonselphy_backend = {
Selphy CP790:
Init func: 40 00 [pgcode] 00 00 00 00 00 00 00 00 00 [length, 32-bit LE]
- Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
+ Plane func: 40 01 [plane] 00 00 00 00 00 00 00 00 00
End func: 40 20 00 00 00 00 00 00 00 00 00 00
@@ -1293,7 +1293,7 @@ struct dyesub_backend canonselphy_backend = {
00 00 ff 00 [pg1] [pg2] 00 00 00 00 00 02
00 00 00 00 [pg1] [pg2] 00 00 00 00 00 02 [idle, ready for header]
- 00 00 01 00 [pg1] [pg2] 00 00 00 00 00 02
+ 00 00 01 00 [pg1] [pg2] 00 00 00 00 00 02
00 01 01 00 [pg1] [pg2] 00 00 00 00 00 02 [ready for Y data]
00 03 01 00 [pg1] [pg2] 00 00 00 00 00 02 [transitions to this]
00 03 02 00 [pg1] [pg2] 00 00 00 00 00 02 [ready for M data]
@@ -1326,7 +1326,7 @@ struct dyesub_backend canonselphy_backend = {
Selphy CP-10:
Init func: 40 00 00 00 00 00 00 00 00 00 00 00
- Plane func: 40 01 00 [plane] [length, 32-bit LE] 00 00 00 00
+ Plane func: 40 01 00 [plane] [length, 32-bit LE] 00 00 00 00
plane codes are 0x00, 0x01, 0x02 for Y, M, and C, respectively.
@@ -1353,13 +1353,13 @@ struct dyesub_backend canonselphy_backend = {
***************************************************************************
Selphy CP-series (except for CP790 & CP-10):
-
+
This is known to apply to:
CP-100, CP-200, CP-300, CP-330, CP400, CP500, CP510, CP710,
CP720, CP730, CP740, CP750, CP760, CP770, CP780, CP800, CP900
Init func: 40 00 00 [pgcode] 00 00 00 00 00 00 00 00
- Plane func: 40 01 00 [plane] [length, 32-bit LE] 00 00 00 00
+ Plane func: 40 01 00 [plane] [length, 32-bit LE] 00 00 00 00
End func: 00 00 00 00 # NOTE: Present (and necessary) on CP900 only.
Error clear: 40 10 00 00 00 00 00 00 00 00 00 00
diff --git a/src/cups/backend_canonselphyneo.c b/src/cups/backend_canonselphyneo.c
index e72b9db..85f51b2 100644
--- a/src/cups/backend_canonselphyneo.c
+++ b/src/cups/backend_canonselphyneo.c
@@ -154,7 +154,7 @@ static void *selphyneo_init(void)
extern struct dyesub_backend selphyneo_backend;
-static void selphyneo_attach(void *vctx, struct libusb_device_handle *dev,
+static void selphyneo_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct selphyneo_ctx *ctx = vctx;
@@ -197,7 +197,7 @@ static int selphyneo_read_parse(void *vctx, int data_fd)
if (i != sizeof(hdr)) {
if (i == 0)
return CUPS_BACKEND_CANCEL;
- ERROR("Read failed (%d/%d)\n",
+ ERROR("Read failed (%d/%d)\n",
i, (int)sizeof(hdr));
perror("ERROR: Read failed");
return CUPS_BACKEND_FAILED;
@@ -215,19 +215,19 @@ static int selphyneo_read_parse(void *vctx, int data_fd)
hdr.data[10], le32_to_cpu(hdr.cols), le32_to_cpu(hdr.rows));
return CUPS_BACKEND_CANCEL;
}
-
+
/* Allocate a buffer */
ctx->datalen = 0;
ctx->databuf = malloc(remain + sizeof(hdr));
if (!ctx->databuf) {
ERROR("Memory allocation failure!\n");
return CUPS_BACKEND_FAILED;
- }
+ }
/* Store the read-in header */
memcpy(ctx->databuf, &hdr, sizeof(hdr));
ctx->datalen += sizeof(hdr);
-
+
/* Read in data */
while (remain > 0) {
i = read(data_fd, ctx->databuf + ctx->datalen, remain);
@@ -243,7 +243,7 @@ static int selphyneo_read_parse(void *vctx, int data_fd)
static int selphyneo_main_loop(void *vctx, int copies) {
struct selphyneo_ctx *ctx = vctx;
struct selphyneo_readback rdback;
-
+
int ret, num;
/* Read in the printer status to clear last state */
@@ -261,13 +261,13 @@ static int selphyneo_main_loop(void *vctx, int copies) {
ATTR("marker-types=ribbonWax\n");
-top:
+top:
INFO("Waiting for printer idle\n");
do {
ret = read_data(ctx->dev, ctx->endp_up,
(uint8_t*) &rdback, sizeof(rdback), &num);
-
+
if (ret < 0)
return CUPS_BACKEND_FAILED;
@@ -294,7 +294,7 @@ top:
ATTR("marker-levels=%d\n", -3); /* ie Unknown but OK */
- INFO("Sending spool data\n");
+ INFO("Sending spool data\n");
/* Send the data over in 256K chunks */
{
int chunk = 256*1024;
@@ -318,7 +318,7 @@ top:
do {
ret = read_data(ctx->dev, ctx->endp_up,
(uint8_t*) &rdback, sizeof(rdback), &num);
-
+
if (ret < 0)
return CUPS_BACKEND_FAILED;
@@ -374,7 +374,7 @@ static int selphyneo_cmdline_arg(void *vctx, int argc, char **argv)
GETOPT_PROCESS_GLOBAL
case 'R':
selphyneo_send_reset(ctx);
- break;
+ break;
}
if (j) return j;
@@ -443,7 +443,7 @@ struct dyesub_backend canonselphyneo_backend = {
L == 5087264 == 1695744 * 3 + 32 (1472*1152)
C == 2180384 == 726784 * 3 + 32 (1088*668)
- It is worth mentioning that the Y'CbCr image data is surmised to use the
+ It is worth mentioning that the Y'CbCr image data is surmised to use the
JPEG coefficients, although we realistically have no way of confirming this.
Other questions:
@@ -474,7 +474,7 @@ struct dyesub_backend canonselphyneo_backend = {
ZZ == Media?
- 01
+ 01
10
11
^-- Ribbon
diff --git a/src/cups/backend_citizencw01.c b/src/cups/backend_citizencw01.c
index 0987916..46cb8ee 100644
--- a/src/cups/backend_citizencw01.c
+++ b/src/cups/backend_citizencw01.c
@@ -310,7 +310,7 @@ static void cw01_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
-
+
ctx->type = lookup_printer_type(&cw01_backend,
desc.idVendor, desc.idProduct);
}
@@ -339,7 +339,7 @@ static int cw01_read_parse(void *vctx, int data_fd) {
}
i = read(data_fd, (uint8_t*) &ctx->hdr, sizeof(struct cw01_spool_hdr));
-
+
if (i < 0)
return i;
if (i == 0)
@@ -347,7 +347,7 @@ static int cw01_read_parse(void *vctx, int data_fd) {
if (i < (int)sizeof(struct cw01_spool_hdr))
return CUPS_BACKEND_CANCEL;
-
+
if (ctx->hdr.type > 0x06 || ctx->hdr.res > 0x01) {
ERROR("Unrecognized header data format!\n");
return CUPS_BACKEND_CANCEL;
@@ -409,7 +409,7 @@ top:
if (!resp)
return CUPS_BACKEND_FAILED;
cw01_cleanup_string((char*)resp, len);
-
+
/* Check to see if we have sufficient buffers */
// XXX audit these rules...?
if (!strcmp("FBP00", (char*)resp) ||
@@ -620,7 +620,7 @@ static int cw01_get_info(struct cw01_ctx *ctx)
cw01_cleanup_string((char*)resp, len);
- INFO("Media Lot Code: '%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x'\n",
+ INFO("Media Lot Code: '%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x'\n",
*(resp+2), *(resp+3), *(resp+4), *(resp+5), *(resp+6), *(resp+7),
*(resp+8), *(resp+9), *(resp+10), *(resp+11), *(resp+12), *(resp+13));
@@ -874,7 +874,7 @@ struct dyesub_backend cw01_backend = {
}
};
-/*
+/*
Basic spool file format:
@@ -888,7 +888,7 @@ TT RR NN 00 XX XX XX XX 00 00 00 00 <- FILE header.
Followed by three planes, each with this header:
-28 00 00 00 00 08 00 00 RR RR 00 00 01 00 08 00
+28 00 00 00 00 08 00 00 RR RR 00 00 01 00 08 00
00 00 00 00 00 00 00 00 5a 33 00 00 YY YY 00 00
00 01 00 00 00 00 00 00
@@ -897,7 +897,7 @@ Followed by three planes, each with this header:
Followed by 1024 bytes of color tables:
- ff ff ff 00 ... 00 00 00 00
+ ff ff ff 00 ... 00 00 00 00
1024+40 = 1064 bytes of header per plane.
diff --git a/src/cups/backend_common.c b/src/cups/backend_common.c
index 959eee4..d88a7d8 100644
--- a/src/cups/backend_common.c
+++ b/src/cups/backend_common.c
@@ -226,7 +226,7 @@ done:
return ret;
}
-int send_data(struct libusb_device_handle *dev, uint8_t endp,
+int send_data(struct libusb_device_handle *dev, uint8_t endp,
uint8_t *buf, int len)
{
int num = 0;
@@ -312,7 +312,7 @@ static char *url_encode(char *str) {
}
while (*pstr) {
- if (isalnum(*pstr) || *pstr == '-' || *pstr == '_' || *pstr == '.' || *pstr == '~')
+ if (isalnum(*pstr) || *pstr == '-' || *pstr == '_' || *pstr == '.' || *pstr == '~')
*pbuf++ = *pstr;
else if (*pstr == ' ')
*pbuf++ = '+';
@@ -404,7 +404,7 @@ static int print_scan_output(struct libusb_device *device,
break;
}
- /* Query IEEE1284 info only if it's a PRINTER class */
+ /* Query IEEE1284 info only if it's a PRINTER class */
if (desc->bDeviceClass == LIBUSB_CLASS_PRINTER ||
(desc->bDeviceClass == LIBUSB_CLASS_PER_INTERFACE &&
config->interface[iface].altsetting[altset].bInterfaceClass == LIBUSB_CLASS_PRINTER)) {
@@ -513,7 +513,7 @@ static int print_scan_output(struct libusb_device *device,
strncpy(buf + k, product, sizeof(buf)-k);
fprintf(stdout, "direct %s://%s?serial=%s&backend=%s \"%s\" \"%s\" \"%s\" \"\"\n",
- prefix, buf, serial, backend->uri_prefix,
+ prefix, buf, serial, backend->uri_prefix,
descr, descr,
ieee_id? ieee_id : "");
}
@@ -571,7 +571,7 @@ extern struct dyesub_backend cw01_backend;
static struct dyesub_backend *backends[] = {
&canonselphy_backend,
- &canonselphyneo_backend,
+ &canonselphyneo_backend,
&kodak6800_backend,
&kodak605_backend,
&kodak1400_backend,
@@ -582,7 +582,7 @@ static struct dyesub_backend *backends[] = {
&updr150_backend,
&mitsu70x_backend,
&mitsu9550_backend,
- &mitsup95d_backend,
+ &mitsup95d_backend,
&dnpds40_backend,
&cw01_backend,
NULL,
@@ -942,7 +942,7 @@ int main (int argc, char **argv)
endp_down = config->interface[iface].altsetting[altset].endpoint[i].bEndpointAddress;
}
if (endp_up && endp_down)
- break;
+ break;
}
if (config)
diff --git a/src/cups/backend_dnpds40.c b/src/cups/backend_dnpds40.c
index 68f2293..43fac69 100644
--- a/src/cups/backend_dnpds40.c
+++ b/src/cups/backend_dnpds40.c
@@ -33,7 +33,7 @@
//#define DNP_ONLY
-/* Enables caching of last print type to speed up
+/* Enables caching of last print type to speed up
job pipelining. Without this we always have to
assume the worst */
//#define STATE_DIR "/tmp"
@@ -88,7 +88,7 @@ struct dnpds40_ctx {
uint32_t last_multicut;
int last_matte;
- int fullcut;
+ int fullcut;
int matte;
int cutter;
int can_rewind;
@@ -105,7 +105,7 @@ struct dnpds40_ctx {
int supports_3x5x2;
int supports_matte;
int supports_finematte;
- int supports_luster;
+ int supports_luster;
int supports_advmatte;
int supports_fullcut;
int supports_rewind;
@@ -419,7 +419,7 @@ static int dnpds40_do_cmd(struct dnpds40_ctx *ctx,
(uint8_t*)cmd, sizeof(*cmd))))
return ret;
- if (data && len)
+ if (data && len)
if ((ret = send_data(ctx->dev, ctx->endp_down,
data, len)))
return ret;
@@ -881,10 +881,10 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
}
/* There's no way to figure out the total job length in advance, we
- have to parse the stream until we get to the image plane data,
+ have to parse the stream until we get to the image plane data,
and even then the stream can contain arbitrary commands later.
- So instead, we allocate a buffer of the maximum possible length,
+ So instead, we allocate a buffer of the maximum possible length,
then parse the incoming stream until we hit the START command at
the end of the job.
*/
@@ -910,7 +910,7 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
while (run) {
int remain, i, j;
/* Read in command header */
- i = read(data_fd, ctx->databuf + ctx->datalen,
+ i = read(data_fd, ctx->databuf + ctx->datalen,
sizeof(struct dnpds40_cmd));
if (i < 0)
return i;
@@ -932,7 +932,7 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
/* Read in data chunk as quickly as possible */
remain = j;
while (remain > 0) {
- i = read(data_fd, ctx->databuf + ctx->datalen + sizeof(struct dnpds40_cmd),
+ i = read(data_fd, ctx->databuf + ctx->datalen + sizeof(struct dnpds40_cmd),
remain);
if (i < 0) {
ERROR("Data Read Error: %d (%d/%d @%d)\n", i, remain, j, ctx->datalen);
@@ -948,7 +948,7 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
/* Check for some offsets */
if(!memcmp("CNTRL QTY", ctx->databuf + ctx->datalen+2, 9)) {
/* Ignore this. We will insert our own later on */
- continue;
+ continue;
}
if(!memcmp("CNTRL CUTTER", ctx->databuf + ctx->datalen+2, 12)) {
memcpy(buf, ctx->databuf + ctx->datalen + 32, 8);
@@ -1125,7 +1125,7 @@ static int dnpds40_read_parse(void *vctx, int data_fd) {
case P_DNP_DS80D:
if (ctx->matte) {
int mcut = ctx->multicut;
-
+
if (mcut > MULTICUT_S_BACK)
mcut -= MULTICUT_S_BACK;
else if (mcut > MULTICUT_S_FRONT)
@@ -1945,7 +1945,7 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
dnpds40_cleanup_string((char*)resp, len);
i = atoi((char*)resp);
-
+
INFO("Standby Transition time: %d minutes\n", i);
free(resp);
@@ -1960,7 +1960,7 @@ static int dnpds40_get_info(struct dnpds40_ctx *ctx)
dnpds40_cleanup_string((char*)resp, len);
i = atoi((char*)resp);
INFO("Media End kept across power cycles: %s\n",
- i ? "Yes" : "No");
+ i ? "Yes" : "No");
free(resp);
}
diff --git a/src/cups/backend_kodak1400.c b/src/cups/backend_kodak1400.c
index 6851385..e87307f 100644
--- a/src/cups/backend_kodak1400.c
+++ b/src/cups/backend_kodak1400.c
@@ -100,7 +100,7 @@ static int send_plane(struct kodak1400_ctx *ctx,
cmdbuf[1] = 0x74;
cmdbuf[2] = 0x00;
cmdbuf[3] = 0x50;
-
+
if ((ret = send_data(ctx->dev, ctx->endp_down,
cmdbuf, CMDBUF_LEN)))
return ret;
@@ -127,7 +127,7 @@ static int send_plane(struct kodak1400_ctx *ctx,
int i;
for (i = 0 ; i < ctx->hdr.rows ; i++) {
if ((ret = send_data(ctx->dev, ctx->endp_down,
- planedata + i * ctx->hdr.columns,
+ planedata + i * ctx->hdr.columns,
ctx->hdr.columns)))
return ret;
}
@@ -138,7 +138,7 @@ static int send_plane(struct kodak1400_ctx *ctx,
cmdbuf[1] = 0x74;
cmdbuf[2] = 0x01;
cmdbuf[3] = 0x50;
-
+
if ((ret = send_data(ctx->dev, ctx->endp_down,
cmdbuf, CMDBUF_LEN)))
return ret;
@@ -194,10 +194,10 @@ static int kodak1400_set_tonecurve(struct kodak1400_ctx *ctx, char *fname)
ret = -3;
goto done;
}
-
+
ret = read_data(dev, endp_up,
respbuf, sizeof(respbuf), &num);
-
+
if (ret < 0)
goto done;
if (num != 8) {
@@ -231,7 +231,7 @@ static int kodak1400_set_tonecurve(struct kodak1400_ctx *ctx, char *fname)
/* get the response */
ret = read_data(dev, endp_up,
respbuf, sizeof(respbuf), &num);
-
+
if (ret < 0)
goto done;
if (num != 8) {
@@ -288,11 +288,11 @@ static void *kodak1400_init(void)
return NULL;
}
memset(ctx, 0, sizeof(struct kodak1400_ctx));
-
+
return ctx;
}
-static void kodak1400_attach(void *vctx, struct libusb_device_handle *dev,
+static void kodak1400_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct kodak1400_ctx *ctx = vctx;
@@ -352,7 +352,7 @@ static int kodak1400_read_parse(void *vctx, int data_fd) {
if (ret < 0 || ret != sizeof(ctx->hdr)) {
if (ret == 0)
return CUPS_BACKEND_CANCEL;
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, 0, (int)sizeof(ctx->hdr));
perror("ERROR: Read failed");
return CUPS_BACKEND_CANCEL;
@@ -367,7 +367,7 @@ static int kodak1400_read_parse(void *vctx, int data_fd) {
ctx->hdr.planesize = le32_to_cpu(ctx->hdr.planesize);
ctx->hdr.rows = le16_to_cpu(ctx->hdr.rows);
ctx->hdr.columns = le16_to_cpu(ctx->hdr.columns);
-
+
/* Set up plane data */
ctx->plane_r = malloc(ctx->hdr.planesize);
ctx->plane_g = malloc(ctx->hdr.planesize);
@@ -392,7 +392,7 @@ static int kodak1400_read_parse(void *vctx, int data_fd) {
do {
ret = read(data_fd, ptr, remain);
if (ret < 0) {
- ERROR("Read failed (%d/%d/%u) (%d/%u @ %d)\n",
+ ERROR("Read failed (%d/%d/%u) (%d/%u @ %d)\n",
ret, remain, ctx->hdr.columns,
i, ctx->hdr.rows, j);
perror("ERROR: Read failed");
@@ -437,7 +437,7 @@ top:
/* Read in the printer status */
ret = read_data(ctx->dev, ctx->endp_up,
rdbuf, READBACK_LEN, &num);
-
+
if (ret < 0)
return CUPS_BACKEND_FAILED;
if (memcmp(rdbuf, rdbuf2, READBACK_LEN)) {
@@ -454,7 +454,7 @@ top:
return CUPS_BACKEND_STOP; // HOLD/CANCEL/FAILED? XXXX parse error!
}
- fflush(stderr);
+ fflush(stderr);
switch (state) {
case S_IDLE:
@@ -645,14 +645,14 @@ struct dyesub_backend kodak1400_backend = {
XX 01 to laminate, 00 to not.
01 Unknown, always set to 01
XX Lamination Strength:
-
+
3c Glossy
28 Matte +5
2e Matte +4
34 Matte +3
3a Matte +2
40 Matte +1
- 46 Matte
+ 46 Matte
52 Matte -1
5e Matte -2
6a Matte -3
@@ -669,7 +669,7 @@ struct dyesub_backend kodak1400_backend = {
All readback values are 8 bytes long.
Multi-byte numbers are sent BIG ENDIAN.
-
+
Image data is sent via planes, one scanline per URB.
<-- 1b 72 # Status query
@@ -677,7 +677,7 @@ struct dyesub_backend kodak1400_backend = {
<-- 1b 00 # Reset/attention?
<-- 1b 5a 53 0a 00 0b c2 # Setup (ie hdr.columns and hdr.rows)
- <-- 1b 59 01 # ?? hdr.matte ?
+ <-- 1b 59 01 # ?? hdr.matte ?
<-- 1b 60 XX # hdr.lamination
<-- 1b 62 XX # hdr.lam_strength
<-- 1b 61 01 # ?? hdr.unk1 ?
@@ -688,7 +688,7 @@ struct dyesub_backend kodak1400_backend = {
<-- row last
<-- 1b 74 01 50 # ??
-
+
<-- 1b 72 # Status query
--> e4 72 00 00 00 00 50 59 # Printing plane 1
[ repeats until...]
@@ -760,21 +760,21 @@ struct dyesub_backend kodak1400_backend = {
Calibration data:
<-- 1b a2 # ?? Reset cal tables?
- --> 00 01 00 00 00 00 00 00
+ --> 00 01 00 00 00 00 00 00
<-- 1b a0 02 03 06 10 # 06 10 == 1552 bytes aka the CAL data.
<-- cal data
- [[ Data is organized as three blocks of 512 bytes followed by
- 16 NULL bytes.
+ [[ Data is organized as three blocks of 512 bytes followed by
+ 16 NULL bytes.
- Each block appears to be 256 entries of 16-bit LE data,
+ Each block appears to be 256 entries of 16-bit LE data,
so each input value is translated into a 16-bit number in the printer.
Assuming blocks are ordered BGR.
- ]]
+ ]]
- --> 00 00 00 00 00 00 00 00
+ --> 00 00 00 00 00 00 00 00
*/
diff --git a/src/cups/backend_kodak605.c b/src/cups/backend_kodak605.c
index ac4367a..b301739 100644
--- a/src/cups/backend_kodak605.c
+++ b/src/cups/backend_kodak605.c
@@ -291,7 +291,7 @@ static int kodak605_read_parse(void *vctx, int data_fd) {
if (ret < 0 || ret != sizeof(ctx->hdr)) {
if (ret == 0)
return CUPS_BACKEND_CANCEL;
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, 0, (int)sizeof(ctx->hdr));
perror("ERROR: Read failed");
return CUPS_BACKEND_CANCEL;
@@ -683,7 +683,7 @@ struct dyesub_backend kodak605_backend = {
.teardown = kodak605_teardown,
.read_parse = kodak605_read_parse,
.main_loop = kodak605_main_loop,
- .devices = {
+ .devices = {
{ USB_VID_KODAK, USB_PID_KODAK_605, P_KODAK_605, "Kodak"},
{ 0, 0, 0, ""}
}
diff --git a/src/cups/backend_kodak6800.c b/src/cups/backend_kodak6800.c
index 9df4200..f535797 100644
--- a/src/cups/backend_kodak6800.c
+++ b/src/cups/backend_kodak6800.c
@@ -930,7 +930,7 @@ static int kodak6850_send_unk(struct kodak6800_ctx *ctx)
return CUPS_BACKEND_FAILED;
}
-#if 0
+#if 0
// XXX No particular idea what this actually is
if (rdbuf[1] != 0x01 && rdbuf[1] != 0x00) {
ERROR("Unexpected status code (0x%02x)!\n", rdbuf[1]);
@@ -947,7 +947,7 @@ static void kodak6800_cmdline(void)
DEBUG("\t\t[ -m ] # Query media\n");
DEBUG("\t\t[ -s ] # Query status\n");
DEBUG("\t\t[ -R ] # Reset printer\n");
- DEBUG("\t\t[ -X jobid ] # Cancel Job\n");
+ DEBUG("\t\t[ -X jobid ] # Cancel Job\n");
}
static int kodak6800_cmdline_arg(void *vctx, int argc, char **argv)
@@ -1009,7 +1009,7 @@ static void *kodak6800_init(void)
return ctx;
}
-static void kodak6800_attach(void *vctx, struct libusb_device_handle *dev,
+static void kodak6800_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct kodak6800_ctx *ctx = vctx;
@@ -1095,7 +1095,7 @@ static int kodak6800_read_parse(void *vctx, int data_fd) {
do {
ret = read(data_fd, ptr, remain);
if (ret < 0) {
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, remain, ctx->datalen);
perror("ERROR: Read failed");
return CUPS_BACKEND_CANCEL;
diff --git a/src/cups/backend_mitsu70x.c b/src/cups/backend_mitsu70x.c
index 39a94e4..60d99dd 100644
--- a/src/cups/backend_mitsu70x.c
+++ b/src/cups/backend_mitsu70x.c
@@ -43,7 +43,7 @@
#if defined(USE_DLOPEN)
#define WITH_DYNAMIC
#include <dlfcn.h>
-#define DL_INIT() do {} while(0)
+#define DL_INIT() do {} while(0)
#define DL_OPEN(__x) dlopen(__x, RTLD_NOW)
#define DL_SYM(__x, __y) dlsym(__x, __y)
#define DL_CLOSE(__x) dlclose(__x)
@@ -175,7 +175,7 @@ struct mitsu70x_ctx {
int sharpen; /* ie mhdr.sharpen - 1 */
uint8_t rew[2]; /* 1 for rewind ok (default!) */
-
+
struct BandImage output;
};
@@ -350,7 +350,7 @@ struct mitsu70x_memorystatus_resp {
uint8_t rsvd;
} __attribute__((packed));
-// XXX also seen commands 0x67, 0x72, 0x54, 0x6e
+// XXX also seen commands 0x67, 0x72, 0x54, 0x6e
struct mitsu70x_hdr {
uint8_t hdr[4]; /* 1b 5a 54 XX */ // XXX also, seen 1b 5a 43!
@@ -411,14 +411,14 @@ static char *mitsu70x_jobstatuses(uint8_t *sts)
return "Data transfer";
case JOB_STATUS0_QUEUE:
return "Queued for printing";
- case JOB_STATUS0_PRINT:
+ case JOB_STATUS0_PRINT:
switch(sts[1]) {
case JOB_STATUS1_PRINT_MEDIALOAD:
return "Media loading";
case JOB_STATUS1_PRINT_PRE_Y:
return "Waiting to print yellow plane";
case JOB_STATUS1_PRINT_Y:
- return "Printing yellow plane";
+ return "Printing yellow plane";
case JOB_STATUS1_PRINT_PRE_M:
return "Waiting to print magenta plane";
case JOB_STATUS1_PRINT_M:
@@ -699,7 +699,7 @@ static void mitsu70x_attach(void *vctx, struct libusb_device_handle *dev,
ctx->dl_handle = NULL;
return;
}
-
+
ctx->Get3DColorTable = DL_SYM(ctx->dl_handle, "CColorConv3D_Get3DColorTable");
ctx->Load3DColorTable = DL_SYM(ctx->dl_handle, "CColorConv3D_Load3DColorTable");
ctx->Destroy3DColorTable = DL_SYM(ctx->dl_handle, "CColorConv3D_Destroy3DColorTable");
@@ -1466,7 +1466,7 @@ top:
mitsu70x_media_types(resp.lower.media_brand, resp.lower.media_type));
ATTR("marker-types=ribbonWax\n");
}
-
+
/* FW sanity checking */
if (ctx->type == P_KODAK_305) {
if (be16_to_cpu(resp.vers[0].checksum) != EK305_0104_M_CSUM)
@@ -1503,7 +1503,7 @@ skip_status:
{
int i;
struct mitsu70x_jobs jobs;
-
+
ret = mitsu70x_get_jobs(ctx, &jobs);
if (ret)
return CUPS_BACKEND_FAILED;
@@ -1659,7 +1659,7 @@ skip_status:
}
/* Update cache for the next round */
- memcpy(last_status, jobstatus.job_status, 4);
+ memcpy(last_status, jobstatus.job_status, 4);
} while(1);
/* Clean up */
@@ -1707,7 +1707,7 @@ static void mitsu70x_dump_printerstatus(struct mitsu70x_printerstatus_resp *resp
type, buf, be16_to_cpu(resp->vers[i].checksum));
}
INFO("Standby Timeout: %d minutes\n", resp->sleeptime);
- INFO("iSerial Reporting: %s\n", resp->iserial ? "No" : "Yes" );
+ INFO("iSerial Reporting: %s\n", resp->iserial ? "No" : "Yes" );
INFO("Lower Mechanical Status: %s\n",
mitsu70x_mechastatus(resp->lower.mecha_status));
@@ -1759,7 +1759,7 @@ static int mitsu70x_query_status(struct mitsu70x_ctx *ctx)
struct mitsu70x_printerstatus_resp resp;
#if 0
struct mitsu70x_jobs jobs;
-#endif
+#endif
struct mitsu70x_jobstatus jobstatus;
int ret;
diff --git a/src/cups/backend_mitsu9550.c b/src/cups/backend_mitsu9550.c
index 907c773..71b38de 100644
--- a/src/cups/backend_mitsu9550.c
+++ b/src/cups/backend_mitsu9550.c
@@ -526,7 +526,7 @@ static char *mitsu9550_media_types(uint8_t type, uint8_t is_s)
}
return NULL;
}
-
+
switch (type & 0xf) { /* values can be 0x0? or 0x4? */
case 0x01:
return "CK9035 (3.5x5)";
@@ -556,7 +556,7 @@ static int validate_media(int type, int media, int cols, int rows)
return 1;
break;
case 0x02: /* 4x6 */
- case 0x03: /* 4x6 postcard */
+ case 0x03: /* 4x6 postcard */
if (cols != 2152)
return 1;
if (rows != 1416 && rows != 1184 && rows != 1240)
@@ -707,7 +707,7 @@ static int validate_media(int type, int media, int cols, int rows)
case P_MITSU_9800S:
switch(media & 0xf) {
case 0x02: /* 4x6 */
- case 0x03: /* 4x6 postcard */
+ case 0x03: /* 4x6 postcard */
if (cols != 1868 && rows != 1228)
return 1;
break;
@@ -837,20 +837,20 @@ top:
if (ctx->hdr4_present)
if ((ret = send_data(ctx->dev, ctx->endp_down,
(uint8_t*) &ctx->hdr4, sizeof(struct mitsu9550_hdr4))))
- return CUPS_BACKEND_FAILED;
-
+ return CUPS_BACKEND_FAILED;
+
if (ctx->is_s) {
/* Send "start data" command */
cmd.cmd[0] = 0x1b;
cmd.cmd[1] = 0x5a;
cmd.cmd[2] = 0x43;
cmd.cmd[3] = 0x00;
-
+
if ((ret = send_data(ctx->dev, ctx->endp_down,
(uint8_t*) &cmd, sizeof(cmd))))
return CUPS_BACKEND_FAILED;
}
-
+
/* Send over plane data */
while(1) {
struct mitsu9550_plane *plane = (struct mitsu9550_plane *)ptr;
@@ -878,7 +878,7 @@ top:
// struct mitsu9550_status2 *sts2 = (struct mitsu9550_status2*) rdbuf;
struct mitsu9550_media *media = (struct mitsu9550_media *) rdbuf;
uint16_t donor, remain;
-
+
ret = mitsu9550_get_status(ctx, rdbuf, 0, 0, 1); // media
if (ret < 0)
return CUPS_BACKEND_FAILED;
@@ -903,11 +903,11 @@ top:
ret = mitsu9550_get_status(ctx, rdbuf, 0, 1, 0); // status2
if (ret < 0)
return CUPS_BACKEND_FAILED;
-
+
ret = mitsu9550_get_status(ctx, rdbuf, 1, 0, 0); // status
if (ret < 0)
return CUPS_BACKEND_FAILED;
-
+
/* Make sure we're ready to proceed */
if (sts->sts5 != 0) {
ERROR("Unexpected response (sts5 %02x)\n", sts->sts5);
@@ -1094,7 +1094,7 @@ static int mitsu9550_query_status2(struct mitsu9550_ctx *ctx)
{
struct mitsu9550_status2 resp;
int ret;
-
+
ret = mitsu9550_get_status(ctx, (uint8_t*) &resp, 0, 1, 0);
if (!ret)
@@ -1121,13 +1121,13 @@ static int mitsu9550_query_serno(struct libusb_device_handle *dev, uint8_t endp_
ret = read_data(dev, endp_up,
rdbuf, READBACK_LEN, &num);
-
+
if (ret < 0)
return CUPS_BACKEND_FAILED;
if ((unsigned int)num < sizeof(cmd) + 1) /* Short read */
return CUPS_BACKEND_FAILED;
-
+
if (rdbuf[0] != 0xe4 ||
rdbuf[1] != 0x72 ||
rdbuf[2] != 0x6e ||
@@ -1140,7 +1140,7 @@ static int mitsu9550_query_serno(struct libusb_device_handle *dev, uint8_t endp_
WARNING("Short serno read! (%d vs %u)\r\n",
num, rdbuf[4]);
- /* model and serial number are encoded as 16-bit unicode,
+ /* model and serial number are encoded as 16-bit unicode,
little endian, separated by spaces. */
i = num;
ptr = rdbuf + 5;
@@ -1152,7 +1152,7 @@ static int mitsu9550_query_serno(struct libusb_device_handle *dev, uint8_t endp_
i -= 2;
}
*buf = 0; /* Null-terminate the returned string */
-
+
return ret;
}
@@ -1233,7 +1233,7 @@ struct dyesub_backend mitsu9550_backend = {
1b 57 20 2e 00 QQ QQ 00 00 00 00 00 00 00 XX XX :: XX XX == columns
YY YY 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :: YY YY == rows
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :: QQ == 0x0a90 on 9810, 0x0a10 on all others.
- 00 00
+ 00 00
~~~ Header 2
@@ -1246,15 +1246,15 @@ struct dyesub_backend mitsu9550_backend = {
1b 57 22 2e 00 40 00 00 00 00 00 XX 00 00 00 00 :: XX = 00 normal, 01 FineDeep
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00
~~~ Header 4 (all but 9550-S and 9800-S, involves error policy?)
1b 57 26 2e 00 QQ 00 00 00 00 00 SS RR 01 00 00 :: QQ = 0x70 on 9550/98x0, 0x60 on 9600 or 9800S
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :: RR = 0x01 on 9550/98x0, 0x00 on 9600
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :: SS = 0x01 on 9800S
- 00 00
+ 00 00
~~~~ Data follows:
@@ -1309,7 +1309,7 @@ struct dyesub_backend mitsu9550_backend = {
[[ Unknown ]]
-> 1b 4b 7f 00
- <- eb 4b 8f 00 02 00 5e [[ '02' seems to be a length ]]
+ <- eb 4b 8f 00 02 00 5e [[ '02' seems to be a length ]]
[[ Unknown ]]
@@ -1337,11 +1337,11 @@ struct dyesub_backend mitsu9550_backend = {
<- e4 4b 01 00 02 00 78
Status Query
-
+
-> 1b 56 30 00
-> 30 2e 00 00 00 00 MM 00 NN NN ZZ 00 00 00 00 00 :: MM, NN, ZZ
QQ RR SS 00 00 00 00 00 00 00 00 00 00 00 00 00 :: QQ, RR, SS
- 00 00 00 00 00 00 00 00 00 00 00 00 TT UU 00 00 :: TT, UU
+ 00 00 00 00 00 00 00 00 00 00 00 00 TT UU 00 00 :: TT, UU
Status Query B (not sure what to call this)
@@ -1414,7 +1414,7 @@ struct dyesub_backend mitsu9550_backend = {
[...]
00 3e 00 00 80 44 :: Idle.
- Also seen:
+ Also seen:
00 3e 00 00 96 4b :: Idle
00 be 00 00 96 4b :: Data submitted, pre "start"
@@ -1447,8 +1447,8 @@ struct dyesub_backend mitsu9550_backend = {
SS :: ?? 0x00 means "ready for another print" but 0x01 is "busy"
TT :: ?? seen values between 0x7c through 0x96)
UU :: ?? seen values between 0x43 and 0x4c -- temperature?
-
- ***
+
+ ***
Other printer commands seen:
diff --git a/src/cups/backend_mitsup95d.c b/src/cups/backend_mitsup95d.c
index 100462f..44fbe0e 100644
--- a/src/cups/backend_mitsup95d.c
+++ b/src/cups/backend_mitsup95d.c
@@ -59,7 +59,7 @@ struct mitsup95d_ctx {
int mem_clr_present;
uint8_t hdr[2]; // 1b 51
-
+
uint8_t hdr1[50]; // 1b 57 20 2e ...
uint8_t hdr2[50]; // 1b 57 21 2e ...
uint8_t hdr3[50]; // 1b 57 22 2e ...
@@ -531,7 +531,7 @@ struct dyesub_backend mitsup95d_backend = {
[[ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 ]] 00 00 00 02 00 00 00 00 00 00 00 00 00 00
00 XY
-
+
P93:
1b 57 21 2e 00 4a aa 00 00 TT 00 00 00 NN 00 MM
@@ -685,5 +685,3 @@ UNKNOWNS:
* What "custom gamma" table does to spool file?
*/
-
-
diff --git a/src/cups/backend_shinkos1245.c b/src/cups/backend_shinkos1245.c
index b92b275..871dc32 100644
--- a/src/cups/backend_shinkos1245.c
+++ b/src/cups/backend_shinkos1245.c
@@ -125,7 +125,7 @@ struct shinkos1245_cmd_print {
struct shinkos1245_cmd_getstatus {
struct shinkos1245_cmd_hdr hdr;
uint8_t cmd[1]; /* 0x03 */
- uint8_t pad[10];
+ uint8_t pad[10];
} __attribute__((packed));
struct shinkos1245_resp_status {
@@ -360,7 +360,7 @@ enum {
#define TONE_CURVE_SIZE 1536
#define TONE_CURVE_DATA_BLOCK_SIZE 64
-
+
/* Query Model information */
struct shinkos1245_cmd_getmodel {
struct shinkos1245_cmd_hdr hdr;
@@ -656,7 +656,7 @@ static int shinkos1245_set_matte(struct shinkos1245_ctx *ctx,
if (sts.code == CMD_CODE_BAD)
return 1;
- ERROR("Bad return code (%02x) on SET_MATTE command\n", sts.code);
+ ERROR("Bad return code (%02x) on SET_MATTE command\n", sts.code);
return -99;
}
@@ -1267,7 +1267,7 @@ static void *shinkos1245_init(void)
return ctx;
}
-static void shinkos1245_attach(void *vctx, struct libusb_device_handle *dev,
+static void shinkos1245_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct shinkos1245_ctx *ctx = vctx;
@@ -1280,9 +1280,9 @@ static void shinkos1245_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
-
+
ctx->type = lookup_printer_type(&shinkos1245_backend,
- desc.idVendor, desc.idProduct);
+ desc.idVendor, desc.idProduct);
/* Ensure jobid is sane */
ctx->jobid = jobid & 0x7f;
@@ -1361,7 +1361,7 @@ static int shinkos1245_read_parse(void *vctx, int data_fd) {
do {
ret = read(data_fd, ptr, remain);
if (ret < 0) {
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, remain, ctx->datalen);
perror("ERROR: Read failed");
return ret;
diff --git a/src/cups/backend_shinkos2145.c b/src/cups/backend_shinkos2145.c
index d56ca2f..c270d3c 100644
--- a/src/cups/backend_shinkos2145.c
+++ b/src/cups/backend_shinkos2145.c
@@ -254,7 +254,7 @@ static char *print_modes(uint8_t v) {
#define PRINT_METHOD_4x6_2UP 0x02
#define PRINT_METHOD_2x6_2UP 0x04
-static char *print_methods (uint8_t v) {
+static char *print_methods (uint8_t v) {
switch (v) {
case PRINT_METHOD_STD:
return "Standard";
@@ -320,7 +320,7 @@ static char *fwinfo_targets (uint8_t v) {
return "USB Boot ";
case FWINFO_TARGET_USB_APP:
return "USB App ";
- case FWINFO_TARGET_TABLES:
+ case FWINFO_TARGET_TABLES:
return "Tables ";
default:
return "Unknown ";
@@ -833,7 +833,7 @@ static int s2145_do_cmd(struct shinkos2145_ctx *ctx,
}
if (resp->result != RESULT_SUCCESS) {
- INFO("Printer Status: %02x (%s)\n", resp->status,
+ INFO("Printer Status: %02x (%s)\n", resp->status,
status_str(resp->status));
INFO(" Result: 0x%02x Error: 0x%02x (0x%02x/0x%02x = %s)\n",
resp->result, resp->error, resp->printer_major,
@@ -1086,7 +1086,7 @@ static int cancel_job(struct shinkos2145_ctx *ctx, char *str)
return 0;
}
-static int flash_led(struct shinkos2145_ctx *ctx)
+static int flash_led(struct shinkos2145_ctx *ctx)
{
struct s2145_cmd_hdr cmd;
struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
@@ -1150,7 +1150,7 @@ static int button_set(struct shinkos2145_ctx *ctx, int enable)
return 0;
}
-static int get_tonecurve(struct shinkos2145_ctx *ctx, int type, char *fname)
+static int get_tonecurve(struct shinkos2145_ctx *ctx, int type, char *fname)
{
struct s2145_readtone_cmd cmd;
struct s2145_readtone_resp *resp = (struct s2145_readtone_resp *) rdbuf;
@@ -1224,7 +1224,7 @@ done:
return ret;
}
-static int set_tonecurve(struct shinkos2145_ctx *ctx, int target, char *fname)
+static int set_tonecurve(struct shinkos2145_ctx *ctx, int target, char *fname)
{
struct s2145_update_cmd cmd;
struct s2145_status_hdr *resp = (struct s2145_status_hdr *) rdbuf;
@@ -1394,7 +1394,7 @@ static void *shinkos2145_init(void)
return ctx;
}
-static void shinkos2145_attach(void *vctx, struct libusb_device_handle *dev,
+static void shinkos2145_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct shinkos2145_ctx *ctx = vctx;
@@ -1407,9 +1407,9 @@ static void shinkos2145_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
-
+
ctx->type = lookup_printer_type(&shinkos2145_backend,
- desc.idVendor, desc.idProduct);
+ desc.idVendor, desc.idProduct);
/* Ensure jobid is sane */
ctx->jobid = (jobid & 0x7f);
@@ -1445,7 +1445,7 @@ static int shinkos2145_read_parse(void *vctx, int data_fd) {
if (ret < 0 || ret != sizeof(ctx->hdr)) {
if (ret == 0)
return CUPS_BACKEND_CANCEL;
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, 0, (int)sizeof(ctx->hdr));
perror("ERROR: Read failed");
return ret;
@@ -1482,7 +1482,7 @@ static int shinkos2145_read_parse(void *vctx, int data_fd) {
do {
ret = read(data_fd, ptr, remain);
if (ret < 0) {
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, remain, ctx->datalen);
perror("ERROR: Read failed");
return ret;
@@ -1495,7 +1495,7 @@ static int shinkos2145_read_parse(void *vctx, int data_fd) {
/* Make sure footer is sane too */
ret = read(data_fd, tmpbuf, 4);
if (ret != 4) {
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, 4, 4);
perror("ERROR: Read failed");
return ret;
@@ -1522,7 +1522,7 @@ static int shinkos2145_main_loop(void *vctx, int copies) {
struct s2145_cmd_hdr *cmd = (struct s2145_cmd_hdr *) cmdbuf;;
struct s2145_print_cmd *print = (struct s2145_print_cmd *) cmdbuf;
- struct s2145_status_resp *sts = (struct s2145_status_resp *) rdbuf;
+ struct s2145_status_resp *sts = (struct s2145_status_resp *) rdbuf;
struct s2145_mediainfo_resp *media = (struct s2145_mediainfo_resp *) rdbuf;
/* Send Media Query */
@@ -1704,9 +1704,9 @@ top:
printer_error:
ERROR("Printer reported error: %#x (%s) status: %#x (%s) -> %#x.%#x (%s)\n",
- sts->hdr.error,
+ sts->hdr.error,
error_str(sts->hdr.error),
- sts->hdr.status,
+ sts->hdr.status,
status_str(sts->hdr.status),
sts->hdr.printer_major, sts->hdr.printer_minor,
error_codes(sts->hdr.printer_major, sts->hdr.printer_minor));
@@ -1782,7 +1782,7 @@ struct dyesub_backend shinkos2145_backend = {
00 00 00 00 00 00 00 00 00 00 00 00 ce ff ff ff
00 00 00 00 ce ff ff ff QQ QQ 00 00 ce ff ff ff QQ == DPI, ie 300.
00 00 00 00 ce ff ff ff 00 00 00 00 00 00 00 00
- 00 00 00 00
+ 00 00 00 00
[[Packed RGB payload of WW*HH*3 bytes]]
diff --git a/src/cups/backend_shinkos6145.c b/src/cups/backend_shinkos6145.c
index e8d39b4..b9d782a 100644
--- a/src/cups/backend_shinkos6145.c
+++ b/src/cups/backend_shinkos6145.c
@@ -32,7 +32,7 @@
*
* You must still adhere to all other terms of the license to this program
* (ie GPLv2) and the license of the libS6145ImageProcess library.
- *
+ *
*/
#include <stdio.h>
@@ -55,7 +55,7 @@
#if defined(USE_DLOPEN)
#define WITH_DYNAMIC
#include <dlfcn.h>
-#define DL_INIT() do {} while(0)
+#define DL_INIT() do {} while(0)
#define DL_OPEN(__x) dlopen(__x, RTLD_NOW)
#define DL_SYM(__x, __y) dlsym(__x, __y)
#define DL_CLOSE(__x) dlclose(__x)
@@ -151,8 +151,8 @@ struct tankParamTable {
uint32_t fstOutConductivity;
uint32_t plusMaxEnergy;
uint32_t minusMaxEnergy;
- uint32_t plusMaxEnergyPreRead;
- uint32_t minusMaxEnergyPreRead;
+ uint32_t plusMaxEnergyPreRead;
+ uint32_t minusMaxEnergyPreRead;
uint32_t preReadLevelDiff;
uint32_t rsvd[14]; // null?
} __attribute__((packed));
@@ -277,7 +277,7 @@ struct shinkos6145_ctx {
uint8_t ribbon_type;
uint8_t input_ymc;
-
+
uint16_t last_donor;
uint16_t last_remain;
uint16_t last_ribbon;
@@ -336,7 +336,7 @@ static char *cmd_names(uint16_t v) {
case S6145_CMD_GETPARAM:
return "Get Parameter";
case S6145_CMD_GETSERIAL:
- return "Get Serial Number";
+ return "Get Serial Number";
case S6145_CMD_PRINTSTAT:
return "Get Print ID Status";
case S6145_CMD_EXTCOUNTER:
@@ -379,7 +379,7 @@ struct s6145_print_cmd {
uint8_t reserved[6];
uint8_t unk_1; /* Brava 21 sets this to 1 */
uint8_t method;
- uint8_t image_avg;
+ uint8_t image_avg;
} __attribute__((packed));
#define PRINT_MODE_NO_OC 0x01
@@ -407,7 +407,7 @@ static char *print_modes(uint8_t v) {
#define PRINT_METHOD_DOUBLE 0x08
#define PRINT_METHOD_NOTRIM 0x80
-static char *print_methods (uint8_t v) {
+static char *print_methods (uint8_t v) {
switch (v & 0xf) {
case PRINT_METHOD_STD:
return "Standard";
@@ -700,7 +700,7 @@ static char *error_codes(uint8_t major, uint8_t minor)
return "Paper Jam: Precut Print Position Off";
case 0x20:
return "Paper Jam: Precut Print Position On";
-
+
case 0x29:
return "Paper Jam: Printing Paper Top On";
case 0x2A:
@@ -1036,7 +1036,7 @@ static const char *print_ribbons (uint8_t v) {
return "6x8";
case RIBBON_6x9:
return "6x9";
- // XXX 89x??? rubbons.
+ // XXX 89x??? rubbons.
default:
return "Unknown";
}
@@ -1148,7 +1148,7 @@ static int s6145_do_cmd(struct shinkos6145_ctx *ctx,
}
if (resp->result != RESULT_SUCCESS) {
- INFO("Printer Status: %02x (%s)\n", resp->status,
+ INFO("Printer Status: %02x (%s)\n", resp->status,
status_str(resp->status));
INFO(" Result: 0x%02x Error: 0x%02x (0x%02x/0x%02x = %s)\n",
resp->result, resp->error, resp->printer_major,
@@ -1232,7 +1232,7 @@ static int get_status(struct shinkos6145_ctx *ctx)
INFO("Lifetime Distance: %08u inches\n", le32_to_cpu(resp2->lifetime_distance));
INFO("Maintenance Distance: %08u inches\n", le32_to_cpu(resp2->maint_distance));
INFO("Head Distance: %08u inches\n", le32_to_cpu(resp2->head_distance));
-
+
/* Query various params */
if(ctx->type == P_SHINKO_S6145D) {
if ((ret = get_param(ctx, PARAM_REGION_CODE, &val))) {
@@ -1280,7 +1280,7 @@ static int get_status(struct shinkos6145_ctx *ctx)
val = 240; // default?
INFO("Sleep delay: %u minutes\n", val);
-
+
return 0;
}
@@ -1310,7 +1310,7 @@ static int get_fwinfo(struct shinkos6145_ctx *ctx)
if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s6145_fwinfo_resp) - sizeof(struct s6145_status_hdr)))
continue;
-
+
INFO(" %s\t ver %02x.%02x\n", fwinfo_targets(i),
resp->major, resp->minor);
#if 0
@@ -1341,7 +1341,7 @@ static int get_errorlog(struct shinkos6145_ctx *ctx)
ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
return ret;
}
-
+
if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s6145_errorlog_resp) - sizeof(struct s6145_status_hdr)))
return -2;
@@ -1349,13 +1349,13 @@ static int get_errorlog(struct shinkos6145_ctx *ctx)
for (i = 0 ; i < resp->count ; i++) {
INFO(" %02d: @ %08u prints : 0x%02x/0x%02x (%s)\n", i,
le32_to_cpu(resp->items[i].print_counter),
- resp->items[i].major, resp->items[i].minor,
+ resp->items[i].major, resp->items[i].minor,
error_codes(resp->items[i].major, resp->items[i].minor));
}
return 0;
}
-static int get_mediainfo(struct shinkos6145_ctx *ctx)
+static int get_mediainfo(struct shinkos6145_ctx *ctx)
{
struct s6145_cmd_hdr cmd;
struct s6145_mediainfo_resp *resp = (struct s6145_mediainfo_resp *) rdbuf;
@@ -1413,7 +1413,7 @@ static int cancel_job(struct shinkos6145_ctx *ctx, char *str)
return 0;
}
-static int flash_led(struct shinkos6145_ctx *ctx)
+static int flash_led(struct shinkos6145_ctx *ctx)
{
struct s6145_cmd_hdr cmd;
struct s6145_status_hdr *resp = (struct s6145_status_hdr *) rdbuf;
@@ -1465,7 +1465,7 @@ static int get_param(struct shinkos6145_ctx *ctx, int target, uint32_t *param)
/* Set up command */
cmd.target = target;
-
+
cmd.hdr.cmd = cpu_to_le16(S6145_CMD_GETPARAM);
cmd.hdr.len = cpu_to_le16(sizeof(struct s6145_getparam_cmd)-sizeof(cmd.hdr));
@@ -1529,7 +1529,7 @@ static int shinkos6145_dump_corrdata(struct shinkos6145_ctx *ctx, char *fname)
free(ctx->corrdata);
ctx->corrdata = NULL;
ctx->corrdatalen = 0;
-
+
return ret;
}
@@ -1563,7 +1563,7 @@ static int shinkos6145_dump_eeprom(struct shinkos6145_ctx *ctx, char *fname)
return ret;
}
-static int get_tonecurve(struct shinkos6145_ctx *ctx, int type, char *fname)
+static int get_tonecurve(struct shinkos6145_ctx *ctx, int type, char *fname)
{
struct s6145_readtone_cmd cmd;
struct s6145_readtone_resp *resp = (struct s6145_readtone_resp *) rdbuf;
@@ -1637,7 +1637,7 @@ done:
return ret;
}
-static int set_tonecurve(struct shinkos6145_ctx *ctx, int target, char *fname)
+static int set_tonecurve(struct shinkos6145_ctx *ctx, int target, char *fname)
{
struct s6145_update_cmd cmd;
struct s6145_status_hdr *resp = (struct s6145_status_hdr *) rdbuf;
@@ -1738,7 +1738,7 @@ static int shinkos6145_get_imagecorr(struct shinkos6145_ctx *ctx)
while (total < ctx->corrdatalen) {
struct s6145_imagecorr_data data;
-
+
ret = read_data(ctx->dev, ctx->endp_up, (uint8_t *) &data,
sizeof(data),
&num);
@@ -1806,7 +1806,7 @@ static void shinkos6145_cmdline(void)
DEBUG("\t\t[ -m ] # Query media\n");
DEBUG("\t\t[ -q filename ] # Extract eeprom data\n");
DEBUG("\t\t[ -Q filename ] # Extract image correction params\n");
- DEBUG("\t\t[ -r ] # Reset user/NV tone curve\n");
+ DEBUG("\t\t[ -r ] # Reset user/NV tone curve\n");
DEBUG("\t\t[ -R ] # Reset printer to factory defaults\n");
DEBUG("\t\t[ -s ] # Query status\n");
DEBUG("\t\t[ -X jobid ] # Abort a printjob\n");
@@ -1905,11 +1905,11 @@ static void *shinkos6145_init(void)
memset(ctx, 0, sizeof(struct shinkos6145_ctx));
DL_INIT();
-
+
return ctx;
}
-static void shinkos6145_attach(void *vctx, struct libusb_device_handle *dev,
+static void shinkos6145_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct shinkos6145_ctx *ctx = vctx;
@@ -1922,12 +1922,12 @@ static void shinkos6145_attach(void *vctx, struct libusb_device_handle *dev,
device = libusb_get_device(dev);
libusb_get_device_descriptor(device, &desc);
-
+
ctx->type = lookup_printer_type(&shinkos6145_backend,
- desc.idVendor, desc.idProduct);
+ desc.idVendor, desc.idProduct);
/* Attempt to open the library */
-#if defined(WITH_DYNAMIC)
+#if defined(WITH_DYNAMIC)
INFO("Attempting to load image processing library\n");
ctx->dl_handle = DL_OPEN(LIB_NAME); /* Try the Sinfonia one first */
if (!ctx->dl_handle)
@@ -1972,7 +1972,7 @@ static void shinkos6145_teardown(void *vctx) {
DL_CLOSE(ctx->dl_handle);
DL_EXIT();
-
+
free(ctx);
}
@@ -2005,7 +2005,7 @@ static void lib6145_process_image(uint8_t *src, uint16_t *dest,
pad_r = pad_l + le16_to_cpu(corrdata->width);
out = 0;
in = 0;
-
+
/* Convert YMC 8-bit to 16-bit, and pad appropriately to full stripe */
for (row = 0 ; row < le16_to_cpu(corrdata->height) ; row++) {
for (col = 0 ; col < row_lim; col++) {
@@ -2045,7 +2045,7 @@ static void lib6145_process_image(uint8_t *src, uint16_t *dest,
}
dest[out++] = val;
}
- }
+ }
/* Generate lamination plane, if desired */
if (oc_mode > PRINT_MODE_NO_OC) {
@@ -2100,7 +2100,7 @@ static int shinkos6145_read_parse(void *vctx, int data_fd) {
/* Extended spool format to re-purpose an unused header field.
When bit 0 is set, this tells the backend that the data is
- already in planar YMC format (vs packed RGB) so we don't need
+ already in planar YMC format (vs packed RGB) so we don't need
to do the conversion ourselves. Saves some processing overhead */
ctx->input_ymc = le32_to_cpu(ctx->hdr.ext_flags) & 0x01;
@@ -2108,7 +2108,7 @@ static int shinkos6145_read_parse(void *vctx, int data_fd) {
free(ctx->databuf);
ctx->databuf = NULL;
}
-
+
ctx->datalen = le32_to_cpu(ctx->hdr.rows) * le32_to_cpu(ctx->hdr.columns) * 3;
ctx->databuf = malloc(ctx->datalen);
if (!ctx->databuf) {
@@ -2162,7 +2162,7 @@ static int shinkos6145_main_loop(void *vctx, int copies) {
struct s6145_cmd_hdr *cmd = (struct s6145_cmd_hdr *) cmdbuf;
struct s6145_print_cmd *print = (struct s6145_print_cmd *) cmdbuf;
- struct s6145_status_resp *sts = (struct s6145_status_resp *) rdbuf;
+ struct s6145_status_resp *sts = (struct s6145_status_resp *) rdbuf;
struct s6145_mediainfo_resp *media = (struct s6145_mediainfo_resp *) rdbuf;
uint32_t cur_mode;
@@ -2240,7 +2240,7 @@ top:
memcpy(rdbuf2, rdbuf, READBACK_LEN);
- INFO("Printer Status: 0x%02x (%s)\n",
+ INFO("Printer Status: 0x%02x (%s)\n",
sts->hdr.status, status_str(sts->hdr.status));
/* Guessimate a percentage for the remaining media */
@@ -2271,8 +2271,8 @@ top:
case S_IDLE:
INFO("Waiting for printer idle\n");
/* If either bank is free, continue */
- if (sts->bank1_status == BANK_STATUS_FREE ||
- sts->bank2_status == BANK_STATUS_FREE)
+ if (sts->bank1_status == BANK_STATUS_FREE ||
+ sts->bank2_status == BANK_STATUS_FREE)
state = S_PRINTER_READY_CMD;
break;
@@ -2287,7 +2287,7 @@ top:
if (cur_mode != oc_mode) {
/* If cur_mode is not the same as desired oc_mode,
- change it -- but we have to wait until the printer
+ change it -- but we have to wait until the printer
is COMPLETELY idle */
if (sts->bank1_status != BANK_STATUS_FREE ||
sts->bank2_status != BANK_STATUS_FREE) {
@@ -2331,7 +2331,7 @@ top:
if (!ctx->input_ymc) {
int planelen = le16_to_cpu(ctx->corrdata->width) * le16_to_cpu(ctx->corrdata->height);
uint8_t *databuf3 = malloc(ctx->datalen);
-
+
for (i = 0 ; i < planelen ; i++) {
uint8_t r, g, b;
r = ctx->databuf[3*i];
@@ -2357,7 +2357,7 @@ top:
} else {
WARNING("Utilizing fallback internal image processing code\n");
WARNING(" *** Output quality will be poor! *** \n");
-
+
lib6145_calc_avg(ctx, le32_to_cpu(ctx->hdr.columns), le32_to_cpu(ctx->hdr.rows));
lib6145_process_image(ctx->databuf, databuf2, ctx->corrdata, oc_mode);
}
@@ -2431,16 +2431,16 @@ top:
if (state != S_FINISHED)
goto top;
-
+
INFO("Print complete\n");
return CUPS_BACKEND_OK;
printer_error:
ERROR("Printer reported error: %#x (%s) status: %#x (%s) -> %#x.%#x (%s)\n",
- sts->hdr.error,
+ sts->hdr.error,
error_str(sts->hdr.error),
- sts->hdr.status,
+ sts->hdr.status,
status_str(sts->hdr.status),
sts->hdr.printer_major, sts->hdr.printer_minor,
error_codes(sts->hdr.printer_major, sts->hdr.printer_minor));
@@ -2500,7 +2500,7 @@ struct dyesub_backend shinkos6145_backend = {
.query_serno = shinkos6145_query_serno,
.devices = {
{ USB_VID_SHINKO, USB_PID_SHINKO_S6145, P_SHINKO_S6145, ""},
- { USB_VID_SHINKO, USB_PID_SHINKO_S6145D, P_SHINKO_S6145D, ""},
+ { USB_VID_SHINKO, USB_PID_SHINKO_S6145D, P_SHINKO_S6145D, ""},
{ 0, 0, 0, ""}
}
};
diff --git a/src/cups/backend_shinkos6245.c b/src/cups/backend_shinkos6245.c
index 414d55a..44a2f7e 100644
--- a/src/cups/backend_shinkos6245.c
+++ b/src/cups/backend_shinkos6245.c
@@ -148,7 +148,7 @@ static char *cmd_names(uint16_t v) {
case S6245_CMD_GETPARAM:
return "Get Parameter";
case S6245_CMD_GETSERIAL:
- return "Get Serial Number";
+ return "Get Serial Number";
case S6245_CMD_PRINTSTAT:
return "Get Print ID Status";
case S6245_CMD_EXTCOUNTER:
@@ -189,7 +189,7 @@ struct s6245_print_cmd {
uint8_t reserved[8]; // columns and rows repeated, then nulls
uint8_t mode;
uint8_t method;
- uint8_t reserved2;
+ uint8_t reserved2;
} __attribute__((packed));
#define PRINT_MODE_NO_OC 0x01
@@ -217,7 +217,7 @@ static char *print_modes(uint8_t v) {
#define PRINT_METHOD_DISABLE_ERR 0x10
-static char *print_methods (uint8_t v) {
+static char *print_methods (uint8_t v) {
switch (v & 0xf) {
case PRINT_METHOD_STD:
return "Standard";
@@ -957,7 +957,7 @@ static int s6245_do_cmd(struct shinkos6245_ctx *ctx,
}
if (resp->result != RESULT_SUCCESS) {
- INFO("Printer Status: %02x (%s)\n", resp->status,
+ INFO("Printer Status: %02x (%s)\n", resp->status,
status_str(resp->status));
INFO(" Result: 0x%02x Error: 0x%02x (0x%02x/0x%02x = %s)\n",
resp->result, resp->error, resp->printer_major,
@@ -1070,7 +1070,7 @@ static int get_fwinfo(struct shinkos6245_ctx *ctx)
if (le16_to_cpu(resp->hdr.payload_len) != (sizeof(struct s6245_fwinfo_resp) - sizeof(struct s6245_status_hdr)))
continue;
-
+
INFO(" %s\t ver %02x.%02x\n", fwinfo_targets(i),
resp->major, resp->minor);
#if 0
@@ -1097,7 +1097,7 @@ static int get_errorlog(struct shinkos6245_ctx *ctx)
do {
int ret;
cmd.index = i;
-
+
if ((ret = s6245_do_cmd(ctx,
(uint8_t*)&cmd, sizeof(cmd),
sizeof(*resp),
@@ -1114,16 +1114,16 @@ static int get_errorlog(struct shinkos6245_ctx *ctx)
resp->time_year + 2000, resp->time_month, resp->time_day,
resp->time_hour, resp->time_min, resp->time_sec,
le32_to_cpu(resp->print_counter),
- resp->error_major, resp->error_minor,
+ resp->error_major, resp->error_minor,
error_codes(resp->error_major, resp->error_minor));
INFO(" Temp: %02u/%02u Hum: %02u\n",
resp->printer_thermistor, resp->head_thermistor, resp->printer_humidity);
} while (++i < le16_to_cpu(resp->error_count));
-
+
return 0;
}
-static int get_mediainfo(struct shinkos6245_ctx *ctx)
+static int get_mediainfo(struct shinkos6245_ctx *ctx)
{
struct s6245_cmd_hdr cmd;
struct s6245_mediainfo_resp *resp = (struct s6245_mediainfo_resp *) rdbuf;
@@ -1150,7 +1150,7 @@ static int get_mediainfo(struct shinkos6245_ctx *ctx)
INFO(" %02d: C 0x%02x (%s), %04ux%04u, P 0x%02x (%s)\n", i,
resp->items[i].media_code, print_sizes(resp->items[i].media_code),
le16_to_cpu(resp->items[i].columns),
- le16_to_cpu(resp->items[i].rows),
+ le16_to_cpu(resp->items[i].rows),
resp->items[i].print_method, print_methods(resp->items[i].print_method));
}
return 0;
@@ -1181,7 +1181,7 @@ static int cancel_job(struct shinkos6245_ctx *ctx, char *str)
return 0;
}
-static int flash_led(struct shinkos6245_ctx *ctx)
+static int flash_led(struct shinkos6245_ctx *ctx)
{
struct s6245_cmd_hdr cmd;
struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
@@ -1247,7 +1247,7 @@ static int reset_curve(struct shinkos6245_ctx *ctx, int target)
return 0;
}
-static int get_tonecurve(struct shinkos6245_ctx *ctx, int type, char *fname)
+static int get_tonecurve(struct shinkos6245_ctx *ctx, int type, char *fname)
{
struct s6245_readtone_cmd cmd;
struct s6245_readtone_resp *resp = (struct s6245_readtone_resp *) rdbuf;
@@ -1321,7 +1321,7 @@ done:
return ret;
}
-static int set_tonecurve(struct shinkos6245_ctx *ctx, int target, char *fname)
+static int set_tonecurve(struct shinkos6245_ctx *ctx, int target, char *fname)
{
struct s6245_update_cmd cmd;
struct s6245_status_hdr *resp = (struct s6245_status_hdr *) rdbuf;
@@ -1491,7 +1491,7 @@ static void *shinkos6245_init(void)
return ctx;
}
-static void shinkos6245_attach(void *vctx, struct libusb_device_handle *dev,
+static void shinkos6245_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct shinkos6245_ctx *ctx = vctx;
@@ -1542,7 +1542,7 @@ static int shinkos6245_read_parse(void *vctx, int data_fd) {
if (ret < 0 || ret != sizeof(ctx->hdr)) {
if (ret == 0)
return CUPS_BACKEND_CANCEL;
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, 0, (int)sizeof(ctx->hdr));
perror("ERROR: Read failed");
return ret;
@@ -1560,7 +1560,7 @@ static int shinkos6245_read_parse(void *vctx, int data_fd) {
return CUPS_BACKEND_CANCEL;
}
-
+
if (ctx->databuf) {
free(ctx->databuf);
ctx->databuf = NULL;
@@ -1579,7 +1579,7 @@ static int shinkos6245_read_parse(void *vctx, int data_fd) {
do {
ret = read(data_fd, ptr, remain);
if (ret < 0) {
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, remain, ctx->datalen);
perror("ERROR: Read failed");
return ret;
@@ -1592,7 +1592,7 @@ static int shinkos6245_read_parse(void *vctx, int data_fd) {
/* Make sure footer is sane too */
ret = read(data_fd, tmpbuf, 4);
if (ret != 4) {
- ERROR("Read failed (%d/%d/%d)\n",
+ ERROR("Read failed (%d/%d/%d)\n",
ret, 4, 4);
perror("ERROR: Read failed");
return ret;
@@ -1620,7 +1620,7 @@ static int shinkos6245_main_loop(void *vctx, int copies) {
struct s6245_cmd_hdr *cmd = (struct s6245_cmd_hdr *) cmdbuf;;
struct s6245_print_cmd *print = (struct s6245_print_cmd *) cmdbuf;
- struct s6245_status_resp *sts = (struct s6245_status_resp *) rdbuf;
+ struct s6245_status_resp *sts = (struct s6245_status_resp *) rdbuf;
struct s6245_mediainfo_resp *media = (struct s6245_mediainfo_resp *) rdbuf;
/* Cap copies */
@@ -1656,7 +1656,7 @@ static int shinkos6245_main_loop(void *vctx, int copies) {
ERROR("Failed to execute %s command\n", cmd_names(cmd->cmd));
return CUPS_BACKEND_FAILED;
}
-
+
if (le16_to_cpu(media->hdr.payload_len) != (sizeof(struct s6245_mediainfo_resp) - sizeof(struct s6245_status_hdr)))
return CUPS_BACKEND_FAILED;
@@ -1734,7 +1734,7 @@ top:
memcpy(rdbuf2, rdbuf, READBACK_LEN);
- INFO("Printer Status: 0x%02x (%s)\n",
+ INFO("Printer Status: 0x%02x (%s)\n",
sts->hdr.status, status_str(sts->hdr.status));
/* Guessimate a percentage for the remaining media */
@@ -1776,8 +1776,8 @@ top:
}
/* If either bank is free, continue */
- if (sts->bank1_status == BANK_STATUS_FREE ||
- sts->bank2_status == BANK_STATUS_FREE)
+ if (sts->bank1_status == BANK_STATUS_FREE ||
+ sts->bank2_status == BANK_STATUS_FREE)
state = S_PRINTER_READY_CMD;
break;
@@ -1839,16 +1839,16 @@ top:
if (state != S_FINISHED)
goto top;
-
+
INFO("Print complete\n");
return CUPS_BACKEND_OK;
printer_error:
ERROR("Printer reported error: %#x (%s) status: %#x (%s) -> %#x.%#x (%s)\n",
- sts->hdr.error,
+ sts->hdr.error,
error_str(sts->hdr.error),
- sts->hdr.status,
+ sts->hdr.status,
status_str(sts->hdr.status),
sts->hdr.printer_major, sts->hdr.printer_minor,
error_codes(sts->hdr.printer_major, sts->hdr.printer_minor));
diff --git a/src/cups/backend_sonyupdr150.c b/src/cups/backend_sonyupdr150.c
index a914d3f..622be40 100644
--- a/src/cups/backend_sonyupdr150.c
+++ b/src/cups/backend_sonyupdr150.c
@@ -69,7 +69,7 @@ static void* updr150_init(void)
return ctx;
}
-static void updr150_attach(void *vctx, struct libusb_device_handle *dev,
+static void updr150_attach(void *vctx, struct libusb_device_handle *dev,
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
{
struct updr150_ctx *ctx = vctx;
@@ -86,7 +86,7 @@ static void updr150_attach(void *vctx, struct libusb_device_handle *dev,
libusb_get_device_descriptor(device, &desc);
ctx->type = lookup_printer_type(&updr150_backend,
- desc.idVendor, desc.idProduct);
+ desc.idVendor, desc.idProduct);
ctx->copies_offset = 0;
}
@@ -380,21 +380,21 @@ struct dyesub_backend updr150_backend = {
Sony UP-CL10 / DNP SL-10 spool format:
-60 ff ff ff
+60 ff ff ff
f8 ff ff ff
-fd ff ff ff 14 00 00 00 1b 15 00 00 00 0d 00 00 00 00 00 07 00 00 00 00 WW WW HH HH
+fd ff ff ff 14 00 00 00 1b 15 00 00 00 0d 00 00 00 00 00 07 00 00 00 00 WW WW HH HH
fb ff ff ff
f4 ff ff ff 0b 00 00 00 1b ea 00 00 00 00 SH SH SH SH 00 SL SL SL SL
[[ Data, rows * cols * 3 bytes ]]
-f3 ff ff ff 0f 00 00 00 1b e5 00 00 00 08 00 00 00 00 00 00 00 00 00
- 12 00 00 00 1b e1 00 00 00 0b 00 00 80 00 00 00 00 00 WW WW HH HH
-fa ff ff ff 09 00 00 00 1b ee 00 00 00 02 00 00 NN
- 07 00 00 00 1b 0a 00 00 00 00 00
-f9 ff ff ff
-fc ff ff ff 07 00 00 00 1b 17 00 00 00 00 00
-f7 ff ff ff
+f3 ff ff ff 0f 00 00 00 1b e5 00 00 00 08 00 00 00 00 00 00 00 00 00
+ 12 00 00 00 1b e1 00 00 00 0b 00 00 80 00 00 00 00 00 WW WW HH HH
+fa ff ff ff 09 00 00 00 1b ee 00 00 00 02 00 00 NN
+ 07 00 00 00 1b 0a 00 00 00 00 00
+f9 ff ff ff
+fc ff ff ff 07 00 00 00 1b 17 00 00 00 00 00
+f7 ff ff ff
WW WW == Columns, Big Endian
HH HH == Rows, Big Endian
diff --git a/src/cups/blacklist b/src/cups/blacklist
index 191e97d..ed9399f 100644
--- a/src/cups/blacklist
+++ b/src/cups/blacklist
@@ -99,7 +99,7 @@
# Canon SELPHY ES20
0x04a9 0x3186 blacklist
-# Canon SELPHY ES3
+# Canon SELPHY ES3
0x04a9 0x31af blacklist
# Canon SELPHY ES30
diff --git a/src/cups/calibrate.ppm b/src/cups/calibrate.ppm
index f8a1324..fc5bccc 100644
--- a/src/cups/calibrate.ppm
+++ b/src/cups/calibrate.ppm
@@ -15,7 +15,7 @@ SyCTsХwsqv}wr\eKbCd?^{4Yz/Y{0Y}0Y|/Y{0Yx.QЮͲkj`ae

#GD6FB2GB2IE2GE2HE2HE31/",).-!.-!0.#0.".) -(3/"71&73%;8(>;+?<-CA1GD2IF6EB4@>0>=/72!<: 62+&72/*^V?F@#HB(cXGzn\naOyjUfWDiYGWF1cT<j^Em`GVJ3ncKn`Il`JVO<pcPeVBcR>eT=WI1MC/KB5&9-^P:bUE6+I<,^Q@ugRh[GgW@zkToaMbW7ha5oe>lb=mc@}rPueGuhRthRos~jzkTz]z]|bnUlk<0#j]N}a{xXrhX?|fsj\M[aP_lS]b`UHp^E|lVvdPi|dr\|olfy}lQj[FI8*I9'RC5eXJ}mY{j-/,-378?"5:AE*@G(GL-DE&QK6VJ1XL6H?+MJ1NL4XM8M:'F?-40$91&1*60&A:-G<3GA8j\Tf8-b]M-(P:2?8361.?:1L;3Q/+S2-P3.X<9z\Ze;3b83`4-Q-$<$;$J@,UQ2B%QK1TQ.`@8d>6k?8mD=lF?p=5bNZC^Gևvz|tyvx}tt~yyFEEB?;IHHLKK_]^vu}ts}ut{qqtsswrr{ppzrpvsska`ihjnnvmmsllnlltlkvontmltmlslkrmlryoltkmkjrjiojirDZ0BW*9S%;T&Jd.Ws9Xo>ZcEZWI\VL[WL[XM[XO[XOZXNZYMZ[LWXKUUGVWA/5$.7,9?5'-&'+(&+(-:3>K:ki9)٣
 TRO|ukyo`>7)A=/>:-@<1"
-
+
 ?:,KH5HE3IE3GD2GC3IE6<:.52(42(,' "!($>:,FA1?<+?=-A=,?>)B@*B?+:6)]ZK]\KefYRJ3KC)LD,g~odSsiStgLjZFiZLWK;VJ6PB/M@0VF:gXHzlXyiSs`HiZDO@.o^EudFh]:ZN4l\ElPtcGj]DqfMdWDbVGm`NiYCwfQbT@i[H_P;k\IXM@]M<fV=~pLznEvl<rf3g\5wkVoaNTE4K;-\H5bO:wkX=4%m_LzugtdPD7,+# |ervX_O=tdvcJK<.UG9Y\]_dftsaJxfNnZBfU?dT=~kUnUkzei|qreuk^O;n^J'(!*$=7*1*@8)1+,"0%M@5O9)W@+T?-I:*SH9eOEF) WI;A:/B<1D?2FA1QB2Z?5vgbsqh6,~\VW94Q6-HA894-A:0P=4R/(R0*Q1*T95~]^f7/a7.b6,P-$:$XG?^YCIG*E, [V8ba>[=2_60i?5lF?pJBo?4fQdKfOՉs~~rt}tt}ss}wu}LIG<7,JGA@=8ZWWut|rq{srxlhkojmmltnnxonvnmraabfeellpkkrjjkkkommullskkrljpmjpljpkggljojioihnhgoH_3E\,7P$5N"F^-Tq7Xs9Vf>YZF[UKYTKZWL[XN[XOZXOZXOXVOVUMSRKkfHz:i`*HP1,7-.9.-7+7B-ge2#ݥ
  TMH:3'<7)=8)A;,A</ '%*& *&-)4."/, A>/DB3DB3EB4EC6$!"#-+!baJHG2PP;GH5``JnlJpqOnlOPQ=mnSihEjkKxm^uiWnbPdW@UJ9SF;SF6aUDkaOUF7[L>k]MsfXeZO^SFIB66-'J>6PA6SF;B7,dWAeU:f{\vfJrYs[~eqdMm^Hk[EoXpvhtdNr[dU=m_H~pZiY@~^feT:hW;}mTtdP}pVr{mWq]G}lSqiGmo|g~r\VI>2)">73aUBjY@QA3rb}audO3%OA2u^~ce|``Q;xgPu^ktZw]p}yix\lthugh~dvf%-&;2)4*9+E8-3%3%;- D;+M8&V@+ZC,YG1ZJ:cK@B%PA6IB7;9*C@.LD,lG7p?6e]|YSqOGql]D@T7._LCF1)H7-M:.S1*S0)S1+S72dbd5-c5.h:0Q.&?.&cYQ`]FA?'=+ ST3PX.P>0W7/aB5bD8eI9^=-gRw_ցhΊvrs{rs}rs{ts{NLK93)4,%60)TQNqqvqqxqqvjhjkfhllqmnulmtjjpaad^]\jjlhhkjjkijmjjrjjphjohinhhkhhmifhhgjggmjgkedgMb5H^/7L#3H#AW*Ok3Yv8Sk7X`CYUIXQKYUK[WMZXOZXOZXOYWOVSMTRNmb<ְ"ϩz$fe8]_?lk@w2!Ӟۦ  EWgwwc}I[|B^AdEdFaAgGkKnOnNlOcGbGeJcF_C_BaCcFcuJ`v[~nXXb:6;9/.43}-+5611/.y/,0-,*|;:s331034{.-c#$qJBR^/Gb#IX%OV:QeSDc@Ka(K\!IO'R6+n53s32u10>7l649pslomehf_omepmapmcPNDklTgiDpqMloMY[IEE><?9QOE^Q=|irqd~}pop_dfX9?4=@7@A6h_ZG;7siale]sndf^V`VOqicrneFH@=A<=;3kf]RQNQOOTTOQQK8<48<4UUNqaZ[FBqf^~tzywrda]gfe\XUVMIgc]kjd_][h^]]SQ`bcbhcn]eFTH<PKHea[MFD953?=<D>:NKDEB=B:6VSMRRHWVOED?;74JHG?>;>:8QMIRNIC><FA?JDALGCHB?D>:A>8ihaDB=FE>ZZ[@@=EDBJH?MJBPLEGC;IE=D@9KG?PMFTPFTODROFOMDQOGSQIKGCLKFJHCJHD<:464/=;4IHCSQLTSMDC=:967987:8<?=>?=BCBGHECFCEFEDFC@AAEFDOQMJLHKNKJMJLLLEGEACAHJHMQMMPMLNLDGCGKEIMINRMQTMMPILPHVUL[ZP\[N]\OXXI\ZOZWLb^Qe`Ra^Ook\e`PkfVdaRe`SjeXtq`d_RebUeaUdaVMMGKOKPPLOOJLMGQSOaaY]]TcbZ\[S__W]\UZZSWWOVUNGGEKMK41(9534/,xQQOJNR123*!6/+$ :5-/+!IC5gaIslNspLroK}sO}uQurN[R6ytSywTbcSYVU=<4 KG<HE950)1-'0-&-)#*&!$$"
@@ -23,25 +23,25 @@ SyCTsХwsqv}wr\eKbCd?^{4Yz/Y{0Y}0Y|/Y{0Yx.QЮͲkj`ae

#1-!=9+A>/;7*85*# .*%30'
-
-  MJ=KI;LJ<OL?RNC64)%!&"&"gfJmnFjiFkkIjiGjiDgfCdfDgiHegCbc@]]<i\PSG9dYK{miaUVOGcXP`XKME=G@6YM?QD:E;4?81:2*50)@94B:4I>6viS`zmRkudLrbIm]FvfOjvxfL~_g~^hX>rVtXef|cw]wgP}p\seRm^JsfQsZvYlcDrswxj]N=oykVaTHA93!7/*RC5$bTGTB/>/$5*$qbQr_GxbHn}etdLs\u]_N9eR;|dtcKgw^mw{`{av]elrYyhQwa%( 7."1':/!>3$90 7+:1!G=.N=+_J5VB-]I4WE4eF8Z4'A5&SL>:=(<:!ZD.tC6zC7tD7uUL}ohdRNN/)Q/(^A9R2*S9.N8,S3+O1*Q3-O4/dad8-g;.t@3P*">,$bXS_]INR31-PU5VZ9E7+L7-XF9\H8\I5V@,bO~h‡qu|{rryrs{qqyqqwSRR95,71*5-%GA=uu{qqwopwnptonqmknjjpklrjimcae^]^ghihehhjlijmghkdfhhingfkhgjcbgkiheddfcfb]Ud_RNc5H\/5K#0F":P%Ic.Vr6Sn5Vd>WWFWRKXUKZWNZXOZXOYWOXVNUSLSPMWP7ү6ԢΝԠפ ݪ
+
+  MJ=KI;LJ<OL?RNC64)%!&"&"gfJmnFjiFkkIjiGjiDgfCdfDgiHegCbc@]]<i\PSG9dYK{miaUVOGcXP`XKME=G@6YM?QD:E;4?81:2*50)@94B:4I>6viS`zmRkudLrbIm]FvfOjvxfL~_g~^hX>rVtXef|cw]wgP}p\seRm^JsfQsZvYlcDrswxj]N=oykVaTHA93!7/*RC5$bTGTB/>/$5*$qbQr_GxbHn}etdLs\u]_N9eR;|dtcKgw^mw{`{av]elrYyhQwa%( 7."1':/!>3$90 7+:1!G=.N=+_J5VB-]I4WE4eF8Z4'A5&SL>:=(<:!ZD.tC6zC7tD7uUL}ohdRNN/)Q/(^A9R2*S9.N8,S3+O1*Q3-O4/dad8-g;.t@3P*">,$bXS_]INR31-PU5VZ9E7+L7-XF9\H8\I5V@,bO~h‡qu|{rryrs{qqyqqwSRR95,71*5-%GA=uu{qqwopwnptonqmknjjpklrjimcae^]^ghihehhjlijmghkdfhhingfkhgjcbgkiheddfcfb]Ud_RNc5H\/5K#0F":P%Ic.Vr6Sn5Vd>WWFWRKXUKZWNZXOZXOYWOXVNUSLSPMWP7ү6ԢΝԠפ ݪ
 *'"+'!# )' B@4@>5HE8LI> 
  B@9PMBQOCRPDSQFNKC$'#%!LH7jgAge@fb@if@ge@geAhfBba@ddBa_=eeBkaUbVJtj\?7+,'#740LD;PF=.("LD<VK>RF;\TKOGB;3+>4+A:3VKAJ>4I=-h^HpXd~mR\L6zbju~wWsT}_dhkNf|p{lVoaJvdNs[mu`xdtaugU^S>wiN}b}bfl|agS>RB3qbPybmaQ\N@PB7
NC<5)$I=4:+2&"0$ xkZugSnpZropyiRn_MsbO}gt[iv`p^LZJ8iXFq`L\L=hYKZJ8yhRvfQs]oY%  .%-#0(/(2-><)82#B7*RD5UD/]J6\H4XH4eL<c<-K6%_WFHJ2PF,fE2vB5pC9v[Qvf_]G?O0(Q0(Q1)T6-Q7,L4*L:-O8.N6,U<1L1+jfe8+sE6J:N(?1*YRK`XKIH1:9#NU0TY7MD0I9-Q?2eL=lN;^C1lYHt[GxbRvieplppqxpqvnmrppt\Y[:6074-:5-?:4qqvlmtlltjlrjjpjimjjniiljjofeiZYZfghhhhggggfaffZhj_jjhgfcefd``ZfeR^]K^[IWU<YW;K_5BV-:O'6J&3H#BZ+Nk0Ro2Si9U^DWUIXSLYWNZXOZXOXVOUSLURKQPKNI:ʬPɘ͙ӠՠҞѝϝ ֡ܪ

rlb,)*%dYK[VEC>394'HE=ID8`YHwnZ{h{nerl_g_;}uNkd>lgArkEZN-pkFYVEYVWFB;mfEwqDkhHRO8faP][P
- !31+%#$-*+%"!!!!  %"omg[WQ <:3>;2**% 
-
+ !31+%#$-*+%"!!!!  %"omg[WQ <:3>;2**% 
+
IJ@II=LI?ML@:61    !" XXKVSIVSKXVK\ZO,' *&!)$!)%kgFogCoiHlgEidBlhFmiFfcAjfFkgFliHYSLJA9=2+'!4/,{uhuj\u{ptfdZN:2-TMFti]maRdXJl`Pk`PJF.XS<~hhtowukiifhg|bw[l~oVt_xet^pYnk^JqYhZDhZGzlW}oYvgPyiSkWAfQ<YF4l^Pl_Q>0$>2&JA:3,&K?5(0(#<2*D>9XRLE;7>86IA=xhWTE4hVEaQCeVEqaIdT>ZK;YJ9m]JJ=,o]Kn]M:,#,* </*0#9.'E:6NA9SC7l]PxjXxjV)%#,%4/&4.$/)1+:6'94#E:.@5&L?/RA0H:(D:&aM=`A-P>&\I4NC*WB*i@1q@7v^Voc\gTIQ3)R3*N3*N5(N2)T<2J5*L=.P=/Q:0M5,J1)qfsA0zH5R?P+0#`WOcZNPK9BD*OZ5TX9VK=C;+PE4VE0_I1iJ8zfVuh^rihppropropwnntnlqpqsb__C>995.C@9A?9optlltklrklrjjnmknjhhjifqnob`^[XUkibfbZjd_bcKYZ=hjE``GhaSebNddIljObbCbd@ff?cc<I[3DX.FY0>Q+5J&;P(Gb+Nm.Ol3Sb=XYHYSMYWOZXOZWOWUMUSLURJPPLQJ4Ϊ?əР֥աԠ֣ ܪܪު 
641NNDQQFPQGSSL
-
-
+
+
ZXP[YMYXMZYL^\MD@395&KE2XS8gc>ke9ie<ie>ge>liAlg@id=gc<ca9db:+%'HA;yo`~shsumdZHRI@@602,)GA>F:+n}r\cTA[N;B6$VL3|oUgozsyjNuYrimjmlSv\gW@iXBl^JviXviUtasdRwkXTH9O@2l\J]O?WL=(!WJ>eUEaSBWG8]ODTH<2)#,j]P-&%0(!K?44&1+*TNI]YVIIHUSUVWXTOM.2#/"K<3ZN@iZFbQBWI=^PBJ;.H;2C7/D958+(5*#>1+0&!*!'4-'0'#A74/# +D9.58!..)&RRKOQGXWNYXPSSFUSH]WQNG?ID9C<0@<(74]P>XB*N@%SA)UC*]A,iA2rNGvgdPD:_ZGM:,P<-M9,M9*O5+S;0N>.NB.M<+UC5SD2F5%wjyE/Q?\GjN<7-$]SM_YKZYAIM/IS0W^:TJ9J@+eO<uU@lM:jI6q]O{oluqvstvqrursvrrwpnrmmppnqrherh;7.VTRlkpllqllqihjjb_k_Zjc[hcXph[pgUhbPjdOa^Bg`LgdHV[6gjB^]<vj[]XBkeNh`H\U:SR6]^;cb;G[4I\4N`7GY2;N*8K)@Y*Kf*Kl,Nh5U^CUUKYWOZXOYWNWUMUSLRPKOMLeZ2۴%ӣΞ̙ϛӟբ٥
- ! 1.*WSM @?9ED<HH@--(
+ ! 1.*WSM @?9ED<HH@--(
UULUTKXWN[YP$#!VUChdNlhOjfImkKkjGrnKnkElh@igDcb=gg=dc=fd@ba>cc>cc=_^9_a;Z^9'C91XM@vl\PC5p`teSf\QkcXbYN[SJsj\xbktkxrxmrhd|}x|]}lSwcIpXjXA|fQF5hZKl`Mj^Nj]LqcQj]OYM@XM=WH;eXK:0'/%LB;=0(-"%5'#9-%0& ,"/%!&#+"!"/'&HDASOKNKIFEFIJKRRSRTVDC@zn>0'91/>30PD;\K><,0$:-'7-&&,"#*" &"'&'$,$ 2--0(&.&!6+*7<#11+(77)FG7AC3FE=GE<JJAKHDKGALHBNJ@CD-<<&SS>K@)YB*K>$G>$S>'[>,p]T[KAPB4hjVL;,N8,M<,N;.S@3H6)N?0SJ5MC0QF5ND0PC7odgTo[q\jYF92(ZSIf`KWU>MN7SX7SX9SJ=O@/[Mk[fK<oSCx\Qj\Yb[[tsupnorpnqllmgcnjgkb]tdaymhWTMVRNmjfmldjgZlhX]RCp`Qg\KhdLedFdbD_]@dY@ffB__BdcIVX9opPb^Ak_QWT>ibLh^Hj_H]YBffE\[6FZ5M`6Rc;Ma5>S-7K)>S*Fa*Jj*Kh.Qb=UWGXVMZXOYWOUTMURKQQMLLFw2߳ӧТ˙ӢΝϛҟס 6ez|Y}`\|`^eroTpIjHjJoKuQwRuTsQiI`A]B^E^vFbpL`fN^qnG_ee40h&#;<;<00**,--+(&'%-+-)-))()&++,*y'$g(&bbh/akGorDhdD_DH`4KiUCXSFZDH`$IXN<%W12UD>\,'[&!mcjkUvz{pwyt\\WHJ9OR2imI_dCY]>W^?GM;AC<^YLtvpklhtwsUUPWYT9=6;A8CC:}aTPcTOxsnz{xqga]e_[mgbIHA;@9><4olhWZX^__eggUVU8=5:<5CA;ogb^WSbVS`KH|w`\X`XUc\V{rlf{v}s|}iVRcPN\ZWZ^\wiX`F_O@fa[VRLJC?F<:JDAC:8KD?LFASJEMF@VQINICJFAEC>:756/,1)&0#"4*&#!$ SMJ<96SPLde`BB<JHB\[\B@<GFAHFBED>,+&'(!32/:92@?9<;3PNEIF?>=666,,+%86/DB:<;4ED=JIB>=876033.776?>:=<6994774--'..(--)--)--*+,%.1-35133/574;>:<>;<>;<?;8:57:67:58:6;>9:?99<8<B=DGCGGBBE?AC>FGAJKCLNEHLC;>7>@;OPGVSGRPBOOD\[Npm]c\Nc^OhdUYWGDD::<4VYNDF?<?8DC;CB=@C=YXOUUKPSHTSHEE=EIDIKFMMHUXRNRLDHD=C>CGAGIDDH@MQJ]_WYX<RO6WU:[W:\X:[W=^Y?^X<i_7Cj`-gbBkeAkdAlfBqhBxmF~qIyOvLwO~pHypMTN@225$ !c\UngKxpKyqI{rI|tJwnGvmFwoFrjM(% D@<B@9:66*&"233@??52-JHA!*&"(%>;4{UOFѻ{l=;3JICKJCLKD  PMCZWJ`[IebMf`Ld_JicKxoTtqRjgFidCe_=]Y8eaAZV3^\<eaBe`Cc_BeaCidEb^?keEnjJjgIdcCb`@ifEmiJth\^PBj[Oj[LqeTzm[pcQtiWZOHE>4tyaumnhqkjoWubKtbGw]grW{iKuVz]nuXp`JYJ:3&\QERF9ZM>m_MYK<UF7C6+@4.E:3PD<?2'QF=K@64(!0$5,';.)?6/2+%5,&92+$"0'"* 1-+`^Zhia}|v}oon[[Z[[YEED][YQG?6(#7/+91.D80A3*<1+;101%>1-$*!-$!*"%(( 7.*-#4(#+!)" QKIXNB23!--($31!BD/IL2FC4B@3@>2A>3=:0?<1A>/;<)=<,??.VN;S?'fT5O@&KD)GE)KM3LG1SQ>geUN>0N9-N<.L6,UC5G>+OB5OG4UO9LA2RF9^ULqgtd{is\j^Lb\O]VJjfN]\BTU8WV;TQ;_WIaJBsRHj]wcTi]Ko[{m_tm|vr|vmzvhpeUgZDl_Nwl\pbQph\a]Q\TMgbMa`FukWjaKqfTrdh_M_^@`fBYY?VY;daGccCY]=ehIbdFehJghH`[CZXDb_E]\?e`E]]<kmE`_;EY3M`7Sd=Pc;?S.<M,=Q,B\*Hd)Ji,Nb7TYEWTLXTMXVMVTMRQKOOMNJ=¨KܮӨУѢէ֥գ٧

Ҫ ͧԪҡОԡ ̠}YCnOuR~O{YW\SylnvStMyT|UvSrOlKeF`D`E\qC\gEabLbdO_maAVZ]..k)&j1.F@31993254+'*'+(*'*(+)*((&{%n$i#kWY-`g;dh9]^>\SBbXCecB[LKdTFW1GQ$?N5=SRJYMP8!W%$yOmnJjeTojnZZV7;2=B/^b?fkBX[9LO5EJ9BC;\WKmohkmgpsoVSOPSM8;4:<5EF;zjd\hd\jdZpf\ldZiaYh`Ye`ZBC?:?9;;3mleMPNOPQOQRCCD8<57:6<<7g_[XOLaVRsjb{tlibZia[zvkfcXjc[xrgysiymymwodibWytkyvn\[YTSQvfWbH`N>haZTOIf^WfaWd^U`YOXSIWPGIA;RNHdd]_`\\]YWWULMIA;7>844*(4(%%$&!fjm@BELJKa`]33./0+VVV&&,,%..(65/00(/.&45*=;3;90-,!22*DE>BD:ED:ED;NMDURG\ZPIGB99165/<:6:73//*++',,(,,),,(220788<<:=?<:>:<>=<<:>>9;<:55443043-24/03/47037146236257147003,24-.0)02+/2*35.@B=>C<>C;?D<;?8=@:EF>LMDRRE`]OcaS^]N[XLZVHc_OgdV^ZK_\NdaR`]N_\N_[LVSFTQGNNDLMEFE=CE<:@;6<79>9CE?LNHOSMTVNY[QUWPPRMJKFTVPRVRkdGlbHh`EldGpiItiIvkKqgHohHjdHg^AkbAbY6hbBh`?d]<gaBi`@d^=aX<b\@SN;/.0'"!,((333'#rgFphDqjHrgHmdDsiGofBidH(& ! EB>&!952422=<:XT?wnArh@phAleAjcDcaC``CUUBLMGJHG841i_RŮʾ}eC@,A=*D?*?9'40&NH5VL-WR1XQ1]U6cW:cX9[U7UR6XR8`Y:c\?kaE_X>d[AoeHl`EiaFiaDf^Ac]@oeKc^Dd`B`Z<d^Ba\B_\?d`DhcFmiLqfUseRylYg\NXL@gZM_QDykZK?5lbTfs^irZp`IoaPwgWugUuePfTB3%eUDdO8WF1|kW{iQw^s[vZfR=:+"I=5dSEdUAWH9bWIWK?K?7NB9L@4SD8J=3@4,4,'=2,0("((" .%"+!'@72'?91~nȮϷƲɱҷúг̚{TJC]SFRKD846:68MIJ7309;,?@.88%=<,76&GJ2BF,FD5FD5DB5C@2ON;CB/OM=TQ@a^LdaK\ZAkgH`P5UI3TO;IF0LM0X[G_]UK=/UE5RD5ND/[T=RJ5JB-\S>XQ;a^Hxm_t^q^r`v^v\|xSvsQcYJehJmpKljJedFegFpqPphUskSldKleLniOikMnkTlfQdfEgmHqrMebE]XBeeKc`IkhOpkVjdT]_K`aHjhQgaMjfM`fAfhLgfNhcIonLV^6bhEU\6\a:]^CX]?_fAQ]4bmB^e@TZ;gkFZa5bl@^d=joDad5@T-HZ5K^7I\6H[6H\7EW3CU+B^'Ed(Ja0MY<OPFSOKSOIQOIROIKIFn{vYܲΣ̤˞Т֥
@@ -50,7 +50,7 @@ SyCTsХwsqv}wr\eKbCd?^{4Yz/Y{0Y}0Y|/Y{0Yx.QЮͲkj`ae
G:.@0%I;39) P?3]M<]O:TE3A3'OA:TI>G<1I<2L@6RF?I?8B71A51>41D;5A94;.-9/-)(0$!6.*OFAQLA>7,4+#2)!;4-̴éбҶ¥ͲǨִ߿׶ʭ_TKvl^~H>5UI@XOH{ws[TQ/,%,(*&EG8MP8Y_AYaAVX>KJ9QQAFB3VV;FH/JF7JG5JH2CF+BD&`c?UU5`[CIH1JL1PR2\_HbbXM>0TF0]R;XK9UL5f^FKA-aYCqhRvdt]t^tbpaKvjP{sS]noIgcKchKehCipDchAcjEemDloOjjKlnLglJjiLloNkoNllPglJcmDkqHqpM\a@biJ]bCejJflIggK[`GabI^_B_cC`e?`i?Xa=]eE[_<fY_3Xe9Wa9]e:X_9Yd?Ye=]h?bmB\d:T`8[e:^e9blB[e8lsFio>BU1K_8I\7I\4J]6K]7I]7BV-D^)Fd(F^*IV7NNBQLGQMIPMHPLGGKJz|Ī:ժխ9J?>!ߩ Р
CH|JxM{PPSRT_]S~e|KoKrPrPmJcF^~C^xC^qE^eEccLhjTgpTegIddS0.n/,Z-,b(#5051412-)&/+-)0-/+}('.*y("{)%p&#b$gED4^e;ko<dgAeg:YX:PD?T?KaADZ+EV52C8BXDHV9LG%J3#pqTffKidRc}a~dnmT`dBbdC_cE[_==='KJ6HE1ME<OHAwxs``[`a[uvrVXT:;4<?4GF9~QVLGF?C:3NC>LFAHIA`_Yihc;=5>?6C@9tlcrj^xqdynatiYul\xpdpi`sldvodxrgwpfyrh|vkyrflfYb^SgbZc^W\[QtgU}`FaN;`YR# .)+B=;nnfklbjjaih`eh]df^bc\^`YYYUUTR955@<7?854,(/% ""ADI;77=.(F62[VOUWORQMXXV54,BB9FGA<;377,88/96.22(42(41';8.IH>SRHPQDUVL;<3:;39:5DD=<;4++%&%'&*'!(%)&!..)..)..**)$('()!.2+47313---&0.*-,)23.25/7;4<@::<97:59=946100,895:;77935717;4=C:7;45:38=5@FA>A=:>76:29<3AD;?@9GI=QSEII<DF7KK>MM@<>349.380;A7>E;:@65:08<49@5;A806.4:28;713/.1-4958?96=7485.2-051/40061152374@ECe]@jcFtlJriGogGkcDe_@`Z;VS5PM3QN2PN2RM2PL0JK.GL,LJ-RM1JF*MF,JF.50) #,)*?:'<7'62 5/84":6$74";8%>;)43$,) &#)%'#.,)850<8&@>$;:#>;'>>&01<9%EC9HFGHDB0+*% tˮ;u=?#DI*IL*RU3YY8]Z:jcBjcAd^;meAujGjbCh`@peGe`?fbBlgHg_BdX=e_D\Y<\Z<]X:bZ>f^@_^<ca>id@c_;[[6a\<[W8XV3^]<^\>caCzl_h\Re\PsiYvzhsqeQVH=:0(cTEvdLo]G`O>G7-G92?0,:-':0*3*&1($6+&1'"4*$,"- =0(@4-C;5?6/H?5I?8C:4D90J>4A5/A717,&C71$-" " )"!)!)!VVLqsfup|ov|kr|hyqfo^itfdo`fqaah\W[OUXRKRNDKGGLJDIEPTMz{sac\IKIEGCDID\_YhibTTPOPJSVJUWMILCXYMnq`vSOF~qz}CB4($-*9;&TZ8V\9NV3`fDQP<WUBPQ>ZZCqqV\\BbdNbbOUVBPT@agA`b@QR9LO4OS5VX:dhKbcNXL8_W=d]C_Z@daDllJ_Y?g`DxrUtkRlgIqjNiaJigH]a<nlEUfmCgnIblDcl@do?fnCaj?dm@bj@glGgpElrGhlFntNblEgnHdjAmrJkuDntIdkAekJciH\gCalBkqMdkLagF`gBemIdp@hrC^d>R\;[d=~{Q[_5Q_1P^3al?^j=[i=Ze<^i?_n>]h;Ud8Wb6dm@`k>al@bi>ho>BU1GY2G[1EZ.G]1L`6L`2DZ*D\*Gc*D^*FR4LM@PMGOLGOKFMJGT]\`ЩҨ#Х(د'45ޥߦ
Уțڬ * ߬
- ݫݩ 
+ ݫݩ 
$3(#(1%C8-G;5<4/?61>63$('C95>75|xouoiwrlpkeid]TLE{zuz|k{svndf^[\UMPHRTJPTIPSISVLINCIPDPUN_d\TYUUZWTXRQVP\_\jll]a_MQQV[[KOP?DE<ED=FI<EH;ABMSTfklgnoinpkopcgilnoUY\FKOAFJ<BE>CF>CFIMNIMPJPSJNRMRTNSTQUX[^`PTXZ]_OTTNRSIOTMRWCIMDJP@HNGMUdn=cmBUV4kiBkuGitBnwCjrEquMouFelBosKtxOek@jtEbn9x|PfoBlwGkrHmqLvu^llRosO`fAhmJksIs{JjoEkrC]c?elCaiAekBbkAZe=^gAmvFiq?hoGXg9Yf9~SqCdr?ksDjsBZd/cl;Yd1muFT^1bn@iuEbm?isBdq>\h8Wd9`lAmxBm{DfsBdtF^l?muK`h?bo@grA^m<muDxtG`e9`m=Zh3^l7epBKX1`f<~rLKZ0KX+fq@cr;^l9Zg6Xe2\k7ao9[h8`n=Zh5Rb3Xi8\i9dm@1J5O5P;T#CX(H_,G^+FX+GS-KU2KX1IX2LS:NMDJIGHFBBIISyqw?ȝԧ

@@ -78,7 +78,7 @@ G:.@0%I;39) P?3]M<]O:TE3A3'OA:TI>G<1I<2L@6RF?I?8B71A51>41D;5A94;.-9/-)(0$!6.
%-#'."=,+A-)M0+W)&Y<6KWrAhPMWkLE}_]ca}e]kgfayRe^OPjM@hKAdG<`C9`C9\?5Z<3T90Q7/N70L71J72H51E3/B/+A1-=,*7((3"$.-,,&[cgťƹaeht}wsxmimy{uwklvbht[bpaiybkz]dp^dqZdriu]hv_hu`ep]al^dq\cpho|dmzgpzbck_[cefogelihr_dnTYeMQ_WZe "512yuYCElOIun7)2@1;E5= #:4?OBKOAF^KP`KP]MN_OQdRUbOPeRSkXYiSThQRyppRPIcXMֵs}|[[UleKJ1!1 zQSecolɑurnk喋˨onpqfgmmss~ig|iewbbczy|wwxvvwvuwutvvuvvuxvtxvuxwuxwuxwuxwvxwvxwwxwvywvxwwxwwxwwyxvywwywwxxwzwwyxwzxwzxwzxwywwxwwxwwxwwywwyywzwwyvwwvwxvwwvwwvwwvwwxwxxwwomlvruxxyxxyywzsprxwzzxxzxwx|vusu{xynfdug`zyzwwzxxzxxzyxzxwywvxxwxwvxxwywvxwvxwvxxsvzssvstvswusvtrutrutrusqtspsrpsqorqorqoqqnqqmqpmqnlopil\A:R72jbfhqpƢººøùø¸·¸ù÷ǸǷɻ̼νноѾ¼̲ڿu}hq_}ow\a^J\]GvyaѹmoaNJ;LH6EB/EA/MI9E@.EC,>9(A<)A=)84$KJ<uvk[YY/&g`ERN0XU6b[<UW4HL&^c?$"' /*@>'+)(&%#0/!77&41$+)MN9>@+HK321B=//,98(55#EC/RT7RW7@C-=<*XYFIL7QSIEMJuvouvfddzqoow~x~zξȞ~MPTKFHQPPJIIIIJKIJ]YWUPPb\Y\YQQNNa\Z`ZXTPMZVTFDERPPKJK@@ALJKJGHPNNfih~zu{slqcz}uw}jz~l~rzóɵìŮ|abXVTLMIBFC<JE??:5;6161+;50;4.:3/4/(4/+60-3.+2-+;74:62931&C><>99D@=A;9@:9A:8E?;1*(+$ 6.*71.5.,C;7G?:A:5  ZVR]ZT\WR6/+4..MGFF>:B95.%",'&{ǟ²ñƶǶȸʸ̹ϻ̹x#"!%$   B}:C7py    
-
+

$,"*9)*:)&L6/V2.[(&\60QUeGhNSdfI?xXX}_\zc]lkmRhKUmfPIjM@hJ@dG=`C7_B8\?5Z=3V;1R7/O6/N80J71I61H40D2.A/,=-,7''2"!2""/ - - '! X_dΧƹ]^`]fskr~rqwmkrmlrmltlovopxfit^eqZ`m\dp\co]dpaiv`gvakwbisY[fOR]W\hZ`l]esU[hdgp[QST@ASBFN@BTGMTJRZPVRLTLGO$ (ROL~XEHeKHeTT=5>QMSLAK&%>4@H9AJ:@VFKUDH^MPZHLaNRdQT\IL]KM_JM`OSnjhMGA~ڰҰѳѯҫܲɰL,1.!:%(llϨtrlkecebon릡pnh```nmrljolinzut~vslgjkhnlhokgnlholiolhnlhmlhmlkmlhmlimlimokm~{smllhmlhmlhmkhmlhnkgmjgmkhmjhkjhkigjplm}|lhiifjhfjhejgehgdigeifdhiejfcha]`eacfbhfbid`eb]cicgf_`c\\a]brjfsf^[_idfSD?pYLTGHa]g_\b^Z`_Ya_Ya_Y`]X^]X_]X_]W^]W_]U[raVl[J^PIZU\YT[YTZZU[XSXYTZXSYXSYYQZYQZVPXVNWVOXVNVUNVTHMS/&F#YMSiqpåºĺ·ù·¸÷·÷·ŷ˹ʻоҾҿҿҾҾֵwzjROAűĮĽαٺŨ|relYGM>cjXHG7A@/GE6GC5PL?ED4KL9IF7GD5HD3WWGlqb\fVXYINJ8FB.GD.FB.B=,B>,IE.D@*;6%EA0A>,NOA<=1YWW$ DE(CC$WR4qfJfa>YZ3MS/ +&_]A34'&&%2/ 2/ @>-HK6JM3MQ8U\=NT6AB-/.OQ5X^;PU2EF(SU5@@(==+:9(95&@=,70#=8*IE9ljfVTQlie```stl~ͱļžǻנ̮^\XLHIIFC[XS_[TYUSHGGQNNIGHJII[WRKJGIHI]WVQLK[YWJHF^\Wig_A??AAB=>?IGHHFGdfe{uws|zq{k{luxeq|v}tptnTWPPPKJHCE@<94/;5-=6092-94-:3.82-70,2.(83-73.0.):83510B=;,&$2+'6/-5.+-$!$/(#70+?3/A52A72A94*#ZVRSOK[WT`[XFA=(!@96D=9( yɡź´ıŵȵɶ˷˹ιϻӽƸ]fe5-3 "( '(( -IN;AM!&     *#0"#1"!:&$N@:bULY81`))^-)ZMQN_YV`lRGq\Vu`Zye[o_Y^X`ZQWhMBiN@jMBfJ?bE;^A6]@6Y<3U91R91N7/L93J72H60H61D3/A1.=-+;))5&&2""0!"0 !.!("\hlТķ\\^hjwijrjjobciihqnovfhpdgpeiuQYeTZhY_l^eq_dnaer^dn^bl^cnY\fVXcVXdX[fRUaNQ^TU\bVXVBDXCF[GIZED[DFZEFXCEA6<rpi|UFHeQQWEHB7CPDNRDN$E;BM:@N?DO@EUDH]JO_MOcOS^MN`MOcNR^JOnegXUQ[SIȧڭڰج۰۰ۮ⸒sd7$. vifɻnkjfgekeje{ȿgeİlhw~[[]WS\VR]XS]WF>X?.VPPVS`YS^YT]XU^XU^XU^WR]YQ\YU^YU]ZT^ZU^bWXqYFdQHZW^YU^ZU^YV^ZT^[V_ZT^ZU^\V_ZT^YV^aSPhP<`PKZT]YU^ZT]ZU]VRZXU^WU]YU]XU^WUVskkkfgd]`aZ`_Y_kab_W[WT]dXWqfRKScZ_SC=gPCQ?=ZWbXW`XV^YW`XU^YU`ZW`YV_ZW`YV^YU`YU[yhYbN9bUJXW_YWdYWcYW`VU^XWbWW_YYbXWaYWbWU`UU`YYbXYbUWaYT[A"K( [TZiqnũǻŸŹźƸƹĹ÷¶÷÷ö÷ǷɹǵƴȵɷμѽѽֿտԻԼּʸȱ$C)'uPI{m_l{mKQCHK>FI:\dVYaUQVJ=C4DF9BA4JL?X_O|xTYIul`kW{PWFQSGGH9GF7KJ;BA3@@2HG5=<.??0HH6IH5HG5EC4EB3EB3HD3HF4KG7IE4MM<KI7C?.EA/GD0FB2@;,@<+B>+C@+@<,C>/=9(51"<8+WVV%"EE);<FC*`X;fb@b`;bd=FI+76')$=<#67%.-# /-1.??,>C+HN4KP4EK0CG,;9&97%<>#OW4Q\3S[8=;%63%.-:7'@>-<:(64'99+55%WWE66'lkgomlxtn~{vppoeeftsoʶpwt嬵囮ݠgd]XRO\VUtnfxoeUPJNMHHFE]ZUYTONMHUUP?@@DCBfbZ_[VZXTZ[O``U@?<SQP667GEGPNNRPOefdxv}u|{t|tx|iklVbcNXXF^]LbeVhl]gjYim]pubrzvfkbRRMSRK>925/'83+B?8DC<A?951+95/40+40*0,%94/751410.&%3+&0&"2)%3,&5,%9.*;2*6+%80*4*'+$HCBOIGFA@@<:>99E>;4-),##C<9y̤Ǻ÷ĴôòĴŵɵɵ˷˷ͺлӿԿajg/'.# -(,  M7B@z 
$    3#%B-)H1+ZPER<3^'$c(&cA;\PLbSIm_LrhTulXujXoZMmSFiMDgJ@kMBjMAfJ>dH<_B7]@5Z=3U91P7/N8/J72J82I72F40D30?/->.,:)+4%&2"".!/!#0"#,!)!# n}~Ÿ[\_^dp[_ieemXYcSVcikscfofirekuaiuX^kZ^j[_iUXd]amXZe[_jWZfWZhQS`\_kX\gMMYZ]fTSYcY\R>AWEFVEGYEGWDGVCE]KN929 y|t^QU[ILD7=1+44*33*5,&3M?EQ@EO=DTDIUCGVEI\LM^NO`PQ[KM\IN\LPspkQICnܳׯٰٱڲٯ׬̩dFC5'.|uoefkhjgkgoj~{zupȬkislhZ[^WZeXZgX[d^KD\A.VUUW[hZ^fZ^gY\fZ^gY]g[_hY\f[^gZ^g\_iY\ga]^s\FhWJ_aiZ_k\_i]`j\`i_bk]`j]`j\`j\alY^iaYUeL6bTL[bk\bk[_k\`fbbdY]daaf[Z]je]xpbssxprsr\bj`_`]]_ZafwkX]dgfh9) `L>aSN_is]hp_hp_ip`iq`ir^hp\ip\ip`kr^kt`infZNiR<`UK`nu[mvZjs[mr^mq\ls^nu\ms\ntZmuYkt[msYlrYmr[ot\ilA%!F$bcejpo¸õµ¶ķŷŷŶöŷƷƷƷŵŵƶĴĴĴɵɶ˸λϼԿŎ# F,!rJ;]<0J>2DA3D?1C?0@=0@>0<<,DB3@=0;8,A=2=:-:8-B?2FE6ED4<;.AA4>=0BA3?>.CB3::,><1@@1:9->>2HH6JI7GE5FB4C?1C?1IG2HH0NO4IH.B?+DA/C>.A=+B=+A>,>;)?:)B?-?<)?;+@;.<9+73%>:-TTSEG&V`3HJ*leHg`@ifBPW)_h7--+'.+%#66"PR;JM1RR:EG,KP6BI,LR4HL4<=&CB0=?%ZaAOT7FI+U`8Wb=LP4JL3@@+53"QT9EF0<9)31&9:%BA-HI8adV|WSJpni~|yÿzzs̯ɴu|ʲʼuzxVUQROIe`W]YR[SM\SOHHDZ[SJKBVVNjhWhiWBC<NQKppdVUK`^VabTmk[NMGOOJjj\`]ULIFMKDWTNdfczxwszx~u~~x}pubuwdtveorafhWhiXceS]YE]ZF__G[[D^]G`_H]^GY[GgkXmr`osaehRloZsxer~{mof\^Tfi]~yjkdFD;JF>B=885.40,0,(-($(!5,)3+'6/):30<73-&#.(#6.'80*:1,-%#&"60,60-840<73;731*)3,(5.,# 4+(x̧ǻĸ÷ĵŶŶĴǴɶ˷˷ιιкԿR[X.%.
@@ -211,20 +211,20 @@ kJBYOpJ0x@at~j}t{x}pc\Z(#y\<2eZG~jZpjXX_Tvl}s}
.@-%<'B-#   
*! 
#UTUUXWfjg~mWEH2&OQPkUZlM>ũdJ6J'jW6*[4*qU$Nªy}uZUSvrU=jO;S9)O5qXN:'ZG6jZEzd{rZ{coxh_KjcIsoKkeAwlSuiR{tU]Y0~zPyWxqK`b~^t~vLwNz^eR@cRDm\LB3&2&7//'<,$B1(H6-K9+i^I϶~ѻ}{cvp\ndQg^Mk_Km^Km^Kt]{YnudDv]~oVtXijq_pbrdwlqnxzWfhBxuVxfz^dohz[}Xaa9brsj{|UTV$ # "S>tVj0>1NZZ@gM D(pZ)9)6(=.XDtXk(t'/CIQ]XH66>iK@OGt:AW-5Z-7A ,_5;qRYtLSz@EA=\S>=*.aD_(wl.-01]AHͯ}zb$%~!"$dB~c)3%&)<;Bg*#fYM0$SA4g\LTTF]ZMgk]qvfXXJik`in`jk^ceR]]J\\H\[I^]MghXeeT__NcdV`cXw~}ݿ̾ȼƾſƾFiZ%B;*LA/WF2SA2TE,TG/OB;MBC@7C92Z30U--},+9(c9%h''cKD/0]:/gC5jH:mK?oLBmNCmNDiI?cC9fE9hI=mRFw]Q{bV}dY}cY~dYx`TsYMeH?\A6dMCN6/D1-A/+A.,A/-A,+<,*<+*>*(?,*@,*>)';'&9$%7$%JOHԲ̴[[\=<GDDOA@KA@HHHQOOUTSWPOSJHNTNOeMMeCDhQSc_Zwutpng˩¼#!#LJO0+.gZ\A69heQGHYKLk``<.2xom;/0hnj')*"!*$'3&,6(-7)/6)26+250*θV\ZmrqTVV_ggBEGadechf@AC,),679_`WMIHED@YTOKIEgc`uD@:WUOHD?^ZV[[UXWPYYSQNJБgd`UYX6LF:RI4@96B<,7006/67433.21+5:315/30-550::410*-+$30)50(1+ <5+<1%F8+>3':-$>3-:0';2,:4.@:172(91&8.#3(7,%;1+<2+?60?2,A8./",ucSx`NhL>oaiYcE/ueRQ=1cL?O9,2% # ~rn8+>3=1&?4PEQHD8s -$m2*d@8S;/pO?wOEqI<=!')A+9'"   
-,9+$7&:' #  "DBDLLMfie~}q~^\QPLJRRR\qo=?}ct\:)J/V>0]7+V:'WRáá~|`ZXsYErXN2tYt_HK8+H:0:*S?.vsWotdGp}t]qjJquq|}qN{aukhyZrt|fziTtdSXG0_S@^TA9/2';*=+0G7*QB2zt^ʶӼʲcbP_[I`YHxeym[o`JhU7~zd}pXzcqU|deczsNY[txMhkBoqMdgBSU0SU.moInsO`l[{TpjEqnFfj?ag:quJ\||V}zX}UVW% &"% %X@b&YG%HHD|7$u+9Ģ0A)8'A.O:oVg"Q3X;"S7P:&
+,9+$7&:' #  "DBDLLMfie~}q~^\QPLJRRR\qo=?}ct\:)J/V>0]7+V:'WRáá~|`ZXsYErXN2tYt_HK8+H:0:*S?.vsWotdGp}t]qjJquq|}qN{aukhyZrt|fziTtdSXG0_S@^TA9/2';*=+0G7*QB2zt^ʶӼʲcbP_[I`YHxeym[o`JhU7~zd}pXzcqU|deczsNY[txMhkBoqMdgBSU0SU.moInsO`l[{TpjEqnFfj?ag:quJ\||V}zX}UVW% &"% %X@b&YG%HHD|7$u+9Ģ0A)8'A.O:oVg"Q3X;"S7P:&
MM AE~78o-2GW
`x20EDIJMNFI26=4|WCwʯaZ" yY&qʧBA_TU74]PqFB'/3.0;<:8B`C3mG8O7(ON@RQCccVxsw}kuzk~nqgbeU``OcbQb`ObaPmm^bcScdTij\`_Tw~޿̾ȽǾſǿ٭WZS,E</LA)PC&Q?BXIDA:EMDR73f.,z&)x')#!% K3pQ-b("n"%_"J!{5"$W5.fB5kH9lJ?mL@oNDjKBhJ@`D9hKAhL?lMBoOFy]Sz`Vy]Qx^Tt[OqXMmRI[B8dLBO80C/+A/,A.,B0-A/-@.+<+(:)(;'(<(':'%9%%5!"2 "Ҳ̴XY[>>H>=GCAKDDNJKRLJQDBJ@>HFFLUNNlXWdFJ_FFlZUūxxuwxrǢÒ(&'JIL5/3gY[E9=~dcSIK`PSmdeF<;ebZb`Vnui999::92020-./+./)--'+,(+H=7̴X]\osrTWXajjAEH_bdnsrrvv@AD+)+557]]VKGFB?:WTNOMIidaږ`^WccYcbZ_ZV qqi}tqgli^vrf}xoW_^KqeFi^LpcHm`If\BXOBUL?UK@WO>WO3D<CQLH]VKcZJ^WEYPJ[RGXOGSL?KD;@=:;9CDA<=9:9474.:7255042+73*94,=716/'5,&/*#:5/6/+=41A?9LJD:4/C6+m[nWij±UB8t\PzQBvN@L@[NeUgV4+#.$QE^QdTQD~q.!/$=2j?5@0(dQFlXzurpo<-"2% 5&/!5( !3-0A=>eid|~~vlx~yILNODFYjL`b@.zmW]7(YC0|j[3'R0"Vts|yzVPLmW[@*aw^FSB4si[g^O}rdzk[\H4fP6rg[ExnZsfX>p_G}bpbHZM1|bs\hU>yYsPr`?oSiX<{b{oOthGs~~Y{S_uXy]vgL`P:j\EncMmfOtoZpm^om\~y}{zhkkiWgdT~zjsm]rhZi]MaRE{bu]rw\s`Ht^S4llFUU-PS.bcC\_AfkLheEgg=di@opProQzxYvsrGjn>nrBfj<\`6OR*`h:dj;{{TpoSRT(%#.*(/+,-('+ cH$u#@- 7-$Ai!v3+r*3z/Aǥ9ҭ;ʦ(Ƣ+:tQ|]*2=Kp!*<B|mvanyzedTT U X<8GFyLHhRLxeanQEifx54z&NUi^^T44TOwi}lULcTj'/155H
7!]5*d=.gP@ED7OPCNL@hi_w]`Rnrcik^Z[L^_PYYKacVceWll]eeV^^Qy~̾ʽƾǾDŽLOg/05I:%I</PBCK@_62"'#&"'!'!'%#(!!%Z>nV&_5#m'*`[ LJ.!:))E+)c@4iH<kJ?kL@mNDeH>aD9aD9aD9`B6cF;oUKrYNrWMtUKqSIkRHiOFeMDZA9]G>I3/=*(<**<-+A0->,*;)(:*)5%&2$&6$%7$$7##6"$#Ҷͷ[[\KITOMWNKRKJPGEMLJPIGOPMWYWZIBA~wmZY_EL[ACS87Ķк͹rrk~|v/-0JJK6/3m_`F=?wdbVROYQLosi|u}v}wci_88899:887788788556343544UOFǰZb`nqrdgirz|?DF_dc<<:B<8><<\[TKFCcb\hg]ljbnjdnkbȺ~}szsjnf|øĵͱXb`RoM~lO{kCi[VymOqcMreMxhMvgQvgYoQyjRxjLufNvhMrfIk^?[Q=UMF\SJaYGYQ@PHIYQBOFBMF9E=9B:>D<9=9=B@IVOCNEFHBCFAFLGLTPJQLKUOJRKHNHIMFbWHvqdJ̴_.#RIz6)REbT`R:.703)TISDdUte}ȳλuvfsкënyg 1($2% -!3*#! ##;45LEFghd}{ohmpRCIpCT\:Eg~:?vhOn_IW1#{kVm]JX5&l\H`8~~vlo~nkhD3%PA/D/G/xeSd]HzbwkTrdPYJ5zhTo]IvdO`K3u^Gwap{cj`o_=jMsaG~pVg|Ur}Z\rr@wo@wL]mWwRueBn[?o_GjyqXzaxrZxv`|iso\nq~~kywemkYqr^pqZedPxsclkXqp^_]Lb]PlfXlaPuiYgYEfY=dU?vkZukFumJqiJUN5G='v`yjQqkOtuTvyVrtMfgEbcD\\>igF`c=`e8[a1Z_2TV1GF'X]4quJusQwwXXZA>A<;=KILC>A0,,7)}b%y]8$H8(k:6s)!#r5à&&Ǣ)¤%ɦ%ά=8>%D% a$lI?ZBV<O0O1M1Q8\UyGId)*YQHi7r4cE-p_a) swj j?۸DƗ'Z)tI>xD8ZNeSZ3%7@&&oG;|,1276nVSI.'RIs_O^U*KG<MLCSSIRTJ~puhVTFXTFQRDgk_hl^v{p}psjmpccdTcdTdfYz;ʼƿՙtr%#'=E<2OBL?8|()$$ %%)!%'***!"(*{{, M2`@#\(&h ]N :-+.U71eD7jI>kK@iJ@bF;X<3S82U<3`G>aKBiRIjPEjOEkNEhMBfLBcI>_D;S81W@8D/+8(&6'&:)(9*(9)(6''7'(/ $- 5""7"#7"#6"#+&$Ӷθ\[\IGNMJRTQXTRVNMQTRXHDJA?JIHNnc[ƲxucKNkSUp_]{xt|{XY]a\Whdb637CDDKFDVMHjideg[vwyy|tx`d]99:99:889888789556344455[UK̯und°®rj\ψ_]Z^\TɺʥҾ˾˽ɿrsnɳXb`VqQ}lUqVpUykRvhRwjQviTwlRuhMteRyiLscSvhTxjSyjTuiPocRuhRuhRwiPtfRtgLk_PobTrcMk^YxlTteVqdWrgTtgZxiQh]Rh]Vm`OfXUmaOh\WrcRj^Tg[^]LPF0jcNò§fV]Pqdo`vRBzhvf~ma:1A5I;UJ}ĸɼŴƸvnW~aQo_vRAx~l0+#-2.)*#+)!64,2/(00(#")*&$&!%$!'$#")$#@9<gie~~~^lO[T6=Ie;XQrVte=.l]GM+ZF3ZA.purZVT]P?neTkdUyaweNtdNvcLtlwcye|gueOk\GvgL^a~kme?}uM|SrNz|Yqh?sLwO~VyV_O,qcDn`Co^GteQohRn}|f~rusbol[liXqo[uq`pqnZ~zhqn\mm[o|zhsgfVd_Qi`PndVWLA^PBh[CuiLQ@.C6,1$K;,ubhlmKmoJwwNijC\\9ac=Z]6[`8_d:Z\4XX4ED%Z[:VY4ihGehyRRT%$%*((.--?>@JIKEDG,&"U@#hL!9%K<%iW5o sjww#bK s!#"#ʦ0)ez18Ȣ4͞742{3y,r vM_0L(m4h2$yJB}\TnO+ڲH̲?B!fZVM"& /)g2ɣ-͠-c4S, H)hTwN':"7!Q*"W%+-*&#62TQG,*mMÛ,)NyX^_Pcg]LMEXVIRO@SQDYXL\]PTVJadX}~zcgY~smpemnc^aTkpcz̺Ƚȿо3<$'T86X63 % !'#)$)%*%*#&!!*+% $#(~q4)KbW!$8 !A)'*, @('Y:1cC8gH=eG<bD:X;4H1-Q>:Q=7VD>bKCcKC`G?dH@gMEhOG`E<Z@8R:3U>9?,)6&%3%$3&&4%&4%%4$&2$%-"."5#$8#$6"#2"uxtҸи[[[GFMECLUSYMKQJIOJKPABHBBLSRW~obfSZjX]VLSACJghm~bcfztphc_a[ZA<CFFC|yryx}v~xyyz{[aY99:99:99:99:89;667454566`YN޶ٰܴددӪҧҨͥ͢Ҧ΢˥odV˻ķ´̾»}ʳWa_VrS~nSyjY}nX|oQwhU{mV{lWykVynV~nT{kV|mTzjT}mO|kMxhGobOzjYrY}mZ~oW|nOxhR{kVykX|mRvdWzjVzjY|lZ|lZyhZwdXsbZvdYscWtc[{jXyg\}lYufV]MUJ8tjUʾʷtd[PL@OB]P˺˽Ź¨ʮ§Ů¬]Klp}t`8G=0;06>48?7=A82:18>5*1+:G@2>5*2+)1,.51(,(+-*::8ghdd^hjXiE]RqYtGsW<D]O8V>,Q6%}y{}]ZVylTi]EkdN__LgbOZN9rcLv{paKu[jo[EqaIfr}[~`jbEȩѯriDme=bX2f~pS~cmPojX?nhZ@m`OobMtjSqgPvlWogRso[~{frp^utatq^pnUsqZjhSxxd~|grwsbwsbc_Mqtour^hdR|zhxscwn`e^Q{rdi\NaSFTC2PA4I>3zoan_Jj[FvgNic@rpHik@^`6Z\/UY0ZZ0X\0_c:XX5MK,]`C]cBacCeeFbeBinHcuRRT" /.00.0:323+"-"0#3)"D<1hJf!tS ~_dK]Ie (sS v#ģ7Ť( '1+ȥ Ү$Ӱ!Я&ί0˩;6v/Wy6nFkHZ;?' _?2nF/_Q(,l"X@;Yy>L3JEINHEW8r@L&37JWA<2{6xL($9:c,/rb8%(@k`8TQBTUJPPCY[NSQE`bSgj^^_RbcUhi\^^L\ZIhhY``QffZ^^Q{̼ɽȾѪ}{'$%z#(!%%&,&+"( (#(&*,.$'"&"'" &#*kOL""8*)%5///'9'# #&H0+X=2`C8bD:bE;[@7O93J93E43H:7H72N94T>;W@;]FA[E?YC=VA;L73H30:('3%%2#$1 #1!#/ #0#-!, 2"#4"#5#"5!$ԸϸXYZ==FEFMQPUYW[MLPLMORRVWUZPLPzmԳLCKQJPONTKNWUX`\_cosv}tspnhHBD #@B?}w~vy}v{y~w}u|UYQ:;;99:88988999:78856779:`XN׬ԩ׭֯ҫӬѨϪϩӫΦЭk`Uǽ˱Ī÷ԽĆůYb_V}oQxhX|nQvhPzkT}nOziNvfV{mY}oV~lMxgP{kW}m]rZpSykW|nZ~pX|nX|mX|kY~pZrX|oVzlT{lTvgUueY|lT{kVzkZ{kVwgWwgWzi[ziTtaRuaOtaX|gUzhAWJNTEbZFyc{tpwlSfXBlW|eяxמĵ{yqp^qm\ytbzsc|ir}l~xe|gwbPfVobP{r_ulZKQA7G=:JB@NFARH;L@7G==PF@WL8LA;QE?THCTI<LAJYOK[PhifFhMzSxKZKhO|b|}gl}iWU:,r_\ZsjSodJxaitjUzr\rZA1xqfJsVt[ua{Xke8|VzhKo{fHt{]}vX~qtjW>eT=cN9TB.aP9rcLpeQ|rXg]S=qfPqjSf`MgcMtpYjfPsnWtnRhaIe]Gd[CjnhTngRplXc^Mjuqz}zj{xgOI:mfWaYG|whfZK~pH8+@0#ydWI2eX>zlQl}nSOE(]]6cc8YU-ZZ0_c9X]4\f9uzUksLlrQsvW_eAZ`=cgBinFptUsy]SRT.*'733535503%!""('03';*XAQ:\GS?xYvxoPpS3 4rhDJ"ɫ4ӱ(ִ(ү)Ѯ)ѱ+Ѳ)ͮ(ʪ,ɠ9zTU5T6X;(dA-N)aQ2.85s2.}q{l}~syLGQ) 1L(W.C!1BE;LB'y>{l\50r,.HIrEBfQrHF4˥(Ы-<]ZAceaUVHXXLSTGVTDOL>YUFPN?[ZKQO@\\J[ZI]]Nrtlz˼ǽǿȿſ۲$3'&&)%' )% (!(&*$&&)*,"$$* & $u#'S/""&:4(C<#0);1')  /G0+V=3]@6[@7ZA8W?6Q>6O?9D53RDCWDDH559$$6#$4!"8&%?*)@.-4!$--"* *$%(-!. 2! 3!!4 #(ӷϸ]]]_]aa`aPPPQOR`acoooYX\GCM?;BrnuisnbIOU<>]NOZ[\mlozxzruvxu{ws^WXXTUsmkXORMJPGFC}yyzyyz~w~MRL:;;;<<;<<99:::;9:9668668g_T޸֮կӭկӭ̨ϩϩѪѫϩ֯g\QɼȥóķȽY`^U|nV|mW|kUykVzlQwhNyjR|mZ}oWyj[{l_pUykUzkY{kVwhWsdWufXwiZzlQwhX{jX~kX{lX{kZ{lWykV{kZ~n]oU~lZp\}kVyiTzjX~lX~j]r]o`l`l]pTzga~nTYHh`Lpl`Pnl~gZP;xoVzs\yb¨s~ucmfTjhUnn_moaafWdh[ik^hjZghYedV][OifZ|xju|dRlVHQSGOM=egVhub^lZE]NF_OBXJLhXHdTEbQGgVIgVGcR?VGDYIG\JMcRMdTgge}}|rjLsUX8IBLP{Opuwn[gM>~h}{zr~a`]peQuiPwjT}oYkdUBWD3iWGoZFtV̫w[leM|vW|zP|rLsb=iZ7K9#s^IX?+`A/w^GpYTC0{fQtWubG}mRq`HeWCxmYhZGsjSvmSftkSy`xmUrfNlfSqkW}hzhjb]Ge]D\WEto]pjVplVrq_pldTjbSf[KaQ?yco^It_v]~nTjsUI/SF1VI6edCaj;OW1T[4elCLU']e?\bAagAda>hcBgeB{|YosTTTV,)&2+*'##*&'0-.1--83+<77<9=GBD@3 XD;+A-mS%G-jQ*pq{)A? ˧.Я"Ϋ%ͫ)ͭ+ϭ,ִ*մ)Ѱ,ϰ/ʩ1=}]#T4pI5W+nC5ug縮׮ljeX]OCHjOKV.s/G! 6 @?;O= <3,whZ^S|-+a:7ucVmB4uLY8Ѭֱ7YWLTUL^_RWVIOM@JG9NI<KH>QQEPN?TRBRQCgfXnpf{̾ȿȿݙfg('&%,(%'**")")&) $%''*%)%%)%*y $_$&" 1,-HA(B:*+%;)  +A-)P92T<5YA8U?6T@7XD<\IA`KBaIC_HErZZY@AI33<()9')+"$(*!(-!) -"-0 "0 "2!/ STQҵ͵___MKNVTXFDJQRUQOQWVYA=D?;C95><8A# +bKN[?C]ORVW[olnqnmxy|ytsliklihVOPwqp}vLCDOOQHID~x}}xnuj]cXMTITWOEGC>>>#"$##%$$'$&'&(''(*)*e\OׯױկڳҫЩΧϩӫΨΥٱ`SJϿŽƹķžzr~|oywjwwkY`]XymWwjZyj[yiVvgZwkXwhZxi\{k[zmZwhVsdPscSyhSvhZ{mXyk\~o\oat]t^qX}nQxhUzk[{l]yj[udZud\xgYvfXvf^yi\vc]|iZ{i[k[zhXyh\ygWq_WyeU}fRu_\o]hhWYTCQK;mcTqhXofSvq_\VCSO;?;,_]OGH7UUEOMBkh[feThj[dfWmn_a`Qml]tudywgzyhxwfxwfzxhom[k]N`fWul^S`P@^NamZ_nYPgSKgTJkUKnWIiVJjVFeQHcPKcRIcQE]KJaPTiYffd{}}~RwVMpGZn;1\tR|_wqtrrZJkVGxv}~~jhekaKi[JRC2TD/paHz_lY@ufY[D0nT=RF)qeGqlJg}vhNjYD}fI7(K.lN8gW;~lSRA-\M6cVA\O9n]Gj^Jyq[rmVl~y`lgTmyt`}ye~h}|c}{duͷrn]plVnwyxg~kvu]ut]s|y~lzvbh_LbUFbTGOA5`O<\K8zeaUEP@0C6'znbPH2orLP[-Xa8ekFZ_2]b6T[2[f;^j:}~ZllKppKoqNosTSRT#"0/2.*)G>,*&!957@=>A92K?0D@Aigi<75F>7J9 X>jM}]kr}# ƣ#ţţ#Ȧ%Ϯ*Ԯ,ֶ0ظ2Բ-Ӱ+Э(ˬ13U(_ `/&zi~qxlmMCFUCGe_yiR>ˢ:]3X0R/2B_n! (2\RY,&H YK}XH9̦=/98ʧ%ͪ+fW*POM__UXYPOMDQNBMJ?MMCOOETTHUTEWVHSRDYUHz̿ȿȿċ29)%(&&&((!,+"*&%,',"&|"%&*!&%)#(|#%_)&%)=7-H<*"@4&-
-  *=+)L62Q<5R@7T@7_HAjRFmSGkPF]A<N45]>?kHG[99P56@+.?*->*-8&*,",!0 !1!"0 "--/ *MOJҵ͵]^_YZ_NLT31<87@B@FHDJHDJRMS838<9C%"*bOQ[AF\NRNPTolmsnlzv~vontnlzOKKVTXILG}wolseV[QOSJUWOcc[_\Umh_^ZOPSM432+%&3**0((0)*0)*,'(*%'f[LװٲײشΨԮϪ˨ʧʧվղYOGȸ|}}oxvjqpcrpdttizxkt}õǺZ_]\ykWwhXvgTqcWrdXvf[{l]|m]{l^}l^yk]|l^oX{j\~oX}mZrS}lY~m]o]o\oW{kSzi\}oXwg[yf[xg^}l_xi`xi^{k_yi^wf^yia}m[yhZue[tdSo_Po]Pr^WwcKjURn^WcUVUJUTHXUHYVHebTXVGSRDbaPwubxvfkhZuq`ywgyygxxeyzgttbstbrq_ut`tt`zyfwsaurawtaxufxr^xdKxWDk`T]fX56*RhVJiTSm[ivcmzdSnYPkWPiUPjXZuaVq_OeTF]LKfSNhWSl[Vo^fgc}}~WzSSwLaybVw_{xiq}igV~i~~}aa^y}sbndQxwcJr`KdQ<YM=iYE{kU[O5ɿj\K4q]Ft_Iu]j[HO=+Q/[8$yhSgZGg[KndOaTAmaMumYyhtx{{uavnXwoYuqYmxua~j~iuywckhRhdMqnVvt[jjwtbsp}{hwuf{~zd~|gw~k{vfmeUbYJi`QjaRk^Nj]MN>08({k]^OCE<.zoCysCTU4HK,ad?TT-TW)fk?]d6ho>^e<hqLgpKbcdESTU#!#" %$&" B:**&213;883002.0><?%"$XWYmprcdfTQND8.D0W<mM`lx Ƥ$ǥ Ь/ϱ0մ-ѱ)ִ)յ+ձ+ճ&֯;e:7 "eZbIoM8zI-`CfGhPyWϠ.Ӭ"e? Y8B( [  fj?:rauapV|\vY\2!'Ϯ%ѯ%(+ǥ4iW!EB?FB4JG:IF;EB4LH=WVNTQJQPFSRHOMBKH:TPBy~ߺ(''+('))(!-+#+#/' ($)!% %%)(. &|"f##3#4.8RD+;322';."
+  *=+)L62Q<5R@7T@7_HAjRFmSGkPF]A<N45]>?kHG[99P56@+.?*->*-8&*,",!0 !1!"0 "--/ *MOJҵ͵]^_YZ_NLT31<87@B@FHDJHDJRMS838<9C%"*bOQ[AF\NRNPTolmsnlzv~vontnlzOKKVTXILG}wolseV[QOSJUWOcc[_\Umh_^ZOPSM432+%&3**0((0)*0)*,'(*%'f[LװٲײشΨԮϪ˨ʧʧվղYOGȸ|}}oxvjqpcrpdttizxkt}õǺZ_]\ykWwhXvgTqcWrdXvf[{l]|m]{l^}l^yk]|l^oX{j\~oX}mZrS}lY~m]o]o\oW{kSzi\}oXwg[yf[xg^}l_xi`xi^{k_yi^wf^yia}m[yhZue[tdSo_Po]Pr^WwcKjURn^WcUVUJUTHXUHYVHebTXVGSRDbaPwubxvfkhZuq`ywgyygxxeyzgttbstbrq_ut`tt`zyfwsaurawtaxufxr^xdKxWDk`T]fX56*RhVJiTSm[ivcmzdSnYPkWPiUPjXZuaVq_OeTF]LKfSNhWSl[Vo^fgc}}~WzSSwLaybVw_{xiq}igV~i~~}aa^y}sbndQxwcJr`KdQ<YM=iYE{kU[O5ɿj\K4q]Ft_Iu]j[HO=+Q/[8$yhSgZGg[KndOaTAmaMumYyhtx{{uavnXwoYuqYmxua~j~iuywckhRhdMqnVvt[jjwtbsp}{hwuf{~zd~|gw~k{vfmeUbYJi`QjaRk^Nj]MN>08({k]^OCE<.zoCysCTU4HK,ad?TT-TW)fk?]d6ho>^e<hqLgpKbcdESTU#!#" %$&" B:**&213;883002.0><?%"$XWYmprcdfTQND8.D0W<mM`lx Ƥ$ǥ Ь/ϱ0մ-ѱ)ִ)յ+ձ+ճ&֯;e:7 "eZbIoM8zI-`CfGhPyWϠ.Ӭ"e? Y8B( [  fj?:rauapV|\vY\2!'Ϯ%ѯ%(+ǥ4iW!EB?FB4JG:IF;EB4LH=WVNTQJQPFSRHOMBKH:TPBy~ߺ(''+('))(!-+#+#/' ($)!% %%)(. &|"f##3#4.8RD+;322';."

 '<,*N<4WB:[D<fMCpVKkQEqUGnQF^A<L10R11T//S23K11K21>(*()3"%6&%4$&1!#. -$\`^ҵ͵MRW@COB>FFBKEBHNKQHDJ@=G>:@.+0B=F)%/yxhZ_]EJrdeyytֿyph`g_^+%,EEENOFURGgdZ\XMrneqj\{sc}m|]^Y*++944C94C84B73@61>412--pg\Ӽȵp{zbJ¦Q=#ϼfP7}gQvB,ͺ:0+~~tuwktthushvth{zntõŹȶŵZ_][ym[xjZvh[uh\yiY{lUyjYzkUyiUwh^zl_xkZsf]whZrb_whYtfZvh\xiXwgXvf[xfXufQtdYvgcxmc{m^{mYwg`{j\vfXvc^xgc}m`}m^xhb{l^vfYtdNq_KnXPq]OnYOmYRp^PfXYaW]`SccTfeUc`QecSkfYojZvs\us^tq^pjUrn[tr_pn\rr_ro\us`ro\to\sn]vs`vr_vs`xr`ztc|yfymWjZc[M#&AB9PkX[xfQn\Xp`dsau~iIXFRfWSm\KfSG]MQgVUn^ZraWn^[tbaxhggc~~{b~SJw^vxzvomhizy~^\YdXCsκd[EskrcMh^Hu>+iP]H2UA0n^H_P?nYG^L6\N;wkVl]LUA4aO?gZEneOrjTngSqkYrp[rupq}|f~f|{d~fleNpgO{tZ~{czw_wt_miTzv^rzw_toXwrn\niUheQqp^mmjUqws`}kx}xdlfTd_MjfSkcQogQriUiaTiaUe]PXK?^RD:+F8+TL:skH[R4VP8cdDilA`b4X[+jqBhkFUK2^ZAikKfj@^c8hSST'%(! !$ ?7'   0,,.*+/+-+').'(:65A==@?=\]^bdfLIM8/-C5$K5V<tVgpx #ţ&˩#ϭ"ײ%׶)Ա'ڹ48^Y,[N0W +&wo]PW У<ySQ1M3
& L)?~S&h+}255Ơ1:EɞCɧ,ɫ0ʩ%ӭ!ͩ"(:XK'FD=MI<GC6NLBJI=JG=NIAB>4JG@^]WRSJIF:SNCzЍ5>)(&'(('( (++"+"*%+!' &%+ %!%#*%+#&dA"$ 0,-D:5H>*&''!# "
 &A2-WA9bH=iPEnTJhNCjOAjNAjKA^B:P64S44P12G/1<((3!$-3#%8''5%$5$#3#"1# ryuҵʹPSXDGTD@DFBFFCGKHOQT]bfnfgm-+4GCL*&3a__|uy\HOжֹӲ~zvrc^[KEEJBGNFJ&!'FBK??>nn_pv~wqj]pg]OGD+/2!!;,+9++;*+:,+<.,+'+"#wi~kYjSiU|dhmYEiT@jotaNULGvttȻҿ˺Ƴsxufsqdli]jfZhcXe_Ve]Te\Ri`Vqf]wkaY_]WtfWtd[pfZpeXtfZxh\yj_zk_yl^xj^wj\qg^wj[tg\ufZoa]tg`xkayl^yk^yj^vh[vh[{kZxjYoa\rc^vg^xiVrc\yjMr`Yvfb|j[ud_wh`wh\sdYudZzgUt`MoZOp[LoYHlXFhW5QIISL\`Sln_oo_hh[_^TaaWdcVkj\ef[ggZa_T^]V`aWfg\gh[ln_ssbqoatsbom^srcwvh|wi|vhp~xho^VWRF6:0YaWC\KNeTQkYJ`RMeV[kZy~kaoZUp]\tdXn^Wr`WsbXtbVq`PmZ[ucghd~~{ye|Vpfk|zvqooszzwvy|w~}igdu^i[Gk[GK;+^UEc[IO@/jZD\L9N?1UJ8\N<_I7aQ=~j{zn`aTErwtq_i`Pg]Lb[KgaNmfPlfOvs_lyyb{ze|oplS}w]woYuqWnjTuqZsqYvs]`]G~hwrZroXnjjfaItp[rr]jmiVzucyu_nzxeywbplUjhPc]NG6,yq[uoU{fxmePldQpgSmgTmeTkcTiaSlbTaTITG<M>/~o\D:)<6"F<'JE)bc>]^6_b6ek;]`3|rYNH.HF)]V@TE3w`UUW'&(.,.223/.1-)(=4(*"(%'-+*'$$%!"(""*#!6/.50.B<;:52D@=A==C@AROM_XRMD=G:,P9`EuWdn{àɣЫή+ֺ:'3ʱP32ӱ ӱ&˪%Я(Я(Ӭ1Ϋ4ǡ*Ÿ6=B<<Ĥ9ë5ȫ/ͭ*έ-Ю*ղ(ֳ,ش-ر.ֵ4ճ<ҶBɩ/ʧ ̧%,|7E>0@;2>9.@=0QOGKIBDA8FB9IC:B=4JJBUTMSQIQME{׶+'()'$") &"( (!(#,#,"(#+%"*#!%#)#)#*((m!L,*/G;3H=$0,!
-  # )J62_E;fL?fK?_E:^E7_E9]B6`E;]A9Q62C+*;&)2 #1"5#&5%%5$#4#"8%%7%'#е͵RUY=@LEAFIGKLKOQV]cjs]aga`e,(/E?H<7>xksȴǥָضtni[SSPGHMBEOEGLDIGAFD>AYST6/5)#.BAA``Wsi_\RLmbULHlZVZONB5:\NRG=D"&0
+  # )J62_E;fL?fK?_E:^E7_E9]B6`E;]A9Q62C+*;&)2 #1"5#&5%%5$#4#"8%%7%'#е͵RUY=@LEAFIGKLKOQV]cjs]aga`e,(/E?H<7>xksȴǥָضtni[SSPGHMBEOEGLDIGAFD>AYST6/5)#.BAA``Wsi_\RLmbULHlZVZONB5:\NRG=D"&0
 E8=C8=G38C69D35
oTC3vcOdzǤş˵ѼǠ̸{p`{yvxuuiondhcYeaS`XL^ULbXIqg[|perzW`]Y|nQud\yk`wk\ug[xh[xjXug\th`xl^wj^vj`xl_vk\vh_ugZpbSq`Sq`Vra\sf^uf_whWvdUvfXxiXvgUteVvf]|k^|kYvfXseToaVscYo`]tebxg`sd^qbZk\MeSNlYNkZE]NC^OIeY<LI<KE6D>7D?5E@<MJ,<>/9>-58*2:.7<3;>#,8$,8(2;%.5)15,26/38.14MQN.36*/50378:@<AH?AF9@O4=;Zh\ShZQdX\qcZqbXpa`|lXn\pzcp|dQfTTo^Uo_Un_Tl[PiYQhXVo^egc}||zhfptYGiS=ssyqqsvst{|yzw~~}`]ZnaIzjRqaLfWAreP|r]kweO@0rbJpXucxr`zq\smUrlZjbPjdNywbkwrXvqYw}qqts~fqlUg_Hh`GrlTphOlaGulT~mfMpeMtmZkfPupVztSvnPl˷~~{jjhSlhOVM7SI2aYGZSF5(I?-y[kgSzwdmeTkcSbXIg`OlcLjdRh`NwmZpeTqdUnbNTC28**"7-"C6/G=-[Q=a\?_^:_T7o`LskLIG$JB.nbI|pTUTU"%#%$"$)%&75764797792(5,-+,1--+'((#!-'$0*(/)&=855/+,% /($7/,@:7C><WVWnqqwz{VUUJB=B3'?+Y?uUo{&,vͩ)ܲٳ״(ٶ-ί,ά,Ϋ/׳*׵+ӱ-ή,б2ΰ,ʪ%ʪ%Ь'ʪ'׵/ض,ص2ָ4׸9ؼ?ڼGѸDؿTտZͺb~Āֿ\Ȧ%¡!0j]:FGDB?1@=0=:.GB7=7+:5*NJCB>3MK?KH@JG?KG>EA7zSU*()'!-(*%&)#)*!*#)#("'#'}"!%#$+!+"(m!!Q!%$5K?/D7*82#!"%$ 4$%S>4^C8^C8\B8R;2R:1P80N6-J1*@)':&%6##6$$8&&8%&3##1"!5#$:'&'ϵ͵SVYKNUB>BDAFNOQjnvejsYZ`WU\)%,d`csnmzm`hʶȩܼںidcMEJMEHMEGSJMVNPd]`xrrf`^LFINMREFF715cYZJ=Cv\\PGJlZ[g\_B6:jYZD;@&)2$%:(,;+0>+.;,1C13 y|jU̿~<8:PHD{qf}sjtvs~n`tdp]{fSzeT}jY}kZp`xhtcsavfyY_]RufJp_RwfXvg]yj\ziZvhZxhWugWseVscYvfYseVoa`zl^xiWvfTta[|iUvc]xg`xi_xh`wh\ud_xj]xiSucMvaTwc^yhcyj`vh\tgYre`vhYn`_sd^pc^nbbob^l^LWNOZRW_WW^UQXQQXQIRJAKC<IACZQA^Q7QI3@A;GH:FF:FF4AA3=A/9>3=A(48'2<'1=&1>(0?$,:&0?%0@&1B&1H8E^2<M7HZ4JIASDMfWLaSLaSTj\PhYQj[OfWJcUQjZWbPxg^lYNdU]qdTj\MdUPfUVl[ffcz}}~~wy~~~yywzv`sXGmYgklpqsqrw{{{|}}}~~`^[wcukSwkTkcLycͽ{rXreJi_Hh`Hf[EaU?[P>\S@]U?xpYws\}x^zx\~{cwrj{wavnXcXBluj~|ciygzsV|\sjQPH5_U@{ixuoZvmXrhRg_FrmR}iu|xxs~|hqv}~zj~{mƳZQ?iaO`XDlaMnePqgTi]Ni^L[P<qfLs^gXM.!YKBTC=D6+l[?hYCj\M[L=OC.[Y3eg7soKi_<yWVUW"!#$"$$!$%#%'''#!#)')'##(%&)'(1//6/&C;.4//,&%1,+,&#4.+710)# ,&"6/,2,)4-*0(#2*$5,'930BA=`a_sutPMQ:68,%!3$D- nNdhfX> e"1ÚƥѬѫѯ!ά'Я.ѯ+ѯ1׳+ٶ-ٶ3Ӱ/ұ6յ8׷7Ю6׸:ӳ2ܾ@پGQX}ߒɕ“ºlKĩPϮ.&q,HE?RRO@=4>:.@=0A=1?;,A<0EA;LIB73'?;1HE=DA8NHA} ,)'(*) ) +"+ '"(!(!,#-&,#) '"'"&!%#!*!*$*x()[#$ 6PC,H8-@7"'&40&0% #**D0.W?6^C8\B7U;3O6/J4-E0+A-)8&%7%#6$#8&%7$$3##2##2"#8&&5#$yyxε͵UVYRPUaYZWSTOMOkqw:;F 53;&%*pmmsnlyq~.%ٿ®gfeulmullulla[\ha`wtr1,.MKPCEE@:<bWYQDF~ccUHIlRS`TU<.3cSS=6:$(/ #!=14<14?.19.3D36 TKFrcebJLLfklLSSGIIfhjtxxV[ZPMOMCB~q|kxexdwewgtcvgntwx{ʺʹʴʷñZb_[{m\|l]}mZzjWug]zl`{l`ylazn_wk^wj]xjTqbWseVqcXte^zkb}mWrb\wh]xj^ti^uf_te]obcviawiazj`{j_xi_qb`pacrcdsfduhatfZpdH]P^tf`odYe[WbZR`ZQ`XWb[[b[Z^YTXTRWRQTOYZSMQLHRKHTLOVNMTMGSJN]QITHJPGHNF?G>9B<:H?3?;*44+560=>:GH4=?+5<+5?*5?5@J@Q^C_[HiVKeWUj^YoaRl\Xo`Xn`J_QNbTQeXQg\UeWdjWsvcVcSSf[Ti\Sj[Tj[ffczz|~~}}zwtnlf~d~lU}gS}gjtosqntwy{{z{{}~~a`_yublyqqmVpiSmeOoeNe\FYM=\QD\SDfaJunU[S@jcTplWytXyrW~fjzwad]KYN<aVBqjRmyw]}dsĭs{on|jzfmulTllzu~m}|jwyu_zt^wo[tlWulVtoZ{yf|wenfSj`IndMi^Ki]HfYE`TGaTGrhV[M5aR>."VMFL<3>/)5$nJ}hFVE6eU9hd=no@X{tLsjDUUW&&*))+" "&##+%&,((0*$=5&,')+'%-'(6112,*:316/,5/-.**,('2,+-&$3,'3)$0)-&EA=LLH8514,,1,,0,,.*+3,&?0J6VCE-f0`j$ ɦͩ ̩ѯ"Ʀ ӱ)ӭײ"ڵ$ش&ڴ-ڹ:ڻ>շDռMϴC^ƖurVzOn>|b#7%Ψ1˥).\K*@?>KH?^^ZED==9,;6)<7+=9,KH@PNI?;3D@8@>6NKCEA8}ΚUX+(''&' -$/#)$*!)#*"/#.%+#) *#!%z!$!% %("()-g"$! 4ND2WG";4)/)E;&I<"/$
$,*'J62Y@7\B7U=3Q70K6/F0,;'%9'%7%#6##7$$:''8%%4%%8&&8((-''ѵ͵VYZLJO\STh_^uon#"+%=<FBAH(&)mkjqnlyrkȷ/cbc|z|w|mpiNLK3.9@ACD:=XLNQDFhOPYKLbLLgZ[8-2gWX;6:$&/
-$#@56>6:?25;68C58 
+$#@56>6:?25;68C58 
4/,Y^]TUVlqqQUWRTTwyx_bclgg_YYldaǷȴ÷ȱƬ¨u±ƧjaaKDtOLVUZb`Yyl^|m^zn]zlVziZzi`{kczl_wj[wi`xl^tg_ujZpd^ui^ujdyndxjcuh_uh[uhbxjcxj_uh]ue[ueYxfMkZTsaWudbyj`vdcxiavdhzjdyj^vf_vhbuhctfZf[Yf\I]RJ^RGXPN^SS`VT`XZf\\g^clb[c[ae`Y\XVYSKOJQYSGWMLXOOSLJPIKXOLYQLVLJTKOUMLTKJTJISHJRIJRJJULJRK;CE9GMDVSGXLNYSO_VWn`Ul^ZrfWpaZqb^td\tdWn_Tn`Rk]ZiXrwbw~j[m]QgXYsdffcz|x|~~|wrmgfoquzytspu~{|~||~`^\yudzweus_pmWrmU~x]bupUoiQspWjfLrkSjeQrp]qn[roZssYliPlgVlfU{xdfbLd]FicKnjRf`IkdNkieOqmVleMtpVѺī|]{u[x|fuq]u|{fws]gcJroT{z_xv]h~|e|fxs[kq|ujLtP|nKi[@j[Ef]HnlYuqa|wdun[zt_d]HngS|sal_FteIpcJwiPreNrgVvj^naPp[EyjRtQJ6f]MTH8qbD>0`V&QI(si5f_2i^=YO/||Spz\UUW" #+), # $/'#% )$!,&&-)'1*&5,*5,*@:90**50.2-+*$"(!0*%:2.83/81.62..*&2-,9202( 3* 1+'=8<* 8(O7T<}c4u~ŤĞΪ!Ǥ#ѪѪӯձԱص0״3ѱ8hukIcvf9~=3./̦0Ы,Ω(Ơ$pn<^]YPPQEB<LHCCA9C@3=8,@<0<9,?;/KGAIGARNH?<6YXQMKF}ʻ+/&(*&)) '!' )!*%-!-+$,!)&,&*~!u "x!%!&!*!(#s%(, .@82QC(@7!,"H=(I9B4"" &*2!."'4&#O94[A7W=2S80S:2M5/H4.F1,F1,C/,F2-C/+<('>**9(''Ѷζ[]^OLOF?DKEG\TVB>DABHJKP>;E0,2mjirml|uqvl;,(_`^hfdƅ||u=975/<::=K?CSGJ[MMeNO^QQ^HHiZ[5*/gWY949#$.
) 'D;<F<?C69C;>D78
(%#lroRUUߤ^edKLM^eb}|vusl<9<{lnWP{UKƧ{SIT86xtk<=v¥оǸɱc99Z>>U[]c\]g@B~TSZb`^pYxh[wiWxh\|m[zh^xg[ugWteSrcYsfbwl`uiVscYuh]qfZqeXrbczjUp_Zuf`xkdxjbwi^uh_zjWudNr`Ls`PwbTubZxgUtaRr`Rr_[vccyjawhbvhdvhcufatf_re\od[occvjdxlVj`J\SWk`g|mfyh_obGSMYe]LVLU_Ubi`^e^Z_YRYTP^UMVPLRMMSNKTMLTLNVNLRLKQILRJIRHJSKMSMOSNNTNKQMIQKLVOSaWP^SSdWZn`Uj]RhYUo`Po]Rn^Wn_Rk\ZraVfT|}htajm_feb||}}xsomx~}z{wyz{{~~}|oa^\]UBWP=c]IicNjbLleIohJqkRlgNmcJneKf\DohPtr[qoXvv_pmWtmTmdGogLqjOldNnkWqypjU|d}zcruϸ̲ȯ}vdrmoy}fgjszu_nfLqhM~ar}uVyu_|[uzhzrYqeN|qWkaJg_Kf\D|sWy_eY=eVDYL=\N>cSC]P:ȬwmPpfHmb0fh+km1ik9so=Enf9iQU(SRS
@@ -241,17 +241,17 @@ kJBYOpJ0x@at~j}t{x}pc\Z(#y\<2eZG~jZpjXX_Tvl}s}
 5&D380ٷҼ[[]>>G>>GBEMFHQ./:<>HKKQKKOC>D\Y\ljk}vs|jcxïͶػñlc`mdcjdclb`{#!QPRef]kh[ndyiac`Y|~u{yxyr///444333334111111011011001/////0(&&֬ժ٭թөӫگթիϦϼXMG636fabKJۓ{xrKJe^[DCþ\Yg[|tuxZVYEDwZV][[c`^}mOs`QwdY|hY{iZzh]yhayl\wgWvd^{kb{mcwkf}oXvf]{jXwfc|maviatf`refxmbvjcxj\sd\vff}lhof~oc{mg|laxgazh^zgZ{g\zg_wgavfaufbzjcyjh}lkngzi`udbyga|ihomtjokrc}kh}mhykj}nk~mk|ll}ml{li{kh{lcwhh}ljng}khmhnemjni}lnotuproqmoh{lk}nj}mkng}kcxgawd_tccyhg}k_vdf~lg~mg}ndxlcyjfzjhyjd~kfoffc}vzyzzzzzz}|~}{}~~}|~~yxyzy|}{|||}~~w}}~}~|}{}||{zzx\YUUJ6UM=]VDnfOvoYuq]r~fvr\}pxv_xqVvoTqhPsmWtkSm`Em`EthSk`NvjVl`IoeO}t_fXBshJe[?aV@pcOl]J_Q=eYEL<-I:+cUCdU=j[?hY?}cwnUxrYyrUz]t̵v]rYhkugPovgLygL}e_P>paIxiPbT=mZDaK3W@/& QC5{hS{hR{iW+ q\Izcx^{oVl`I~hqq\QB)TN4zqYtfRbWCYR:yoWriKvtWi\T4dZ>OMO    #!$&#%#!!)$#(#!-((4/,?990,-.)+1,..'#.&"& )#!(!( #"!"'!3,)+& 730,&$'""($"(" ,'$.)&,&$.&#2.*0*).)%840FC@=96GB@[XU830C>;C?<XUPQNJEC@@;9?:8841C@<WVT?>9=7294-RPHCA:PLFEA:GC<WSLPLINNGNNHC>893+82+:6/72*0*"0+#/+!72)94,50(4/%<9/{ʽȿȿȤxw$'+*( +!. +")&!' %&%$*"'"(#%1%Ay5a/`-qU/a@$OTq "| !%X >[J?[E,D9"2,'0/#"""""#! 9<<?FDP0ZL%]P$QE"5&!Z'-f$%( $!

 
-
+
       "$!!)&'*%'5019569561/097883470.61-+#3,)1*'?99>642,(0+%+% 61.0)'2*)=78C==0)$,%(!' '".)&+%"2-&0*$81/,(%)# -($62.,'&60/1,(51/EA>B?;TRP\\YTROIEAC?=XXVWURLJGXXUOKGUTMOMGQOI>93IC>VSNOLESQKLKESSMPNHYYRca\SQLB?7<70;6.?<4?;41+$.( +&72+{˻ȼĽž%+(). *,+)''%~$ &#")(#)"( &!F.y5p8n;z\)mS)gG,NMg !~"$vV ;YG2L99OC&81(& !"#""#!!8<=AG@'60]Q'^P!O<Hd$2L#4&!    ,2@ 

-
+
    !"!!  !,()-)*-**)%$5001++-'$0)&1,,3-,$3.+2,(2)#,#0'2(5*"-&)#'")"-$2-(1.++'$0-*1-*2,*3-)4/,740GC@KIF><9GC?LJDEA=LJEKHF:83GD>EB<FD>ee^ggaB>9:5,:5-JHAnqjGE>A>4C?5C?7IF@<71EA:<8061*,')#.)-(-'51(zߺɼǼŻŽǿǿʿҾYZ&**!/ ( -)&$$%*#"&!)('"$+'|#F.`*g.r=h6kR'\A#K DR%p%s!@*(3ZH3L<,C7'93&0,!%$ !!#" "4;<=D<!# 2.`T,[J"G/q<Un4N@.$    "E6* 
- 
+ 
   **.114758957B>?@;;A9:?<;,'')$#-(&4-*5-(.&'3&0&!+$1'.#-%1)#(!% +'#.+'.)%.+'5/+4.)84-;61<6/?;5@:4>:4YXUYXT4/)83,72+;4.A>893,2,%?;4UTLbb[QMGC@5>8.95,83,50&3-$3-&.* )%(%($'$("E@:{߸ɺǹƺżǾƿƿǕ})'(*+)&#& '#  &~" '# ''*}"u!~!a8q3Y'a2vZ5W<M-#.?-d'7Y%)'>8/_M4QC&<2"6/"+(!%$#!#"$$->:<B4!"""##$%LF%\J$W2"xV3`RE;&8+!/$ 
 % E'6
  /!?0D6H< K="D9#WWX01>-+'&4 +)'489F66C)'4$
@@ -265,7 +265,7 @@ kJBYOpJ0x@at~j}t{x}pc\Z(#y\<2eZG~jZpjXX_Tvl}s}
V',5 /,,++3/:%3WA;'@,C-9#8":(D/>*?+:&>+>*=)>);)?*8$=(>(>)8#9%8#9&6":'acanmqgpkkd>CGCHREISGMUKQVNTYNSYLPXJOWHOVHPWHPXIPZISZISYJSZJR[HS[IT\LS\IT]KU_KU]LW]LW]MW_NX_MY_MX_NX`NZ`NZ`NZ`OZaO[aOZaO[cP[dQ]cQ^cS^dR^dT_eVagVagVagVagXbjXahXbhZbiYdhZdi[fj\fk^hkzhooZfkYdjpzynuubloakn]il\ginwx{~Xdg]fk`jm[ejZej^hiŧ^ZZp^TcQGdSLhUN^OEe[Irݹ‘fdi:5BX;9;
wTsZiN{Y
o:D|{]_6?<D>KW^mfofYk˞ЧwbcSJWF>YI?iWLjWMeSJ^OElaO~e}cf[GnaTk^Qk]ReZJk\PXO>PK;RN=b[L_ZLRSAQQ>ST@PR=MP;ML;RO@XPDYRD`RHeWMgZOhWLgRLQ@;w޶߶߲ݯݱܱܱ۲ڱٯ۰ٮۮ߭ԩӫҩ۪ܭث߭΢Ǡ}`_^vvkttjttitthtshusgusiurfvtfusgtsguvltvltujtthx{nz{}}~orzzz~nvrcmiXjfUt}}{|{xkyxkywj{xlv|rx{zyrnbuqevrevrewsgwrhuqfuqguqfsqfsoermdqmcqlbmh]kd[ng[qj]voc~wj~xk~wj{tdyo`yn^wn^wn^ul^tk[rhXpcStjXSK0ulUr`T^M?~pmhY~wk^PF3,~&0L/JT+pqO}xjwueijevtuupwwwz{upayg}kvew}|gxhuo}yzur~{tug_QcT^R{XKrpxt~iVWIWHyJ?_Qtragj\hj\hl^leUgY}aU|_Ry`RwVRD`YMC?3a]Suvdkts`tsar{ts^pyxcss~vd|`RaQ{]Lx^NebQbgUdhU[]Lysbr^^JaP{XH~n\ps_iUR0.413/6!26#5"04"5"4 8$49&@.F6?.8$;(55!5"<'6!3116"5 646!27%7%B0>,fSzeQI6/3<*;(>*:'8$~2 z6&m0e0W)D&-r/,15 -.C-36 0/?)H444D.44?(A->-9&:&:&A+>(<+<';&:&;'6"8#6"07#-8&bdalhmopn~^^\>CHHMSIOVMRXMSYNV[OU[KPYJPYKRZKRZJTZKU[JTZLT[KS[IS[KT\KU\KU\KU]KU]LV]LX]MY_MY_OX`OX`OX`PZaPZaP\bQ\cQ\cR]cR]cR]cS^dS^eT_eU`fU`fVagVagWagVagWagXahZbiZeiYdhXdhZdgnvuw}z^hkZej\fkbnofppajm_im_jmistx~{Zei[ej]gk\gkaknWbd駥[WVcSHdTKbQI^RBڧ|lvdw42?F2:F%$ [EkJ
-W qVC[_UYpG#$||iڷ^J@pbViZMj[S٨ҨѩҦഌmOM8RO;TT:ZX@UXCQR=NL:RS@XTC_]J_UFf[L\QCbZJTQ?bWIfXMXL@ZMCSG<ZSC`PEF83uެެܫثةߵݲ޲ݱۯٮٮ׬׬իԫԬӬѪЪٮԦ̢ˡ٬ڨӦȞ¼|`_^xuivtgureurfuskvuivuivuixvkxvjvukvvivuguthywk}~|{z}|pql\so]b_Q@?554-KF:lfVpjZwrc}~n|s|||{u{}u~vyuiywjywjywkyvkywjyuixuhwthwukwrfurftrftqhusjrqgrpgsnfpmeqk_lf^ld[pjX{y]kSVX-_]?mcTvhUWC4obVjaRxpc~xj|nq}p3((F7gY@kt|ba><<fVVu/)x.'z5.pC9t|oTTQce[TVLJJFlofFICHKEs}F=JAKC}G@weqmvA9F?F>F@uVYQVYRszljl_psdprc{zjxzeZF>H>HAF<}uxrurcs[QWJ]OVIaR?A9EE>hjbM60=2~3(~.%q5*]`PaZNUNDd`RzzhvjjVvpq\tutazuwg&v+ w-!m. {nYegSotiiZlSs\q[|hriSP,/1.0232123438"<+8';)8&<)6$;(5#5!4%4%6!3 24!5"6$247"6"5"4 4!2!>.`PgQ?O=3 28);)9'?,;)7%9(y4"r4$d.W.8 7 _'-53+.n*;!_(27!8#ZG;&8"9"6%6#:'7&;'6">*:&=)5"A,<%9$?,;(8!7#9$;(08$cfaongknkrpj|{QSQEHPJNWKPYNSYNT\NS\LR[KS[JR[JR\JS[LU\OY`PX`OW_OX_NW^MW^MY`MX`OZaOYaOXaOZ`PZaP]cQ]bP[aP]bQ\cQ]cS]cS]cS]cU`eUaeWbhWbhWbhWbhYbiYciZcjZcj[el[ejYei]gjv}zahi\gj[giakn\fkcmq^im\fk[fkYfkZfjdlpdllZejXcg\dh~ryuy~{Ʈϱʭǫ^[Zo[RmYO{w×jffYgQiSr\ܲYbOVHEF53&cM5_AmN\=dIm_FcWRWQ>ѬҪֺ7');)& 6MKW#.!!XJ@7\-5QVcDBvnkN&&Jw).^BK8Jc/9ZvR(!vTQ[ZHKGLYXDRK7hhb­Ų]]KZT>VP>eYNaWIdZK[PB^TEWU?JJ/OM9TQ=LL6LJ6HI1VQ@YOCQK<QK<JH4IL4VRAFC7t߮ܯ߲߲޳ݲ۲۱ڰذ׭֭֮լԬҪө֬ѥΦȢҪѥШǟş¼Ġ|`_^xxjvthvtgvsgurfutkwukwuiwuiwuixviwuiwviwvjyxlx~~~}z|~lro_rn^KJA4859A?;CA6=9DC:mfWuo`zwgp~zu~}w{wfphWzvd|x{yk{wl{wl{wl{xmzwlywlywkyukzwkwuiyuiwuivtiwsiwtkvslvsjtphsoiqm[wyEPid^80+c\Hyk]L7)h\Oe^Ori_ztfzlqvhZZL4~X/htJnbsuuS>?gXWo/%s/&u3,rN?eodUXXhne^d\X[VntlJQLSVQ{o{E<MEI@~KBrdnt_}{i|~heWGvA9LCG=H?sY`S[_UsykciZsprcqscx|h[JCKBLCK@nX|ssp`s\PYJO@SG]M [[S7 >4~5*3)o0%tjgW[VIidVyxhp|{u}jyzee'u*w.!p/"u_O{jkl]v{roYMhRt]oZtawyfhSP.1/.120025"126#4>)7%;(B0?+6#7';'5 32 7%;(9'5 222228"0324$:)n^kXHJ9:)29'9'@+;(;)9&9'~7$v6%h2b1G#>#=10/1D-H-*#/ s.,-?)F2<'9!5 ;(;';'9'7$12#;'9'9$6"7$4 7#7#4 7";'17"dgd{xqnmllsrjo||sORUDGQHLYKPYNT\OV]NT]NU_LT\LT\LT\LU]OX`PW`QW`QX`QYaOW`PXaOY`OXaOY`PZbOZaO[`O[`O[`Q\cQ[dQ\dR]cS]eS]fS^cT_dVagWbhXbhWbhWbhWbhWcgYcjYcj[di[di_imu}zx{y{u}ws{xlsrjrrcmm\gk\gk]hl\fk\fk\fk\fkktsovu`hlYcgenp\fi^hjv}zêǬͱũ^YXo[PlYMxldrqlfSdO`L^M`Q`QdVcUvio_?9.9(+dRK\F"^AV9iP&iWNJB1}vuD!.",'XIE.@"`).NH
+W qVC[_UYpG#$||iڷ^J@pbViZMj[S٨ҨѩҦഌmOM8RO;TT:ZX@UXCQR=NL:RS@XTC_]J_UFf[L\QCbZJTQ?bWIfXMXL@ZMCSG<ZSC`PEF83uެެܫثةߵݲ޲ݱۯٮٮ׬׬իԫԬӬѪЪٮԦ̢ˡ٬ڨӦȞ¼|`_^xuivtgureurfuskvuivuivuixvkxvjvukvvivuguthywk}~|{z}|pql\so]b_Q@?554-KF:lfVpjZwrc}~n|s|||{u{}u~vyuiywjywjywkyvkywjyuixuhwthwukwrfurftrftqhusjrqgrpgsnfpmeqk_lf^ld[pjX{y]kSVX-_]?mcTvhUWC4obVjaRxpc~xj|nq}p3((F7gY@kt|ba><<fVVu/)x.'z5.pC9t|oTTQce[TVLJJFlofFICHKEs}F=JAKC}G@weqmvA9F?F>F@uVYQVYRszljl_psdprc{zjxzeZF>H>HAF<}uxrurcs[QWJ]OVIaR?A9EE>hjbM60=2~3(~.%q5*]`PaZNUNDd`RzzhvjjVvpq\tutazuwg&v+ w-!m. {nYegSotiiZlSs\q[|hriSP,/1.0232123438"<+8';)8&<)6$;(5#5!4%4%6!3 24!5"6$247"6"5"4 4!2!>.`PgQ?O=3 28);)9'?,;)7%9(y4"r4$d.W.8 7 _'-53+.n*;!_(27!8#ZG;&8"9"6%6#:'7&;'6">*:&=)5"A,<%9$?,;(8!7#9$;(08$cfaongknkrpj|{QSQEHPJNWKPYNSYNT\NS\LR[KS[JR[JR\JS[LU\OY`PX`OW_OX_NW^MW^MY`MX`OZaOYaOXaOZ`PZaP]cQ]bP[aP]bQ\cQ]cS]cS]cS]cU`eUaeWbhWbhWbhWbhYbiYciZcjZcj[el[ejYei]gjv}zahi\gj[giakn\fkcmq^im\fk[fkYfkZfjdlpdllZejXcg\dh~ryuy~{Ʈϱʭǫ^[Zo[RmYO{w×jffYgQiSr\ܲYbOVHEF53&cM5_AmN\=dIm_FcWRWQ>ѬҪֺ7');)& 6MKW#.!!XJ@7\-5QVcDBvnkN&&Jw).^BK8Jc/9ZvR(!vTQ[ZHKGLYXDRK7hhb­Ų]]KZT>VP>eYNaWIdZK[PB^TEWU?JJ/OM9TQ=LL6LJ6HI1VQ@YOCQK<QK<JH4IL4VRAFC7t߮ܯ߲߲޳ݲ۲۱ڰذ׭֭֮լԬҪө֬ѥΦȢҪѥШǟş¼Ġ|`_^xxjvthvtgvsgurfutkwukwuiwuiwuixviwuiwviwvjyxlx~~~}z|~lro_rn^KJA4859A?;CA6=9DC:mfWuo`zwgp~zu~}w{wfphWzvd|x{yk{wl{wl{wl{xmzwlywlywkyukzwkwuiyuiwuivtiwsiwtkvslvsjtphsoiqm[wyEPid^80+c\Hyk]L7)h\Oe^Ori_ztfzlqvhZZL4~X/htJnbsuuS>?gXWo/%s/&u3,rN?eodUXXhne^d\X[VntlJQLSVQ{o{E<MEI@~KBrdnt_}{i|~heWGvA9LCG=H?sY`S[_UsykciZsprcqscx|h[JCKBLCK@nX|ssp`s\PYJO@SG]M [[S7 >4~5*3)o0%tjgW[VIidVyxhp|{u}jyzee'u*w.!p/"u_O{jkl]v{roYMhRt]oZtawyfhSP.1/.120025"126#4>)7%;(B0?+6#7';'5 32 7%;(9'5 222228"0324$:)n^kXHJ9:)29'9'@+;(;)9&9'~7$v6%h2b1G#>#=10/1D-H-*#/ s.,-?)F2<'9!5 ;(;';'9'7$12#;'9'9$6"7$4 7#7#4 7";'17"dgd{xqnmllsrjo||sORUDGQHLYKPYNT\OV]NT]NU_LT\LT\LT\LU]OX`PW`QW`QX`QYaOW`PXaOY`OXaOY`PZbOZaO[`O[`O[`Q\cQ[dQ\dR]cS]eS]fS^cT_dVagWbhXbhWbhWbhWbhWcgYcjYcj[di[di_imu}zx{y{u}ws{xlsrjrrcmm\gk\gk]hl\fk\fk\fk\fkktsovu`hlYcgenp\fi^hjv}zêǬͱũ^YXo[PlYMxldrqlfSdO`L^M`Q`QdVcUvio_?9.9(+dRK\F"^AV9iP&iWNJB1}vuD!.",'XIE.@"`).NH
tc^_ZT0U9Br;8KTR^=9G_`_g p*7z{wOV6QXHns}nsgku+ATf_moNJ8LC5PH;NL8OQ6UZ?MQ8HQ5NV<PS>KO6JQ6EH2KT8>B,KG9IF3NI7BD-EF.NR;:9*t߭٩ް麣oߴ޲ߴݱݲܳܳ۲ڱڰ׭׭֭֭լԪҩͨ˧ͦɣȡߜ½½Ɵz__^xwjwuhwuhwvkvuhwuhwuhxvixvixuixujxujxvkxwjywkidWwtfw|{|tuqanl^9<67@=<FD?JF@LI>KF:B>GH>qi[~yj~wt{ipjXpgWf\LrhXztd}~{}yl}ym|xlzxl{xl{xmzwm{vlzymzvmyvmywm{wl{yh|zazxZyxawshyv^{|>w~9Ta`9f`KqgXWH:P@3TE9f]QleZtnc}wjpsu{ij[7E? =C@G@F
K!}20-O;8$48$5%;'9%;*;+5#2 6#A.7"5 34 5!8$9%4 6#39%bfbqhpmpsoopvqcisxwqILRGKWIM]LR]PUaPVcPV`RX`NV]NV_MV_NYaOW^OW_PX`QY`RW`PZ`PX`PZ`Q\bP\bP]cO[aQ\bQ]cR]dR]dS]dS^dS^cT_eUbfWchWchVagUaeVagWbhWbhWbgYbhZch[di[ei^hm`lnhrt^ikktrltr]gk[gj\gk]hkakn^hljssrzwv~zVacWafXbgWbh_hḵǫ˯}^YXmYLlXLgUKwpkjch_RWl^N`eHWxE[JYF^Q[WECLMcfaaF94iUQhSEfJgM"_KEN@6Եֶuʼtpq]GE4 /"#+&+E20B-,4[9<H2830Q@843DJ@=@N@OO:JS*42
J!Zp#'abywbns^rutpsz]`naamjhn?;B%CWhozwPK:RQ<TT>QS:MW:EO3KQ:QV>`YJWPAFE2EF3@I-KR7KP;MN7NG6HD2IE7FC342't٭L9$٭ثܰ޲޲ݰݰݰݯۯحի֭֭֫իѨͦϨЧͧΧ̧ǢŢŠģäz__^ywlwtjwuivtiwuiwuixviyvjyvkyujyvkyxlyxlyxlywkyvjyv{{iuzyugsqe:>9:B??KGDPMAIE152FNKBOM<FBKKBxsdyud|zucqj[RPB88175-ZSGriYyqbr|zn|xl{xl{xk{xl{xm{xm{xm}ykzyUnr.nqcj di!y|Nz~.0UQ'B<& e_MSH;]REh_SdXHgbVoh^ztg{mvs\zx```<093@ 8A HObh'~ZqrS~fXWk/#p*r/'vSHbhZQQJei_RUL\^XqulUYRY]TujzG={HAI@PFuauu{}gygvB9~C<F>H?y{lx{iv}ntqxhlsc{sk^JCE=D:SCyoolYs`OWFQDH?PBC>8TUK4A67,~4,o-"uxwcxvdxvdqyyydxxrnl~jv|b)w)!u.$j%zfu|g|p\bWv~w^IBYFSDPAkYhTR0/11240036"21327%<,9(4!7#47$6!5!5!:&6!5!4!23335!21;(3#22>+n]S>P>149$9&=(<'C08#;(<)>,q.p3 W&S'H$6 o07"6!*G4*lA2A1d%/,0K95#;'49%5%4#3":(7#:&x/7"5 37#6#6"237$27&aebllrsroqsqpvtmwuazxffh?EGKSA\cHHMFOSbPTdQWdPX`QX`NU]LT]MV_NW^OX_OX`PY`RZ`SZaR\bQ]cQ\aQ[aR\aS]dR]dR]dS]dS^dS^dS^dUafT_eS_cU`fT_dT_dVagWbhYbiYbiYbiZcj[ej[ei]gl^hn^ik}}ipnaik]gk]gk_il`jk^il[eiksrltpdllXbfW`fW`f]gjx|ϱӳǪʮ|`[Zp]QkXLeSG]SG|wR_=ZY>o\NbTHS]>Kp5;k#\XA~>GDOUqx}`\L[JDdPDhVL]MEŮm{zytutpqUIH{KIC{pn*#"
@@ -363,7 +363,7 @@ el6[b+RV#:9**:;42FD%CB ;;30,, }]?8HC$cebegWtwhuxjhM?Y!W$U&X%^%
IV&Sg,Md%3:71!!&/&% ( % \RJ|sm?2/-'')#"#5*&=51A98=644,))0(%3,-HBAJA@?40;,(3& 7.,!D:3TI@<:D66N0,6[SO*!-&!KA=WOKZXV]VTTOJF=:$5-(`]Y'!RJG2)(+##2*(kd[LB<7,'6.)SF;6,$5.-LB>">97QJCRMDQQOF@;TLIb`^RLI.%$LGCKHDwkctdX[RL0)),"!?61`b_iq_owadnVwhqypxv{^nsYipTXcK[dMJXCL\I7H7?I<GE8wycDQ@BJ?)8(a[Ob]OXQBNG8KD5>7(0+6/!81"70!1+1,^[J`ZKc\MC<.iaVSL;`ZK:2"61$VQDKC6TL=80#?7.$#*%USEZ_SWlXSnXFbMUoY]r^OePUhS_oX`nXeu]`rY^oX`rZ`q\ZnXYjS[lWZjVYjX\n[ZlX\lX\kWds^]n[\m\YkXFZHLaOAXGC\LBYI=SDGXIVeU[iYVeVOaQDXHKaPedb}p~{j~zkyj|l~{j~yjzkyk|lrv{{{yy}pMQIENJMXO3;3+.&+0(+/(+0),1*,2*.3*-2*-2*.1*.0*FLDWbXVdXUbX\g\27.7;58<5:?7<B:@G?CJBFMFKQJLTLQYRN^Weqcoo}n}n}m}n|n{pbmbUeUHh[=0;.7&Y47>51%!bE"kR!hi557IJNL@CUX-EGRR.EFCC\]6f\b#IN!YZYa^PfeWqsfhQB_!a%[%^#a$f&g&d$[4&tpn~mssbxwfqo_jiXon`ZXJyyfukSCa#['M$rM@S$M!]&_%a#\-ilZwuaoo^yyizygon]wud~lXUFe^UM* \#\$X$N#w\i__h_munhphQTJ\\TX[WTWTWQLJ T T P"Q/$x~ns~|mrpavug[ULE*"Z&Y&\+#nPD~kk_F2*M,"P0%yokTR--000010111113!/113313210133111112121111/16#A12/314#14 1 2114!5#11111103!/0113"?-7#8%?+C0:*23 }1m+^)S'K&55
t1/011.....@*dfcv|f|yb~lLD8KB;HA7F=5E;3B801$6(- /"8(@. D0!F3$H3%H5&H5&H5'H6&G7&H4(K7+J6&K7'K8(I4$I4%K4&M5&M7(Z@.eesTa}^|]e]D1O8,O:*N8*O8-N8+M8*N9*N:+L6)N:,J8+M=.ZG6kddR@/O>4H7-%&(4A 4C!3D2@fx_~fT=+5])'p/2o*/l--|]Q%!"%&-""144;{p}zk|yk|zk|yl}ohdb{qni]yqiC80*  
  
-1069:=*(41  ,# #$#0()81/N>8qZStib OFAkaYbWO^TKWJBYI@f\Rnc]UKG* -((=76OHDH>;LFC7/.+""F=7H<1UC@4)1><IXRM<3/2)'<0,F;7:65UTSKFE5*'3&"HB>IDBYWOYQI+'%LD@'/'$ojaH?4E6-, OC9?2(0(*C95MFB/)(d]TYQFFC=@94G=7lhd\WU!0%%,# B<:pd[n[Oi`\(#") >40`b_`gP{}atgjrVhpWs{bx~dwoppq{e\hR]hTJ[IR]L\dP^jO5N8=XG*4'%*'!871KD9YOBbXJh]Ng]Ml_OkbQk^KcVAg]MZSDWN>TK=NE6G?0HB5OG7I@1RL?QMAYWISRDSRDRNCWTJB@6OKDVQGPL?aiWcwaXlWVjTOdNJ`KYlVYkVXjS_s[]pXeu^iw_kxcgt_gu_cq\cq]^n\RcQPcPYiUZkXXjXK^MMbPMbONcOVjVPdRMbPMaQNbODXHNbPO`QO`QEWHEWIOcSSgWfca|o~zl~{m~zk~{k~{k~zjzj|l|mqxyyyy{zrPSKFOKNYPMVNWaXXaZY`Z^g]]g]^g]^i^`kbakb`ha`jaZdZT^TVdXVeYYeZS[SS\TT]WV_XV_XV_WV_VV^WS\URZQNWPR`Ybm_{{zx~vf~n~m}m~no}tetlPBE:;/5)5%t6:<433% >01!P5UDhTP_b$`d,BD^^4IJ>ArrL|jl2V[)__]SOBYWKmodaK>RT#T"U!U V Z"X!V8+sqswsb|zhm{yg}lyrsqnVDf'^'W(S%['V%T"e(g&\,mn]ususvwfqyttcsqdH3*I"L$E!Q9+{zzqJ;3B-&Q>3`NDwn_wnqwdbSvb^TXOH@3*B92a[PgfWtvdiiYabQfgXik[sxf{l{~loo]{zg|{hrxhWU0022022212211216"A.C1;*<.<-3"336"7$7#4!4"2222 321321003!=-2.32151204 04 5!/301313 3 1100E58&6&:':)8&?.A/@/=+?-w:)h7)\0!P1"9 M$211/..-..;'dfcyud{xcpjdUG@7KB9HA7H?7E<4A5-3(4&6(4&;*C2!F3$F3%G4&J6(I6(H6(H6(G3#H4%K5*K6(M8)J6(I5&L7(K7(F3"H0#X>,eaz\uV~_{\{^oXAL4)O:*O:*M7)P8-N8+Q;-N8+N:,N:,K8+L:-O=-gafeR?P?6O>1L:/;+"( )*/6=9&tay_ya{gQC-!7])(r.5m)-UL6*  $$$$%(fgewr~p~zm|xj|yl~}p`]][QHeVK@1)   
+1069:=*(41  ,# #$#0()81/N>8qZStib OFAkaYbWO^TKWJBYI@f\Rnc]UKG* -((=76OHDH>;LFC7/.+""F=7H<1UC@4)1><IXRM<3/2)'<0,F;7:65UTSKFE5*'3&"HB>IDBYWOYQI+'%LD@'/'$ojaH?4E6-, OC9?2(0(*C95MFB/)(d]TYQFFC=@94G=7lhd\WU!0%%,# B<:pd[n[Oi`\(#") >40`b_`gP{}atgjrVhpWs{bx~dwoppq{e\hR]hTJ[IR]L\dP^jO5N8=XG*4'%*'!871KD9YOBbXJh]Ng]Ml_OkbQk^KcVAg]MZSDWN>TK=NE6G?0HB5OG7I@1RL?QMAYWISRDSRDRNCWTJB@6OKDVQGPL?aiWcwaXlWVjTOdNJ`KYlVYkVXjS_s[]pXeu^iw_kxcgt_gu_cq\cq]^n\RcQPcPYiUZkXXjXK^MMbPMbONcOVjVPdRMbPMaQNbODXHNbPO`QO`QEWHEWIOcSSgWfca|o~zl~{m~zk~{k~{k~zjzj|l|mqxyyyy{zrPSKFOKNYPMVNWaXXaZY`Z^g]]g]^g]^i^`kbakb`ha`jaZdZT^TVdXVeYYeZS[SS\TT]WV_XV_XV_WV_VV^WS\URZQNWPR`Ybm_{{zx~vf~n~m}m~no}tetlPBE:;/5)5%t6:<433% >01!P5UDhTP_b$`d,BD^^4IJ>ArrL|jl2V[)__]SOBYWKmodaK>RT#T"U!U V Z"X!V8+sqswsb|zhm{yg}lyrsqnVDf'^'W(S%['V%T"e(g&\,mn]ususvwfqyttcsqdH3*I"L$E!Q9+{zzqJ;3B-&Q>3`NDwn_wnqwdbSvb^TXOH@3*B92a[PgfWtvdiiYabQfgXik[sxf{l{~loo]{zg|{hrxhWU0022022212211216"A.C1;*<.<-3"336"7$7#4!4"2222 321321003!=-2.32151204 04 5!/301313 3 1100E58&6&:':)8&?.A/@/=+?-w:)h7)\0!P1"9 M$211/..-..;'dfcyud{xcpjdUG@7KB9HA7H?7E<4A5-3(4&6(4&;*C2!F3$F3%G4&J6(I6(H6(H6(G3#H4%K5*K6(M8)J6(I5&L7(K7(F3"H0#X>,eaz\uV~_{\{^oXAL4)O:*O:*M7)P8-N8+Q;-N8+N:,N:,K8+L:-O=-gafeR?P?6O>1L:/;+"( )*/6=9&tay_ya{gQC-!7])(r.5m)-UL6*  $$$$%(fgewr~p~zm|xj|yl~}p`]][QHeVK@1)   
  "%#72!0+  1''+ 80.'eVM|tcZRJ<39*"NC;/H,)=4*#6+#YMDmg_D<8-#"=63JFCIA==53.%!TKFf\XnZXODH/.7JCBQIC*!!:0.H>;MIGYUNda\ECBRNL^]]975FA>WQN"4--OD=NB8ZMEZOHPF;@3+,%#_UQ<5,YOJSF>fUII:/TH@SI@LF?ZVT,""5+)' !^UOpaUea_%.!F70iie|cqx`nv`enY]jVN_KEXDSaGclSfnWQ\FYcO`lVH[GFYFAQ?O^JZjSLaLAZF:R@IRB$-!0B:,:4(/**-*//*/-':4,IB7VL>UH4aWGbZM`VJcYL`SCbZIb]Ob\M^WIa[N^ZO_]QTSHNKD995,..%%' #! 4:2L]JBVDN`Lfu]fw_as\bt]cu_UiRPhR\o[br]gu_bqZXjTXjWDZGNcQUhV\kYamZ]mZRcQTeUMaPOcRMbORhTVkWMeTD]JRgT]p\XkYVfVHYIFYJI]OL`QNaSJ_Qfca}o~zl~xm{j{j|k~{kzk|l}mpzx{{}zzsPTKGSLS]UFPHJTKMWNNWOOWPOWPMVNPYQOWPNWOLXNKVMEOGXdZXh\UfZ\j^Q]SVaXVbXUaWTaVR_UP\RO^TO]QLYPKXNWc[`l_||zxi}m~m~prqyivn^=05(/-1E<49=& 5$1&%x<Z^Z\ NMgi.kk1YU&LL$BCpXQ*;> FI^^]_\PdcW{~qxrdwk{n{nyk}prvt|tnsoq}kkw}kyyzqkSCd$^%_$a([&\$X#b*g&`/ tmiS|jtv}~lvuep~~ntsbhgZZTJb\NjeWQOAZZKbbS\YKEB5^^N_aQ[\Na_Sb_Q_ZM]YNCA5_\RedVghXrsa|}l||jvueroarqcgeVcaShdWa\Ozyjpm_rnapj\heXs}mn{|jomkZlluvqhe[G}/v-w.{-/3!18$5!3"2 {*~0B2L=dReRREPA^P?/4":'9&:(7$8$1 6"@,;+5"6$7(@/<(3!3!/4#m(z8(//10211111"04"6!1101101 6"0104 18$8&8$5322 /20~0h+j-\)H)1b,/0/0/0/-<'cdbsitmZYREJA9JA:H?8I@8F=5A6.0&2&3$5&@0!B0 E2!D.E2#G0#F0!F3$E3%G2"D. F1#H4&H7)J6)K5)E-D-K6)M7*hO9}\oQ}^c{]{\}^nSJ4$M6*O:*O9*M9-N9-M8+N9,N;-L;,M<-K9,I8(r]z]{_|fRN<1N>2N?1L<1J8/D3*H6.N:2nZNzaya}cUA2D2(6M g+.uKDp`O!!'2-1+,-rq|n|yl|yl|yl{nb^]RC89&  %,#!&, 'B=)'  1$ # 7$ ,$$"E:3gTKwib=4/H>9L<7AF )!4*'A7/g_XjbZQGD+!831LC?/#7.*WOKECG<9B42?LKPNKDTLH) -#!I@9vso5/-HB<=71;63CA>.)%2//'#!^YV#) XOING>\UNseXfVE?4,-$&G?6K>1g\Pwi[ucWtbUlYMXMFPKJ4)&<2+*$$`[ZxrkQPM&F5/`OBggbdiOpu^tx`nu^`jUR`MM]KcpZs~g\jVWeTZjXR`OBP@J[IXgRsHWCI]J<U@<VACWF3K96L;4M;/H85N>4K@6MB/E>0@<.>7+8/+3*.3,/4/+-*-.*./)65-56.+,%++%$& "$!"!#"",)-@90C<*:4*94&51;VGGaM[m[_r\]nWbpYet]SePTiRXoVUjTQgQQfRJ`KE]JG]JAXFQhUJaN;TAM`OZiVO_LM_OG\KBWGRbSRcQNcP>UCG_MKdPNeRH]KMcQLaOUhXPdTNaQH\JN`QPcUeca{nym~zm{o|l~zj{k|l|l|lowy{zyz~sLQIIULQ^TO\RUcXVeXVe[Wc[Xc\[h\Yd[Yf\Xd[Wd[Wd[TaWYg\Wi^Ue[\k_UeYZh\^k_Zj][j^XgZVeYUfZ\k`Xg\Wc[VdZ_l`~yxw|zhzm}l~orr}mvfgY1!,,+/]84<J( /*/ 1^OHSSW*RW(UW(1-
PQ'OQokGqlDEG BD?@cdbvyjln`abRlqaovfagWlscfm]V\OV\N`dU]cRgl]\YKifWnk[wvexudtp`zxfyxduu}|gxwc{zenWHa!\$Z%^&_$a$d&[!f)^-wkv`\Lpn]{zhwxgtterrcnj\mhXwudrq_onluursrbusfqwwhvxistcliZ~yimlhXmk[tpyzgv{|jrrxxftrbroaf_Prp_{xgvsdon_dcRvscpn\qo`sqa}|kkiZmzyhovxfh_\uC1H7K=M=H7M>M?K<N>J<L>RCI:TEI<WF]JL=WFE3D1G8G9G8F4G8QBI8C6H9B/D2E5C1D4A.B1A3>.B0I;U&7&/131334!1 1!13 3"3"1131113 0104 |1230021/2202i-n0h+T)=#: z1//1/../<'ehf{xeysa|lKD9LC<HA9H?:H?7E;4?4,3)1%. )2$A/!?-D1!F3$F3%H5'I6(H6(G6'I8*K8+M9+M9+O:,M8+N9,L8*L7*K5%w^G}]gqS{^buV_|^P7%J6*N8*M:*M7*N8+M8+L7+M8+O<.M8+N=/J8*xfRk~a|dO</Q>5N>3M<2L;1K:0K:0O>3UC7|cx`zazhSL91I6,@0#C-%O;/va:,&%$MIHmmh|q~o|xk~{nzxi{xkzvj}znWTS &3'%8-,8.)%/%$*"# + / LA5B8;''  4".0&#%C:4SH<N7.yd_`VQND?C,(0 9*&$7,) 8/*VOHc[SH?;-&&;54NGAC;7ID@>=G>@U>>K\WZC75ZQM0'%4('?5,?6.(##80.aWNE71"&$,% NKE^ZX$+"WOI40,aYQ|ljYG8/'0');2+j}hZwfWyiZxgVu`Plc\732!I81n\N0'%887~,&$.eRG`L>gidq`gRX`Mfm[ovbqzcv~fv~d^kWTgVEXIO`M`lXoxdis^enYV^KGVDM^KGXDSbP:L83I74J96M<9O>5N;3L:4P;4P>0J72N:4RA4O@6RD5QD6SF6TF6RE5OB6RD7PD9RF6PD6OD6MB4NB2R@0T>4WB3ZD1WA7YF;ZEPfRcr]SeORdOPcOMbOVlYQiSJfOJgQ>\H6TB5VC9WDOgSTgTTgTQeRThU[n]ZkZXhVTeTObQI]LUgVXhXRbTMaPVkW[l[PcSPgTMdOOfTLcOQfTQfUUjZNfWPfXfc`{n~yl}xkymxj{k}n|n}m{kowwyz}{~~o?ICM[TL[RL]TN^VM]UK[SKZSKZSKYRMZSKYSJYRIXQIXQHWOIXQWj`XlaN_WK[SM\TM]SN]UM]UO^VJ\TJ[RJ\RJYPLZQK\TQdX|{pqq~o}tfzm}mtsjY_P@01#.)4))q1>AR.*.*0`EMU;>GJ#y|aYX*\[%0/
^X0FGOM#PM,ded{}mopa~~nqp`VSEvtfrseopbppcnmbifZ{zkonm^trcrp^p{{jpxxft{}yvd|k\XEiVHa!\$\%a&a&e&c'\&[#\."t|ktpo_~nvxoyxwfwrc|zhxuewwetrnqslm[sutu~}knk]yvf{xftqa}ovveyxixwgvwg{|kwxgyyinl\jfZqm_a[Mqn_~l}jnnywf~nok^~|mmvtcr{zf|}lpeWV=+15!30137&=+8$8$8(303 7&4;'8%112033221133#1/3!1001115;*b+8&./033#5"4 12"48%6%4!3010114#11/7%5"33222222112n+v2"m+a*N(8T&/021...8'bdazvfwr_lfWH@6IA9IA9G?7G?6E;4?5,5+#1%0$."<, B/!C1!F3$G4&F3$F2$I4&H6(G5&E3$G4&G2$J5(J5(K6)F2"I6&K6)I5$rYba~_xYwXwX}]yZ`H3M9.J5(L:*K7*I5(L6(L6)L6)L8+N=/M=0L9/hTCfx]z_bL<N=3N=3N=3N=3L;1M<2M<3K:.n]w`x_zcUA5M=4J8.G6,G6,vcQr_K"{o}n~p~p~zm}zl|xkyvgxuh{xkQOP' 6/,<30;30 !&7-($,$/&#3'#1!RIIVQX8@0+E92/$!*!-# dWOdSEfRF`JC}je[SNKA=/&$.'&>75/'&A:4|vla\/%&*#%F><* 7/,77?$'>+,<607xh]SKC:20.$!@3,{+%!RIEfbZge_[WR6.+GA=F<8OHBWSR#)WQK<71E90`UHoaQ-$ .#"<-(WOFlgZwi]s_Ps_NwdQxi\eca(gSH}iXH?8<<7+ >,%o_fOBVZW;J9JWGGTENZIHRBJ[KDVG8M@=VDCYHHZIN\KJYFGRAEQ>VdQKYIO\J[fOP[G?Q??QA<QA:O=7L=8P=7Q>:SB7P?5K:6K;3I85K;5N>6TB6VB6WD5WC6[D6]C6[C6ZD4YC4UB3S?6TB3R>5R@4O=5R?4UB5WC5U@6VA>ZFC[H\o[_p[ZmYE\HKaMUhSShRNgPRjTRfSH`MKcPI`JNdNOfRVlXOeQSfSTiUOdRQdRVgVPaOP`QGVGOaQVhWViXI]MK^NMbOShUJ_MB[I@YH9RC:SD1N>KdVfca~pznzm|p}m{nyo}m|l|m~okaSg]Og]Pj_RlaUneWvo\otISIWcW`l`crdjxip~otqqnpmo~mporrususrovstr{wz|xwtwtyu{v|}xzz}y{Ħͬ|heZMeZMf\PmdY|lopyi-4'4%2%,-<;o&q/O:Z1++4$w,>/[]@NG-?5#mvoVdy[}zXmldMgify{j][NdbVgeWhiYon`hgYfeXol_^]Pli\nl^_[NyxjgdUnk\o}~m{|irqqvvud~}lywd~dUG\"Z$^%a&a&a%a%_$[#X,ipafcTjgY}nywdlhV~|l||ktscspapn_liYpk[rnZgcPlkYkgVso_a[NecT^[Lb^Nb^N\WItpcqm_om^ywe{gnsqc~~o{|n|}myzk{{lliZ{zi}|j{zjyvg~l|gsroyzgnl\rywennprr_}mgUQ/6!00/.15 21214113024 11111212123A.8$1212430.4~5$b/8&.1306"33!18$2 6$7'4 13/10/15"3 132"4 2222032/23w2"w0s0g+\*I'3 l/021..0;&cecorpl\G@5IA7H@8IB8C;2D;3?4,5+#2&1$* 3%=-?.D1!E2$H5'H5&G4&H5'F3%E2#G4%H4'I3'J4)I4%J6&G2&J4(I2#rWtUlQtWvXz[xYvWy\wbII5'L7*J5(J5)L6(M8*N9,M;-L:-K9-L:.M<0]J;}ew]x]xdQM;/M=3M<2M<2N=3M<3L;3L<3fWIv_u^w_vdRK:0N>3J8.L<0ZH9t\9())JLMt{m~{m~{m~zm~zmzvgzwhxtgzxkfde2**>667-,90,!/! , -" - 9+$'@4.M=5=:F 9/1D/-DTNVaXU'-&#,"!YPJ\K>r`NTB4K93pYTxmhNE?/+*C@?PJGA546.++#!E@;UMGyPF@]SO-&&2+*:1-?84QQU88E65@YQO}n\g]V821,"<2*~|lG<:JD?YXUIHE<952-(XLAmbXC>>(8-)PIF]\VI=5XI:^TC'4)%7(!'0,,hhgzskucVgVHyuo0-.&9)#q\O~vfDD>,$%vcTFX[Z:J?BRDL[L;K<JZJCRD;M@;OAATCK[HakZcm[isaouarrzbO[KQ`MQ`MM]JM^LBXC9O=;Q?8N=>TB<TB;RB:Q@9R@8R@5N=3I;5L=9TC:YE5TA6VB6YD9]E9YD7WD9YD6VC4P=3P<4TA;XF?XG;TD6O>4O=8TA:YF;XCE_L@ZEH^JDYERhSRhRMbMKaMRgRZlVXhTVhTVjU[nW]q]UiUPfPPhRKaMH_KLcQK_NK`NTiVVjXTfVQfSDYG@XH>XGPdRTfVTdTMcRQdTNdSE\NB[MD^OAZNfdb~r~ymyn{ozm{o{ozlzl{m|mzlyrgyrgyshzti~ujpŪyzzuutosuwpc{sh{sg{tfyk}np_Q<2;-7+--(;}6EM!c13-/x)C( 
diff --git a/src/cups/commands/SetAlignment.cmd b/src/cups/commands/SetAlignment.cmd
index 943a3f0..74dd9ed 100644
--- a/src/cups/commands/SetAlignment.cmd
+++ b/src/cups/commands/SetAlignment.cmd
@@ -4,4 +4,3 @@
#
SetAlignment 0 8 0
-
diff --git a/src/cups/cups-genppdupdate.in b/src/cups/cups-genppdupdate.in
index fbfbc6b..8f0137b 100644
--- a/src/cups/cups-genppdupdate.in
+++ b/src/cups/cups-genppdupdate.in
@@ -233,7 +233,7 @@ sub VERSION_MESSAGE($;$$$) {
sub help() {
HELP_MESSAGE(\*STDOUT);
}
-
+
sub check_multicat() {
}
diff --git a/src/cups/genppd.c b/src/cups/genppd.c
index 49c13a9..2e47f34 100644
--- a/src/cups/genppd.c
+++ b/src/cups/genppd.c
@@ -200,7 +200,8 @@ static gpFile gpopen(const char *path, const char *mode);
static int gpclose(gpFile f);
#endif /* !CUPS_DRIVER_INTERFACE */
static int gpputs(gpFile f, const char *s);
-static int gpprintf(gpFile f, const char *format, ...);
+static int gpprintf(gpFile f, const char *format, ...)
+ __attribute__((format(__printf__, 2, 3)));
static char **getlangs(void);
static int is_special_option(const char *name);
static void print_group_close(gpFile fp, stp_parameter_class_t p_class,
@@ -559,11 +560,11 @@ main(int argc, /* I - Number of command-line arguments */
break;
}
}
-#ifdef HAVE_LIBZ
+#ifdef HAVE_LIBZ
if (use_compression)
gpext = ".gz";
else
-#endif
+#endif
gpext = "";
if (optind < argc) {
int n, numargs;
@@ -661,7 +662,7 @@ main(int argc, /* I - Number of command-line arguments */
for (i = 0; i < stp_printer_model_count(); i++)
{
printer = stp_get_printer_by_index(i);
-
+
if (i % parallel == rotor && printer)
{
if (! verbose && (i % 50) == 0)
@@ -1194,7 +1195,7 @@ print_ppd_header_3(gpFile fp, ppd_type_t ppd_type, int model,
gpputs(fp, "*TTRasterizer: Type42\n");
gpputs(fp, "*cupsVersion: 1.2\n");
-
+
gpprintf(fp, "*cupsFilter: \"application/vnd.cups-raster 100 rastertogutenprint.%s\"\n", GUTENPRINT_RELEASE_VERSION);
if (strcasecmp(manufacturer, "EPSON") == 0)
gpputs(fp, "*cupsFilter: \"application/vnd.cups-command 33 commandtoepson\"\n");
@@ -1776,18 +1777,6 @@ print_one_option(gpFile fp, stp_vars_t *v, const stp_string_list_t *po,
print_close_ui = 0;
gpprintf(fp, "*CloseUI: *Stp%s\n\n", desc->name);
-#if 0
- /* This needs to be enabled if/when dimensions become floating point */
- /*
- * Add custom option code and value parameter...
- */
-
- gpprintf(fp, "*CustomStp%s True: \"pop\"\n", desc->name);
- gpprintf(fp, "*ParamCustomStp%s Value/%s: 1 points %d %d\n\n",
- desc->name, _("Value"), desc->bounds.dimension.lower,
- desc->bounds.dimension.upper);
-#endif
-
break;
case STP_PARAMETER_TYPE_INT:
gpprintf(fp, "*OPOptionHints Stp%s: \"input spinbox\"\n", lparam->name);
@@ -1911,11 +1900,6 @@ print_one_localization(gpFile fp, const stp_string_list_t *po,
gpprintf(fp, "*%s.Stp%s %d/%s: \"\"\n", lang,
desc->name, i, dimstr);
}
-#if 0
- /* This needs to be enabled if/when dimensions are floating point */
- gpprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
- desc->name, _("Value"));
-#endif
break;
case STP_PARAMETER_TYPE_INT:
@@ -2621,7 +2605,7 @@ write_ppd(
}
}
stp_parameter_description_destroy(&desc);
-
+
/*
* Quality settings
*/
diff --git a/src/cups/i18n.c b/src/cups/i18n.c
index 7c3351b..f032d13 100644
--- a/src/cups/i18n.c
+++ b/src/cups/i18n.c
@@ -383,7 +383,7 @@ stp_i18n_load(const char *locale) /* I - Locale name */
pocache->next = stpi_pocache;
stpi_pocache = pocache;
}
-
+
if (ic)
iconv_close(ic);
return (po);
diff --git a/src/cups/test-rastertogutenprint.in b/src/cups/test-rastertogutenprint.in
index b6a5b70..91b27ad 100755
--- a/src/cups/test-rastertogutenprint.in
+++ b/src/cups/test-rastertogutenprint.in
@@ -145,7 +145,7 @@ else
tfile=`mktemp`
trap cleanup 1 2 3 6 14 15 30
"$pdfjam" -q "$testfile" "$pages" -o $tfile
-fi
+fi
if [ -z "$verbose" ] ; then
STP_SUPPRESS_MESSAGES=1
@@ -327,10 +327,10 @@ if [ -d ppd/C ] ; then
done
files=$nondup_files
fi
- for i in $(seq 0 $(($jobs-1))) ; do
+ for i in $(seq 0 $(($jobs-1))) ; do
runall $jobs $i $files &
done
- for i in $(seq 0 $(($jobs-1))) ; do
+ for i in $(seq 0 $(($jobs-1))) ; do
wait -n
if [ "$?" -gt 0 ] ; then
retval=1