Some patches for zip and unzip under Cygwin and Unix
Cosmin Truta <[email protected]> Fri, 28 Nov 2003 10:33:33 -0500
| Newsgroups | gmane.comp.archivers.info-zip |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime-oOUblnuQwHKola3qYQ6TW/IULO3mGbRi9nwVQlTi/[email protected] for more info. --1686162181-2072418402-1069715579=:24829 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: <[email protected]> [To MOD: some time ago, I sent this message to the zip-bugs list, but then I saw the FAQ note about discontinuing that list, so I am resending my message here. Don't bother to read and approve the old one.] ---------- Forwarded message ---------- Date: Mon, 24 Nov 2003 18:12:59 -0500 (EST) From: Cosmin Truta <[email protected]> To: Info-ZIP <[email protected]> Cc: Charles Wilson <[email protected]> Subject: Some patches for zip and unzip under Cygwin and Unix Hi, I am attaching a set of patches for the latest zip24h beta: ftp://ftp.info-zip.org/pub/infozip/OLD/beta/zip24h.zip and for the latest unzip551c beta: ftp://ftp.info-zip.org/pub/infozip/OLD/beta/unz551c.zip ** Here are the modifications to zip24h: Z1). ChangeLog entry: - Adapt the Unix port to work under Cygwin. Notes: - Some of the modifications are inspired from Charles Wilson's patches. If you accept this part, please also credit him in the ChangeLog. - Affected files: unix/Makefile, unix/osdep.h, unix/unix.c, unix/zipup.h - The motivation for this patch is to be able to benefit from the Unix FS in Cygwin; most notably, to benefit from symlinks. Also, to be able to store and retrieve UIDs and GIDs. - A more detailed summary of modifications: - Open files in binary mode (FOPR/FOPM/FOPW/fhow). - Use "_crc_i386.s" instead of "crc_i386.s" in unix/Makefile, so that it doesn't clash with "crc_i386.S". - Add the Cygwin target in unix/Makefile, which is the same as "generic_gcc" plus the definition E=".exe". - Define the MSDOS symbol and undefine the WIN32 symbol in unix/osdep.h. Right now, it's possible to regard Cygwin either as a Win32 platform (with NTSD and stuff) by using win32/makefile.gcc, or as a Unix platform (with symlinks and stuff) by using unix/Makefile. MSDOS is defined in both cases. - You might not agree with the change in ex2in() in unix/unix.c. I tried to make that change as unintrusive as possible; if you do disagree with it, please allow me to bring further arguments before rejecting my idea. Thanks. Z2). ChangeLog entry: - Add Cygwin, Intel i586 and Intel i686 to version_local() in Unix. Note: - Apparently, there is no __i786__ macro... Z3). ChangeLog entry: - Do not test the S_IFLNK flag if NO_SYMLINK is defined. Note: - Although I don't know what Unix flavor lacks symlinks, I noticed that S_IFLNK gets undefined under NO_SYMLINK, in "tailor.h". As a result, the compilation used to break in unix/unix.c. I artificially defined this NO_SYMLINK macro myself, just for testing, and now it seems to work. Z4). ChangeLog entry: - Compile out the "UT" extra-field handling in Unix, if NO_EF_UT_TIME is defined. ChangeLog entry: - Compile out the "Ux" entra-field handling in Unix, if NO_EF_IZUNIX or NO_EF_IZUNIX2 is defined. Notes: - Affected files: unix/osdep.h, unix/unix.c, zip.c - Well, I know there is "zip -X", but that's not good enough. If one uses zip to make software distributions, there may be a need to store the universal time "UT", but there is no need to store the GID/UID (in Unix) or the NT "SD" (in NT), etc. These fields only have meaning inside the file system where the archive was created, and otherwise, they are junk. Ideally, there should be a run-time option ("zip -XX" ?...) that allows the user to select only the flags that make sense for distribution (fields like "UT"), but even if this kind of support doesn't exist, there should be at least the possibility to make custom builds of zip, that filter the local junk out. I am glad that NO_NTSD_EAS exists for Win32, and I also liked to have a NO_EF_IZUNIX option. - Similarly, there should be a way to compile the USE_EF_IZUNIX2 code in, and USE_EF_UT_TIME out. [implemented] - Similarly, it would be nice to have a way to disable the storing of the "creation time" and "last access" time in the "UT" field when using zip for archiving software distributions. [not implemented; might be a good idea for "zip -XX"; please let me know about your decision] Z5). ChangeLog entry [not really necessary]: - Improve style when avoiding unused variable warning in unix/unix.c Note: - The former "if (isdir == 42) return n;" was really ugly. Not to mention that my solution "if (isdir) return n; return n;" has a better chance to be optimized by the compiler, as a simple "return n;". Z6). ChangeLog entry: - Remove the recognition of __CYGWIN32__ in win32/osdep.h Note: - The support of Cygwin prior to Beta 20 doesn't make sense anymore. Cygwin is now in a pretty advanced stage, with lots of Unix API support, so chances are that those ancient betas don't even work if the source code happens to rely on new Cygwin features (which are, in fact, standard POSIX features). In addition, none of the Cygwin folks want to hear about supporting anything older than Cygwin 1.0. Cygwin is now at version 1.5. __CYGWIN32__ is just noise. Z7). ChangeLog entries [not really about Unix or Cygwin...]: - Remove -DMSDOS in win32/makefile.bor and win32/makefile.w32 - Improve "clean" target in win32/makefile.bor; add "clean" target in win32/makefile.w32. Note: - That -DMSDOS isn't necessary, because it is already enabled in the source code. Besides, it isn't used consistently across makefiles. Rather than adding it everywhere, I figured it's better to remove it from everywhere. ** Here are the modifications to unzip551c: U1). ChangeLog entry: - Adapt the Unix port to work under Cygwin. Notes: - Ditto, as in Z1). Also please credit Charles Wilson. - Affected files: unzip.h, unzpriv.h, unix/Makefile - I inserted Cygwin in the comment lists that accompanies the definition of MODERN and PROTO; I also reorganized that list a little, to make it more consistent with the coming preprocessed code. - There was a typo inside unzpriv.h. Instead of fixing the typo, I rephrased the whole comment, which now looks more clear IMHO. U2). ChangeLog entry: - Add Cygwin, Intel i586 and Intel i686 to version_local() in Unix. U3). ChangeLog entry [not really necessary]: - Fix typo in unix/Makefile and unix/unix.c maxosx --> macosx, CygWin --> Cygwin U4). ChangeLog entry: - Remove the recognition of __CYGWIN32__ in win32/w32cfg.h Note: - Ditto, as in Z6). ** This is it. Enjoy :-) Cosmin --1686162181-2072418402-1069715579=:24829 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="zip24h-cos.diff" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.58.0311241812590.24829-RRbLuHh/[email protected]> Content-Description: Content-Disposition: ATTACHMENT; FILENAME="zip24h-cos.diff" ZGlmZiAtcnUgemlwMjRoL3VuaXgvTWFrZWZpbGUgemlwLW5ldy91bml4L01h a2VmaWxlDQotLS0gemlwMjRoL3VuaXgvTWFrZWZpbGUJTW9uIE5vdiAyOSAw MDoyMjo0MiAxOTk5DQorKysgemlwLW5ldy91bml4L01ha2VmaWxlCVNhdCBO b3YgMjIgMTQ6MzI6MDAgMjAwMw0KQEAgLTUsOCArNSw4IEBADQogCUBlY2hv ICcnDQogCUBlY2hvICdNYWtlIHdoYXQ/ICBZb3UgbXVzdCBzYXkgd2hhdCBz eXN0ZW0gdG8gbWFrZSBaaXAgZm9yLS1lLmcuJw0KIAlAZWNobyAnIm1ha2Ug Z2VuZXJpYyIuICBDaG9pY2VzOiBnZW5lcmljLCBnZW5lcmljX2djYywnDQot CUBlY2hvICdhdHQ2MzAwbm9kaXIsIGNvaGVyZW50LCBjcmF5X3YzLCBseW54 LCBtaW5peCwgb3MzOTAsIHFueCwnDQotCUBlY2hvICdxbnhudG8sIHNvbGFy aXMsIHNvbGFyaXNfZ2NjJw0KKwlAZWNobyAnYXR0NjMwMG5vZGlyLCBjb2hl cmVudCwgY3JheV92MywgY3lnd2luLCBseW54LCBtaW5peCwnDQorCUBlY2hv ICdvczM5MCwgcW54LCBxbnhudG8sIHNvbGFyaXMsIHNvbGFyaXNfZ2NjJw0K IAlAZWNobyAnU2VlIHRoZSBmaWxlcyBJTlNUQUxMIGFuZCB6aXAudHh0IGZv ciBtb3JlIGluZm9ybWF0aW9uLicNCiAJQGVjaG8gJycNCiANCkBAIC0xNiwx MiArMTYsMTIgQEANCiBTSEVMTCA9IC9iaW4vc2gNCiBMTiA9IGxuIC1zDQog DQotIyAodG8gdXNlIHRoZSBHbnUgY29tcGlsZXIsIGNoYW5nZSBjYyB0byBn Y2MgaW4gQ0MpDQorIyAodG8gdXNlIHRoZSBHTlUgY29tcGlsZXIsIGNoYW5n ZSBjYyB0byBnY2MgaW4gQ0MpDQogQ0MgPSBjYw0KIEJJTkQgPSAkKENDKQ0K IEFTID0gJChDQykgLWMNCi1FID0NCiBDUFAgPSAvbGliL2NwcA0KK0UgPQ0K IA0KICMgcHJvYmFibHkgY2FuIGNoYW5nZSB0aGlzIHRvICdpbnN0YWxsJyBp ZiB5b3UgaGF2ZSBpdA0KIElOU1RBTEwgPSBjcA0KQEAgLTkyLDkgKzkyLDEw IEBADQogCXJtIC1mIF9tYXRjaC5zDQogDQogY3JjX2kzODYubzogY3JjX2kz ODYuUw0KLQkkKENQUCkgY3JjX2kzODYuUyA+IGNyY19pMzg2LnMNCi0JJChB UykgY3JjX2kzODYucw0KLQlybSAtZiBjcmNfaTM4Ni5zDQorCSQoQ1BQKSBj cmNfaTM4Ni5TID4gX2NyY19pMzg2LnMNCisJJChBUykgX2NyY19pMzg2LnMN CisJbXYgX2NyY19pMzg2Lm8gY3JjX2kzODYubw0KKwlybSAtZiBfY3JjX2kz ODYucw0KIA0KIHVuaXgubzogdW5peC91bml4LmMNCiAJJChDQykgLWMgJChD RkxBR1MpIHVuaXgvdW5peC5jDQpAQCAtMTc5LDYgKzE4MCwxMCBAQA0KIGNy YXlfdjM6DQogCSQoTUFLRSkgemlwcyBDQz0ic2NjIiBcDQogCQlDRkxBR1M9 Ii1EVU5JWCAtSS4gLU8gLWggdmVjdG9yMiAtaCBzY2FsYXIzIC1ESEFWRV9E SVJFTlRfSCINCisNCisjIEN5Z3dpbg0KK2N5Z3dpbjoNCisJJChNQUtFKSBn ZW5lcmljIENDPWdjYyBDUFA9ImdjYyAtRSIgRT0iLmV4ZSINCiANCiAjIEx5 bnhPUw0KIGx5bng6DQpkaWZmIC1ydSB6aXAyNGgvdW5peC9vc2RlcC5oIHpp cC1uZXcvdW5peC9vc2RlcC5oDQotLS0gemlwMjRoL3VuaXgvb3NkZXAuaAlT dW4gTm92IDA3IDA1OjUyOjAwIDE5OTkNCisrKyB6aXAtbmV3L3VuaXgvb3Nk ZXAuaAlTYXQgTm92IDIyIDE0OjQwOjAwIDIwMDMNCkBAIC0xLDUgKzEsNSBA QA0KIC8qDQotICBDb3B5cmlnaHQgKGMpIDE5OTAtMTk5OSBJbmZvLVpJUC4g IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICBDb3B5cmlnaHQgKGMpIDE5OTAt MjAwMyBJbmZvLVpJUC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogDQogICBT ZWUgdGhlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0UsIHZlcnNpb24gMTk5 OS1PY3QtMDUgb3IgbGF0ZXINCiAgICh0aGUgY29udGVudHMgb2Ygd2hpY2gg YXJlIGFsc28gaW5jbHVkZWQgaW4gemlwLmgpIGZvciB0ZXJtcyBvZiB1c2Uu DQpAQCAtOSw0ICs5LDM5IEBADQogI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0K ICNpbmNsdWRlIDxzeXMvc3RhdC5oPg0KIA0KLSNkZWZpbmUgVVNFX0VGX1VU X1RJTUUgICAgICAgICAgLyogRW5hYmxlIHVzZSBvZiAiVVQiIGV4dHJhIGZp ZWxkIHRpbWUgaW5mbyAqLw0KKw0KKyNpZmRlZiBfX0NZR1dJTl9fDQorDQor LyogVGhlIEN5Z3dpbiAoV2luZG93cykgZmlsZSBzeXN0ZW0gaXMgYW4gZXh0 ZW5zaW9uIG9mIE1TRE9TOg0KKyAqICAgJ1xcJyBpcyBhIGRpcmVjdG9yeSBz ZXBhcmF0b3IgaW4gcGF0aHM7DQorICogICAiXHJcbiIgaXMgYSByZWNvcmQg KGxpbmUpIHRlcm1pbmF0b3IgaW4gdGV4dCBmaWxlczsNCisgKiAgIGV0Yy4N CisgKi8NCisjICBkZWZpbmUgTVNET1MNCisNCisvKiBGaWxlIG9wZXJhdGlv bnM6DQorICogICB1c2UgImIiIGZvciBiaW5hcnk7DQorICogICB1c2UgIlMi IGZvciBzZXF1ZW50aWFsIGFjY2VzcyBvbiBOVCB0byBwcmV2ZW50IHRoZSBO VCBmaWxlIGNhY2hlDQorICogICBlYXRpbmcgdXAgbWVtb3J5IHdpdGggbGFy Z2UgLnppcCBmaWxlcy4NCisgKi8NCisjICBkZWZpbmUgRk9QUiAicmIiDQor IyAgZGVmaW5lIEZPUE0gInIrYiINCisjICBkZWZpbmUgRk9QVyAid2JTIg0K Kw0KKy8qIEN5Z3dpbiBpcyBub3QgV2luMzIuICovDQorIyAgdW5kZWYgV0lO MzINCisNCisjZW5kaWYgLyogP19fQ1lHV0lOX18gKi8NCisNCisNCisvKiBF bmFibGUgdGhlICJVVCIgZXh0cmEgZmllbGQgKHRpbWUgaW5mbykgKi8NCisj aWYgIWRlZmluZWQoTk9fRUZfVVRfVElNRSkgJiYgIWRlZmluZWQoVVNFX0VG X1VUX1RJTUUpDQorIyAgZGVmaW5lIFVTRV9FRl9VVF9USU1FDQorI2VuZGlm DQorDQorLyogRW5hYmxlIHRoZSAiVXgiIGV4dHJhIGZpZWxkIChnaWQvdWlk KSAqLw0KKyNpZiAhZGVmaW5lZChOT19FRl9JWlVOSVgpICYmICFkZWZpbmVk KE5PX0VGX0laVU5JWDIpDQorIyAgaWZuZGVmIFVTRV9FRl9JWlVOSVgyDQor IyAgICBkZWZpbmUgVVNFX0VGX0laVU5JWDINCisjICBlbmRpZg0KKyNlbmRp Zg0KZGlmZiAtcnUgemlwMjRoL3VuaXgvdW5peC5jIHppcC1uZXcvdW5peC91 bml4LmMNCi0tLSB6aXAyNGgvdW5peC91bml4LmMJU2F0IEphbiAxOSAwNDoy Mjo0NCAyMDAyDQorKysgemlwLW5ldy91bml4L3VuaXguYwlNb24gTm92IDI0 IDExOjIyOjAwIDIwMDMNCkBAIC0xLDUgKzEsNSBAQA0KIC8qDQotICBDb3B5 cmlnaHQgKGMpIDE5OTAtMjAwMSBJbmZvLVpJUC4gIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQorICBDb3B5cmlnaHQgKGMpIDE5OTAtMjAwMyBJbmZvLVpJUC4g IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogDQogICBTZWUgdGhlIGFjY29tcGFu eWluZyBmaWxlIExJQ0VOU0UsIHZlcnNpb24gMTk5OS1PY3QtMDUgb3IgbGF0 ZXINCiAgICh0aGUgY29udGVudHMgb2Ygd2hpY2ggYXJlIGFsc28gaW5jbHVk ZWQgaW4gemlwLmgpIGZvciB0ZXJtcyBvZiB1c2UuDQpAQCAtMTQxLDggKzE0 MSwxMSBAQA0KICNpZmRlZiBPUzM5MA0KICAgaWYgKFNfSVNSRUcocy5zdF9t b2RlKSB8fCBTX0lTTE5LKHMuc3RfbW9kZSkpDQogI2Vsc2UNCi0gIGlmICgo cy5zdF9tb2RlICYgU19JRlJFRykgPT0gU19JRlJFRyB8fA0KLSAgICAgIChz LnN0X21vZGUgJiBTX0lGTE5LKSA9PSBTX0lGTE5LKQ0KKyAgaWYgKChzLnN0 X21vZGUgJiBTX0lGUkVHKSA9PSBTX0lGUkVHDQorIyAgaWZuZGVmIE5PX1NZ TUxJTksNCisgICAgICB8fCAocy5zdF9tb2RlICYgU19JRkxOSykgPT0gU19J RkxOSw0KKyMgIGVuZGlmDQorICAgICAgKQ0KICNlbmRpZg0KICAgew0KICAg ICAvKiBhZGQgb3IgcmVtb3ZlIG5hbWUgb2YgZmlsZSAqLw0KQEAgLTIxMCwx NSArMjEzLDI1IEBADQogICAgc3RyaW5nIG9yIE5VTEwgaWYgbm90IGVub3Vn aCBtZW1vcnkuICovDQogew0KICAgY2hhciAqbjsgICAgICAgICAgICAgIC8q IGludGVybmFsIGZpbGUgbmFtZSAobWFsbG9jJ2VkKSAqLw0KLSAgY2hhciAq dCA9IE5VTEw7ICAgICAgIC8qIHNob3J0ZW5lZCBuYW1lICovDQorICBjaGFy ICp0ID0geDsgICAgICAgICAgLyogc2hvcnRlbmVkIG5hbWUgKi8NCiAgIGlu dCBkb3NmbGFnOw0KIA0KLSAgZG9zZmxhZyA9IGRvc2lmeTsgIC8qIGRlZmF1 bHQgZm9yIG5vbi1ET1MgYW5kIG5vbi1PUy8yICovDQorICBkb3NmbGFnID0g ZG9zaWZ5OyAgICAgLyogZGVmYXVsdCBmb3Igbm9uLURPUyBhbmQgbm9uLU9T LzIgKi8NCiANCiAgIC8qIEZpbmQgc3RhcnRpbmcgcG9pbnQgaW4gbmFtZSBi ZWZvcmUgZG9pbmcgbWFsbG9jICovDQorI2lmZGVmIE1TRE9TICAgICAgICAg ICAgLyogc3lzdGVtcyBtYXNxdWVyYWRpbmcgYXMgVW5peDogREpHUFAsIEN5 Z3dpbiwgZXRjLiAqLw0KKyAgLyogQ29udmVydCBiYWNrc2xhc2hlcyB0byBz bGFzaGVzICovDQorICBmb3IgKG4gPSB0OyAqbiAhPSAnXDAnOyBuKyspDQor ICAgIGlmICgqbiA9PSAnXFwnKQ0KKyAgICAgICpuID0gJy8nOw0KKyAgLyog U3RyaXAgZHJpdmUgc3BlY2lmaWNhdGlvbiAqLw0KKyAgaWYgKGlzYWxwaGEo KHVjaCl0WzBdKSAmJiB0WzFdID09ICc6JykNCisgICAgdCArPSAyOw0KKyAg ZWxzZQ0KKyNlbmRpZg0KICAgLyogU3RyaXAgIi8vaG9zdC9zaGFyZS8iIHBh cnQgb2YgYSBVTkMgbmFtZSAqLw0KLSAgaWYgKCFzdHJuY21wKHgsIi8vIiwy KSAmJiAoeFsyXSAhPSAnXDAnICYmIHhbMl0gIT0gJy8nKSkgew0KLSAgICBu ID0geCArIDI7DQorICBpZiAoIXN0cm5jbXAodCwgIi8vIiwgMikgJiYgKHRb Ml0gIT0gJ1wwJyAmJiB0WzJdICE9ICcvJykpIHsNCisgICAgbiA9IHQgKyAy Ow0KICAgICB3aGlsZSAoKm4gIT0gJ1wwJyAmJiAqbiAhPSAnLycpDQogICAg ICAgbisrOyAgICAgICAgICAgICAgLyogc3RyaXAgaG9zdCBuYW1lICovDQog ICAgIGlmICgqbiAhPSAnXDAnKSB7DQpAQCAtMjI4LDggKzI0MSw3IEBADQog ICAgIH0NCiAgICAgaWYgKCpuICE9ICdcMCcpDQogICAgICAgdCA9IG4gKyAx Ow0KLSAgfSBlbHNlDQotICAgICAgdCA9IHg7DQorICB9DQogICB3aGlsZSAo KnQgPT0gJy8nKQ0KICAgICB0Kys7ICAgICAgICAgICAgICAgIC8qIHN0cmlw IGxlYWRpbmcgJy8nIGNoYXJzIHRvIGdldCBhIHJlbGF0aXZlIHBhdGggKi8N CiAgIHdoaWxlICgqdCA9PSAnLicgJiYgdFsxXSA9PSAnLycpDQpAQCAtMjQ0 LDE4ICsyNTYsMTggQEANCiAgICAgcmV0dXJuIE5VTEw7DQogICBzdHJjcHko biwgdCk7DQogDQotICBpZiAoaXNkaXIgPT0gNDIpIHJldHVybiBuOyAgICAv KiBhdm9pZCB3YXJuaW5nIG9uIHVudXNlZCB2YXJpYWJsZSAqLw0KLQ0KICAg aWYgKGRvc2lmeSkNCiAgICAgbXNuYW1lKG4pOw0KIA0KICNpZmRlZiBFQkNE SUMNCi0gIHN0cnRvYXNjKG4sIG4pOyAgICAgICAgICAgICAgIC8qIGhlcmUg YmVjYXVzZSBtc25hbWUoKSBuZWVkcyBuYXRpdmUgY29kaW5nICovDQorICBz dHJ0b2FzYyhuLCBuKTsgICAgICAgLyogaGVyZSBiZWNhdXNlIG1zbmFtZSgp IG5lZWRzIG5hdGl2ZSBjb2RpbmcgKi8NCiAjZW5kaWYNCiANCiAgIC8qIFJl dHVybmVkIG1hbGxvYydlZCBuYW1lICovDQogICBpZiAocGRvc2ZsYWcpDQog ICAgICpwZG9zZmxhZyA9IGRvc2ZsYWc7DQorDQorICBpZiAoaXNkaXIpIHJl dHVybiBuOyAgLyogYXZvaWQgd2FybmluZyBvbiB1bnVzZWQgdmFyaWFibGUg Ki8NCiAgIHJldHVybiBuOw0KIH0NCiANCkBAIC00MDksNiArNDIxLDcgQEAN CiAgIC8qIHN0b3JlIGZ1bGwgZGF0YSBpbiBsb2NhbCBoZWFkZXIgYnV0IGp1 c3QgbW9kaWZpY2F0aW9uIHRpbWUgc3RhbXAgaW5mbw0KICAgICAgaW4gY2Vu dHJhbCBoZWFkZXIgKi8NCiB7DQorI2lmIGRlZmluZWQoVVNFX0VGX1VUX1RJ TUUpIHx8IGRlZmluZWQoVVNFX0VGX0laVU5JWDIpDQogICBzdHJ1Y3Qgc3Rh dCBzOw0KIA0KICAgLyogRm9yIHRoZSBmdWxsIHNpemVkIFVUIGxvY2FsIGZp ZWxkIGluY2x1ZGluZyB0aGUgVUlEL0dJRCBmaWVsZHMsIHdlDQpAQCAtNDE2 LDE4ICs0MjksMjkgQEANCiAgIGlmIChMU1NUQVQoei0+bmFtZSwgJnMpKQ0K ICAgICByZXR1cm4gWkVfT1BFTjsNCiANCi0jZGVmaW5lIEVCX0xfVVRfU0la RSAgICAoRUJfSEVBRFNJWkUgKyBFQl9VVF9MRU4oMikpDQotI2RlZmluZSBF Ql9DX1VUX1NJWkUgICAgKEVCX0hFQURTSVpFICsgRUJfVVRfTEVOKDEpKQ0K LSNkZWZpbmUgRUJfTF9VWDJfU0laRSAgIChFQl9IRUFEU0laRSArIEVCX1VY Ml9NSU5MRU4pDQotI2RlZmluZSBFQl9DX1VYMl9TSVpFICAgRUJfSEVBRFNJ WkUNCi0jZGVmaW5lIEVGX0xfVU5JWF9TSVpFICAoRUJfTF9VVF9TSVpFICsg RUJfTF9VWDJfU0laRSkNCi0jZGVmaW5lIEVGX0NfVU5JWF9TSVpFICAoRUJf Q19VVF9TSVpFICsgRUJfQ19VWDJfU0laRSkNCisjIGlmZGVmIFVTRV9FRl9V VF9USU1FDQorIyAgZGVmaW5lIEVCX0xfVVRfU0laRSAgICAoRUJfSEVBRFNJ WkUgKyBFQl9VVF9MRU4oMikpDQorIyAgZGVmaW5lIEVCX0NfVVRfU0laRSAg ICAoRUJfSEVBRFNJWkUgKyBFQl9VVF9MRU4oMSkpDQorIyBlbHNlDQorIyAg ZGVmaW5lIEVCX0xfVVRfU0laRSAgICAwDQorIyAgZGVmaW5lIEVCX0NfVVRf U0laRSAgICAwDQorIyBlbmRpZg0KKyMgaWZkZWYgVVNFX0VGX0laVU5JWDIN CisjICBkZWZpbmUgRUJfTF9VWDJfU0laRSAgIChFQl9IRUFEU0laRSArIEVC X1VYMl9NSU5MRU4pDQorIyAgZGVmaW5lIEVCX0NfVVgyX1NJWkUgICAgRUJf SEVBRFNJWkUNCisjIGVsc2UNCisjICBkZWZpbmUgRUJfTF9VWDJfU0laRSAg IDANCisjICBkZWZpbmUgRUJfQ19VWDJfU0laRSAgIDANCisjIGVuZGlmDQor IyBkZWZpbmUgRUZfTF9VTklYX1NJWkUgICAoRUJfTF9VVF9TSVpFICsgRUJf TF9VWDJfU0laRSkNCisjIGRlZmluZSBFRl9DX1VOSVhfU0laRSAgIChFQl9D X1VUX1NJWkUgKyBFQl9DX1VYMl9TSVpFKQ0KIA0KICAgaWYgKCh6LT5leHRy YSA9IChjaGFyICopbWFsbG9jKEVGX0xfVU5JWF9TSVpFKSkgPT0gTlVMTCkN CiAgICAgcmV0dXJuIFpFX01FTTsNCiAgIGlmICgoei0+Y2V4dHJhID0gKGNo YXIgKiltYWxsb2MoRUZfQ19VTklYX1NJWkUpKSA9PSBOVUxMKQ0KICAgICBy ZXR1cm4gWkVfTUVNOw0KIA0KKyMgaWZkZWYgVVNFX0VGX1VUX1RJTUUNCiAg IHotPmV4dHJhWzBdICA9ICdVJzsNCiAgIHotPmV4dHJhWzFdICA9ICdUJzsN CiAgIHotPmV4dHJhWzJdICA9IChjaGFyKUVCX1VUX0xFTigyKTsgICAgLyog bGVuZ3RoIG9mIGRhdGEgcGFydCBvZiBsb2NhbCBlLmYuICovDQpAQCAtNDQx LDIzICs0NjUsMzYgQEANCiAgIHotPmV4dHJhWzEwXSA9IChjaGFyKShzLnN0 X2F0aW1lID4+IDgpOw0KICAgei0+ZXh0cmFbMTFdID0gKGNoYXIpKHMuc3Rf YXRpbWUgPj4gMTYpOw0KICAgei0+ZXh0cmFbMTJdID0gKGNoYXIpKHMuc3Rf YXRpbWUgPj4gMjQpOw0KLSAgei0+ZXh0cmFbMTNdID0gJ1UnOw0KLSAgei0+ ZXh0cmFbMTRdID0gJ3gnOw0KLSAgei0+ZXh0cmFbMTVdID0gKGNoYXIpRUJf VVgyX01JTkxFTjsgICAvKiBsZW5ndGggb2YgZGF0YSBwYXJ0IG9mIGxvY2Fs IGUuZi4gKi8NCi0gIHotPmV4dHJhWzE2XSA9IDA7DQotICB6LT5leHRyYVsx N10gPSAoY2hhcikocy5zdF91aWQpOw0KLSAgei0+ZXh0cmFbMThdID0gKGNo YXIpKHMuc3RfdWlkID4+IDgpOw0KLSAgei0+ZXh0cmFbMTldID0gKGNoYXIp KHMuc3RfZ2lkKTsNCi0gIHotPmV4dHJhWzIwXSA9IChjaGFyKShzLnN0X2dp ZCA+PiA4KTsNCi0gIHotPmV4dCA9IEVGX0xfVU5JWF9TSVpFOw0KLQ0KICAg bWVtY3B5KHotPmNleHRyYSwgei0+ZXh0cmEsIEVCX0NfVVRfU0laRSk7DQog ICB6LT5jZXh0cmFbRUJfTEVOXSA9IChjaGFyKUVCX1VUX0xFTigxKTsNCi0g IG1lbWNweSh6LT5jZXh0cmErRUJfQ19VVF9TSVpFLCB6LT5leHRyYStFQl9M X1VUX1NJWkUsIEVCX0NfVVgyX1NJWkUpOw0KLSAgei0+Y2V4dHJhW0VCX0xF TitFQl9DX1VUX1NJWkVdID0gMDsNCisjIGVuZGlmIC8qID9VU0VfRUZfVVRf VElNRSAqLw0KKyMgaWZkZWYgVVNFX0VGX0laVU5JWDINCisgIHsNCisgICAg Y2hhciAqZXh0cmEsICpjZXh0cmE7DQorIyAgaWZkZWYgVVNFX0VGX1VUX1RJ TUUNCisgICAgZXh0cmEgID0gei0+ZXh0cmEgICsgRUJfTF9VVF9TSVpFOw0K KyAgICBjZXh0cmEgPSB6LT5jZXh0cmEgKyBFQl9DX1VUX1NJWkU7DQorIyAg ZWxzZQ0KKyAgICBleHRyYSAgPSB6LT5leHRyYTsNCisgICAgY2V4dHJhID0g ei0+Y2V4dHJhOw0KKyMgIGVuZGlmDQorICAgIGV4dHJhWzBdID0gJ1UnOw0K KyAgICBleHRyYVsxXSA9ICd4JzsNCisgICAgZXh0cmFbMl0gPSAoY2hhcilF Ql9VWDJfTUlOTEVOOyAgICAgLyogbGVuZ3RoIG9mIGRhdGEgcGFydCBvZiBs b2NhbCBlLmYuICovDQorICAgIGV4dHJhWzNdID0gMDsNCisgICAgZXh0cmFb NF0gPSAoY2hhcikocy5zdF91aWQpOw0KKyAgICBleHRyYVs1XSA9IChjaGFy KShzLnN0X3VpZCA+PiA4KTsNCisgICAgZXh0cmFbNl0gPSAoY2hhcikocy5z dF9naWQpOw0KKyAgICBleHRyYVs3XSA9IChjaGFyKShzLnN0X2dpZCA+PiA4 KTsNCisgICAgbWVtY3B5KGNleHRyYSwgZXh0cmEsIEVCX0NfVVgyX1NJWkUp Ow0KKyAgICBjZXh0cmFbRUJfTEVOXSA9IDA7DQorICB9DQorIyBlbmRpZiAv KiA/VVNFX0VGX0laVU5JWDIgKi8NCisNCisgIHotPmV4dCAgPSBFRl9MX1VO SVhfU0laRTsNCiAgIHotPmNleHQgPSBFRl9DX1VOSVhfU0laRTsNCiANCi0j aWYgMCAgLyogVUlEL0dJRCBwcmVzZW5jZSBpcyBub3cgc2lnbmFsZWQgYnkg Y2VudHJhbCBFRl9JWlVOSVgyIGZpZWxkICEgKi8NCisjIGlmIDAgIC8qIFVJ RC9HSUQgcHJlc2VuY2UgaXMgbm93IHNpZ25hbGVkIGJ5IGNlbnRyYWwgRUZf SVpVTklYMiBmaWVsZCAhICovDQogICAvKiBsb3dlci1taWRkbGUgZXh0ZXJu YWwtYXR0cmlidXRlIGJ5dGUgKHVudXNlZCB1bnRpbCBub3cpOg0KICAgICog ICBoaWdoIGJpdCAgICAgICAgPT4gKGhhdmUgR01UIG1vZC9hY2MgdGltZXMp ID4+PiBOTyBMT05HRVIgVVNFRCEgPDw8DQogICAgKiAgIHNlY29uZC1oaWdo IGJpdCA9PiBoYXZlIFVuaXggVUlEL0dJRCBpbmZvDQpAQCAtNDY3LDcgKzUw NCwxMCBAQA0KICAgICogICAgICAgdmVyc2lvbnMgMi4waiB1cCB0byAyLjB2 LCBmb3IgYWJvdXQgMS41IHllYXJzLg0KICAgICovDQogICB6LT5hdHggfD0g MHg0MDAwOw0KLSNlbmRpZiAvKiBuZXZlciAqLw0KKyMgZW5kaWYgLyogbmV2 ZXIgKi8NCisNCisjZW5kaWYgLyogPyhVU0VfRUZfVVRfVElNRSB8fCBVU0Vf RUZfSVpVTklYMikgKi8NCisNCiAgIHJldHVybiBaRV9PSzsNCiB9DQogDQpA QCAtNjcxLDYgKzcxMSwxNSBAQA0KICMgZW5kaWYgLyogTmV0QlNEICovDQog IyBlbmRpZiAvKiBCU0QgPiAxOTkxMDMgKi8NCiAjZWxzZQ0KKyNpZmRlZiBf X0NZR1dJTl9fDQorIyAgZGVmaW5lIE9TX05BTUUgIkN5Z3dpbiINCisjZWxz ZQ0KKyNpZiBkZWZpbmVkKGk2ODYpIHx8IGRlZmluZWQoX19pNjg2KSB8fCBk ZWZpbmVkKF9faTY4Nl9fKQ0KKyMgIGRlZmluZSBPU19OQU1FICJJbnRlbCA2 ODYiDQorI2Vsc2UNCisjaWYgZGVmaW5lZChpNTg2KSB8fCBkZWZpbmVkKF9f aTU4NikgfHwgZGVmaW5lZChfX2k1ODZfXykNCisjICBkZWZpbmUgT1NfTkFN RSAiSW50ZWwgNTg2Ig0KKyNlbHNlDQogI2lmIGRlZmluZWQoaTQ4NikgfHwg ZGVmaW5lZChfX2k0ODYpIHx8IGRlZmluZWQoX19pNDg2X18pDQogIyAgZGVm aW5lIE9TX05BTUUgIkludGVsIDQ4NiINCiAjZWxzZQ0KQEAgLTcyMCw2ICs3 NjksOSBAQA0KICNlbmRpZiAvKiBQeXJhbWlkICovDQogI2VuZGlmIC8qIDM4 NiAqLw0KICNlbmRpZiAvKiA0ODYgKi8NCisjZW5kaWYgLyogNTg2ICovDQor I2VuZGlmIC8qIDY4NiAqLw0KKyNlbmRpZiAvKiBDeWd3aW4gKi8NCiAjZW5k aWYgLyogQlNEICovDQogI2VuZGlmIC8qIFNDTyBYZW5peCAqLw0KICNlbmRp ZiAvKiBTQ08gVW5peCAqLw0KZGlmZiAtcnUgemlwMjRoL3VuaXgvemlwdXAu aCB6aXAtbmV3L3VuaXgvemlwdXAuaA0KLS0tIHppcDI0aC91bml4L3ppcHVw LmgJU3VuIE5vdiAwNyAwNTo1MjoxMiAxOTk5DQorKysgemlwLW5ldy91bml4 L3ppcHVwLmgJU2F0IE5vdiAyMiAxMjo0MDowMCAyMDAzDQpAQCAtMSw1ICsx LDUgQEANCiAvKg0KLSAgQ29weXJpZ2h0IChjKSAxOTkwLTE5OTkgSW5mby1a SVAuICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAgQ29weXJpZ2h0IChjKSAx OTkwLTIwMDMgSW5mby1aSVAuICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KIA0K ICAgU2VlIHRoZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFLCB2ZXJzaW9u IDE5OTktT2N0LTA1IG9yIGxhdGVyDQogICAodGhlIGNvbnRlbnRzIG9mIHdo aWNoIGFyZSBhbHNvIGluY2x1ZGVkIGluIHppcC5oKSBmb3IgdGVybXMgb2Yg dXNlLg0KQEAgLTksNyArOSwxMCBAQA0KICNpZm5kZWYgT19SRE9OTFkNCiAj ICBkZWZpbmUgT19SRE9OTFkgMA0KICNlbmRpZg0KLSNkZWZpbmUgZmhvdyBP X1JET05MWQ0KKyNpZm5kZWYgT19CSU5BUlkNCisjICBkZWZpbmUgT19CSU5B UlkgMA0KKyNlbmRpZg0KKyNkZWZpbmUgZmhvdyAoT19SRE9OTFl8T19CSU5B UlkpDQogI2RlZmluZSBmYmFkICgtMSkNCiB0eXBlZGVmIGludCBmdHlwZTsN CiAjZGVmaW5lIHpvcGVuKG4scCkgb3BlbihuLHApDQpkaWZmIC1ydSB6aXAy NGgvd2luMzIvbWFrZWZpbGUuYm9yIHppcC1uZXcvd2luMzIvbWFrZWZpbGUu Ym9yDQotLS0gemlwMjRoL3dpbjMyL21ha2VmaWxlLmJvcglTYXQgSmFuIDE5 IDA0OjQ4OjI4IDIwMDINCisrKyB6aXAtbmV3L3dpbjMyL21ha2VmaWxlLmJv cglNb24gTm92IDI0IDEyOjEyOjAwIDIwMDMNCkBAIC0zOSw3ICszOSw3IEBA DQogIyBBbHRob3VnaCwgSSBkaWQgbm90IGRpc2FibGUgdGhpcyB3YXJuaW5n LCBiZWNhdXNlLCBnZW5lcmFsbHkgc3BlYWtpbmcsDQogIyBpdCBjb25jZXJu cyBjb3JyZWN0IEMgY29kaW5nLiBbY29tbWVudCBieTogQ29zbWluIFRydXRh XQ0KIA0KLUNGTEFHUz0tdyAtdy1hdXMgLXctY2NjIC13LXBhciAtdy1zaWcg LU8yIC1JLiAtRFdJTjMyIC1ETVNET1MgJChMT0MpDQorQ0ZMQUdTPS13IC13 LWF1cyAtdy1jY2MgLXctcGFyIC13LXNpZyAtTzIgLUkuIC1EV0lOMzIgJChM T0MpDQogVVRJTEZMQUdTPS1EVVRJTCAkKENGTEFHUykgLW8NCiANCiAhaWZk ZWYgVVNFVEFTTTE2DQpAQCAtMTkzLDMgKzE5Myw0IEBADQogY2xlYW46DQog CWRlbCAqLm9iag0KIAlkZWwgKi5leGUNCisJZGVsICoudGRzDQpkaWZmIC1y dSB6aXAyNGgvd2luMzIvbWFrZWZpbGUudzMyIHppcC1uZXcvd2luMzIvbWFr ZWZpbGUudzMyDQotLS0gemlwMjRoL3dpbjMyL21ha2VmaWxlLnczMglTYXQg RmViIDEyIDA2OjA4OjEyIDIwMDANCisrKyB6aXAtbmV3L3dpbjMyL21ha2Vm aWxlLnczMglNb24gTm92IDI0IDEyOjA3OjQ0IDIwMDMNCkBAIC0xOSw3ICsx OSw3IEBADQogDQogIyAtLS0tLS0tLS0tLS0tIDMyLWJpdCBNaWNyb3NvZnQg VmlzdWFsIEMrKyAtLS0tLS0tLS0tLS0tDQogQ0M9Y2wgLW5vbG9nbw0KLUNG TEFHUz0tVzMgLU8yIC1EV0lOMzIgLURNU0RPUyAkKENGTEdfQVNNKSAkKExP QykNCitDRkxBR1M9LVczIC1PMiAtRFdJTjMyICQoQ0ZMR19BU00pICQoTE9D KQ0KIFVUSUxGTEFHUz0kKENGTEFHUykgLURVVElMIC1GbyRADQogDQogIyBS ZW1vdmUgIi1jb2ZmIiBmcm9tIEFTRkxBR1MgaWYgeW91IGRvIG5vdCBoYXZl IE1BU00gNi4xMS4NCkBAIC0xNDAsMyArMTQwLDcgQEANCiANCiB6aXBzcGxp dC5leGU6ICQoT0JKUykNCiAJJChMRCkgJChMREZMQUdTKSAkKE9CSlMpDQor DQorY2xlYW46DQorCWRlbCAqLm9iag0KKwlkZWwgKi5leGUNCmRpZmYgLXJ1 IHppcDI0aC93aW4zMi9vc2RlcC5oIHppcC1uZXcvd2luMzIvb3NkZXAuaA0K LS0tIHppcDI0aC93aW4zMi9vc2RlcC5oCVNhdCBKYW4gMTkgMDQ6NDg6Mjgg MjAwMg0KKysrIHppcC1uZXcvd2luMzIvb3NkZXAuaAlNb24gTm92IDI0IDEx OjU2OjM0IDIwMDMNCkBAIC0xOSwxMCArMTksNiBAQA0KICMgIGRlZmluZSBX QVRDT01DXzM4Ng0KICNlbmRpZg0KIA0KLSNpZiAoZGVmaW5lZChfX0NZR1dJ TjMyX18pICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pKQ0KLSMgIGRlZmluZSBf X0NZR1dJTl9fICAgICAgICAgICAgLyogY29tcGF0aWJpbGl0eSBmb3IgQ3ln V2luIEIxOSBhbmQgb2xkZXIgKi8NCi0jZW5kaWYNCi0NCiAvKiBlbmFibGUg bXVsdGlieXRlIGNoYXJhY3RlciBzZXQgc3VwcG9ydCBieSBkZWZhdWx0ICov DQogI2lmbmRlZiBfTUJDUw0KICMgIGRlZmluZSBfTUJDUw0KZGlmZiAtcnUg emlwMjRoL3ppcC5jIHppcC1uZXcvemlwLmMNCi0tLSB6aXAyNGgvemlwLmMJ U3VuIEZlYiAwMyAwNTowODowMCAyMDAyDQorKysgemlwLW5ldy96aXAuYwlT dW4gTm92IDIzIDIzOjE4OjAwIDIwMDMNCkBAIC0xLDUgKzEsNSBAQA0KIC8q DQotICBDb3B5cmlnaHQgKGMpIDE5OTAtMjAwMiBJbmZvLVpJUC4gIEFsbCBy aWdodHMgcmVzZXJ2ZWQuDQorICBDb3B5cmlnaHQgKGMpIDE5OTAtMjAwMyBJ bmZvLVpJUC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogDQogICBTZWUgdGhl IGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0UsIHZlcnNpb24gMjAwMC1BcHIt MDkgb3IgbGF0ZXINCiAgICh0aGUgY29udGVudHMgb2Ygd2hpY2ggYXJlIGFs c28gaW5jbHVkZWQgaW4gemlwLmgpIGZvciB0ZXJtcyBvZiB1c2UuDQpAQCAt NTE1LDYgKzUxNSw5IEBADQogI2VuZGlmDQogI2lmZGVmIERFQlVHDQogICAg ICJERUJVRyIsDQorI2VuZGlmDQorI2lmIGRlZmluZWQoVVNFX0VGX0laVU5J WCkgfHwgZGVmaW5lZChVU0VfRUZfSVpVTklYMikNCisgICAgIlVTRV9FRl9J WlVOSVgiLA0KICNlbmRpZg0KICNpZmRlZiBVU0VfRUZfVVRfVElNRQ0KICAg ICAiVVNFX0VGX1VUX1RJTUUiLA0K --1686162181-2072418402-1069715579=:24829 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="unz551c-cos.diff" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.58.0311241812591.24829-RRbLuHh/[email protected]> Content-Description: Content-Disposition: ATTACHMENT; FILENAME="unz551c-cos.diff" ZGlmZiAtcnUgdW56NTUxYy91bml4L01ha2VmaWxlIHVuemlwLW5ldy91bml4 L01ha2VmaWxlDQotLS0gdW56NTUxYy91bml4L01ha2VmaWxlCVdlZCBNYXkg MDcgMTg6NTA6MTAgMjAwMw0KKysrIHVuemlwLW5ldy91bml4L01ha2VmaWxl CVNhdCBOb3YgMjIgMTk6MzQ6MDAgMjAwMw0KQEAgLTEyNCw5ICsxMjQsOSBA QA0KIFNZU1RFTVNHID0gZ2VuZXJpYyBnZW5lcmljMiBnZW5lcmljMyBnZW5l cmljX3psaWIgZ2VuZXJpY19zaGxpYg0KIFNZU1RFTVMxID0gMzg2aSAzQngg NzMwMCA3MzAwX2djYyBhaXggYWl4X3J0IGFtZGFobCBhbWRhaGxfZWZ0IGFw b2xsbyBhdmlpb24NCiBTWVNURU1TMiA9IGJzZCBic2RpIGJzZGlfbm9hc20g YnVsbCBjb2hlcmVudCBjb252ZXggY3JheSBjcmF5X29wdCBjeWJlcl9zZ2kN Ci1TWVNURU1TMyA9IGRlYyBkbml4IGVuY29yZSBldGEgZnJlZWJzZCBnY2Mg Z291bGQgaGs2OCBocCBocHV4IGlzYyBpc2NfZ2NjDQorU1lTVEVNUzMgPSBj eWd3aW4gZGVjIGRuaXggZW5jb3JlIGV0YSBmcmVlYnNkIGdjYyBnb3VsZCBo azY4IGhwIGhwdXggaXNjIGlzY19nY2MNCiBTWVNURU1TNCA9IGlzaSBsaW51 eCBsaW51eF9kb3MgbGludXhfbm9hc20gbGludXhfc2hsaWIgbGludXhfc2hs aWJ6IGx5bngNCi1TWVNURU1TNSA9IG1heG9zeCBtYWNvc3hfZ2NjIG1pbml4 IG1pcHMgbXBlaXggbmV4dCBuZXh0MTAgbmV4dDJ4IG5leHQzeA0KK1NZU1RF TVM1ID0gbWFjb3N4IG1hY29zeF9nY2MgbWluaXggbWlwcyBtcGVpeCBuZXh0 IG5leHQxMCBuZXh0MnggbmV4dDN4DQogU1lTVEVNUzYgPSBuZXh0ZmF0IG9z ZjEgcGl4ZWwgcHR4IHB5cmFtaWQgcW54bnRvIHJlYWxpeCByZWd1bHVzIHJz NjAwMCBzY28NCiBTWVNURU1TNyA9IHNjb19kb3Mgc2NvX3NsIHNjb194Mjg2 IHNlcXVlbnQgc2dpIHNvbGFyaXMgc29sYXJpc19wa2cgc3RhcmRlbnQNCiBT WVNURU1TOCA9IHN0ZWxsYXIgc3Vub3MzIHN1bm9zNCBzeXN2IHN5c3ZfZ2Nj IHN5c3Y2MzAwIHRhaG9lIHRpX3N5c3YgdWx0cml4DQpAQCAtNDI0LDcgKzQy NCw3IEBADQogCUBlY2hvICIiDQogCXJtIC1mICQoVU5aSVBTKSAkKE9CSlMp ICQoT0JKRikgJChPQkpYKSBhcGkkTyBhcGloZWxwJE8gY3JjX2djYyRPIFwN CiAJICBjcmNfc3lzdiRPIHVuemlwc3RiJE8gY3J5cHRfLmMgZXh0cmFjdF8u YyBnbG9iYWxzXy5jIGluZmxhdGVfLmMgXA0KLQkgIHR0eWlvXy5jIGNyY19p Mzg2LnMgbXNkb3NfLmMgcHJvY2Vzc18uYyB1bml4Xy5jIHVuemlwc2Z4LmMN CisJICB0dHlpb18uYyBtc2Rvc18uYyBwcm9jZXNzXy5jIHVuaXhfLmMgdW56 aXBzZnguYw0KIAlybSAtcmYgLi8kKFBLR0RJUikNCiANCiAjIFBhY2thZ2Ug Z2VuZXJhdGlvbiBpbnRlcmZhY2UgKGJ5IEouQnVzaCkuICBPcmlnaW5hbGx5 IHRlc3RlZCB1bmRlciBTdW4NCkBAIC03MDUsNiArNzA1LDEyIEBADQogY3li ZXJfc2dpOgl1bml4X21ha2UNCiAJJChNQUtFKSB1bnppcHMgQ0Y9IiQoQ0Yp IC1JL3Vzci9pbmNsdWRlL2JzZCJcDQogCSBMRj0iLWxic2QgJChMRikiIFNM PSItbGJzZCAkKFNMKSINCisNCitjeWd3aW46CQl1bml4X21ha2UNCisJJChN QUtFKSB1bnppcHMgQ0M9Z2NjIExEPWdjYyBBUz1nY2NcDQorCSBDRj0iLU8z IC1JLiAtREFTTV9DUkMgJChMT0MpIlwNCisJIEFGPSItRGkzODYgJChBRiki IENSQzMyPWNyY19nY2NcDQorCSBFPSIuZXhlIiBDUD0iY3AiIExOPSJsbiAt cyINCiANCiAjIDY4MHgwLCBESUFCIGRuaXggNS4yLzUuMyAoYSBTd2VkaXNo IFN5c3RlbSBWIGNsb25lKQ0KICMNCmRpZmYgLXJ1IHVuejU1MWMvdW5peC91 bml4LmMgdW56aXAtbmV3L3VuaXgvdW5peC5jDQotLS0gdW56NTUxYy91bml4 L3VuaXguYwlTYXQgTWF5IDEwIDE0OjExOjMwIDIwMDMNCisrKyB1bnppcC1u ZXcvdW5peC91bml4LmMJTW9uIE5vdiAyNCAxMTo0MDowMCAyMDAzDQpAQCAt NTA3LDcgKzUwNyw3IEBADQogICAgICAgICAgICAgICAgIGxhc3RzZW1pID0g KGNoYXIgKilOVUxMOyAvKiBsZWF2ZSBkaXJlY3Rvcnkgc2VtaS1jb2xvbnMg YWxvbmUgKi8NCiAgICAgICAgICAgICAgICAgYnJlYWs7DQogDQotI2lmZGVm IF9fQ1lHV0lOX18gICAvKiBDeWdXaW4gcnVucyBvbiBXaW4zMiwgYXBwbHkg RkFUL05URlMgZmlsZW5hbWUgcnVsZXMgKi8NCisjaWZkZWYgX19DWUdXSU5f XyAgIC8qIEN5Z3dpbiBydW5zIG9uIFdpbjMyLCBhcHBseSBGQVQvTlRGUyBm aWxlbmFtZSBydWxlcyAqLw0KICAgICAgICAgICAgIGNhc2UgJzonOiAgICAg ICAgIC8qIGRyaXZlIHNwZWMgbm90IHN0b3JlZCwgc28gbm8gY29sb24gYWxs b3dlZCAqLw0KICAgICAgICAgICAgIGNhc2UgJ1xcJzogICAgICAgIC8qICdc XCcgbWF5IGNvbWUgYXMgbm9ybWFsIGZpbGVuYW1lIGNoYXIgKG5vdCAqLw0K ICAgICAgICAgICAgIGNhc2UgJzwnOiAgICAgICAgIC8qICBkaXIgc2VwIGNo YXIhKSBmcm9tIHVuaXgtbGlrZSBmaWxlIHN5c3RlbSAqLw0KQEAgLTEzNTUs NiArMTM1NSwxNSBAQA0KICNpZmRlZiBfXzM4NkJTRF9fDQogICAgICAgKEJT RDRfNCA9PSAxKT8gIiAoMzg2QlNELCBwb3N0LTQuNCByZWxlYXNlKSIgOiAi ICgzODZCU0QpIiwNCiAjZWxzZQ0KKyNpZmRlZiBfX0NZR1dJTl9fDQorICAg ICAgIiAoQ3lnd2luKSIsDQorI2Vsc2UNCisjaWYgZGVmaW5lZChpNjg2KSB8 fCBkZWZpbmVkKF9faTY4NikgfHwgZGVmaW5lZChfX2k2ODZfXykNCisgICAg ICAiIChJbnRlbCA2ODYpIiwNCisjZWxzZQ0KKyNpZiBkZWZpbmVkKGk1ODYp IHx8IGRlZmluZWQoX19pNTg2KSB8fCBkZWZpbmVkKF9faTU4Nl9fKQ0KKyAg ICAgICIgKEludGVsIDU4NikiLA0KKyNlbHNlDQogI2lmIGRlZmluZWQoaTQ4 NikgfHwgZGVmaW5lZChfX2k0ODYpIHx8IGRlZmluZWQoX19pNDg2X18pDQog ICAgICAgIiAoSW50ZWwgNDg2KSIsDQogI2Vsc2UNCkBAIC0xNDA0LDYgKzE0 MTMsOSBAQA0KICNlbmRpZiAvKiBQeXJhbWlkICovDQogI2VuZGlmIC8qIDM4 NiAqLw0KICNlbmRpZiAvKiA0ODYgKi8NCisjZW5kaWYgLyogNTg2ICovDQor I2VuZGlmIC8qIDY4NiAqLw0KKyNlbmRpZiAvKiBDeWd3aW4gKi8NCiAjZW5k aWYgLyogMzg2QlNEICovDQogI2VuZGlmIC8qIEJTREkgQlNELzM4NiAqLw0K ICNlbmRpZiAvKiBOZXRCU0QgKi8NCmRpZmYgLXJ1IHVuejU1MWMvdW56aXAu aCB1bnppcC1uZXcvdW56aXAuaA0KLS0tIHVuejU1MWMvdW56aXAuaAlUaHUg TWF5IDA4IDE5OjU1OjQyIDIwMDMNCisrKyB1bnppcC1uZXcvdW56aXAuaAlT YXQgTm92IDIyIDE4OjQ0OjAwIDIwMDMNCkBAIC0xOTcsMTEgKzE5NywxMiBA QA0KICMgIGRlZmluZSBNQUNPUw0KICNlbmRpZg0KIA0KLS8qIHVzZSBwcm90 b3R5cGVzIGFuZCBBTlNJIGxpYnJhcmllcyBpZiBfX1NURENfXywgb3IgTWlj cm9zb2Z0IG9yIEJvcmxhbmQgQywgb3INCi0gKiBTaWxpY29uIEdyYXBoaWNz LCBvciBDb252ZXg/LCBvciBJQk0gQyBTZXQvMiwgb3IgR05VIGdjYy9lbXgs IG9yIFdhdGNvbSBDLA0KLSAqIG9yIE1hY2ludG9zaCwgb3IgV2luZG93cyBO VCwgb3IgU2VxdWVudCwgb3IgQXRhcmkgb3IgSUJNIFJTLzYwMDAuDQorLyog dXNlIHByb3RvdHlwZXMgYW5kIEFOU0kgbGlicmFyaWVzIGlmIF9fU1REQ19f LCBvciBNUy1ET1MsIG9yIE9TLzIsIG9yIFdpbjMyLA0KKyAqIG9yIElCTSBD IFNldC8yLCBvciBCb3JsYW5kIEMsIG9yIFdhdGNvbSBDLCBvciBHTlUgZ2Nj IChlbXggb3IgQ3lnd2luKSwNCisgKiBvciBNYWNpbnRvc2gsIG9yIFNlcXVl bnQsIG9yIEF0YXJpLCBvciBJQk0gUlMvNjAwMCwgb3IgU2lsaWNvbiBHcmFw aGljcywNCisgKiBvciBDb252ZXg/LCBvciBCZU9TLg0KICAqLw0KLSNpZiAo ZGVmaW5lZChfX1NURENfXykgfHwgZGVmaW5lZChNU0RPUykgfHwgZGVmaW5l ZChXSU4zMikgfHwgZGVmaW5lZChfX0VNWF9fKSkNCisjaWYgKGRlZmluZWQo X19TVERDX18pIHx8IGRlZmluZWQoTVNET1MpIHx8IGRlZmluZWQoT1MyKSB8 fCBkZWZpbmVkKFdJTjMyKSkNCiAjICBpZm5kZWYgUFJPVE8NCiAjICAgIGRl ZmluZSBQUk9UTw0KICMgIGVuZGlmDQpAQCAtMjEwLDYgKzIxMSwxNCBAQA0K ICMgIGVuZGlmDQogI2VuZGlmDQogI2lmIChkZWZpbmVkKF9fSUJNQ19fKSB8 fCBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX1dBVENPTUNf XykpDQorIyAgaWZuZGVmIFBST1RPDQorIyAgICBkZWZpbmUgUFJPVE8NCisj ICBlbmRpZg0KKyMgIGlmbmRlZiBNT0RFUk4NCisjICAgIGRlZmluZSBNT0RF Uk4NCisjICBlbmRpZg0KKyNlbmRpZg0KKyNpZiAoZGVmaW5lZChfX0VNWF9f KSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pKQ0KICMgIGlmbmRlZiBQUk9UTw0K ICMgICAgZGVmaW5lIFBST1RPDQogIyAgZW5kaWYNCmRpZmYgLXJ1IHVuejU1 MWMvdW56cHJpdi5oIHVuemlwLW5ldy91bnpwcml2LmgNCi0tLSB1bno1NTFj L3VuenByaXYuaAlTdW4gTWFyIDIzIDE2OjIxOjI2IDIwMDMNCisrKyB1bnpp cC1uZXcvdW56cHJpdi5oCVNhdCBOb3YgMjIgMTk6NTU6MDAgMjAwMw0KQEAg LTkzLDggKzkzLDggQEANCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSovDQogDQogLyogU29tZSAiZnJlZSIgY29tcGlsZXIgZGlzdHJpYnV0 aW9ucyBmb3IgV2luMzIvaTM4NiBzeXN0ZW1zIHRyeSB0bw0KLSAqIHN1cHBv cnQgYm90aCBVbml4IGFuZCBXaW4zMiBlbnZpcm9ubWVudHMuIEZvciBJbmZv LVpJUCBwdXJwb3NlLA0KLSAqIHN1cHBvcnQgZm9yIHRoZSAibmF0aXZlIiBm aWxlIHN5c3RlbSBmZWF0dXJlcyBpcyBwcmVmZXJlZC4uLg0KKyAqIHN1cHBv cnQgYm90aCBVbml4IGFuZCBXaW4zMiBlbnZpcm9ubWVudHMuDQorICogSW5m by1aSVAgcHJlZmVycyB0byBzdXBwb3J0IHRoZSAibmF0aXZlIiBmaWxlIHN5 c3RlbSBmZWF0dXJlcy4uLg0KICAqLw0KICNpZiAoZGVmaW5lZChXSU4zMikg JiYgZGVmaW5lZChVTklYKSkNCiAjICB1bmRlZiBVTklYDQpAQCAtMzM0LDYg KzMzNCwxOCBAQA0KICMgIGRlZmluZSBJTlRfU1BSSU5URg0KICMgIGRlZmlu ZSBTWU1MSU5LUw0KICMgIGRlZmluZSBNQUlOIG1haW5fc3R1YiAgICAgICAg ICAvKiBub3cgdGhhdCB3ZSdyZSB1c2luZyBhIHdyYXBwZXIuLi4gKi8NCisj ZW5kaWYNCisNCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KyAgICBDeWd3aW4gc2VjdGlvbjoNCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSovDQorDQorI2lmZGVmIF9fQ1lHV0lOX18NCisjICBkZWZp bmUgRElSRU5UDQorIyAgZGVmaW5lIEhBVkVfVEVSTUlPU19IDQorIyAgaWZu ZGVmIHRpbWV6b25lDQorIyAgICBkZWZpbmUgdGltZXpvbmUgX3RpbWV6b25l DQorIyAgZW5kaWYNCiAjZW5kaWYNCiANCiAvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KZGlmZiAtcnUgdW56NTUxYy93aW4zMi93MzJjZmcu aCB1bnppcC1uZXcvd2luMzIvdzMyY2ZnLmgNCi0tLSB1bno1NTFjL3dpbjMy L3czMmNmZy5oCVNhdCBKYW4gMDQgMTA6MDk6MTYgMjAwMw0KKysrIHVuemlw LW5ldy93aW4zMi93MzJjZmcuaAlTYXQgTm92IDIyIDE5OjUyOjMwIDIwMDMN CkBAIC0xMywxNiArMTMsMTEgQEANCiAjaWZuZGVmIF9fdzMyY2ZnX2gNCiAj ZGVmaW5lIF9fdzMyY2ZnX2gNCiANCi0jaWYgKGRlZmluZWQoX19DWUdXSU4z Ml9fKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKSkNCi0jICBkZWZpbmUgX19D WUdXSU5fXyAgICAgICAgICAgIC8qIGNvbXBhdGliaWxpdHkgZm9yIEN5Z1dp biBCMTkgYW5kIG9sZGVyICovDQotI2VuZGlmDQotDQogI2lmZGVmIF9fQ1lH V0lOX18NCi0vKiBUaG9zZSBJZGlvdHMgYXQgQ3lnbnVzIGhhdmUgc3RhcnRl ZCB0byBzZXQgIlVuaXgiIGlkZW50aWZpZXJzDQotICogZm9yIGEgV2luMzIg Y29tcGlsZXIgLi4uDQotICovDQotIyAgaWZkZWYgVU5JWA0KLSMgICAgdW5k ZWYgVU5JWA0KKy8qIFdlIHJlZ2FyZCBDeWd3aW4gYXMgYSAiV2luMzIgbmF0 aXZlIiBmaWxlIHN5c3RlbS4gKi8NCisjICB1bmRlZiBVTklYDQorIyAgaWZu ZGVmIFdJTjMyDQorIyAgICBkZWZpbmUgV0lOMzINCiAjICBlbmRpZg0KICNl bmRpZg0KIA0K --1686162181-2072418402-1069715579=:24829--