Remove unused patch to uClibc-0.9.29.
1.1 --- a/patches/uClibc/0.9.29/200-uClibc-0.9.29-fix-fget_putc.patch.dont_apply Sat Jul 21 10:15:13 2007 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,396 +0,0 @@
1.4 -diff -ur uClibc-0.9.29/libc/inet/rpc/rcmd.c uClibc-0.9.29-patched/libc/inet/rpc/rcmd.c
1.5 ---- uClibc-0.9.29/libc/inet/rpc/rcmd.c 2007-01-10 11:46:19.000000000 -0600
1.6 -+++ uClibc-0.9.29-patched/libc/inet/rpc/rcmd.c 2007-05-09 18:05:21.638421151 -0500
1.7 -@@ -126,7 +126,7 @@
1.8 - libc_hidden_proto(listen)
1.9 - libc_hidden_proto(sigsetmask)
1.10 - libc_hidden_proto(getc_unlocked)
1.11 --libc_hidden_proto(__fgetc_unlocked)
1.12 -+//libc_hidden_proto(fgetc_unlocked)
1.13 - libc_hidden_proto(fopen)
1.14 - libc_hidden_proto(fclose)
1.15 - libc_hidden_proto(fprintf)
1.16 -diff -ur uClibc-0.9.29/libc/inet/rpc/ruserpass.c uClibc-0.9.29-patched/libc/inet/rpc/ruserpass.c
1.17 ---- uClibc-0.9.29/libc/inet/rpc/ruserpass.c 2006-03-23 05:14:16.000000000 -0600
1.18 -+++ uClibc-0.9.29-patched/libc/inet/rpc/ruserpass.c 2007-05-09 18:05:21.638421151 -0500
1.19 -@@ -63,7 +63,7 @@
1.20 - libc_hidden_proto(fopen)
1.21 - libc_hidden_proto(fclose)
1.22 - libc_hidden_proto(getc_unlocked)
1.23 --libc_hidden_proto(__fgetc_unlocked)
1.24 -+//libc_hidden_proto(__fgetc_unlocked)
1.25 -
1.26 - #define _(X) (X)
1.27 - /* #include "ftp_var.h" */
1.28 -diff -ur uClibc-0.9.29/libc/misc/error/error.c uClibc-0.9.29-patched/libc/misc/error/error.c
1.29 ---- uClibc-0.9.29/libc/misc/error/error.c 2006-05-04 09:44:13.000000000 -0500
1.30 -+++ uClibc-0.9.29-patched/libc/misc/error/error.c 2007-05-09 18:05:21.646421810 -0500
1.31 -@@ -30,11 +30,14 @@
1.32 - libc_hidden_proto(strerror)
1.33 - libc_hidden_proto(fprintf)
1.34 - libc_hidden_proto(exit)
1.35 -+//#undef putc
1.36 - libc_hidden_proto(putc)
1.37 -+libc_hidden_proto(fputc)
1.38 - libc_hidden_proto(vfprintf)
1.39 - libc_hidden_proto(fflush)
1.40 --libc_hidden_proto(fputc)
1.41 --libc_hidden_proto(__fputc_unlocked)
1.42 -+//#ifdef __UCLIBC_HAS_STDIO_PUTC_MACRO__
1.43 -+libc_hidden_proto(fputc_unlocked)
1.44 -+//#endif
1.45 -
1.46 - /* This variable is incremented each time `error' is called. */
1.47 - unsigned int error_message_count = 0;
1.48 -diff -ur uClibc-0.9.29/libc/misc/ttyent/getttyent.c uClibc-0.9.29-patched/libc/misc/ttyent/getttyent.c
1.49 ---- uClibc-0.9.29/libc/misc/ttyent/getttyent.c 2006-12-07 17:24:02.000000000 -0600
1.50 -+++ uClibc-0.9.29-patched/libc/misc/ttyent/getttyent.c 2007-05-09 18:05:21.646421810 -0500
1.51 -@@ -44,8 +44,10 @@
1.52 - libc_hidden_proto(__fsetlocking)
1.53 - libc_hidden_proto(rewind)
1.54 - libc_hidden_proto(fgets_unlocked)
1.55 -+//#undef getc_unlocked
1.56 - libc_hidden_proto(getc_unlocked)
1.57 --libc_hidden_proto(__fgetc_unlocked)
1.58 -+//#undef fgetc_unlocked
1.59 -+libc_hidden_proto(fgetc_unlocked)
1.60 - libc_hidden_proto(fopen)
1.61 - libc_hidden_proto(fclose)
1.62 - libc_hidden_proto(abort)
1.63 -diff -ur uClibc-0.9.29/libc/pwd_grp/pwd_grp.c uClibc-0.9.29-patched/libc/pwd_grp/pwd_grp.c
1.64 ---- uClibc-0.9.29/libc/pwd_grp/pwd_grp.c 2007-04-13 03:32:18.000000000 -0500
1.65 -+++ uClibc-0.9.29-patched/libc/pwd_grp/pwd_grp.c 2007-05-09 18:05:21.638421151 -0500
1.66 -@@ -43,11 +43,12 @@
1.67 - libc_hidden_proto(strtoul)
1.68 - libc_hidden_proto(rewind)
1.69 - libc_hidden_proto(fgets_unlocked)
1.70 --libc_hidden_proto(__fputc_unlocked)
1.71 - libc_hidden_proto(sprintf)
1.72 - libc_hidden_proto(fopen)
1.73 - libc_hidden_proto(fclose)
1.74 - libc_hidden_proto(fprintf)
1.75 -+//#undef fputc_unlocked
1.76 -+libc_hidden_proto(fputc_unlocked)
1.77 - #ifdef __UCLIBC_HAS_XLOCALE__
1.78 - libc_hidden_proto(__ctype_b_loc)
1.79 - #elif __UCLIBC_HAS_CTYPE_TABLES__
1.80 -@@ -801,7 +802,7 @@
1.81 -
1.82 - do {
1.83 - if (!*m) {
1.84 -- if (__fputc_unlocked('\n', f) >= 0) {
1.85 -+ if (fputc_unlocked('\n', f) >= 0) {
1.86 - rv = 0;
1.87 - }
1.88 - break;
1.89 -@@ -867,7 +868,7 @@
1.90 - goto DO_UNLOCK;
1.91 - }
1.92 -
1.93 -- if (__fputc_unlocked('\n', stream) > 0) {
1.94 -+ if (fputc_unlocked('\n', stream) > 0) {
1.95 - rv = 0;
1.96 - }
1.97 -
1.98 -diff -ur uClibc-0.9.29/libc/stdio/_scanf.c uClibc-0.9.29-patched/libc/stdio/_scanf.c
1.99 ---- uClibc-0.9.29/libc/stdio/_scanf.c 2007-01-20 12:32:10.000000000 -0600
1.100 -+++ uClibc-0.9.29-patched/libc/stdio/_scanf.c 2007-05-09 18:05:21.642421481 -0500
1.101 -@@ -86,7 +86,8 @@
1.102 - libc_hidden_proto(vsscanf)
1.103 - libc_hidden_proto(fclose)
1.104 - libc_hidden_proto(getc_unlocked)
1.105 --libc_hidden_proto(__fgetc_unlocked)
1.106 -+//#undef fgetc_unlocked
1.107 -+libc_hidden_proto(fgetc_unlocked)
1.108 - #ifdef __UCLIBC_HAS_WCHAR__
1.109 - libc_hidden_proto(wcslen)
1.110 - libc_hidden_proto(vfwscanf)
1.111 -diff -ur uClibc-0.9.29/libc/stdio/fgetc.c uClibc-0.9.29-patched/libc/stdio/fgetc.c
1.112 ---- uClibc-0.9.29/libc/stdio/fgetc.c 2006-01-15 16:41:03.000000000 -0600
1.113 -+++ uClibc-0.9.29-patched/libc/stdio/fgetc.c 2007-05-09 18:05:21.642421481 -0500
1.114 -@@ -13,13 +13,13 @@
1.115 - #undef getc
1.116 - #undef getc_unlocked
1.117 -
1.118 --libc_hidden_proto(__fgetc_unlocked)
1.119 -+libc_hidden_proto(fgetc_unlocked)
1.120 -
1.121 - #ifdef __DO_UNLOCKED
1.122 -
1.123 - libc_hidden_proto(fflush_unlocked)
1.124 -
1.125 --int __fgetc_unlocked(FILE *stream)
1.126 -+int fgetc_unlocked(FILE *stream)
1.127 - {
1.128 - __STDIO_STREAM_VALIDATE(stream);
1.129 -
1.130 -@@ -73,26 +73,22 @@
1.131 -
1.132 - return EOF;
1.133 - }
1.134 --libc_hidden_def(__fgetc_unlocked)
1.135 --
1.136 --libc_hidden_proto(fgetc_unlocked)
1.137 --strong_alias(__fgetc_unlocked,fgetc_unlocked)
1.138 - libc_hidden_def(fgetc_unlocked)
1.139 -
1.140 - //libc_hidden_proto(__getc_unlocked)
1.141 --//strong_alias(__fgetc_unlocked,__getc_unlocked)
1.142 -+//strong_alias(fgetc_unlocked,__getc_unlocked)
1.143 - //libc_hidden_def(__getc_unlocked)
1.144 -
1.145 - libc_hidden_proto(getc_unlocked)
1.146 --strong_alias(__fgetc_unlocked,getc_unlocked)
1.147 -+strong_alias(fgetc_unlocked,getc_unlocked)
1.148 - libc_hidden_def(getc_unlocked)
1.149 -
1.150 - #ifndef __UCLIBC_HAS_THREADS__
1.151 - libc_hidden_proto(fgetc)
1.152 --strong_alias(__fgetc_unlocked,fgetc)
1.153 -+strong_alias(fgetc_unlocked,fgetc)
1.154 - libc_hidden_def(fgetc)
1.155 -
1.156 --strong_alias(__fgetc_unlocked,getc)
1.157 -+strong_alias(fgetc_unlocked,getc)
1.158 - #endif
1.159 -
1.160 - #elif defined __UCLIBC_HAS_THREADS__
1.161 -diff -ur uClibc-0.9.29/libc/stdio/fgets.c uClibc-0.9.29-patched/libc/stdio/fgets.c
1.162 ---- uClibc-0.9.29/libc/stdio/fgets.c 2006-01-15 16:41:03.000000000 -0600
1.163 -+++ uClibc-0.9.29-patched/libc/stdio/fgets.c 2007-05-09 18:05:21.638421151 -0500
1.164 -@@ -10,8 +10,7 @@
1.165 - libc_hidden_proto(fgets_unlocked)
1.166 -
1.167 - #ifdef __DO_UNLOCKED
1.168 --
1.169 --libc_hidden_proto(__fgetc_unlocked)
1.170 -+libc_hidden_proto(fgetc_unlocked)
1.171 -
1.172 - char *fgets_unlocked(char *__restrict s, int n,
1.173 - register FILE * __restrict stream)
1.174 -@@ -38,7 +37,7 @@
1.175 - break;
1.176 - }
1.177 - } else {
1.178 -- if ((c = __fgetc_unlocked(stream)) == EOF) {
1.179 -+ if ((c = fgetc_unlocked(stream)) == EOF) {
1.180 - if (__FERROR_UNLOCKED(stream)) {
1.181 - goto ERROR;
1.182 - }
1.183 -diff -ur uClibc-0.9.29/libc/stdio/fputc.c uClibc-0.9.29-patched/libc/stdio/fputc.c
1.184 ---- uClibc-0.9.29/libc/stdio/fputc.c 2007-04-14 12:03:18.000000000 -0500
1.185 -+++ uClibc-0.9.29-patched/libc/stdio/fputc.c 2007-05-09 20:50:51.350629927 -0500
1.186 -@@ -16,7 +16,7 @@
1.187 -
1.188 - #ifdef __DO_UNLOCKED
1.189 -
1.190 --int __fputc_unlocked(int c, register FILE *stream)
1.191 -+int fputc_unlocked(int c, register FILE *stream)
1.192 - {
1.193 - __STDIO_STREAM_VALIDATE(stream);
1.194 -
1.195 -@@ -70,22 +70,22 @@
1.196 - BAD:
1.197 - return EOF;
1.198 - }
1.199 --libc_hidden_def(__fputc_unlocked)
1.200 -+libc_hidden_def(fputc_unlocked)
1.201 -
1.202 - /* exposing these would be fundamentally *wrong*! fix you, instead! */
1.203 - /* libc_hidden_proto(fputc_unlocked) */
1.204 --strong_alias(__fputc_unlocked,fputc_unlocked)
1.205 -+/* strong_alias(__fputc_unlocked,fputc_unlocked) */
1.206 - /* exposing these would be fundamentally *wrong*! fix you, instead! */
1.207 - /* libc_hidden_def(fputc_unlocked) */
1.208 -
1.209 - libc_hidden_proto(putc_unlocked)
1.210 --strong_alias(__fputc_unlocked,putc_unlocked)
1.211 -+strong_alias(fputc_unlocked,putc_unlocked)
1.212 - libc_hidden_def(putc_unlocked)
1.213 - #ifndef __UCLIBC_HAS_THREADS__
1.214 --strong_alias(__fputc_unlocked,fputc)
1.215 -+strong_alias(fputc_unlocked,fputc)
1.216 -
1.217 - libc_hidden_proto(putc)
1.218 --strong_alias(__fputc_unlocked,putc)
1.219 -+strong_alias(fputc_unlocked,putc)
1.220 - libc_hidden_def(putc)
1.221 - #endif
1.222 -
1.223 -diff -ur uClibc-0.9.29/libc/stdio/getchar.c uClibc-0.9.29-patched/libc/stdio/getchar.c
1.224 ---- uClibc-0.9.29/libc/stdio/getchar.c 2006-12-19 22:30:25.000000000 -0600
1.225 -+++ uClibc-0.9.29-patched/libc/stdio/getchar.c 2007-05-09 18:05:21.642421481 -0500
1.226 -@@ -7,7 +7,8 @@
1.227 -
1.228 - #include "_stdio.h"
1.229 -
1.230 --libc_hidden_proto(__fgetc_unlocked)
1.231 -+//#undef fgetc_unlocked
1.232 -+libc_hidden_proto(fgetc_unlocked)
1.233 -
1.234 - #undef getchar
1.235 - #ifdef __DO_UNLOCKED
1.236 -diff -ur uClibc-0.9.29/libc/stdio/getdelim.c uClibc-0.9.29-patched/libc/stdio/getdelim.c
1.237 ---- uClibc-0.9.29/libc/stdio/getdelim.c 2006-02-13 02:52:46.000000000 -0600
1.238 -+++ uClibc-0.9.29-patched/libc/stdio/getdelim.c 2007-05-09 18:05:21.642421481 -0500
1.239 -@@ -11,8 +11,8 @@
1.240 - #include "_stdio.h"
1.241 -
1.242 - libc_hidden_proto(getdelim)
1.243 --
1.244 --libc_hidden_proto(__fgetc_unlocked)
1.245 -+//#undef fgetc_unlocked
1.246 -+libc_hidden_proto(fgetc_unlocked)
1.247 -
1.248 - /* Note: There is a defect in this function. (size_t vs ssize_t). */
1.249 -
1.250 -diff -ur uClibc-0.9.29/libc/stdio/old_vfprintf.c uClibc-0.9.29-patched/libc/stdio/old_vfprintf.c
1.251 ---- uClibc-0.9.29/libc/stdio/old_vfprintf.c 2006-01-22 13:35:08.000000000 -0600
1.252 -+++ uClibc-0.9.29-patched/libc/stdio/old_vfprintf.c 2007-05-09 18:05:21.642421481 -0500
1.253 -@@ -149,7 +149,8 @@
1.254 - libc_hidden_proto(strnlen)
1.255 - libc_hidden_proto(memcpy)
1.256 - libc_hidden_proto(putc_unlocked)
1.257 --libc_hidden_proto(__fputc_unlocked)
1.258 -+//#undef fputc_unlocked
1.259 -+libc_hidden_proto(fputc_unlocked)
1.260 - libc_hidden_proto(__glibc_strerror_r)
1.261 -
1.262 - /* #undef __UCLIBC_HAS_FLOATS__ */
1.263 -diff -ur uClibc-0.9.29/libc/stdio/putchar.c uClibc-0.9.29-patched/libc/stdio/putchar.c
1.264 ---- uClibc-0.9.29/libc/stdio/putchar.c 2006-01-13 18:58:03.000000000 -0600
1.265 -+++ uClibc-0.9.29-patched/libc/stdio/putchar.c 2007-05-09 18:05:21.642421481 -0500
1.266 -@@ -7,7 +7,8 @@
1.267 -
1.268 - #include "_stdio.h"
1.269 -
1.270 --libc_hidden_proto(__fputc_unlocked)
1.271 -+//#undef fputc_unlocked
1.272 -+libc_hidden_proto(fputc_unlocked)
1.273 -
1.274 - #undef putchar
1.275 - #ifdef __DO_UNLOCKED
1.276 -diff -ur uClibc-0.9.29/libc/stdio/puts.c uClibc-0.9.29-patched/libc/stdio/puts.c
1.277 ---- uClibc-0.9.29/libc/stdio/puts.c 2006-01-13 18:58:03.000000000 -0600
1.278 -+++ uClibc-0.9.29-patched/libc/stdio/puts.c 2007-05-09 18:05:21.642421481 -0500
1.279 -@@ -7,7 +7,8 @@
1.280 -
1.281 - #include "_stdio.h"
1.282 -
1.283 --libc_hidden_proto(__fputc_unlocked)
1.284 -+//#undef fputc_unlocked
1.285 -+libc_hidden_proto(fputc_unlocked)
1.286 - libc_hidden_proto(fputs_unlocked)
1.287 -
1.288 - int puts(register const char * __restrict s)
1.289 -@@ -25,7 +26,7 @@
1.290 - /* Note: Nonportable as fputs need only return nonnegative on success. */
1.291 - if ((n = fputs_unlocked(s, stream)) != EOF) {
1.292 - ++n;
1.293 -- if (__fputc_unlocked('\n', stream) == EOF) {
1.294 -+ if (fputc_unlocked('\n', stream) == EOF) {
1.295 - n = EOF;
1.296 - }
1.297 - }
1.298 -diff -ur uClibc-0.9.29/libc/stdio/putwchar.c uClibc-0.9.29-patched/libc/stdio/putwchar.c
1.299 ---- uClibc-0.9.29/libc/stdio/putwchar.c 2006-01-14 14:16:19.000000000 -0600
1.300 -+++ uClibc-0.9.29-patched/libc/stdio/putwchar.c 2007-05-09 18:05:21.642421481 -0500
1.301 -@@ -22,7 +22,8 @@
1.302 -
1.303 - #elif defined __UCLIBC_HAS_THREADS__
1.304 -
1.305 --libc_hidden_proto(__fputc_unlocked)
1.306 -+//#undef fputc_unlocked
1.307 -+libc_hidden_proto(fputc_unlocked)
1.308 - /* psm: should this be fputwc? */
1.309 - libc_hidden_proto(fputc)
1.310 -
1.311 -diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/bits/uClibc_stdio.h uClibc-0.9.29-patched/libc/sysdeps/linux/common/bits/uClibc_stdio.h
1.312 ---- uClibc-0.9.29/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2007-01-28 07:16:58.000000000 -0600
1.313 -+++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2007-05-09 20:56:02.408110608 -0500
1.314 -@@ -381,33 +381,29 @@
1.315 - # define __FEOF(__stream) __FEOF_UNLOCKED(__stream)
1.316 - #endif
1.317 -
1.318 --extern int __fgetc_unlocked(FILE *__stream);
1.319 --extern int __fputc_unlocked(int __c, FILE *__stream);
1.320 --
1.321 - /* First define the default definitions.
1.322 - They are overridden below as necessary. */
1.323 --#define __FGETC_UNLOCKED(__stream) (__fgetc_unlocked)((__stream))
1.324 -+#define __FGETC_UNLOCKED(__stream) (fgetc_unlocked)((__stream))
1.325 - #define __FGETC(__stream) (fgetc)((__stream))
1.326 --#define __GETC_UNLOCKED_MACRO(__stream) (__fgetc_unlocked)((__stream))
1.327 --#define __GETC_UNLOCKED(__stream) (__fgetc_unlocked)((__stream))
1.328 -+#define __GETC_UNLOCKED_MACRO(__stream) (fgetc_unlocked)((__stream))
1.329 -+#define __GETC_UNLOCKED(__stream) (fgetc_unlocked)((__stream))
1.330 - #define __GETC(__stream) (fgetc)((__stream))
1.331 -
1.332 --#define __FPUTC_UNLOCKED(__c, __stream) (__fputc_unlocked)((__c),(__stream))
1.333 -+#define __FPUTC_UNLOCKED(__c, __stream) (fputc_unlocked)((__c),(__stream))
1.334 - #define __FPUTC(__c, __stream) (fputc)((__c),(__stream))
1.335 --#define __PUTC_UNLOCKED_MACRO(__c, __stream) (__fputc_unlocked)((__c),(__stream))
1.336 --#define __PUTC_UNLOCKED(__c, __stream) (__fputc_unlocked)((__c),(__stream))
1.337 -+#define __PUTC_UNLOCKED_MACRO(__c, __stream) (fputc_unlocked)((__c),(__stream))
1.338 -+#define __PUTC_UNLOCKED(__c, __stream) (fputc_unlocked)((__c),(__stream))
1.339 - #define __PUTC(__c, __stream) (fputc)((__c),(__stream))
1.340 -
1.341 -
1.342 - #ifdef __STDIO_GETC_MACRO
1.343 --
1.344 - extern FILE *__stdin; /* For getchar() macro. */
1.345 -
1.346 - # undef __GETC_UNLOCKED_MACRO
1.347 - # define __GETC_UNLOCKED_MACRO(__stream) \
1.348 - ( ((__stream)->__bufpos < (__stream)->__bufgetc_u) \
1.349 - ? (*(__stream)->__bufpos++) \
1.350 -- : __fgetc_unlocked(__stream) )
1.351 -+ : fgetc_unlocked(__stream) )
1.352 -
1.353 - # if 0
1.354 - /* Classic macro approach. getc{_unlocked} can have side effects. */
1.355 -@@ -453,20 +449,17 @@
1.356 - # endif
1.357 - # endif
1.358 -
1.359 --#else
1.360 --
1.361 - #endif /* __STDIO_GETC_MACRO */
1.362 -
1.363 -
1.364 - #ifdef __STDIO_PUTC_MACRO
1.365 --
1.366 - extern FILE *__stdout; /* For putchar() macro. */
1.367 -
1.368 - # undef __PUTC_UNLOCKED_MACRO
1.369 - # define __PUTC_UNLOCKED_MACRO(__c, __stream) \
1.370 - ( ((__stream)->__bufpos < (__stream)->__bufputc_u) \
1.371 - ? (*(__stream)->__bufpos++) = (__c) \
1.372 -- : __fputc_unlocked((__c),(__stream)) )
1.373 -+ : (fputc_unlocked((__c),(__stream)) )
1.374 -
1.375 - # if 0
1.376 - /* Classic macro approach. putc{_unlocked} can have side effects.*/
1.377 -@@ -489,7 +482,8 @@
1.378 - }) )
1.379 -
1.380 - # undef __PUTC_UNLOCKED
1.381 --# define __PUTC_UNLOCKED(__c, __stream) __FPUTC_UNLOCKED((__c), (__stream))
1.382 -+# define __PUTC_UNLOCKED(__c, __stream) \
1.383 -+ __FPUTC_UNLOCKED((__c), (__stream))
1.384 -
1.385 - # ifdef __UCLIBC_HAS_THREADS__
1.386 - # undef __FPUTC
1.387 -diff -ur uClibc-0.9.29/libc/unistd/getpass.c uClibc-0.9.29-patched/libc/unistd/getpass.c
1.388 ---- uClibc-0.9.29/libc/unistd/getpass.c 2006-07-05 05:58:38.000000000 -0500
1.389 -+++ uClibc-0.9.29-patched/libc/unistd/getpass.c 2007-05-09 18:05:21.642421481 -0500
1.390 -@@ -36,7 +36,8 @@
1.391 - libc_hidden_proto(fputs)
1.392 - libc_hidden_proto(fputc)
1.393 - libc_hidden_proto(putc)
1.394 --libc_hidden_proto(__fputc_unlocked)
1.395 -+//#undef fputc_unlocked
1.396 -+libc_hidden_proto(fputc_unlocked)
1.397 -
1.398 - /* It is desirable to use this bit on systems that have it.
1.399 - The only bit of terminal state we want to twiddle is echoing, which is