<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>232137</bug_id>
          <alias>CVE-2008-3142</alias>
          <creation_ts>2008-07-18 01:46 0000</creation_ts>
          <short_desc>dev-lang/python Multiple vulnerabilities (CVE-2008-{3142,3143,3144})</short_desc>
          <delta_ts>2008-07-31 23:34:27 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Security</product>
          <component>Vulnerabilities</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <status_whiteboard>A2 [glsa]</status_whiteboard>
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>rbu@gentoo.org</reporter>
          <assigned_to>security@gentoo.org</assigned_to>
          <cc>python@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-07-18 01:46:19 0000</bug_when>
            <thetext>Three issues in Python have been reported:

=============================================================
CVE-2008-3142
Justin Ferguson: Multiple buffer overflows in unicode processing

The unicode_resize() function acts essentially as a wrapper to
realloc(), it accomplishes this via the PyMem_RESIZE() macro which
factors the size with the size of the type, in this case it multiplies
by two as Py_UNICODE is typedef&apos;d to a wchar_t. When resizing large
strings, this results in an incorrect allocation that in turn leads to
buffer overflow.

Bug: http://bugs.python.org/issue2620
Proposed patch: http://bugs.python.org/file10825/issue2620-gps02-patch.txt

Only affects 32 bit systems.

=============================================================
CVE-2008-3143
&quot;Google integer overflows&quot;

Added checks for integer overflows, contributed by Google. Some are
only available if asserts are left in the code, in cases where they
can&apos;t be triggered from Python code.

http://svn.python.org/view?rev=60793&amp;view=rev

Fixes are in 2.5.2.

=============================================================
CVE-2008-3144
Justin Ferguson PyOS integer underflow/overflow

Fix potential integer underflow and overflow conditions in
the PyOS_vsnprintf C API function.

This is a backport of r63728 and r63734 from trunk.
http://svn.python.org/view?rev=63883&amp;view=rev

Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
http://bugs.python.org/issue2589
http://svn.python.org/view?rev=63728&amp;view=rev

Fix issue2588: Do not execute str[size-1] = &apos;\0&apos; when a 0 size is
passed in.  (The assert won&apos;t prevent this in non-debug builds).
http://svn.python.org/view?rev=63734&amp;view=rev
http://bugs.python.org/issue2588</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-07-18 02:26:26 0000</bug_when>
            <thetext>Created an attachment (id=160679)
python-2.4.4-CVE-2008-3144.patch

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-07-28 20:22:11 0000</bug_when>
            <thetext>Created an attachment (id=161577)
python-2.4.4-CVE-2008-3142.patch

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-07-28 20:22:25 0000</bug_when>
            <thetext>Created an attachment (id=161579)
python-2.4.4-CVE-2008-3143.patch

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dev-zero@gentoo.org</who>
            <bug_when>2008-07-31 13:56:46 0000</bug_when>
            <thetext>Fixed together with the patches from bug #230640</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rbu@gentoo.org</who>
            <bug_when>2008-07-31 23:34:27 0000</bug_when>
            <thetext>GLSA 200807-16</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160679</attachid>
            <date>2008-07-18 02:26 0000</date>
            <desc>python-2.4.4-CVE-2008-3144.patch</desc>
            <filename>python-2.4.4-CVE-2008-3144.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">cjYzODgzIHwgZ3JlZ29yeS5wLnNtaXRoIHwgMjAwOC0wNi0wMiAwMjowNzoyNSArMDIwMCAoTW9u
LCAwMiBKdW4gMjAwOCkgfCA1IGxpbmVzCgotIElzc3VlICMyNTg4LCAjMjU4OTogRml4IHBvdGVu
dGlhbCBpbnRlZ2VyIHVuZGVyZmxvdyBhbmQgb3ZlcmZsb3cKICBjb25kaXRpb25zIGluIHRoZSBQ
eU9TX3ZzbnByaW50ZiBDIEFQSSBmdW5jdGlvbi4KClRoaXMgaXMgYSBiYWNrcG9ydCBvZiByNjM3
MjggYW5kIHI2MzczNCBmcm9tIHRydW5rLgoKSW5kZXg6IFB5dGhvbi0yLjQuNC9QeXRob24vbXlz
bnByaW50Zi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFB5dGhvbi0yLjQuNC5vcmlnL1B5dGhvbi9teXNucHJp
bnRmLmMKKysrIFB5dGhvbi0yLjQuNC9QeXRob24vbXlzbnByaW50Zi5jCkBAIC01NCwxOCArNTQs
MjggQEAgaW50CiBQeU9TX3ZzbnByaW50ZihjaGFyICpzdHIsIHNpemVfdCBzaXplLCBjb25zdCBj
aGFyICAqZm9ybWF0LCB2YV9saXN0IHZhKQogewogCWludCBsZW47ICAvKiAjIGJ5dGVzIHdyaXR0
ZW4sIGV4Y2x1ZGluZyBcMCAqLwotI2lmbmRlZiBIQVZFX1NOUFJJTlRGCisjaWZkZWYgSEFWRV9T
TlBSSU5URgorI2RlZmluZSBfUHlPU192c25wcmludGZfRVhUUkFfU1BBQ0UgMQorI2Vsc2UKKyNk
ZWZpbmUgX1B5T1NfdnNucHJpbnRmX0VYVFJBX1NQQUNFIDUxMgogCWNoYXIgKmJ1ZmZlcjsKICNl
bmRpZgogCWFzc2VydChzdHIgIT0gTlVMTCk7CiAJYXNzZXJ0KHNpemUgPiAwKTsKIAlhc3NlcnQo
Zm9ybWF0ICE9IE5VTEwpOworCS8qIFdlIHRha2UgYSBzaXplX3QgYXMgaW5wdXQgYnV0IHJldHVy
biBhbiBpbnQuICBTYW5pdHkgY2hlY2sKKwkgKiBvdXIgaW5wdXQgc28gdGhhdCBpdCB3b24ndCBj
YXVzZSBhbiBvdmVyZmxvdyBpbiB0aGUKKyAgICAgICAgICogdnNucHJpbnRmIHJldHVybiB2YWx1
ZSBvciB0aGUgYnVmZmVyIG1hbGxvYyBzaXplLiAgKi8KKwlpZiAoc2l6ZSA+IElOVF9NQVggLSBf
UHlPU192c25wcmludGZfRVhUUkFfU1BBQ0UpIHsKKwkJbGVuID0gLTY2NjsKKwkJZ290byBEb25l
OworCX0KIAogI2lmZGVmIEhBVkVfU05QUklOVEYKIAlsZW4gPSB2c25wcmludGYoc3RyLCBzaXpl
LCBmb3JtYXQsIHZhKTsKICNlbHNlCiAJLyogRW11bGF0ZSBpdC4gKi8KLQlidWZmZXIgPSBQeU1l
bV9NQUxMT0Moc2l6ZSArIDUxMik7CisJYnVmZmVyID0gUHlNZW1fTUFMTE9DKHNpemUgKyBfUHlP
U192c25wcmludGZfRVhUUkFfU1BBQ0UpOwogCWlmIChidWZmZXIgPT0gTlVMTCkgewogCQlsZW4g
PSAtNjY2OwogCQlnb3RvIERvbmU7CkBAIC03NSw3ICs4NSw3IEBAIFB5T1NfdnNucHJpbnRmKGNo
YXIgKnN0ciwgc2l6ZV90IHNpemUsIGMKIAlpZiAobGVuIDwgMCkKIAkJLyogaWdub3JlIHRoZSBl
cnJvciAqLzsKIAotCWVsc2UgaWYgKChzaXplX3QpbGVuID49IHNpemUgKyA1MTIpCisJZWxzZSBp
ZiAoKHNpemVfdClsZW4gPj0gc2l6ZSArIF9QeU9TX3ZzbnByaW50Zl9FWFRSQV9TUEFDRSkKIAkJ
UHlfRmF0YWxFcnJvcigiQnVmZmVyIG92ZXJmbG93IGluIFB5T1Nfc25wcmludGYvUHlPU192c25w
cmludGYiKTsKIAogCWVsc2UgewpAQCAtODYsOCArOTYsMTAgQEAgUHlPU192c25wcmludGYoY2hh
ciAqc3RyLCBzaXplX3Qgc2l6ZSwgYwogCQlzdHJbdG9fY29weV0gPSAnXDAnOwogCX0KIAlQeU1l
bV9GUkVFKGJ1ZmZlcik7Ci1Eb25lOgogI2VuZGlmCi0Jc3RyW3NpemUtMV0gPSAnXDAnOworRG9u
ZToKKwlpZiAoc2l6ZSA+IDApCisJCXN0cltzaXplLTFdID0gJ1wwJzsKIAlyZXR1cm4gbGVuOwor
I3VuZGVmIF9QeU9TX3ZzbnByaW50Zl9FWFRSQV9TUEFDRQogfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161577</attachid>
            <date>2008-07-28 20:22 0000</date>
            <desc>python-2.4.4-CVE-2008-3142.patch</desc>
            <filename>python-2.4.4-CVE-2008-3142.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">cjY1MjYyIHwgbmVhbC5ub3J3aXR6IHwgMjAwOC0wNy0yOCAwNzoyMjo0NSArMDIwMCAoTW9uLCAy
OCBKdWwgMjAwOCkgfCAxMSBsaW5lcwoKQmFja3BvcnQgcjY1MTgyLiAgVGhpcyBjaGFuZ2UgbW9k
aWZpZWQgZnJvbSB1c2luZyB0aGUgdW5zaWduZWQgbWF4IHZhbHVlCnRvIHRoZSBzaWduZWQgbWF4
IHZhbHVlIHNpbWlsYXIgdG8gMi41IGFuZCB0cnVuay4KCklzc3VlICMyNjIwOiBPdmVyZmxvdyBj
aGVja2luZyB3aGVuIGFsbG9jYXRpbmcgb3IgcmVhbGxvY2F0aW5nIG1lbW9yeQp3YXMgbm90IGFs
d2F5cyBiZWluZyBkb25lIHByb3Blcmx5IGluIHNvbWUgcHl0aG9uIHR5cGVzIGFuZCBleHRlbnNp
b24KbW9kdWxlcy4gIFB5TWVtX01BTExPQywgUHlNZW1fUkVBTExPQywgUHlNZW1fTkVXIGFuZCBQ
eU1lbV9SRVNJWkUgaGF2ZQphbGwgYmVlbiB1cGRhdGVkIHRvIHBlcmZvcm0gYmV0dGVyIGNoZWNr
cyBhbmQgcGxhY2VzIGluIHRoZSBjb2RlIHRoYXQKd291bGQgcHJldmlvdXNseSBsZWFrIG1lbW9y
eSBvbiB0aGUgZXJyb3IgcGF0aCB3aGVuIHN1Y2ggYW4gYWxsb2NhdGlvbgpmYWlsZWQgaGF2ZSBi
ZWVuIGZpeGVkLgoKCkluZGV4OiBQeXRob24tMi40LjQvSW5jbHVkZS9weW1lbS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFB5dGhvbi0yLjQuNC5vcmlnL0luY2x1ZGUvcHltZW0uaAorKysgUHl0aG9uLTIuNC40
L0luY2x1ZGUvcHltZW0uaApAQCAtNjYsOCArNjYsMTIgQEAgUHlBUElfRlVOQyh2b2lkKSBQeU1l
bV9GcmVlKHZvaWQgKik7CiAgICBmb3IgbWFsbG9jKDApLCB3aGljaCB3b3VsZCBiZSB0cmVhdGVk
IGFzIGFuIGVycm9yLiBTb21lIHBsYXRmb3JtcwogICAgd291bGQgcmV0dXJuIGEgcG9pbnRlciB3
aXRoIG5vIG1lbW9yeSBiZWhpbmQgaXQsIHdoaWNoIHdvdWxkIGJyZWFrCiAgICBweW1hbGxvYy4g
VG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIGFsbG9jYXRlIGFuIGV4dHJhIGJ5dGUuICovCi0jZGVm
aW5lIFB5TWVtX01BTExPQyhuKSAgICAgICAgIG1hbGxvYygobikgPyAobikgOiAxKQotI2RlZmlu
ZSBQeU1lbV9SRUFMTE9DKHAsIG4pICAgICByZWFsbG9jKChwKSwgKG4pID8gKG4pIDogMSkKKy8q
IFJldHVybnMgTlVMTCB0byBpbmRpY2F0ZSBlcnJvciBpZiBhIG5lZ2F0aXZlIHNpemUgb3Igc2l6
ZSBsYXJnZXIgdGhhbgorICAgUHlfc3NpemVfdCBjYW4gcmVwcmVzZW50IGlzIHN1cHBsaWVkLiAg
SGVscHMgcHJldmVudHMgc2VjdXJpdHkgaG9sZXMuICovCisjZGVmaW5lIFB5TWVtX01BTExPQyhu
KQkJKCgobikgPCAwIHx8IChuKSA+IElOVF9NQVgpID8gTlVMTCBcCisJCQkJOiBtYWxsb2MoKG4p
ID8gKG4pIDogMSkpCisjZGVmaW5lIFB5TWVtX1JFQUxMT0MocCwgbikJKCgobikgPCAwIHx8IChu
KSA+IElOVF9NQVgpID8gTlVMTCBcCisJCQkJOiByZWFsbG9jKChwKSwgKG4pID8gKG4pIDogMSkp
CiAKICNlbmRpZgkvKiBQWU1BTExPQ19ERUJVRyAqLwogCkBAIC04MCwyNCArODQsMzEgQEAgUHlB
UElfRlVOQyh2b2lkKSBQeU1lbV9GcmVlKHZvaWQgKik7CiAgKiBUeXBlLW9yaWVudGVkIG1lbW9y
eSBpbnRlcmZhY2UKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICoKLSAqIFRo
ZXNlIGFyZSBjYXJyaWVkIGFsb25nIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuICBUaGVyZSdzIHJh
cmVseSBhIGdvb2QKLSAqIHJlYXNvbiB0byB1c2UgdGhlbSBhbnltb3JlICh5b3UgY2FuIGp1c3Qg
YXMgZWFzaWx5IGRvIHRoZSBtdWx0aXBseSBhbmQKLSAqIGNhc3QgeW91cnNlbGYpLgorICogQWxs
b2NhdGUgbWVtb3J5IGZvciBuIG9iamVjdHMgb2YgdGhlIGdpdmVuIHR5cGUuICBSZXR1cm5zIGEg
bmV3IHBvaW50ZXIKKyAqIG9yIE5VTEwgaWYgdGhlIHJlcXVlc3Qgd2FzIHRvbyBsYXJnZSBvciBt
ZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuICBVc2UKKyAqIHRoZXNlIG1hY3JvcyByYXRoZXIgdGhh
biBkb2luZyB0aGUgbXVsdGlwbGljYXRpb24geW91cnNlbGYgc28gdGhhdCBwcm9wZXIKKyAqIG92
ZXJmbG93IGNoZWNraW5nIGlzIGFsd2F5cyBkb25lLgogICovCiAKICNkZWZpbmUgUHlNZW1fTmV3
KHR5cGUsIG4pIFwKLSAgKCBhc3NlcnQoKG4pIDw9IFBZX1NJWkVfTUFYIC8gc2l6ZW9mKHR5cGUp
KSAsIFwKKyAgKCAoKG4pID4gSU5UX01BWCAvIHNpemVvZih0eXBlKSkgPyBOVUxMIDogXAogCSgg
KHR5cGUgKikgUHlNZW1fTWFsbG9jKChuKSAqIHNpemVvZih0eXBlKSkgKSApCiAjZGVmaW5lIFB5
TWVtX05FVyh0eXBlLCBuKSBcCi0gICggYXNzZXJ0KChuKSA8PSBQWV9TSVpFX01BWCAvIHNpemVv
Zih0eXBlKSkgLCBcCisgICggKChuKSA+IElOVF9NQVggLyBzaXplb2YodHlwZSkpID8gTlVMTCA6
IFwKIAkoICh0eXBlICopIFB5TWVtX01BTExPQygobikgKiBzaXplb2YodHlwZSkpICkgKQogCisv
KgorICogVGhlIHZhbHVlIG9mIChwKSBpcyBhbHdheXMgY2xvYmJlcmVkIGJ5IHRoaXMgbWFjcm8g
cmVnYXJkbGVzcyBvZiBzdWNjZXNzLgorICogVGhlIGNhbGxlciBNVVNUIGNoZWNrIGlmIChwKSBp
cyBOVUxMIGFmdGVyd2FyZHMgYW5kIGRlYWwgd2l0aCB0aGUgbWVtb3J5CisgKiBlcnJvciBpZiBz
by4gIFRoaXMgbWVhbnMgdGhlIG9yaWdpbmFsIHZhbHVlIG9mIChwKSBNVVNUIGJlIHNhdmVkIGZv
ciB0aGUKKyAqIGNhbGxlcidzIG1lbW9yeSBlcnJvciBoYW5kbGVyIHRvIG5vdCBsb3NlIHRyYWNr
IG9mIGl0LgorICovCiAjZGVmaW5lIFB5TWVtX1Jlc2l6ZShwLCB0eXBlLCBuKSBcCi0gICggYXNz
ZXJ0KChuKSA8PSBQWV9TSVpFX01BWCAvIHNpemVvZih0eXBlKSkgLCBcCi0JKCAocCkgPSAodHlw
ZSAqKSBQeU1lbV9SZWFsbG9jKChwKSwgKG4pICogc2l6ZW9mKHR5cGUpKSApICkKKyAgKCAocCkg
PSAoKG4pID4gSU5UX01BWCAvIHNpemVvZih0eXBlKSkgPyBOVUxMIDogXAorCSh0eXBlICopIFB5
TWVtX1JlYWxsb2MoKHApLCAobikgKiBzaXplb2YodHlwZSkpICkKICNkZWZpbmUgUHlNZW1fUkVT
SVpFKHAsIHR5cGUsIG4pIFwKLSAgKCBhc3NlcnQoKG4pIDw9IFBZX1NJWkVfTUFYIC8gc2l6ZW9m
KHR5cGUpKSAsIFwKLQkoIChwKSA9ICh0eXBlICopIFB5TWVtX1JFQUxMT0MoKHApLCAobikgKiBz
aXplb2YodHlwZSkpICkgKQorICAoIChwKSA9ICgobikgPiBJTlRfTUFYIC8gc2l6ZW9mKHR5cGUp
KSA/IE5VTEwgOiBcCisJKHR5cGUgKikgUHlNZW1fUkVBTExPQygocCksIChuKSAqIHNpemVvZih0
eXBlKSkgKQogCiAvKiBJbiBvcmRlciB0byBhdm9pZCBicmVha2luZyBvbGQgY29kZSBtaXhpbmcg
UHlPYmplY3Rfe05ldywgTkVXfSB3aXRoCiAgICBQeU1lbV97RGVsLCBERUx9IGFuZCBQeU1lbV97
RnJlZSwgRlJFRX0sIHRoZSBQeU1lbSAicmVsZWFzZSBtZW1vcnkiCkluZGV4OiBQeXRob24tMi40
LjQvT2JqZWN0cy9vYm1hbGxvYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFB5dGhvbi0yLjQuNC5vcmlnL09i
amVjdHMvb2JtYWxsb2MuYworKysgUHl0aG9uLTIuNC40L09iamVjdHMvb2JtYWxsb2MuYwpAQCAt
NTg1LDYgKzU4NSwxNSBAQCBQeU9iamVjdF9NYWxsb2Moc2l6ZV90IG5ieXRlcykKIAl1aW50IHNp
emU7CiAKIAkvKgorCSAqIExpbWl0IG91cnNlbHZlcyB0byBJTlRfTUFYIGJ5dGVzIHRvIHByZXZl
bnQgc2VjdXJpdHkgaG9sZXMuCisJICogTW9zdCBweXRob24gaW50ZXJuYWxzIGJsaW5kbHkgdXNl
IGEgc2lnbmVkIFB5X3NzaXplX3QgdG8gdHJhY2sKKwkgKiB0aGluZ3Mgd2l0aG91dCBjaGVja2lu
ZyBmb3Igb3ZlcmZsb3dzIG9yIG5lZ2F0aXZlcy4KKwkgKiBBcyBzaXplX3QgaXMgdW5zaWduZWQs
IGNoZWNraW5nIGZvciBuYnl0ZXMgPCAwIGlzIG5vdCByZXF1aXJlZC4KKwkgKi8KKwlpZiAobmJ5
dGVzID4gSU5UX01BWCkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKgogCSAqIFRoaXMgaW1wbGljaXRs
eSByZWRpcmVjdHMgbWFsbG9jKDApLgogCSAqLwogCWlmICgobmJ5dGVzIC0gMSkgPCBTTUFMTF9S
RVFVRVNUX1RIUkVTSE9MRCkgewpAQCAtODE0LDYgKzgyMywxNSBAQCBQeU9iamVjdF9SZWFsbG9j
KHZvaWQgKnAsIHNpemVfdCBuYnl0ZXMpCiAJaWYgKHAgPT0gTlVMTCkKIAkJcmV0dXJuIFB5T2Jq
ZWN0X01hbGxvYyhuYnl0ZXMpOwogCisJLyoKKwkgKiBMaW1pdCBvdXJzZWx2ZXMgdG8gSU5UX01B
WCBieXRlcyB0byBwcmV2ZW50IHNlY3VyaXR5IGhvbGVzLgorCSAqIE1vc3QgcHl0aG9uIGludGVy
bmFscyBibGluZGx5IHVzZSBhIHNpZ25lZCBQeV9zc2l6ZV90IHRvIHRyYWNrCisJICogdGhpbmdz
IHdpdGhvdXQgY2hlY2tpbmcgZm9yIG92ZXJmbG93cyBvciBuZWdhdGl2ZXMuCisJICogQXMgc2l6
ZV90IGlzIHVuc2lnbmVkLCBjaGVja2luZyBmb3IgbmJ5dGVzIDwgMCBpcyBub3QgcmVxdWlyZWQu
CisJICovCisJaWYgKG5ieXRlcyA+IElOVF9NQVgpCisJCXJldHVybiBOVUxMOworCiAJcG9vbCA9
IFBPT0xfQUREUihwKTsKIAlpZiAoUHlfQUREUkVTU19JTl9SQU5HRShwLCBwb29sKSkgewogCQkv
KiBXZSdyZSBpbiBjaGFyZ2Ugb2YgdGhpcyBibG9jayAqLwpJbmRleDogUHl0aG9uLTIuNC40L01p
c2MvTkVXUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQeXRob24tMi40LjQub3JpZy9NaXNjL05FV1MKKysrIFB5
dGhvbi0yLjQuNC9NaXNjL05FV1MKQEAgLTIzLDYgKzIzLDEzIEBAIFdoYXQncyBOZXcgaW4gUHl0
aG9uIDIuNC40YzE/CiBDb3JlIGFuZCBidWlsdGlucwogLS0tLS0tLS0tLS0tLS0tLS0KIAorLSBJ
c3N1ZSAjMjYyMDogT3ZlcmZsb3cgY2hlY2tpbmcgd2hlbiBhbGxvY2F0aW5nIG9yIHJlYWxsb2Nh
dGluZyBtZW1vcnkKKyAgd2FzIG5vdCBhbHdheXMgYmVpbmcgZG9uZSBwcm9wZXJseSBpbiBzb21l
IHB5dGhvbiB0eXBlcyBhbmQgZXh0ZW5zaW9uCisgIG1vZHVsZXMuICBQeU1lbV9NQUxMT0MsIFB5
TWVtX1JFQUxMT0MsIFB5TWVtX05FVyBhbmQgUHlNZW1fUkVTSVpFIGhhdmUKKyAgYWxsIGJlZW4g
dXBkYXRlZCB0byBwZXJmb3JtIGJldHRlciBjaGVja3MgYW5kIHBsYWNlcyBpbiB0aGUgY29kZSB0
aGF0CisgIHdvdWxkIHByZXZpb3VzbHkgbGVhayBtZW1vcnkgb24gdGhlIGVycm9yIHBhdGggd2hl
biBzdWNoIGFuIGFsbG9jYXRpb24KKyAgZmFpbGVkIGhhdmUgYmVlbiBmaXhlZC4KKwogLSBBZGRl
ZCBjaGVja3MgZm9yIGludGVnZXIgb3ZlcmZsb3dzLCBjb250cmlidXRlZCBieSBHb29nbGUuIFNv
bWUgYXJlCiAgIG9ubHkgYXZhaWxhYmxlIGlmIGFzc2VydHMgYXJlIGxlZnQgaW4gdGhlIGNvZGUs
IGluIGNhc2VzIHdoZXJlIHRoZXkKICAgY2FuJ3QgYmUgdHJpZ2dlcmVkIGZyb20gUHl0aG9uIGNv
ZGUuCkluZGV4OiBQeXRob24tMi40LjQvTW9kdWxlcy9hbG1vZHVsZS5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFB5dGhvbi0yLjQuNC5vcmlnL01vZHVsZXMvYWxtb2R1bGUuYworKysgUHl0aG9uLTIuNC40L01v
ZHVsZXMvYWxtb2R1bGUuYwpAQCAtMTYzMyw5ICsxNjMzLDExIEBAIGFsX1F1ZXJ5VmFsdWVzKFB5
T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAKIAlpZiAobnZhbHMgPCAwKQogCQlnb3RvIGNsZWFudXA7
CiAJaWYgKG52YWxzID4gc2V0c2l6ZSkgeworCQlBTHZhbHVlICpvbGRfcmV0dXJuX3NldCA9IHJl
dHVybl9zZXQ7CiAJCXNldHNpemUgPSBudmFsczsKIAkJUHlNZW1fUkVTSVpFKHJldHVybl9zZXQs
IEFMdmFsdWUsIHNldHNpemUpOwogCQlpZiAocmV0dXJuX3NldCA9PSBOVUxMKSB7CisJCQlyZXR1
cm5fc2V0ID0gb2xkX3JldHVybl9zZXQ7CiAJCQlQeUVycl9Ob01lbW9yeSgpOwogCQkJZ290byBj
bGVhbnVwOwogCQl9CkluZGV4OiBQeXRob24tMi40LjQvTW9kdWxlcy9hcnJheW1vZHVsZS5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFB5dGhvbi0yLjQuNC5vcmlnL01vZHVsZXMvYXJyYXltb2R1bGUuYworKysg
UHl0aG9uLTIuNC40L01vZHVsZXMvYXJyYXltb2R1bGUuYwpAQCAtODE0LDYgKzgxNCw3IEBAIHN0
YXRpYyBpbnQKIGFycmF5X2RvX2V4dGVuZChhcnJheW9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmJi
KQogewogCWludCBzaXplOworCWNoYXIgKm9sZF9pdGVtOwogCiAJaWYgKCFhcnJheV9DaGVjayhi
YikpCiAJCXJldHVybiBhcnJheV9pdGVyX2V4dGVuZChzZWxmLCBiYik7CkBAIC04MjksMTAgKzgz
MCwxMSBAQCBhcnJheV9kb19leHRlbmQoYXJyYXlvYmplY3QgKnNlbGYsIFB5T2JqCiAJCQlyZXR1
cm4gLTE7CiAJfQogCXNpemUgPSBzZWxmLT5vYl9zaXplICsgYi0+b2Jfc2l6ZTsKKwlvbGRfaXRl
bSA9IHNlbGYtPm9iX2l0ZW07CiAgICAgICAgIFB5TWVtX1JFU0laRShzZWxmLT5vYl9pdGVtLCBj
aGFyLCBzaXplKnNlbGYtPm9iX2Rlc2NyLT5pdGVtc2l6ZSk7CiAgICAgICAgIGlmIChzZWxmLT5v
Yl9pdGVtID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBQeU9iamVjdF9EZWwoc2VsZik7Ci0g
ICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKwkJc2VsZi0+b2JfaXRlbSA9IG9sZF9p
dGVtOworCQlQeUVycl9Ob01lbW9yeSgpOwogCQlyZXR1cm4gLTE7CiAgICAgICAgIH0KIAltZW1j
cHkoc2VsZi0+b2JfaXRlbSArIHNlbGYtPm9iX3NpemUqc2VsZi0+b2JfZGVzY3ItPml0ZW1zaXpl
LApAQCAtODg0LDcgKzg4Niw3IEBAIGFycmF5X2lucGxhY2VfcmVwZWF0KGFycmF5b2JqZWN0ICpz
ZWxmLCAKIAkJCWlmIChzaXplID4gSU5UX01BWCAvIG4pIHsKIAkJCQlyZXR1cm4gUHlFcnJfTm9N
ZW1vcnkoKTsKIAkJCX0KLQkJCVB5TWVtX1Jlc2l6ZShpdGVtcywgY2hhciwgbiAqIHNpemUpOwor
CQkJUHlNZW1fUkVTSVpFKGl0ZW1zLCBjaGFyLCBuICogc2l6ZSk7CiAJCQlpZiAoaXRlbXMgPT0g
TlVMTCkKIAkJCQlyZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKIAkJCXAgPSBpdGVtczsKSW5kZXg6
IFB5dGhvbi0yLjQuNC9Nb2R1bGVzL3NlbGVjdG1vZHVsZS5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFB5dGhv
bi0yLjQuNC5vcmlnL01vZHVsZXMvc2VsZWN0bW9kdWxlLmMKKysrIFB5dGhvbi0yLjQuNC9Nb2R1
bGVzL3NlbGVjdG1vZHVsZS5jCkBAIC0zNDIsMTAgKzM0MiwxMiBAQCB1cGRhdGVfdWZkX2FycmF5
KHBvbGxPYmplY3QgKnNlbGYpCiB7CiAJaW50IGksIHBvczsKIAlQeU9iamVjdCAqa2V5LCAqdmFs
dWU7CisgICAgICAgIHN0cnVjdCBwb2xsZmQgKm9sZF91ZmRzID0gc2VsZi0+dWZkczsKIAogCXNl
bGYtPnVmZF9sZW4gPSBQeURpY3RfU2l6ZShzZWxmLT5kaWN0KTsKLQlQeU1lbV9SZXNpemUoc2Vs
Zi0+dWZkcywgc3RydWN0IHBvbGxmZCwgc2VsZi0+dWZkX2xlbik7CisJUHlNZW1fUkVTSVpFKHNl
bGYtPnVmZHMsIHN0cnVjdCBwb2xsZmQsIHNlbGYtPnVmZF9sZW4pOwogCWlmIChzZWxmLT51ZmRz
ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBzZWxmLT51ZmRzID0gb2xkX3VmZHM7CiAJCVB5
RXJyX05vTWVtb3J5KCk7CiAJCXJldHVybiAwOwogCX0K
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161579</attachid>
            <date>2008-07-28 20:22 0000</date>
            <desc>python-2.4.4-CVE-2008-3143.patch</desc>
            <filename>python-2.4.4-CVE-2008-3143.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">cjYxMTgwIHwgbWFydGluLnYubG9ld2lzIHwgMjAwOC0wMy0wMiAyMDoyMDozMiArMDEwMCAoU3Vu
LCAwMiBNYXIgMjAwOCkgfCA1IGxpbmVzCgpCYWNrcG9ydCBvZiByNjA3OTM6CkFkZGVkIGNoZWNr
cyBmb3IgaW50ZWdlciBvdmVyZmxvd3MsIGNvbnRyaWJ1dGVkIGJ5IEdvb2dsZS4gU29tZSBhcmUK
b25seSBhdmFpbGFibGUgaWYgYXNzZXJ0cyBhcmUgbGVmdCBpbiB0aGUgY29kZSwgaW4gY2FzZXMg
d2hlcmUgdGhleQpjYW4ndCBiZSB0cmlnZ2VyZWQgZnJvbSBQeXRob24gY29kZS4KCkluZGV4OiBQ
eXRob24tMi40LjQvUHl0aG9uL2JsdGlubW9kdWxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIu
NC40Lm9yaWcvUHl0aG9uL2JsdGlubW9kdWxlLmMKKysrIFB5dGhvbi0yLjQuNC9QeXRob24vYmx0
aW5tb2R1bGUuYwpAQCAtMjM3NiwxMSArMjM3Niw0MyBAQCBmaWx0ZXJzdHJpbmcoUHlPYmplY3Qg
KmZ1bmMsIFB5T2JqZWN0ICpzCiAJCQkJCVB5U3RyaW5nX0FTX1NUUklORyhpdGVtKVswXTsKIAkJ
CX0gZWxzZSB7CiAJCQkJLyogZG8gd2UgbmVlZCBtb3JlIHNwYWNlPyAqLwotCQkJCWludCBuZWVk
ID0gaiArIHJlc2xlbiArIGxlbi1pLTE7CisJCQkJaW50IG5lZWQgPSBqOworCisJCQkJLyogY2Fs
Y3VsYXRlIHNwYWNlIHJlcXVpcmVtZW50cyB3aGlsZSBjaGVja2luZyBmb3Igb3ZlcmZsb3cgKi8K
KwkJCQlpZiAobmVlZCA+IElOVF9NQVggLSByZXNsZW4pIHsKKwkJCQkJUHlfREVDUkVGKGl0ZW0p
OworCQkJCQlnb3RvIEZhaWxfMTsKKwkJCQl9CisKKwkJCQluZWVkICs9IHJlc2xlbjsKKworCQkJ
CWlmIChuZWVkID4gSU5UX01BWCAtIGxlbikgeworCQkJCQlQeV9ERUNSRUYoaXRlbSk7CisJCQkJ
CWdvdG8gRmFpbF8xOworCQkJCX0KKworCQkJCW5lZWQgKz0gbGVuOworCisJCQkJaWYgKG5lZWQg
PD0gaSkgeworCQkJCQlQeV9ERUNSRUYoaXRlbSk7CisJCQkJCWdvdG8gRmFpbF8xOworCQkJCX0K
KworCQkJCW5lZWQgPSBuZWVkIC0gaSAtIDE7CisKKwkJCQlhc3NlcnQobmVlZCA+PSAwKTsKKwkJ
CQlhc3NlcnQob3V0bGVuID49IDApOworCiAJCQkJaWYgKG5lZWQgPiBvdXRsZW4pIHsKIAkJCQkJ
Lyogb3ZlcmFsbG9jYXRlLCB0byBhdm9pZCByZWFsbG9jYXRpb25zICovCi0JCQkJCWlmIChuZWVk
PDIqb3V0bGVuKQorCQkJCQlpZiAob3V0bGVuID4gSU5UX01BWCAvIDIpIHsKKwkJCQkJCVB5X0RF
Q1JFRihpdGVtKTsKKwkJCQkJCXJldHVybiBOVUxMOworCQkJCQl9CisKKwkJCQkJaWYgKG5lZWQ8
MipvdXRsZW4pIHsKIAkJCQkJCW5lZWQgPSAyKm91dGxlbjsKKyAgICAgICAgICB9CiAJCQkJCWlm
IChfUHlTdHJpbmdfUmVzaXplKCZyZXN1bHQsIG5lZWQpKSB7CiAJCQkJCQlQeV9ERUNSRUYoaXRl
bSk7CiAJCQkJCQlyZXR1cm4gTlVMTDsKQEAgLTI0NzIsMTEgKzI1MDQsMzEgQEAgZmlsdGVydW5p
Y29kZShQeU9iamVjdCAqZnVuYywgUHlPYmplY3QgKgogCQkJZWxzZSB7CiAJCQkJLyogZG8gd2Ug
bmVlZCBtb3JlIHNwYWNlPyAqLwogCQkJCWludCBuZWVkID0gaiArIHJlc2xlbiArIGxlbiAtIGkg
LSAxOworCisJCQkJLyogY2hlY2sgdGhhdCBkaWRudCBvdmVyZmxvdyAqLworCQkJCWlmICgoaiA+
IElOVF9NQVggLSByZXNsZW4pIHx8CisJCQkJCSgoaiArIHJlc2xlbikgPiBJTlRfTUFYIC0gbGVu
KSB8fAorCQkJCQkJKChqICsgcmVzbGVuICsgbGVuKSA8IGkpIHx8CisJCQkJCQkJKChqICsgcmVz
bGVuICsgbGVuIC0gaSkgPD0gMCkpIHsKKwkJCQkJUHlfREVDUkVGKGl0ZW0pOworCQkJCQlyZXR1
cm4gTlVMTDsKKwkJCQl9CisKKwkJCQlhc3NlcnQobmVlZCA+PSAwKTsKKwkJCQlhc3NlcnQob3V0
bGVuID49IDApOworCiAJCQkJaWYgKG5lZWQgPiBvdXRsZW4pIHsKIAkJCQkJLyogb3ZlcmFsbG9j
YXRlLCAKIAkJCQkJICAgdG8gYXZvaWQgcmVhbGxvY2F0aW9ucyAqLwotCQkJCQlpZiAobmVlZCA8
IDIgKiBvdXRsZW4pCi0JCQkJCQluZWVkID0gMiAqIG91dGxlbjsKKwkJCQkJaWYgKG5lZWQgPCAy
ICogb3V0bGVuKSB7CisJCQkJCQlpZiAob3V0bGVuID4gSU5UX01BWCAvIDIpIHsKKwkJCQkJCQlQ
eV9ERUNSRUYoaXRlbSk7CisJCQkJCQkJcmV0dXJuIE5VTEw7CisJCQkJCQl9IGVsc2UgeworCQkJ
CQkJCW5lZWQgPSAyICogb3V0bGVuOworCQkJCQkJfQorCQkJCQl9CisKIAkJCQkJaWYgKFB5VW5p
Y29kZV9SZXNpemUoCiAJCQkJCQkmcmVzdWx0LCBuZWVkKSA8IDApIHsKIAkJCQkJCVB5X0RFQ1JF
RihpdGVtKTsKSW5kZXg6IFB5dGhvbi0yLjQuNC9JbmNsdWRlL3B5cG9ydC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFB5dGhvbi0yLjQuNC5vcmlnL0luY2x1ZGUvcHlwb3J0LmgKKysrIFB5dGhvbi0yLjQuNC9J
bmNsdWRlL3B5cG9ydC5oCkBAIC02MTYsNiArNjE2LDE3IEBAIHR5cGVkZWYJc3RydWN0IGZkX3Nl
dCB7CiAjZXJyb3IgIkxPTkdfQklUIGRlZmluaXRpb24gYXBwZWFycyB3cm9uZyBmb3IgcGxhdGZv
cm0gKGJhZCBnY2MvZ2xpYmMgY29uZmlnPykuIgogI2VuZGlmCiAKKy8qIExhcmdlc3QgcG9zc2li
bGUgdmFsdWUgb2Ygc2l6ZV90LgorICAgU0laRV9NQVggaXMgcGFydCBvZiBDOTksIHNvIGl0IG1p
Z2h0IGJlIGRlZmluZWQgb24gc29tZQorICAgcGxhdGZvcm1zLiBJZiBpdCBpcyBub3QgZGVmaW5l
ZCwgKHNpemVfdCktMSBpcyBhIHBvcnRhYmxlCisgICBkZWZpbml0aW9uIGZvciBDODksIGR1ZSB0
byB0aGUgd2F5IHNpZ25lZC0+dW5zaWduZWQKKyAgIGNvbnZlcnNpb24gaXMgZGVmaW5lZC4gKi8K
KyNpZmRlZiBTSVpFX01BWAorI2RlZmluZSBQWV9TSVpFX01BWCBTSVpFX01BWAorI2Vsc2UKKyNk
ZWZpbmUgUFlfU0laRV9NQVggKChzaXplX3QpLTEpCisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNw
bHVzCiB9CiAjZW5kaWYKSW5kZXg6IFB5dGhvbi0yLjQuNC9JbmNsdWRlL3B5bWVtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gUHl0aG9uLTIuNC40Lm9yaWcvSW5jbHVkZS9weW1lbS5oCisrKyBQeXRob24tMi40
LjQvSW5jbHVkZS9weW1lbS5oCkBAIC04NiwxNCArODYsMTggQEAgUHlBUElfRlVOQyh2b2lkKSBQ
eU1lbV9GcmVlKHZvaWQgKik7CiAgKi8KIAogI2RlZmluZSBQeU1lbV9OZXcodHlwZSwgbikgXAot
CSggKHR5cGUgKikgUHlNZW1fTWFsbG9jKChuKSAqIHNpemVvZih0eXBlKSkgKQorICAoIGFzc2Vy
dCgobikgPD0gUFlfU0laRV9NQVggLyBzaXplb2YodHlwZSkpICwgXAorCSggKHR5cGUgKikgUHlN
ZW1fTWFsbG9jKChuKSAqIHNpemVvZih0eXBlKSkgKSApCiAjZGVmaW5lIFB5TWVtX05FVyh0eXBl
LCBuKSBcCi0JKCAodHlwZSAqKSBQeU1lbV9NQUxMT0MoKG4pICogc2l6ZW9mKHR5cGUpKSApCisg
ICggYXNzZXJ0KChuKSA8PSBQWV9TSVpFX01BWCAvIHNpemVvZih0eXBlKSkgLCBcCisJKCAodHlw
ZSAqKSBQeU1lbV9NQUxMT0MoKG4pICogc2l6ZW9mKHR5cGUpKSApICkKIAogI2RlZmluZSBQeU1l
bV9SZXNpemUocCwgdHlwZSwgbikgXAotCSggKHApID0gKHR5cGUgKikgUHlNZW1fUmVhbGxvYygo
cCksIChuKSAqIHNpemVvZih0eXBlKSkgKQorICAoIGFzc2VydCgobikgPD0gUFlfU0laRV9NQVgg
LyBzaXplb2YodHlwZSkpICwgXAorCSggKHApID0gKHR5cGUgKikgUHlNZW1fUmVhbGxvYygocCks
IChuKSAqIHNpemVvZih0eXBlKSkgKSApCiAjZGVmaW5lIFB5TWVtX1JFU0laRShwLCB0eXBlLCBu
KSBcCi0JKCAocCkgPSAodHlwZSAqKSBQeU1lbV9SRUFMTE9DKChwKSwgKG4pICogc2l6ZW9mKHR5
cGUpKSApCisgICggYXNzZXJ0KChuKSA8PSBQWV9TSVpFX01BWCAvIHNpemVvZih0eXBlKSkgLCBc
CisJKCAocCkgPSAodHlwZSAqKSBQeU1lbV9SRUFMTE9DKChwKSwgKG4pICogc2l6ZW9mKHR5cGUp
KSApICkKIAogLyogSW4gb3JkZXIgdG8gYXZvaWQgYnJlYWtpbmcgb2xkIGNvZGUgbWl4aW5nIFB5
T2JqZWN0X3tOZXcsIE5FV30gd2l0aAogICAgUHlNZW1fe0RlbCwgREVMfSBhbmQgUHlNZW1fe0Zy
ZWUsIEZSRUV9LCB0aGUgUHlNZW0gInJlbGVhc2UgbWVtb3J5IgpJbmRleDogUHl0aG9uLTIuNC40
L09iamVjdHMvYnVmZmVyb2JqZWN0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIuNC40Lm9yaWcv
T2JqZWN0cy9idWZmZXJvYmplY3QuYworKysgUHl0aG9uLTIuNC40L09iamVjdHMvYnVmZmVyb2Jq
ZWN0LmMKQEAgLTE2Nyw2ICsxNjcsMTAgQEAgUHlCdWZmZXJfTmV3KGludCBzaXplKQogCQkJCSJz
aXplIG11c3QgYmUgemVybyBvciBwb3NpdGl2ZSIpOwogCQlyZXR1cm4gTlVMTDsKIAl9CisJaWYg
KHNpemVvZigqYikgPiBJTlRfTUFYIC0gc2l6ZSkgeworCQkvKiB1bmxpa2VseSAqLworCQlyZXR1
cm4gUHlFcnJfTm9NZW1vcnkoKTsKKwl9CiAJLyogSW5saW5lIFB5T2JqZWN0X05ldyAqLwogCW8g
PSBQeU9iamVjdF9NQUxMT0Moc2l6ZW9mKCpiKSArIHNpemUpOwogCWlmICggbyA9PSBOVUxMICkK
QEAgLTM1NSw2ICszNTksOCBAQCBidWZmZXJfY29uY2F0KFB5QnVmZmVyT2JqZWN0ICpzZWxmLCBQ
eU9iCiAJaWYgKCAoY291bnQgPSAoKnBiLT5iZl9nZXRyZWFkYnVmZmVyKShvdGhlciwgMCwgJnB0
cjIpKSA8IDAgKQogCQlyZXR1cm4gTlVMTDsKIAorCWFzc2VydChjb3VudCA8PSBQWV9TSVpFX01B
WCAtIHNpemUpOworCiAgCW9iID0gUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgc2l6
ZSArIGNvdW50KTsKICAJcCA9IFB5U3RyaW5nX0FTX1NUUklORyhvYik7CiAgCW1lbWNweShwLCBw
dHIxLCBzaXplKTsKSW5kZXg6IFB5dGhvbi0yLjQuNC9PYmplY3RzL2xpc3RvYmplY3QuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQeXRob24tMi40LjQub3JpZy9PYmplY3RzL2xpc3RvYmplY3QuYworKysgUHl0
aG9uLTIuNC40L09iamVjdHMvbGlzdG9iamVjdC5jCkBAIC00NSw3ICs0NSwxNiBAQCBsaXN0X3Jl
c2l6ZShQeUxpc3RPYmplY3QgKnNlbGYsIGludCBuZXdzCiAJICogc3lzdGVtIHJlYWxsb2MoKS4K
IAkgKiBUaGUgZ3Jvd3RoIHBhdHRlcm4gaXM6ICAwLCA0LCA4LCAxNiwgMjUsIDM1LCA0NiwgNTgs
IDcyLCA4OCwgLi4uCiAJICovCi0JbmV3X2FsbG9jYXRlZCA9IChuZXdzaXplID4+IDMpICsgKG5l
d3NpemUgPCA5ID8gMyA6IDYpICsgbmV3c2l6ZTsKKwluZXdfYWxsb2NhdGVkID0gKG5ld3NpemUg
Pj4gMykgKyAobmV3c2l6ZSA8IDkgPyAzIDogNik7CisKKwkvKiBjaGVjayBmb3IgaW50ZWdlciBv
dmVyZmxvdyAqLworCWlmIChuZXdfYWxsb2NhdGVkID4gUFlfU0laRV9NQVggLSBuZXdzaXplKSB7
CisJCVB5RXJyX05vTWVtb3J5KCk7CisJCXJldHVybiAtMTsKKwl9IGVsc2UgeworCQluZXdfYWxs
b2NhdGVkICs9IG5ld3NpemU7CisJfQorCiAJaWYgKG5ld3NpemUgPT0gMCkKIAkJbmV3X2FsbG9j
YXRlZCA9IDA7CiAJaXRlbXMgPSBzZWxmLT5vYl9pdGVtOwpAQCAtOTIsOCArMTAxLDkgQEAgUHlM
aXN0X05ldyhpbnQgc2l6ZSkKIAkJcmV0dXJuIE5VTEw7CiAJfQogCW5ieXRlcyA9IHNpemUgKiBz
aXplb2YoUHlPYmplY3QgKik7Ci0JLyogQ2hlY2sgZm9yIG92ZXJmbG93ICovCi0JaWYgKG5ieXRl
cyAvIHNpemVvZihQeU9iamVjdCAqKSAhPSAoc2l6ZV90KXNpemUpCisJLyogQ2hlY2sgZm9yIG92
ZXJmbG93IHdpdGhvdXQgYW4gYWN0dWFsIG92ZXJmbG93LAorCSAqICB3aGljaCBjYW4gY2F1c2Ug
Y29tcGlsZXIgdG8gb3B0aW1pc2Ugb3V0ICovCisJaWYgKHNpemUgPiBQWV9TSVpFX01BWCAvIHNp
emVvZihQeU9iamVjdCAqKSkKIAkJcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAJaWYgKG51bV9m
cmVlX2xpc3RzKSB7CiAJCW51bV9mcmVlX2xpc3RzLS07CkBAIC0xMzcyLDYgKzEzODIsMTAgQEAg
bWVyZ2VfZ2V0bWVtKE1lcmdlU3RhdGUgKm1zLCBpbnQgbmVlZCkKIAkgKiB3ZSBkb24ndCBjYXJl
IHdoYXQncyBpbiB0aGUgYmxvY2suCiAJICovCiAJbWVyZ2VfZnJlZW1lbShtcyk7CisJaWYgKG5l
ZWQgPiBJTlRfTUFYIC8gc2l6ZW9mKFB5T2JqZWN0KikpIHsKKwkJUHlFcnJfTm9NZW1vcnkoKTsK
KwkJcmV0dXJuIC0xOworCX0KIAltcy0+YSA9IChQeU9iamVjdCAqKilQeU1lbV9NYWxsb2MobmVl
ZCAqIHNpemVvZihQeU9iamVjdCopKTsKIAlpZiAobXMtPmEpIHsKIAkJbXMtPmFsbG9jZWQgPSBu
ZWVkOwpAQCAtMjU1MCw2ICsyNTY0LDggQEAgbGlzdF9hc3Nfc3Vic2NyaXB0KFB5TGlzdE9iamVj
dCogc2VsZiwgUAogCQkJCXN0ZXAgPSAtc3RlcDsKIAkJCX0KIAorCQkJYXNzZXJ0KHNsaWNlbGVu
Z3RoIDw9IFBZX1NJWkVfTUFYIC8gc2l6ZW9mKFB5T2JqZWN0KikpOworCiAJCQlnYXJiYWdlID0g
KFB5T2JqZWN0KiopCiAJCQkJUHlNZW1fTUFMTE9DKHNsaWNlbGVuZ3RoKnNpemVvZihQeU9iamVj
dCopKTsKIAkJCWlmICghZ2FyYmFnZSkgewpJbmRleDogUHl0aG9uLTIuNC40L01pc2MvTkVXUwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBQeXRob24tMi40LjQub3JpZy9NaXNjL05FV1MKKysrIFB5dGhvbi0yLjQu
NC9NaXNjL05FV1MKQEAgLTIzLDYgKzIzLDEwIEBAIFdoYXQncyBOZXcgaW4gUHl0aG9uIDIuNC40
YzE/CiBDb3JlIGFuZCBidWlsdGlucwogLS0tLS0tLS0tLS0tLS0tLS0KIAorLSBBZGRlZCBjaGVj
a3MgZm9yIGludGVnZXIgb3ZlcmZsb3dzLCBjb250cmlidXRlZCBieSBHb29nbGUuIFNvbWUgYXJl
CisgIG9ubHkgYXZhaWxhYmxlIGlmIGFzc2VydHMgYXJlIGxlZnQgaW4gdGhlIGNvZGUsIGluIGNh
c2VzIHdoZXJlIHRoZXkKKyAgY2FuJ3QgYmUgdHJpZ2dlcmVkIGZyb20gUHl0aG9uIGNvZGUuCisK
IC0gQnVnICMxNDU2MjA5OiBJbiBzb21lIG9ic2N1cmUgY2FzZXMgaXQgd2FzIHBvc3NpYmxlIGZv
ciBhIGNsYXNzIHdpdGggYQogICBjdXN0b20gYGBfX2VxX18oKWBgIG1ldGhvZCB0byBjb25mdXNl
IGRpY3QgaW50ZXJuYWxzIHdoZW4gY2xhc3MgaW5zdGFuY2VzCiAgIHdlcmUgdXNlZCBhcyBhIGRp
Y3QncyBrZXlzIGFuZCB0aGUgYGBfX2VxX18oKWBgIG1ldGhvZCBtdXRhdGVkIHRoZSBkaWN0LgpJ
bmRleDogUHl0aG9uLTIuNC40L1BhcnNlci9ub2RlLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIu
NC40Lm9yaWcvUGFyc2VyL25vZGUuYworKysgUHl0aG9uLTIuNC40L1BhcnNlci9ub2RlLmMKQEAg
LTkxLDYgKzkxLDkgQEAgUHlOb2RlX0FkZENoaWxkKHJlZ2lzdGVyIG5vZGUgKm4xLCBpbnQgdAog
CWlmIChjdXJyZW50X2NhcGFjaXR5IDwgMCB8fCByZXF1aXJlZF9jYXBhY2l0eSA8IDApCiAJCXJl
dHVybiBFX09WRVJGTE9XOwogCWlmIChjdXJyZW50X2NhcGFjaXR5IDwgcmVxdWlyZWRfY2FwYWNp
dHkpIHsKKwkJaWYgKHJlcXVpcmVkX2NhcGFjaXR5ID4gUFlfU0laRV9NQVggLyBzaXplb2Yobm9k
ZSkpIHsKKwkJCXJldHVybiBFX05PTUVNOworCQl9CiAJCW4gPSBuMS0+bl9jaGlsZDsKIAkJbiA9
IChub2RlICopIFB5T2JqZWN0X1JFQUxMT0MobiwKIAkJCQkJICAgICAgcmVxdWlyZWRfY2FwYWNp
dHkgKiBzaXplb2Yobm9kZSkpOwpJbmRleDogUHl0aG9uLTIuNC40L01vZHVsZXMvcmdiaW1nbW9k
dWxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIuNC40Lm9yaWcvTW9kdWxlcy9yZ2JpbWdtb2R1
bGUuYworKysgUHl0aG9uLTIuNC40L01vZHVsZXMvcmdiaW1nbW9kdWxlLmMKQEAgLTI2OSw3ICsy
NjksNyBAQCBsb25naW1hZ2VkYXRhKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqCiAJUHlfSW50
MzIgKnN0YXJ0dGFiID0gTlVMTCwgKmxlbmd0aHRhYiA9IE5VTEw7CiAJRklMRSAqaW5mID0gTlVM
TDsKIAlJTUFHRSBpbWFnZTsKLQlpbnQgeSwgeiwgdGFibGVuOworCWludCB5LCB6LCB0YWJsZW4s
IG5ld19zaXplOwogCWludCB4c2l6ZSwgeXNpemUsIHpzaXplOwogCWludCBicHAsIHJsZSwgY3Vy
LCBiYWRvcmRlcjsKIAlpbnQgcmxlYnVmbGVuOwpAQCAtMzA2LDkgKzMwNiwxNSBAQCBsb25naW1h
Z2VkYXRhKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqCiAgICAgICAgIH0KIAlpZiAocmxlKSB7
CiAJCXRhYmxlbiA9IHlzaXplICogenNpemUgKiBzaXplb2YoUHlfSW50MzIpOworCQlybGVidWZs
ZW4gPSAoaW50KSAoMS4wNSAqIHhzaXplICsxMCk7CisJCWlmICgodGFibGVuIC8gc2l6ZW9mKFB5
X0ludDMyKSkgIT0gKHlzaXplICogenNpemUpIHx8CisJCSAgICBybGVidWZsZW4gPCAwKSB7CisJ
CQlQeUVycl9Ob01lbW9yeSgpOworCQkJZ290byBmaW5hbGx5OworCQl9CisKIAkJc3RhcnR0YWIg
PSAoUHlfSW50MzIgKiltYWxsb2ModGFibGVuKTsKIAkJbGVuZ3RodGFiID0gKFB5X0ludDMyICop
bWFsbG9jKHRhYmxlbik7Ci0JCXJsZWJ1ZmxlbiA9IChpbnQpICgxLjA1ICogeHNpemUgKzEwKTsK
IAkJcmxlZGF0ID0gKHVuc2lnbmVkIGNoYXIgKiltYWxsb2MocmxlYnVmbGVuKTsKIAkJaWYgKCFz
dGFydHRhYiB8fCAhbGVuZ3RodGFiIHx8ICFybGVkYXQpIHsKIAkJCVB5RXJyX05vTWVtb3J5KCk7
CkBAIC0zMzYsOCArMzQyLDE0IEBAIGxvbmdpbWFnZWRhdGEoUHlPYmplY3QgKnNlbGYsIFB5T2Jq
ZWN0ICoKIAogCQlmc2VlayhpbmYsIDUxMiArIDIgKiB0YWJsZW4sIFNFRUtfU0VUKTsKIAkJY3Vy
ID0gNTEyICsgMiAqIHRhYmxlbjsKKwkJbmV3X3NpemUgPSB4c2l6ZSAqIHlzaXplICsgVEFHTEVO
OworCQlpZiAobmV3X3NpemUgPCAwIHx8IChuZXdfc2l6ZSAqIHNpemVvZihQeV9JbnQzMikpIDwg
MCkgeworCQkJUHlFcnJfTm9NZW1vcnkoKTsKKwkJCWdvdG8gZmluYWxseTsKKwkJfQorCiAJCXJ2
ID0gUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUoKGNoYXIgKilOVUxMLAotCQkJCSAgICAgICh4
c2l6ZSAqIHlzaXplICsgVEFHTEVOKSAqIHNpemVvZihQeV9JbnQzMikpOworCQkJCSAgICAgIG5l
d19zaXplICogc2l6ZW9mKFB5X0ludDMyKSk7CiAJCWlmIChydiA9PSBOVUxMKQogCQkJZ290byBm
aW5hbGx5OwogCkBAIC00MDUsOCArNDE3LDE0IEBAIGxvbmdpbWFnZWRhdGEoUHlPYmplY3QgKnNl
bGYsIFB5T2JqZWN0ICoKIAkJCWNvcHlidygoUHlfSW50MzIgKikgYmFzZSwgeHNpemUgKiB5c2l6
ZSk7CiAJfQogCWVsc2UgeworCQluZXdfc2l6ZSA9IHhzaXplICogeXNpemUgKyBUQUdMRU47CisJ
CWlmIChuZXdfc2l6ZSA8IDAgfHwgKG5ld19zaXplICogc2l6ZW9mKFB5X0ludDMyKSkgPCAwKSB7
CisJCQlQeUVycl9Ob01lbW9yeSgpOworCQkJZ290byBmaW5hbGx5OworCQl9CisKIAkJcnYgPSBQ
eVN0cmluZ19Gcm9tU3RyaW5nQW5kU2l6ZSgoY2hhciAqKSAwLAotCQkJCQkgICAoeHNpemUqeXNp
emUrVEFHTEVOKSpzaXplb2YoUHlfSW50MzIpKTsKKwkJCQkJCW5ld19zaXplKnNpemVvZihQeV9J
bnQzMikpOwogCQlpZiAocnYgPT0gTlVMTCkKIAkJCWdvdG8gZmluYWxseTsKIApAQCAtNTk1LDEw
ICs2MTMsMTYgQEAgbG9uZ3N0b2ltYWdlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYQogCQly
ZXR1cm4gTlVMTDsKIAl9CiAJdGFibGVuID0geXNpemUgKiB6c2l6ZSAqIHNpemVvZihQeV9JbnQz
Mik7CisJcmxlYnVmbGVuID0gKGludCkgKDEuMDUgKiB4c2l6ZSArIDEwKTsKKworCWlmICgodGFi
bGVuIC8gc2l6ZW9mKFB5X0ludDMyKSkgIT0gKHlzaXplICogenNpemUpIHx8CisJICAgIHJsZWJ1
ZmxlbiA8IDAgfHwgKHhzaXplICogc2l6ZW9mKFB5X0ludDMyKSkgPCAwKSB7CisJCVB5RXJyX05v
TWVtb3J5KCk7CisJCWdvdG8gZmluYWxseTsKKwl9CiAKIAlzdGFydHRhYiA9IChQeV9JbnQzMiAq
KW1hbGxvYyh0YWJsZW4pOwogCWxlbmd0aHRhYiA9IChQeV9JbnQzMiAqKW1hbGxvYyh0YWJsZW4p
OwotCXJsZWJ1ZmxlbiA9IChpbnQpICgxLjA1ICogeHNpemUgKyAxMCk7CiAJcmxlYnVmID0gKHVu
c2lnbmVkIGNoYXIgKiltYWxsb2MocmxlYnVmbGVuKTsKIAlsdW1idWYgPSAodW5zaWduZWQgY2hh
ciAqKW1hbGxvYyh4c2l6ZSAqIHNpemVvZihQeV9JbnQzMikpOwogCWlmICghc3RhcnR0YWIgfHwg
IWxlbmd0aHRhYiB8fCAhcmxlYnVmIHx8ICFsdW1idWYpIHsKSW5kZXg6IFB5dGhvbi0yLjQuNC9N
b2R1bGVzL2RhdGV0aW1lbW9kdWxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIuNC40Lm9yaWcv
TW9kdWxlcy9kYXRldGltZW1vZHVsZS5jCisrKyBQeXRob24tMi40LjQvTW9kdWxlcy9kYXRldGlt
ZW1vZHVsZS5jCkBAIC0xMTExLDYgKzExMTEsOCBAQCBmb3JtYXRfdXRjb2Zmc2V0KGNoYXIgKmJ1
Ziwgc2l6ZV90IGJ1ZmxlCiAJY2hhciBzaWduOwogCWludCBub25lOwogCisJYXNzZXJ0KGJ1Zmxl
biA+PSAxKTsKKwogCW9mZnNldCA9IGNhbGxfdXRjb2Zmc2V0KHR6aW5mbywgdHppbmZvYXJnLCAm
bm9uZSk7CiAJaWYgKG9mZnNldCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQogCQlyZXR1cm4g
LTE7CkBAIC0xMTg4LDYgKzExOTAsMTEgQEAgd3JhcF9zdHJmdGltZShQeU9iamVjdCAqb2JqZWN0
LCBQeU9iamVjdAogCSAqIGEgbmV3IGZvcm1hdC4gIFNpbmNlIGNvbXB1dGluZyB0aGUgcmVwbGFj
ZW1lbnRzIGZvciB0aG9zZSBjb2RlcwogCSAqIGlzIGV4cGVuc2l2ZSwgZG9uJ3QgdW5sZXNzIHRo
ZXkncmUgYWN0dWFsbHkgdXNlZC4KIAkgKi8KKwlpZiAoUHlTdHJpbmdfU2l6ZShmb3JtYXQpID4g
SU5UX01BWCAtIDEpIHsKKwkJUHlFcnJfTm9NZW1vcnkoKTsKKwkJZ290byBEb25lOworCX0KKwog
CXRvdGFsbmV3ID0gUHlTdHJpbmdfU2l6ZShmb3JtYXQpICsgMTsJLyogcmVhbGlzdGljIGlmIG5v
ICV6LyVaICovCiAJbmV3Zm10ID0gUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgdG90
YWxuZXcpOwogCWlmIChuZXdmbXQgPT0gTlVMTCkgZ290byBEb25lOwpJbmRleDogUHl0aG9uLTIu
NC40L01vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0
aG9uLTIuNC40Lm9yaWcvTW9kdWxlcy9jamtjb2RlY3MvbXVsdGlieXRlY29kZWMuYworKysgUHl0
aG9uLTIuNC40L01vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmMKQEAgLTEwMCwxMiAr
MTAwLDE2IEBAIGdldF9lcnJvcmNhbGxiYWNrKGNvbnN0IGNoYXIgKmVycm9ycykKIHN0YXRpYyBp
bnQKIGV4cGFuZF9lbmNvZGVidWZmZXIoTXVsdGlieXRlRW5jb2RlQnVmZmVyICpidWYsIGludCBl
c2l6ZSkKIHsKLQlpbnQgb3JncG9zLCBvcmdzaXplOworCWludCBvcmdwb3MsIG9yZ3NpemUsIGlu
Y3NpemU7CiAKIAlvcmdwb3MgPSAoaW50KSgoY2hhciopYnVmLT5vdXRidWYgLSBQeVN0cmluZ19B
U19TVFJJTkcoYnVmLT5vdXRvYmopKTsKIAlvcmdzaXplID0gUHlTdHJpbmdfR0VUX1NJWkUoYnVm
LT5vdXRvYmopOwotCWlmIChfUHlTdHJpbmdfUmVzaXplKCZidWYtPm91dG9iaiwgb3Jnc2l6ZSAr
ICgKLQkgICAgZXNpemUgPCAob3Jnc2l6ZSA+PiAxKSA/IChvcmdzaXplID4+IDEpIHwgMSA6IGVz
aXplKSkgPT0gLTEpCisJaW5jc2l6ZSA9IChlc2l6ZSA8IChvcmdzaXplID4+IDEpID8gKG9yZ3Np
emUgPj4gMSkgfCAxIDogZXNpemUpOworCisJaWYgKG9yZ3NpemUgPiBJTlRfTUFYIC0gaW5jc2l6
ZSkKKwkJcmV0dXJuIC0xOworCisJaWYgKF9QeVN0cmluZ19SZXNpemUoJmJ1Zi0+b3V0b2JqLCBv
cmdzaXplICsgaW5jc2l6ZSkgPT0gLTEpCiAJCXJldHVybiAtMTsKIAogCWJ1Zi0+b3V0YnVmID0g
KHVuc2lnbmVkIGNoYXIgKilQeVN0cmluZ19BU19TVFJJTkcoYnVmLT5vdXRvYmopICtvcmdwb3M7
CkBAIC00MTYsNiArNDIwLDEyIEBAIG11bHRpYnl0ZWNvZGVjX2VuY29kZShNdWx0aWJ5dGVDb2Rl
YyAqY28KIAlidWYuZXhjb2JqID0gTlVMTDsKIAlidWYuaW5idWYgPSBidWYuaW5idWZfdG9wID0g
KmRhdGE7CiAJYnVmLmluYnVmX2VuZCA9IGJ1Zi5pbmJ1Zl90b3AgKyBkYXRhbGVuOworCisJaWYg
KGRhdGFsZW4gPiAoSU5UX01BWCAtIDE2KSAvIDIpIHsKKwkJUHlFcnJfTm9NZW1vcnkoKTsKKwkJ
Z290byBlcnJvcmV4aXQ7CisJfQorCiAJYnVmLm91dG9iaiA9IFB5U3RyaW5nX0Zyb21TdHJpbmdB
bmRTaXplKE5VTEwsIGRhdGFsZW4gKiAyICsgMTYpOwogCWlmIChidWYub3V0b2JqID09IE5VTEwp
CiAJCWdvdG8gZXJyb3JleGl0OwpAQCAtNzI1LDYgKzczNSwxMCBAQCBtYnN0cmVhbXJlYWRlcl9p
cmVhZChNdWx0aWJ5dGVTdHJlYW1SZWFkCiAJCQlQeU9iamVjdCAqY3RyOwogCQkJY2hhciAqY3Ry
ZGF0YTsKIAorCQkJaWYgKFB5U3RyaW5nX0dFVF9TSVpFKGNyZXMpID4gSU5UX01BWCAtIHNlbGYt
PnBlbmRpbmdzaXplKSB7CisJCQkJUHlFcnJfTm9NZW1vcnkoKTsKKwkJCQlnb3RvIGVycm9yZXhp
dDsKKyAgICAgICAgICAgIH0KIAkJCXJzaXplID0gUHlTdHJpbmdfR0VUX1NJWkUoY3JlcykgKyBz
ZWxmLT5wZW5kaW5nc2l6ZTsKIAkJCWN0ciA9IFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKE5V
TEwsIHJzaXplKTsKIAkJCWlmIChjdHIgPT0gTlVMTCkKSW5kZXg6IFB5dGhvbi0yLjQuNC9Nb2R1
bGVzL2FycmF5bW9kdWxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIuNC40Lm9yaWcvTW9kdWxl
cy9hcnJheW1vZHVsZS5jCisrKyBQeXRob24tMi40LjQvTW9kdWxlcy9hcnJheW1vZHVsZS5jCkBA
IC02NTEsNiArNjUxLDkgQEAgYXJyYXlfY29uY2F0KGFycmF5b2JqZWN0ICphLCBQeU9iamVjdCAq
YgogCQlQeUVycl9CYWRBcmd1bWVudCgpOwogCQlyZXR1cm4gTlVMTDsKIAl9CisJaWYgKGEtPm9i
X3NpemUgPiBJTlRfTUFYIC0gYi0+b2Jfc2l6ZSkgeworCQlyZXR1cm4gUHlFcnJfTm9NZW1vcnko
KTsKKwl9CiAJc2l6ZSA9IGEtPm9iX3NpemUgKyBiLT5vYl9zaXplOwogCW5wID0gKGFycmF5b2Jq
ZWN0ICopIG5ld2FycmF5b2JqZWN0KCZBcnJheXR5cGUsIHNpemUsIGEtPm9iX2Rlc2NyKTsKIAlp
ZiAobnAgPT0gTlVMTCkgewpAQCAtNjczLDYgKzY3Niw5IEBAIGFycmF5X3JlcGVhdChhcnJheW9i
amVjdCAqYSwgaW50IG4pCiAJaW50IG5ieXRlczsKIAlpZiAobiA8IDApCiAJCW4gPSAwOworCWlm
ICgoYS0+b2Jfc2l6ZSAhPSAwKSAmJiAobiA+IElOVF9NQVggLyBhLT5vYl9zaXplKSkgeworCQly
ZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKKwl9CiAJc2l6ZSA9IGEtPm9iX3NpemUgKiBuOwogCW5w
ID0gKGFycmF5b2JqZWN0ICopIG5ld2FycmF5b2JqZWN0KCZBcnJheXR5cGUsIHNpemUsIGEtPm9i
X2Rlc2NyKTsKIAlpZiAobnAgPT0gTlVMTCkKQEAgLTgxNyw2ICs4MjMsMTEgQEAgYXJyYXlfZG9f
ZXh0ZW5kKGFycmF5b2JqZWN0ICpzZWxmLCBQeU9iagogCQkJICAgICAiY2FuIG9ubHkgZXh0ZW5k
IHdpdGggYXJyYXkgb2Ygc2FtZSBraW5kIik7CiAJCXJldHVybiAtMTsKIAl9CisJaWYgKChzZWxm
LT5vYl9zaXplID4gSU5UX01BWCAtIGItPm9iX3NpemUpIHx8CisJCSgoc2VsZi0+b2Jfc2l6ZSAr
IGItPm9iX3NpemUpID4gSU5UX01BWCAvIHNlbGYtPm9iX2Rlc2NyLT5pdGVtc2l6ZSkpIHsKKwkJ
CVB5RXJyX05vTWVtb3J5KCk7CisJCQlyZXR1cm4gLTE7CisJfQogCXNpemUgPSBzZWxmLT5vYl9z
aXplICsgYi0+b2Jfc2l6ZTsKICAgICAgICAgUHlNZW1fUkVTSVpFKHNlbGYtPm9iX2l0ZW0sIGNo
YXIsIHNpemUqc2VsZi0+b2JfZGVzY3ItPml0ZW1zaXplKTsKICAgICAgICAgaWYgKHNlbGYtPm9i
X2l0ZW0gPT0gTlVMTCkgewpAQCAtODU4LDYgKzg2OSwxMCBAQCBhcnJheV9pbnBsYWNlX3JlcGVh
dChhcnJheW9iamVjdCAqc2VsZiwgCiAJCWlmIChuIDwgMCkKIAkJCW4gPSAwOwogCQlpdGVtcyA9
IHNlbGYtPm9iX2l0ZW07CisJCWlmICgoc2VsZi0+b2JfZGVzY3ItPml0ZW1zaXplICE9IDApICYm
CisJCQkoc2VsZi0+b2Jfc2l6ZSA+IElOVF9NQVggLyBzZWxmLT5vYl9kZXNjci0+aXRlbXNpemUp
KSB7CisJCQlyZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKKwkJfQogCQlzaXplID0gc2VsZi0+b2Jf
c2l6ZSAqIHNlbGYtPm9iX2Rlc2NyLT5pdGVtc2l6ZTsKIAkJaWYgKG4gPT0gMCkgewogCQkJUHlN
ZW1fRlJFRShpdGVtcyk7CkBAIC04NjYsNiArODgxLDkgQEAgYXJyYXlfaW5wbGFjZV9yZXBlYXQo
YXJyYXlvYmplY3QgKnNlbGYsIAogCQkJc2VsZi0+YWxsb2NhdGVkID0gMDsKIAkJfQogCQllbHNl
IHsKKwkJCWlmIChzaXplID4gSU5UX01BWCAvIG4pIHsKKwkJCQlyZXR1cm4gUHlFcnJfTm9NZW1v
cnkoKTsKKwkJCX0KIAkJCVB5TWVtX1Jlc2l6ZShpdGVtcywgY2hhciwgbiAqIHNpemUpOwogCQkJ
aWYgKGl0ZW1zID09IE5VTEwpCiAJCQkJcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CkBAIC0xMjc4
LDYgKzEyOTYsOSBAQCBhcnJheV9mcm9tbGlzdChhcnJheW9iamVjdCAqc2VsZiwgUHlPYmplCiAJ
CQlpZiAoKCpzZWxmLT5vYl9kZXNjci0+c2V0aXRlbSkoc2VsZiwKIAkJCQkJc2VsZi0+b2Jfc2l6
ZSAtIG4gKyBpLCB2KSAhPSAwKSB7CiAJCQkJc2VsZi0+b2Jfc2l6ZSAtPSBuOworCQkJCWlmIChp
dGVtc2l6ZSAmJiAoc2VsZi0+b2Jfc2l6ZSA+IElOVF9NQVggLyBpdGVtc2l6ZSkpIHsKKwkJCQkJ
cmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisJCQkJfQogCQkJCVB5TWVtX1JFU0laRShpdGVtLCBj
aGFyLAogCQkJCQkgICAgICAgICAgc2VsZi0+b2Jfc2l6ZSAqIGl0ZW1zaXplKTsKIAkJCQlzZWxm
LT5vYl9pdGVtID0gaXRlbTsKQEAgLTEzMzcsNiArMTM1OCwxMCBAQCBhcnJheV9mcm9tc3RyaW5n
KGFycmF5b2JqZWN0ICpzZWxmLCBQeU9iCiAJbiA9IG4gLyBpdGVtc2l6ZTsKIAlpZiAobiA+IDAp
IHsKIAkJY2hhciAqaXRlbSA9IHNlbGYtPm9iX2l0ZW07CisJCWlmICgobiA+IElOVF9NQVggLSBz
ZWxmLT5vYl9zaXplKSB8fAorCQkJKChzZWxmLT5vYl9zaXplICsgbikgPiBJTlRfTUFYIC8gaXRl
bXNpemUpKSB7CisJCQkJcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisJCX0KIAkJUHlNZW1fUkVT
SVpFKGl0ZW0sIGNoYXIsIChzZWxmLT5vYl9zaXplICsgbikgKiBpdGVtc2l6ZSk7CiAJCWlmIChp
dGVtID09IE5VTEwpIHsKIAkJCVB5RXJyX05vTWVtb3J5KCk7CkBAIC0xMzYyLDggKzEzODcsMTIg
QEAgdmFsdWVzLGFzIGlmIGl0IGhhZCBiZWVuIHJlYWQgZnJvbSBhIGZpbAogc3RhdGljIFB5T2Jq
ZWN0ICoKIGFycmF5X3Rvc3RyaW5nKGFycmF5b2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdW51c2Vk
KQogewotCXJldHVybiBQeVN0cmluZ19Gcm9tU3RyaW5nQW5kU2l6ZShzZWxmLT5vYl9pdGVtLAor
CWlmIChzZWxmLT5vYl9zaXplIDw9IElOVF9NQVggLyBzZWxmLT5vYl9kZXNjci0+aXRlbXNpemUp
IHsKKwkJcmV0dXJuIFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKHNlbGYtPm9iX2l0ZW0sCiAJ
CQkJICAgIHNlbGYtPm9iX3NpemUgKiBzZWxmLT5vYl9kZXNjci0+aXRlbXNpemUpOworCX0gZWxz
ZSB7CisJCXJldHVybiBQeUVycl9Ob01lbW9yeSgpOworCX0KIH0KIAogUHlEb2NfU1RSVkFSKHRv
c3RyaW5nX2RvYywKQEAgLTEzOTEsNiArMTQyMCw5IEBAIGFycmF5X2Zyb211bmljb2RlKGFycmF5
b2JqZWN0ICpzZWxmLCBQeU8KIAl9CiAJaWYgKG4gPiAwKSB7CiAJCVB5X1VOSUNPREUgKml0ZW0g
PSAoUHlfVU5JQ09ERSAqKSBzZWxmLT5vYl9pdGVtOworCQlpZiAoc2VsZi0+b2Jfc2l6ZSA+IElO
VF9NQVggLSBuKSB7CisJCQlyZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKKwkJfQogCQlQeU1lbV9S
RVNJWkUoaXRlbSwgUHlfVU5JQ09ERSwgc2VsZi0+b2Jfc2l6ZSArIG4pOwogCQlpZiAoaXRlbSA9
PSBOVUxMKSB7CiAJCQlQeUVycl9Ob01lbW9yeSgpOwpJbmRleDogUHl0aG9uLTIuNC40L01vZHVs
ZXMvY1N0cmluZ0lPLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIuNC40Lm9yaWcvTW9kdWxlcy9j
U3RyaW5nSU8uYworKysgUHl0aG9uLTIuNC40L01vZHVsZXMvY1N0cmluZ0lPLmMKQEAgLTEyMSw2
ICsxMjEsNyBAQCBQeURvY19TVFJWQVIoSU9fZ2V0dmFsX19kb2NfXywKIHN0YXRpYyBQeU9iamVj
dCAqCiBJT19jZ2V0dmFsKFB5T2JqZWN0ICpzZWxmKSB7CiAgICAgICAgIFVOTEVTUyAoSU9fX29w
ZW5jaGVjayhJT09PQkpFQ1Qoc2VsZikpKSByZXR1cm4gTlVMTDsKKwlhc3NlcnQoSU9PT0JKRUNU
KHNlbGYpLT5wb3MgPj0gMCk7CiAgICAgICAgIHJldHVybiBQeVN0cmluZ19Gcm9tU3RyaW5nQW5k
U2l6ZSgoKElPb2JqZWN0KilzZWxmKS0+YnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKChJT29iamVjdCopc2VsZiktPnBvcyk7CiB9CkBAIC0xMzksNiArMTQw
LDcgQEAgSU9fZ2V0dmFsKElPb2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncwogICAgICAgICB9
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgIHM9c2VsZi0+c3RyaW5nX3NpemU7Cisg
ICAgICAgIGFzc2VydChzZWxmLT5wb3MgPj0gMCk7CiAgICAgICAgIHJldHVybiBQeVN0cmluZ19G
cm9tU3RyaW5nQW5kU2l6ZShzZWxmLT5idWYsIHMpOwogfQogCkBAIC0xNTgsNiArMTYwLDggQEAg
SU9fY3JlYWQoUHlPYmplY3QgKnNlbGYsIGNoYXIgKipvdXRwdXQsIAogICAgICAgICBpbnQgbDsK
IAogICAgICAgICBVTkxFU1MgKElPX19vcGVuY2hlY2soSU9PT0JKRUNUKHNlbGYpKSkgcmV0dXJu
IC0xOworICAgICAgICBhc3NlcnQoSU9PT0JKRUNUKHNlbGYpLT5wb3MgPj0gMCk7CisgICAgICAg
IGFzc2VydChJT09PQkpFQ1Qoc2VsZiktPnN0cmluZ19zaXplID49IDApOwogICAgICAgICBsID0g
KChJT29iamVjdCopc2VsZiktPnN0cmluZ19zaXplIC0gKChJT29iamVjdCopc2VsZiktPnBvczsg
IAogICAgICAgICBpZiAobiA8IDAgfHwgbiA+IGwpIHsKICAgICAgICAgICAgICAgICBuID0gbDsK
QEAgLTE5Nyw2ICsyMDEsMTEgQEAgSU9fY3JlYWRsaW5lKFB5T2JqZWN0ICpzZWxmLCBjaGFyICoq
b3V0cAogCiAgICAgICAgICpvdXRwdXQ9KChJT29iamVjdCopc2VsZiktPmJ1ZiArICgoSU9vYmpl
Y3QqKXNlbGYpLT5wb3M7CiAgICAgICAgIGwgPSBuIC0gKChJT29iamVjdCopc2VsZiktPmJ1ZiAt
ICgoSU9vYmplY3QqKXNlbGYpLT5wb3M7CisKKyAgICAgICAgYXNzZXJ0KElPT09CSkVDVChzZWxm
KS0+cG9zIDw9IElOVF9NQVggLSBsKTsKKyAgICAgICAgYXNzZXJ0KElPT09CSkVDVChzZWxmKS0+
cG9zID49IDApOworICAgICAgICBhc3NlcnQoSU9PT0JKRUNUKHNlbGYpLT5zdHJpbmdfc2l6ZSA+
PSAwKTsKKwogICAgICAgICAoKElPb2JqZWN0KilzZWxmKS0+cG9zICs9IGw7CiAgICAgICAgIHJl
dHVybiBsOwogfQpAQCAtMjE1LDYgKzIyNCw3IEBAIElPX3JlYWRsaW5lKElPb2JqZWN0ICpzZWxm
LCBQeU9iamVjdCAqYXIKICAgICAgICAgICAgICAgICBuIC09IG07CiAgICAgICAgICAgICAgICAg
c2VsZi0+cG9zIC09IG07CiAgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0KElPT09CSkVDVChzZWxm
KS0+cG9zID49IDApOwogICAgICAgICByZXR1cm4gUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUo
b3V0cHV0LCBuKTsKIH0KIApAQCAtMjc3LDYgKzI4Nyw3IEBAIElPX3RlbGwoSU9vYmplY3QgKnNl
bGYsIFB5T2JqZWN0ICp1bnVzZWQKIAogICAgICAgICBVTkxFU1MgKElPX19vcGVuY2hlY2soc2Vs
ZikpIHJldHVybiBOVUxMOwogCisgICAgICAgIGFzc2VydChzZWxmLT5wb3MgPj0gMCk7CiAgICAg
ICAgIHJldHVybiBQeUludF9Gcm9tTG9uZyhzZWxmLT5wb3MpOwogfQogCkluZGV4OiBQeXRob24t
Mi40LjQvTW9kdWxlcy9zdHJvcG1vZHVsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFB5dGhvbi0yLjQuNC5v
cmlnL01vZHVsZXMvc3Ryb3Btb2R1bGUuYworKysgUHl0aG9uLTIuNC40L01vZHVsZXMvc3Ryb3Bt
b2R1bGUuYwpAQCAtNTc2LDcgKzU3Niw3IEBAIHN0cm9wX2V4cGFuZHRhYnMoUHlPYmplY3QgKnNl
bGYsIFB5T2JqZWMKIAljaGFyKiBlOwogCWNoYXIqIHA7CiAJY2hhciogcTsKLQlpbnQgaSwgajsK
KwlpbnQgaSwgaiwgb2xkX2o7CiAJUHlPYmplY3QqIG91dDsKIAljaGFyKiBzdHJpbmc7CiAJaW50
IHN0cmluZ2xlbjsKQEAgLTU5MywxMiArNTkzLDE4IEBAIHN0cm9wX2V4cGFuZHRhYnMoUHlPYmpl
Y3QgKnNlbGYsIFB5T2JqZWMKIAl9CiAKIAkvKiBGaXJzdCBwYXNzOiBkZXRlcm1pbmUgc2l6ZSBv
ZiBvdXRwdXQgc3RyaW5nICovCi0JaSA9IGogPSAwOyAvKiBqOiBjdXJyZW50IGNvbHVtbjsgaTog
dG90YWwgb2YgcHJldmlvdXMgbGluZXMgKi8KKwlpID0gaiA9IG9sZF9qID0gMDsgLyogajogY3Vy
cmVudCBjb2x1bW47IGk6IHRvdGFsIG9mIHByZXZpb3VzIGxpbmVzICovCiAJZSA9IHN0cmluZyAr
IHN0cmluZ2xlbjsKIAlmb3IgKHAgPSBzdHJpbmc7IHAgPCBlOyBwKyspIHsKLQkJaWYgKCpwID09
ICdcdCcpCisJCWlmICgqcCA9PSAnXHQnKSB7CiAJCQlqICs9IHRhYnNpemUgLSAoaiV0YWJzaXpl
KTsKLQkJZWxzZSB7CisJCQlpZiAob2xkX2ogPiBqKSB7CisJCQkJUHlFcnJfU2V0U3RyaW5nKFB5
RXhjX092ZXJmbG93RXJyb3IsCisJCQkJCQkibmV3IHN0cmluZyBpcyB0b28gbG9uZyIpOworCQkJ
CXJldHVybiBOVUxMOworCQkJfQorCQkJb2xkX2ogPSBqOworCQl9IGVsc2UgewogCQkJaisrOwog
CQkJaWYgKCpwID09ICdcbicpIHsKIAkJCQlpICs9IGo7CkBAIC02MDcsNiArNjEzLDExIEBAIHN0
cm9wX2V4cGFuZHRhYnMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWMKIAkJfQogCX0KIAorCWlmICgo
aSArIGopIDwgMCkgeworCQlQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwgIm5l
dyBzdHJpbmcgaXMgdG9vIGxvbmciKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCiAJLyogU2Vjb25k
IHBhc3M6IGNyZWF0ZSBvdXRwdXQgc3RyaW5nIGFuZCBmaWxsIGl0ICovCiAJb3V0ID0gUHlTdHJp
bmdfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgaStqKTsKIAlpZiAob3V0ID09IE5VTEwpCkluZGV4
OiBQeXRob24tMi40LjQvTW9kdWxlcy9iaW5hc2NpaS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFB5dGhvbi0y
LjQuNC5vcmlnL01vZHVsZXMvYmluYXNjaWkuYworKysgUHl0aG9uLTIuNC40L01vZHVsZXMvYmlu
YXNjaWkuYwpAQCAtMTk0LDYgKzE5NCw4IEBAIGJpbmFzY2lpX2EyYl91dShQeU9iamVjdCAqc2Vs
ZiwgUHlPYmplY3QKIAlpZiAoICFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ0IzphMmJfdXUiLCAm
YXNjaWlfZGF0YSwgJmFzY2lpX2xlbikgKQogCQlyZXR1cm4gTlVMTDsKIAorCWFzc2VydChhc2Np
aV9sZW4gPj0gMCk7CisKIAkvKiBGaXJzdCBieXRlOiBiaW5hcnkgZGF0YSBsZW5ndGggKGluIGJ5
dGVzKSAqLwogCWJpbl9sZW4gPSAoKmFzY2lpX2RhdGErKyAtICcgJykgJiAwNzc7CiAJYXNjaWlf
bGVuLS07CkBAIC0zNDcsNiArMzQ5LDExIEBAIGJpbmFzY2lpX2EyYl9iYXNlNjQoUHlPYmplY3Qg
KnNlbGYsIFB5T2IKIAlpZiAoICFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ0IzphMmJfYmFzZTY0
IiwgJmFzY2lpX2RhdGEsICZhc2NpaV9sZW4pICkKIAkJcmV0dXJuIE5VTEw7CiAKKwlhc3NlcnQo
YXNjaWlfbGVuID49IDApOworCisJaWYgKGFzY2lpX2xlbiA+IElOVF9NQVggLSAzKQorCQlyZXR1
cm4gUHlFcnJfTm9NZW1vcnkoKTsKKwogCWJpbl9sZW4gPSAoKGFzY2lpX2xlbiszKS80KSozOyAv
KiBVcHBlciBib3VuZCwgY29ycmVjdGVkIGxhdGVyICovCiAKIAkvKiBBbGxvY2F0ZSB0aGUgYnVm
ZmVyICovCkBAIC00MzYsNiArNDQzLDkgQEAgYmluYXNjaWlfYjJhX2Jhc2U2NChQeU9iamVjdCAq
c2VsZiwgUHlPYgogCiAJaWYgKCAhUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAicyM6YjJhX2Jhc2U2
NCIsICZiaW5fZGF0YSwgJmJpbl9sZW4pICkKIAkJcmV0dXJuIE5VTEw7CisKKwlhc3NlcnQoYmlu
X2xlbiA+PSAwKTsKKwogCWlmICggYmluX2xlbiA+IEJBU0U2NF9NQVhCSU4gKSB7CiAJCVB5RXJy
X1NldFN0cmluZyhFcnJvciwgIlRvbyBtdWNoIGRhdGEgZm9yIGJhc2U2NCBsaW5lIik7CiAJCXJl
dHVybiBOVUxMOwpAQCAtNDkxLDYgKzUwMSwxMSBAQCBiaW5hc2NpaV9hMmJfaHF4KFB5T2JqZWN0
ICpzZWxmLCBQeU9iamVjCiAJaWYgKCAhUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAidCM6YTJiX2hx
eCIsICZhc2NpaV9kYXRhLCAmbGVuKSApCiAJCXJldHVybiBOVUxMOwogCisJYXNzZXJ0KGxlbiA+
PSAwKTsKKworCWlmIChsZW4gPiBJTlRfTUFYIC0gMikKKwkJcmV0dXJuIFB5RXJyX05vTWVtb3J5
KCk7CisKIAkvKiBBbGxvY2F0ZSBhIHN0cmluZyB0aGF0IGlzIHRvbyBiaWcgKGZpeGVkIGxhdGVy
KSAKIAkgICBBZGQgdHdvIHRvIHRoZSBpbml0aWFsIGxlbmd0aCB0byBwcmV2ZW50IGludGVybmlu
ZyB3aGljaAogCSAgIHdvdWxkIHByZWNsdWRlIHN1YnNlcXVlbnQgcmVzaXppbmcuICAqLwpAQCAt
NTU0LDYgKzU2OSwxMSBAQCBiaW5hc2NpaV9ybGVjb2RlX2hxeChQeU9iamVjdCAqc2VsZiwgUHlP
CiAJaWYgKCAhUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAicyM6cmxlY29kZV9ocXgiLCAmaW5fZGF0
YSwgJmxlbikgKQogCQlyZXR1cm4gTlVMTDsKIAorCWFzc2VydChsZW4gPj0gMCk7CisKKwlpZiAo
bGVuID4gSU5UX01BWCAvIDIgLSAyKQorCQlyZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKKwogCS8q
IFdvcnN0IGNhc2U6IG91dHB1dCBpcyB0d2ljZSBhcyBiaWcgYXMgaW5wdXQgKGZpeGVkIGxhdGVy
KSAqLwogCWlmICggKHJ2PVB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIGxlbioyKzIp
KSA9PSBOVUxMICkKIAkJcmV0dXJuIE5VTEw7CkBAIC02MDMsNiArNjIzLDExIEBAIGJpbmFzY2lp
X2IyYV9ocXgoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWMKIAlpZiAoICFQeUFyZ19QYXJzZVR1cGxl
KGFyZ3MsICJzIzpiMmFfaHF4IiwgJmJpbl9kYXRhLCAmbGVuKSApCiAJCXJldHVybiBOVUxMOwog
CisJYXNzZXJ0KGxlbiA+PSAwKTsKKworCWlmIChsZW4gPiBJTlRfTUFYIC8gMiAtIDIpCisJCXJl
dHVybiBQeUVycl9Ob01lbW9yeSgpOworCiAJLyogQWxsb2NhdGUgYSBidWZmZXIgdGhhdCBpcyBh
dCBsZWFzdCBsYXJnZSBlbm91Z2ggKi8KIAlpZiAoIChydj1QeVN0cmluZ19Gcm9tU3RyaW5nQW5k
U2l6ZShOVUxMLCBsZW4qMisyKSkgPT0gTlVMTCApCiAJCXJldHVybiBOVUxMOwpAQCAtNjQxLDkg
KzY2NiwxMyBAQCBiaW5hc2NpaV9ybGVkZWNvZGVfaHF4KFB5T2JqZWN0ICpzZWxmLCBQCiAJaWYg
KCAhUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAicyM6cmxlZGVjb2RlX2hxeCIsICZpbl9kYXRhLCAm
aW5fbGVuKSApCiAJCXJldHVybiBOVUxMOwogCisJYXNzZXJ0KGluX2xlbiA+PSAwKTsKKwogCS8q
IEVtcHR5IHN0cmluZyBpcyBhIHNwZWNpYWwgY2FzZSAqLwogCWlmICggaW5fbGVuID09IDAgKQog
CQlyZXR1cm4gUHlfQnVpbGRWYWx1ZSgicyIsICIiKTsKKwllbHNlIGlmIChpbl9sZW4gPiBJTlRf
TUFYIC8gMikKKwkJcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAKIAkvKiBBbGxvY2F0ZSBhIGJ1
ZmZlciBvZiByZWFzb25hYmxlIHNpemUuIFJlc2l6ZWQgd2hlbiBuZWVkZWQgKi8KIAlvdXRfbGVu
ID0gaW5fbGVuKjI7CkBAIC02NjksNiArNjk4LDcgQEAgYmluYXNjaWlfcmxlZGVjb2RlX2hxeChQ
eU9iamVjdCAqc2VsZiwgUAogI2RlZmluZSBPVVRCWVRFKGIpIFwKIAlkbyB7IFwKIAkJIGlmICgg
LS1vdXRfbGVuX2xlZnQgPCAwICkgeyBcCisJCQkgIGlmICggb3V0X2xlbiA+IElOVF9NQVggLyAy
KSByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsgXAogCQkJICBfUHlTdHJpbmdfUmVzaXplKCZydiwg
MipvdXRfbGVuKTsgXAogCQkJICBpZiAoIHJ2ID09IE5VTEwgKSByZXR1cm4gTlVMTDsgXAogCQkJ
ICBvdXRfZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopUHlTdHJpbmdfQXNTdHJpbmcocnYpIFwKQEAg
LTczNyw3ICs3NjcsNyBAQCBiaW5hc2NpaV9jcmNfaHF4KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj
CiAJaWYgKCAhUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAicyNpOmNyY19ocXgiLCAmYmluX2RhdGEs
ICZsZW4sICZjcmMpICkKIAkJcmV0dXJuIE5VTEw7CiAKLQl3aGlsZShsZW4tLSkgeworCXdoaWxl
KGxlbi0tID4gMCkgewogCQljcmM9KChjcmM8PDgpJjB4ZmYwMCleY3JjdGFiX2hxeFsoKGNyYz4+
OCkmMHhmZileKmJpbl9kYXRhKytdOwogCX0KIApAQCAtODgxLDcgKzkxMSw3IEBAIGJpbmFzY2lp
X2NyYzMyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAKIAkvKiBvbmx5IHdhbnQgdGhlIHRyYWls
aW5nIDMyIGJpdHMgKi8KIAljcmMgJj0gMHhGRkZGRkZGRlVMOwogI2VuZGlmCi0Jd2hpbGUgKGxl
bi0tKQorCXdoaWxlIChsZW4tLSA+IDApCiAJCWNyYyA9IGNyY18zMl90YWJbKGNyYyBeICpiaW5f
ZGF0YSsrKSAmIDB4ZmZVTF0gXiAoY3JjID4+IDgpOwogCQkvKiBOb3RlOiAgKGNyYyA+PiA4KSBN
VVNUIHplcm8gZmlsbCBvbiBsZWZ0ICovCiAKQEAgLTkxMSw2ICs5NDEsMTAgQEAgYmluYXNjaWlf
aGV4bGlmeShQeU9iamVjdCAqc2VsZiwgUHlPYmplYwogCWlmICghUHlBcmdfUGFyc2VUdXBsZShh
cmdzLCAicyM6YjJhX2hleCIsICZhcmdidWYsICZhcmdsZW4pKQogCQlyZXR1cm4gTlVMTDsKIAor
CWFzc2VydChhcmdsZW4gPj0gMCk7CisJaWYgKGFyZ2xlbiA+IElOVF9NQVggLyAyKQorCQlyZXR1
cm4gUHlFcnJfTm9NZW1vcnkoKTsKKwogCXJldHZhbCA9IFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRT
aXplKE5VTEwsIGFyZ2xlbioyKTsKIAlpZiAoIXJldHZhbCkKIAkJcmV0dXJuIE5VTEw7CkBAIC05
NjgsNiArMTAwMiw4IEBAIGJpbmFzY2lpX3VuaGV4bGlmeShQeU9iamVjdCAqc2VsZiwgUHlPYmoK
IAlpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInMjOmEyYl9oZXgiLCAmYXJnYnVmLCAmYXJn
bGVuKSkKIAkJcmV0dXJuIE5VTEw7CiAKKwlhc3NlcnQoYXJnbGVuID49IDApOworCiAJLyogWFhY
IFdoYXQgc2hvdWxkIHdlIGRvIGFib3V0IHN0cmluZ3Mgd2l0aCBhbiBvZGQgbGVuZ3RoPyAgU2hv
dWxkCiAJICogd2UgYWRkIGFuIGltcGxpY2l0IGxlYWRpbmcgemVybywgb3IgYSB0cmFpbGluZyB6
ZXJvPyAgRm9yIG5vdywKIAkgKiByYWlzZSBhbiBleGNlcHRpb24uCkluZGV4OiBQeXRob24tMi40
LjQvTW9kdWxlcy9hdWRpb29wLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUHl0aG9uLTIuNC40Lm9yaWcvTW9k
dWxlcy9hdWRpb29wLmMKKysrIFB5dGhvbi0yLjQuNC9Nb2R1bGVzL2F1ZGlvb3AuYwpAQCAtNjc0
LDcgKzY3NCw3IEBAIHN0YXRpYyBQeU9iamVjdCAqCiBhdWRpb29wX3Rvc3RlcmVvKFB5T2JqZWN0
ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKIAlzaWduZWQgY2hhciAqY3AsICpuY3A7Ci0JaW50
IGxlbiwgc2l6ZSwgdmFsMSwgdmFsMiwgdmFsID0gMDsKKwlpbnQgbGVuLCBuZXdfbGVuLCBzaXpl
LCB2YWwxLCB2YWwyLCB2YWwgPSAwOwogCWRvdWJsZSBmYWMxLCBmYWMyLCBmdmFsLCBtYXh2YWw7
CiAJUHlPYmplY3QgKnJ2OwogCWludCBpOwpAQCAtNjkwLDcgKzY5MCwxNCBAQCBhdWRpb29wX3Rv
c3RlcmVvKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjCiAJCXJldHVybiAwOwogCX0KICAgICAKLQly
diA9IFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIGxlbioyKTsKKwluZXdfbGVuID0g
bGVuKjI7CisJaWYgKG5ld19sZW4gPCAwKSB7CisJCVB5RXJyX1NldFN0cmluZyhQeUV4Y19NZW1v
cnlFcnJvciwKKwkJCQkibm90IGVub3VnaCBtZW1vcnkgZm9yIG91dHB1dCBidWZmZXIiKTsKKwkJ
cmV0dXJuIDA7CisJfQorCisJcnYgPSBQeVN0cmluZ19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBu
ZXdfbGVuKTsKIAlpZiAoIHJ2ID09IDAgKQogCQlyZXR1cm4gMDsKIAluY3AgPSAoc2lnbmVkIGNo
YXIgKilQeVN0cmluZ19Bc1N0cmluZyhydik7CkBAIC04NTMsNyArODYwLDcgQEAgYXVkaW9vcF9s
aW4ybGluKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdAogewogCXNpZ25lZCBjaGFyICpjcDsKIAl1
bnNpZ25lZCBjaGFyICpuY3A7Ci0JaW50IGxlbiwgc2l6ZSwgc2l6ZTIsIHZhbCA9IDA7CisJaW50
IGxlbiwgbmV3X2xlbiwgc2l6ZSwgc2l6ZTIsIHZhbCA9IDA7CiAJUHlPYmplY3QgKnJ2OwogCWlu
dCBpLCBqOwogCkBAIC04NjcsNyArODc0LDEzIEBAIGF1ZGlvb3BfbGluMmxpbihQeU9iamVjdCAq
c2VsZiwgUHlPYmplY3QKIAkJcmV0dXJuIDA7CiAJfQogICAgIAotCXJ2ID0gUHlTdHJpbmdfRnJv
bVN0cmluZ0FuZFNpemUoTlVMTCwgKGxlbi9zaXplKSpzaXplMik7CisJbmV3X2xlbiA9IChsZW4v
c2l6ZSkqc2l6ZTI7CisJaWYgKG5ld19sZW4gPCAwKSB7CisJCVB5RXJyX1NldFN0cmluZyhQeUV4
Y19NZW1vcnlFcnJvciwKKwkJCQkibm90IGVub3VnaCBtZW1vcnkgZm9yIG91dHB1dCBidWZmZXIi
KTsKKwkJcmV0dXJuIDA7CisJfQorCXJ2ID0gUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUoTlVM
TCwgbmV3X2xlbik7CiAJaWYgKCBydiA9PSAwICkKIAkJcmV0dXJuIDA7CiAJbmNwID0gKHVuc2ln
bmVkIGNoYXIgKilQeVN0cmluZ19Bc1N0cmluZyhydik7CkBAIC05MDMsNiArOTE2LDcgQEAgYXVk
aW9vcF9yYXRlY3YoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0IAogCWludCBjaGFuLCBkLCAqcHJl
dl9pLCAqY3VyX2ksIGN1cl9vOwogCVB5T2JqZWN0ICpzdGF0ZSwgKnNhbXBzLCAqc3RyLCAqcnYg
PSBOVUxMOwogCWludCBieXRlc19wZXJfZnJhbWU7CisJc2l6ZV90IGFsbG9jX3NpemU7CiAKIAl3
ZWlnaHRBID0gMTsKIAl3ZWlnaHRCID0gMDsKQEAgLTk0NCw4ICs5NTgsMTQgQEAgYXVkaW9vcF9y
YXRlY3YoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0IAogCWlucmF0ZSAvPSBkOwogCW91dHJhdGUg
Lz0gZDsKIAotCXByZXZfaSA9IChpbnQgKikgbWFsbG9jKG5jaGFubmVscyAqIHNpemVvZihpbnQp
KTsKLQljdXJfaSA9IChpbnQgKikgbWFsbG9jKG5jaGFubmVscyAqIHNpemVvZihpbnQpKTsKKwlh
bGxvY19zaXplID0gc2l6ZW9mKGludCkgKiAodW5zaWduZWQpbmNoYW5uZWxzOworCWlmIChhbGxv
Y19zaXplIDwgbmNoYW5uZWxzKSB7CisJCVB5RXJyX1NldFN0cmluZyhQeUV4Y19NZW1vcnlFcnJv
ciwKKwkJCQkibm90IGVub3VnaCBtZW1vcnkgZm9yIG91dHB1dCBidWZmZXIiKTsKKwkJcmV0dXJu
IDA7CisJfQorCXByZXZfaSA9IChpbnQgKikgbWFsbG9jKGFsbG9jX3NpemUpOworCWN1cl9pID0g
KGludCAqKSBtYWxsb2MoYWxsb2Nfc2l6ZSk7CiAJaWYgKHByZXZfaSA9PSBOVUxMIHx8IGN1cl9p
ID09IE5VTEwpIHsKIAkJKHZvaWQpIFB5RXJyX05vTWVtb3J5KCk7CiAJCWdvdG8gZXhpdDsKQEAg
LTExMTYsNyArMTEzNiw3IEBAIGF1ZGlvb3BfdWxhdzJsaW4oUHlPYmplY3QgKnNlbGYsIFB5T2Jq
ZWMKIAl1bnNpZ25lZCBjaGFyICpjcDsKIAl1bnNpZ25lZCBjaGFyIGN2YWw7CiAJc2lnbmVkIGNo
YXIgKm5jcDsKLQlpbnQgbGVuLCBzaXplLCB2YWw7CisJaW50IGxlbiwgbmV3X2xlbiwgc2l6ZSwg
dmFsOwogCVB5T2JqZWN0ICpydjsKIAlpbnQgaTsKIApAQCAtMTEyOSwxMiArMTE0OSwxOCBAQCBh
dWRpb29wX3VsYXcybGluKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjCiAJCXJldHVybiAwOwogCX0K
ICAgICAKLQlydiA9IFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIGxlbipzaXplKTsK
KwluZXdfbGVuID0gbGVuKnNpemU7CisJaWYgKG5ld19sZW4gPCAwKSB7CisJCVB5RXJyX1NldFN0
cmluZyhQeUV4Y19NZW1vcnlFcnJvciwKKwkJCSJub3QgZW5vdWdoIG1lbW9yeSBmb3Igb3V0cHV0
IGJ1ZmZlciIpOworCQlyZXR1cm4gMDsKKwl9CisJcnYgPSBQeVN0cmluZ19Gcm9tU3RyaW5nQW5k
U2l6ZShOVUxMLCBuZXdfbGVuKTsKIAlpZiAoIHJ2ID09IDAgKQogCQlyZXR1cm4gMDsKIAluY3Ag
PSAoc2lnbmVkIGNoYXIgKilQeVN0cmluZ19Bc1N0cmluZyhydik7CiAgICAgCi0JZm9yICggaT0w
OyBpIDwgbGVuKnNpemU7IGkgKz0gc2l6ZSApIHsKKwlmb3IgKCBpPTA7IGkgPCBuZXdfbGVuOyBp
ICs9IHNpemUgKSB7CiAJCWN2YWwgPSAqY3ArKzsKIAkJdmFsID0gc3RfdWxhd190b19saW5lYXIo
Y3ZhbCk7CiAJCkBAIC0xMjU5LDcgKzEyODUsNyBAQCBhdWRpb29wX2FkcGNtMmxpbihQeU9iamVj
dCAqc2VsZiwgUHlPYmplCiB7CiAJc2lnbmVkIGNoYXIgKmNwOwogCXNpZ25lZCBjaGFyICpuY3A7
Ci0JaW50IGxlbiwgc2l6ZSwgdmFscHJlZCwgc3RlcCwgZGVsdGEsIGluZGV4LCBzaWduLCB2cGRp
ZmY7CisJaW50IGxlbiwgbmV3X2xlbiwgc2l6ZSwgdmFscHJlZCwgc3RlcCwgZGVsdGEsIGluZGV4
LCBzaWduLCB2cGRpZmY7CiAJUHlPYmplY3QgKnJ2LCAqc3RyLCAqc3RhdGU7CiAJaW50IGksIGlu
cHV0YnVmZmVyID0gMCwgYnVmZmVyc3RlcDsKIApAQCAtMTI4MSw3ICsxMzA3LDEzIEBAIGF1ZGlv
b3BfYWRwY20ybGluKFB5T2JqZWN0ICpzZWxmLCBQeU9iamUKIAl9IGVsc2UgaWYgKCAhUHlBcmdf
UGFyc2Uoc3RhdGUsICIoaWkpIiwgJnZhbHByZWQsICZpbmRleCkgKQogCQlyZXR1cm4gMDsKICAg
ICAKLQlzdHIgPSBQeVN0cmluZ19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBsZW4qc2l6ZSoyKTsK
KwluZXdfbGVuID0gbGVuKnNpemUqMjsKKwlpZiAobmV3X2xlbiA8IDApIHsKKwkJUHlFcnJfU2V0
U3RyaW5nKFB5RXhjX01lbW9yeUVycm9yLAorCQkJCSJub3QgZW5vdWdoIG1lbW9yeSBmb3Igb3V0
cHV0IGJ1ZmZlciIpOworCQlyZXR1cm4gMDsKKwl9CisJc3RyID0gUHlTdHJpbmdfRnJvbVN0cmlu
Z0FuZFNpemUoTlVMTCwgbmV3X2xlbik7CiAJaWYgKCBzdHIgPT0gMCApCiAJCXJldHVybiAwOwog
CW5jcCA9IChzaWduZWQgY2hhciAqKVB5U3RyaW5nX0FzU3RyaW5nKHN0cik7CkBAIC0xMjg5LDcg
KzEzMjEsNyBAQCBhdWRpb29wX2FkcGNtMmxpbihQeU9iamVjdCAqc2VsZiwgUHlPYmplCiAJc3Rl
cCA9IHN0ZXBzaXplVGFibGVbaW5kZXhdOwogCWJ1ZmZlcnN0ZXAgPSAwOwogICAgIAotCWZvciAo
IGk9MDsgaSA8IGxlbipzaXplKjI7IGkgKz0gc2l6ZSApIHsKKwlmb3IgKCBpPTA7IGkgPCBuZXdf
bGVuOyBpICs9IHNpemUgKSB7CiAJCS8qIFN0ZXAgMSAtIGdldCB0aGUgZGVsdGEgdmFsdWUgYW5k
IGNvbXB1dGUgbmV4dCBpbmRleCAqLwogCQlpZiAoIGJ1ZmZlcnN0ZXAgKSB7CiAJCQlkZWx0YSA9
IGlucHV0YnVmZmVyICYgMHhmOwpJbmRleDogUHl0aG9uLTIuNC40L01vZHVsZXMvY1BpY2tsZS5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFB5dGhvbi0yLjQuNC5vcmlnL01vZHVsZXMvY1BpY2tsZS5jCisrKyBQ
eXRob24tMi40LjQvTW9kdWxlcy9jUGlja2xlLmMKQEAgLTM0MTksNiArMzQxOSwxNCBAQCBsb2Fk
X2JpbnN0cmluZyhVbnBpY2tsZXJvYmplY3QgKnNlbGYpCiAJaWYgKHNlbGYtPnJlYWRfZnVuYyhz
ZWxmLCAmcywgNCkgPCAwKSByZXR1cm4gLTE7CiAKIAlsID0gY2FsY19iaW5pbnQocywgNCk7CisJ
aWYgKGwgPCAwKSB7CisJCS8qIENvcnJ1cHQgb3IgaG9zdGlsZSBwaWNrbGUgLS0gd2UgbmV2ZXIg
d3JpdGUgb25lIGxpa2UKKwkJICogdGhpcy4KKwkJICovCisJCVB5RXJyX1NldFN0cmluZyhVbnBp
Y2tsaW5nRXJyb3IsCisJCQkJIkJJTlNUUklORyBwaWNrbGUgaGFzIG5lZ2F0aXZlIGJ5dGUgY291
bnQiKTsKKwkJcmV0dXJuIC0xOworCX0KIAogCWlmIChzZWxmLT5yZWFkX2Z1bmMoc2VsZiwgJnMs
IGwpIDwgMCkKIAkJcmV0dXJuIC0xOwpAQCAtMzQ4Niw2ICszNDk0LDE0IEBAIGxvYWRfYmludW5p
Y29kZShVbnBpY2tsZXJvYmplY3QgKnNlbGYpCiAJaWYgKHNlbGYtPnJlYWRfZnVuYyhzZWxmLCAm
cywgNCkgPCAwKSByZXR1cm4gLTE7CiAKIAlsID0gY2FsY19iaW5pbnQocywgNCk7CisJaWYgKGwg
PCAwKSB7CisJCS8qIENvcnJ1cHQgb3IgaG9zdGlsZSBwaWNrbGUgLS0gd2UgbmV2ZXIgd3JpdGUg
b25lIGxpa2UKKwkJICogdGhpcy4KKwkJICovCisJCVB5RXJyX1NldFN0cmluZyhVbnBpY2tsaW5n
RXJyb3IsCisJCQkJIkJJTlVOSUNPREUgcGlja2xlIGhhcyBuZWdhdGl2ZSBieXRlIGNvdW50Iik7
CisJCXJldHVybiAtMTsKKwl9CiAKIAlpZiAoc2VsZi0+cmVhZF9mdW5jKHNlbGYsICZzLCBsKSA8
IDApCiAJCXJldHVybiAtMTsKSW5kZXg6IFB5dGhvbi0yLjQuNC9Nb2R1bGVzL19jc3YuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQeXRob24tMi40LjQub3JpZy9Nb2R1bGVzL19jc3YuYworKysgUHl0aG9uLTIu
NC40L01vZHVsZXMvX2Nzdi5jCkBAIC00NzAsNiArNDcwLDEwIEBAIHBhcnNlX2dyb3dfYnVmZihS
ZWFkZXJPYmogKnNlbGYpCiAJCXNlbGYtPmZpZWxkID0gUHlNZW1fTWFsbG9jKHNlbGYtPmZpZWxk
X3NpemUpOwogCX0KIAllbHNlIHsKKwkJaWYgKHNlbGYtPmZpZWxkX3NpemUgPiBJTlRfTUFYIC8g
MikgeworCQkJUHlFcnJfTm9NZW1vcnkoKTsKKwkJCXJldHVybiAwOworCQl9CiAJCXNlbGYtPmZp
ZWxkX3NpemUgKj0gMjsKIAkJc2VsZi0+ZmllbGQgPSBQeU1lbV9SZWFsbG9jKHNlbGYtPmZpZWxk
LCBzZWxmLT5maWVsZF9zaXplKTsKIAl9CkBAIC0xMDAzLDYgKzEwMDcsMTIgQEAgam9pbl9hcHBl
bmRfZGF0YShXcml0ZXJPYmogKnNlbGYsIGNoYXIgKgogc3RhdGljIGludAogam9pbl9jaGVja19y
ZWNfc2l6ZShXcml0ZXJPYmogKnNlbGYsIGludCByZWNfbGVuKQogeworCisJaWYgKHJlY19sZW4g
PCAwIHx8IHJlY19sZW4gPiBJTlRfTUFYIC0gTUVNX0lOQ1IpIHsKKwkJUHlFcnJfTm9NZW1vcnko
KTsKKwkJcmV0dXJuIDA7CisJfQorCiAJaWYgKHJlY19sZW4gPiBzZWxmLT5yZWNfc2l6ZSkgewog
CQlpZiAoc2VsZi0+cmVjX3NpemUgPT0gMCkgewogCQkJc2VsZi0+cmVjX3NpemUgPSAocmVjX2xl
biAvIE1FTV9JTkNSICsgMSkgKiBNRU1fSU5DUjsK
</data>        

          </attachment>
    </bug>

</bugzilla>