<?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>72406</bug_id>
          
          <creation_ts>2004-11-24 16:06 0000</creation_ts>
          <short_desc>capi4k-utils patch for use with ppp-2.4.3</short_desc>
          <delta_ts>2006-03-20 01:05:09 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>tove@gentoo.org</reporter>
          <assigned_to>net-dialup@gentoo.org</assigned_to>
          <cc>sbriesen@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>tove@gentoo.org</who>
            <bug_when>2004-11-24 16:06:00 0000</bug_when>
            <thetext>pppdcapiplugin support for ppp 2.4.3</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tove@gentoo.org</who>
            <bug_when>2004-11-24 16:07:06 0000</bug_when>
            <thetext>Created an attachment (id=44689)
capi4k-utils changes
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tove@gentoo.org</who>
            <bug_when>2004-11-24 16:07:54 0000</bug_when>
            <thetext>Created an attachment (id=44690)
files/ppp-2.4.3.patch
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mrness@gentoo.org</who>
            <bug_when>2004-11-27 05:25:59 0000</bug_when>
            <thetext>fixed in -r3.
thanks, tove.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mrness@gentoo.org</who>
            <bug_when>2004-11-28 05:17:18 0000</bug_when>
            <thetext>*** Bug 72668 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44689</attachid>
            <date>2004-11-24 16:07 0000</date>
            <desc>capi4k-utils changes</desc>
            <filename>capidiff</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIC91c3IvcG9ydGFnZS9wb3J0YWdlL25ldC1kaWFsdXAvY2FwaTRrLXV0aWxzL2NhcGk0ay11
dGlscy0yMDA0MTAwNi1yMi5lYnVpbGQJMjAwNC0xMS0xNSAyMDoxMzo0My4wMDAwMDAwMDAgKzAx
MDAKKysrIGNhcGk0ay11dGlscy0yMDA0MTAwNi1yMi5lYnVpbGQJMjAwNC0xMS0yNCAyMzowNzo0
NC42NTgzMjcyMTYgKzAxMDAKQEAgLTEwLDcgKzEwLDcgQEAKIAogTVlfRklMRVM9JHtGSUxFU0RJ
Un0vJHtQVn0KIE1ZX1A9JHtQTn0tJHtZRUFSX1BWfS0ke01PTl9QVn0tJHtEQVlfUFZ9Ci1QUFBW
RVJTSU9OUz0iMi40LjIiICAjIHZlcnNpb25zIGluIHBvcnRhZ2UKK1BQUFZFUlNJT05TPSIyLjQu
MiAyLjQuMyIgICMgdmVyc2lvbnMgaW4gcG9ydGFnZQogCiBERVNDUklQVElPTj0iQ0FQSTRMaW51
eCBVdGlscyIKIEhPTUVQQUdFPSJmdHA6Ly9mdHAuaW4tYmVybGluLmRlL3B1Yi9jYXBpNGxpbnV4
LyIKQEAgLTM4LDYgKzM4LDggQEAKIAljcCAtZiAke01ZX0ZJTEVTfS9jb25maWcgLmNvbmZpZwog
CSMgZml4IHRoZSBsaXR0bGUgb2RkIGJ1Z3MKIAllcGF0Y2ggJHtNWV9GSUxFU30vJHtQTn0ucGF0
Y2ggfHwgZGllICJwYXRjaCBmYWlsZWQiCisJIyBzdXBwb3J0IGZvciBwcHAtMi40LjMKKwllcGF0
Y2ggJHtNWV9GSUxFU30vcHBwLTIuNC4zLnBhdGNoIHx8IGRpZQogCSMgcGF0Y2ggaW5jbHVkZXMg
b2YgYWxsICouYyBmaWxlcwogCXNlZCAtaSAtZSAiczpsaW51eC9jYXBpLmg+JDpsaW51eC9jb21w
aWxlci5oPlxuI2luY2x1ZGUgPGxpbnV4L2NhcGkuaD46ZyIgKi8qLmMgfHwgZGllICJzZWQgZmFp
bGVkIgogCSMgcGF0Y2ggYWxsIE1ha2VmaWxlLmFtIGFuZCBSdWxlcy5tYWtlIHRvIHVzZSBvdXIg
Q0ZMQUdTCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44690</attachid>
            <date>2004-11-24 16:07 0000</date>
            <desc>files/ppp-2.4.3.patch</desc>
            <filename>ppp.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtTnVhciBjYXBpNGstdXRpbHNfb2xkL3BwcGRjYXBpcGx1Z2luL3BwcC0yLjQuMy9NYWtl
ZmlsZSBjYXBpNGstdXRpbHMvcHBwZGNhcGlwbHVnaW4vcHBwLTIuNC4zL01ha2VmaWxlCi0tLSBj
YXBpNGstdXRpbHNfb2xkL3BwcGRjYXBpcGx1Z2luL3BwcC0yLjQuMy9NYWtlZmlsZQkxOTcwLTAx
LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysgY2FwaTRrLXV0aWxzL3BwcGRjYXBpcGx1
Z2luL3BwcC0yLjQuMy9NYWtlZmlsZQkyMDA0LTAyLTE0IDE2OjAyOjQ3LjAwMDAwMDAwMCArMDEw
MApAQCAtMCwwICsxLDE0IEBACisjIE1ha2VmaWxlIGZvciB0aGUgY2FwaXBsdWdpbiBmb3IgcHBw
ZCg4KS4KKyMKKyMgQ29weXJpZ2h0IDIwMDAgQ2Fyc3RlbiBQYWV0aCAoY2FsbGVAY2FsbGUuaW4t
YmVybGluLmRlKQorIyBDb3B5cmlnaHQgMjAwMCBBVk0gR21iSCBCZXJsaW4gKGluZm9AYXZtLmRl
KQorIworIyAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorIyAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbgorIyAgMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworUExVR0lORElSPSR7REVTVERJUn0v
dXNyL2xpYi9wcHBkLyQoUFBQVkVSU0lPTikKKworaW5jbHVkZSAkKFRPUERJUikvUnVsZXMubWFr
ZQorCmRpZmYgLU51YXIgY2FwaTRrLXV0aWxzX29sZC9wcHBkY2FwaXBsdWdpbi9wcHAtMi40LjMv
cHBwZC9wYXRjaGxldmVsLmggY2FwaTRrLXV0aWxzL3BwcGRjYXBpcGx1Z2luL3BwcC0yLjQuMy9w
cHBkL3BhdGNobGV2ZWwuaAotLS0gY2FwaTRrLXV0aWxzX29sZC9wcHBkY2FwaXBsdWdpbi9wcHAt
Mi40LjMvcHBwZC9wYXRjaGxldmVsLmgJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx
MDAKKysrIGNhcGk0ay11dGlscy9wcHBkY2FwaXBsdWdpbi9wcHAtMi40LjMvcHBwZC9wYXRjaGxl
dmVsLmgJMjAwNC0xMS0xMyAxMzowODowMS4wMDAwMDAwMDAgKzAxMDAKQEAgLTAsMCArMSw0IEBA
CisvKiAkSWQ6IHBhdGNobGV2ZWwuaCx2IDEuNjIgMjAwNC8xMS8xMyAxMjowODowMSBwYXVsdXMg
RXhwICQgKi8KKworI2RlZmluZSBWRVJTSU9OCQkiMi40LjMiCisjZGVmaW5lIERBVEUJCSIxMyBO
b3ZlbWJlciAyMDA0IgpkaWZmIC1OdWFyIGNhcGk0ay11dGlsc19vbGQvcHBwZGNhcGlwbHVnaW4v
cHBwLTIuNC4zL3BwcGQvcHBwZC5oIGNhcGk0ay11dGlscy9wcHBkY2FwaXBsdWdpbi9wcHAtMi40
LjMvcHBwZC9wcHBkLmgKLS0tIGNhcGk0ay11dGlsc19vbGQvcHBwZGNhcGlwbHVnaW4vcHBwLTIu
NC4zL3BwcGQvcHBwZC5oCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKyBj
YXBpNGstdXRpbHMvcHBwZGNhcGlwbHVnaW4vcHBwLTIuNC4zL3BwcGQvcHBwZC5oCTIwMDQtMTEt
MTMgMTM6MDI6MjIuMDAwMDAwMDAwICswMTAwCkBAIC0wLDAgKzEsOTA1IEBACisvKgorICogcHBw
ZC5oIC0gUFBQIGRhZW1vbiBnbG9iYWwgZGVjbGFyYXRpb25zLgorICoKKyAqIENvcHlyaWdodCAo
YykgMTk4NC0yMDAwIENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5LiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgor
ICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICoKKyAqIDMuIFRoZSBuYW1lICJDYXJuZWdp
ZSBNZWxsb24gVW5pdmVyc2l0eSIgbXVzdCBub3QgYmUgdXNlZCB0bworICogICAgZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAq
ICAgIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHBlcm1pc3Npb24gb3IgYW55IGxlZ2Fs
CisgKiAgICBkZXRhaWxzLCBwbGVhc2UgY29udGFjdAorICogICAgICBPZmZpY2Ugb2YgVGVjaG5v
bG9neSBUcmFuc2ZlcgorICogICAgICBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eQorICogICAg
ICA1MDAwIEZvcmJlcyBBdmVudWUKKyAqICAgICAgUGl0dHNidXJnaCwgUEEgIDE1MjEzLTM4OTAK
KyAqICAgICAgKDQxMikgMjY4LTQzODcsIGZheDogKDQxMikgMjY4LTczOTUKKyAqICAgICAgdGVj
aC10cmFuc2ZlckBhbmRyZXcuY211LmVkdQorICoKKyAqIDQuIFJlZGlzdHJpYnV0aW9ucyBvZiBh
bnkgZm9ybSB3aGF0c29ldmVyIG11c3QgcmV0YWluIHRoZSBmb2xsb3dpbmcKKyAqICAgIGFja25v
d2xlZGdtZW50OgorICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9w
ZWQgYnkgQ29tcHV0aW5nIFNlcnZpY2VzCisgKiAgICAgYXQgQ2FybmVnaWUgTWVsbG9uIFVuaXZl
cnNpdHkgKGh0dHA6Ly93d3cuY211LmVkdS9jb21wdXRpbmcvKS4iCisgKgorICogQ0FSTkVHSUUg
TUVMTE9OIFVOSVZFUlNJVFkgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEggUkVHQVJEIFRP
CisgKiBUSElTIFNPRlRXQVJFLCBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkKKyAqIEFORCBGSVRORVNTLCBJTiBOTyBFVkVOVCBTSEFMTCBDQVJORUdJ
RSBNRUxMT04gVU5JVkVSU0lUWSBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJF
Q1QgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVS
IFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4K
KyAqIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBB
Q1RJT04sIEFSSVNJTkcKKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBP
UiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorICoKKyAqICRJZDogcHBwZC5oLHYgMS44
OCAyMDA0LzExLzEzIDEyOjAyOjIyIHBhdWx1cyBFeHAgJAorICovCisKKy8qCisgKiBUT0RPOgor
ICovCisKKyNpZm5kZWYgX19QUFBEX0hfXworI2RlZmluZSBfX1BQUERfSF9fCisKKyNpbmNsdWRl
IDxzdGRpby5oPgkJLyogZm9yIEZJTEUgKi8KKyNpbmNsdWRlIDxsaW1pdHMuaD4JCS8qIGZvciBO
R1JPVVBTX01BWCAqLworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgkJLyogZm9yIE1BWFBBVEhMRU4g
YW5kIEJTRDRfNCwgaWYgZGVmaW5lZCAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgkJLyogZm9y
IHVfaW50MzJfdCwgaWYgZGVmaW5lZCAqLworI2luY2x1ZGUgPHN5cy90aW1lLmg+CQkvKiBmb3Ig
c3RydWN0IHRpbWV2YWwgKi8KKyNpbmNsdWRlIDxuZXQvcHBwX2RlZnMuaD4KKyNpbmNsdWRlICJw
YXRjaGxldmVsLmgiCisKKyNpZiBkZWZpbmVkKF9fU1REQ19fKQorI2luY2x1ZGUgPHN0ZGFyZy5o
PgorI2RlZmluZSBfX1YoeCkJeAorI2Vsc2UKKyNpbmNsdWRlIDx2YXJhcmdzLmg+CisjZGVmaW5l
IF9fVih4KQkodmFfYWxpc3QpIHZhX2RjbAorI2RlZmluZSBjb25zdAorI2RlZmluZSB2b2xhdGls
ZQorI2VuZGlmCisKKyNpZmRlZiBJTkVUNgorI2luY2x1ZGUgImV1aTY0LmgiCisjZW5kaWYKKwor
LyoKKyAqIExpbWl0cy4KKyAqLworCisjZGVmaW5lIE5VTV9QUFAJCTEJLyogT25lIFBQUCBpbnRl
cmZhY2Ugc3VwcG9ydGVkIChwZXIgcHJvY2VzcykgKi8KKyNkZWZpbmUgTUFYV09SRExFTgkxMDI0
CS8qIG1heCBsZW5ndGggb2Ygd29yZCBpbiBmaWxlIChpbmNsIG51bGwpICovCisjZGVmaW5lIE1B
WEFSR1MJCTEJLyogbWF4ICMgYXJncyB0byBhIGNvbW1hbmQgKi8KKyNkZWZpbmUgTUFYTkFNRUxF
TgkyNTYJLyogbWF4IGxlbmd0aCBvZiBob3N0bmFtZSBvciBuYW1lIGZvciBhdXRoICovCisjZGVm
aW5lIE1BWFNFQ1JFVExFTgkyNTYJLyogbWF4IGxlbmd0aCBvZiBwYXNzd29yZCBvciBzZWNyZXQg
Ki8KKworLyoKKyAqIE9wdGlvbiBkZXNjcmlwdG9yIHN0cnVjdHVyZS4KKyAqLworCit0eXBlZGVm
IHVuc2lnbmVkIGNoYXIJYm9vbDsKKworZW51bSBvcHRfdHlwZSB7CisJb19zcGVjaWFsX25vYXJn
ID0gMCwKKwlvX3NwZWNpYWwgPSAxLAorCW9fYm9vbCwKKwlvX2ludCwKKwlvX3VpbnQzMiwKKwlv
X3N0cmluZywKKwlvX3dpbGQKK307CisKK3R5cGVkZWYgc3RydWN0IHsKKwljaGFyCSpuYW1lOwkJ
LyogbmFtZSBvZiB0aGUgb3B0aW9uICovCisJZW51bSBvcHRfdHlwZSB0eXBlOworCXZvaWQJKmFk
ZHI7CisJY2hhcgkqZGVzY3JpcHRpb247CisJdW5zaWduZWQgaW50IGZsYWdzOworCXZvaWQJKmFk
ZHIyOworCWludAl1cHBlcl9saW1pdDsKKwlpbnQJbG93ZXJfbGltaXQ7CisJY29uc3QgY2hhciAq
c291cmNlOworCXNob3J0IGludCBwcmlvcml0eTsKKwlzaG9ydCBpbnQgd2lubmVyOworfSBvcHRp
b25fdDsKKworLyogVmFsdWVzIGZvciBmbGFncyAqLworI2RlZmluZSBPUFRfVkFMVUUJMHhmZgkv
KiBtYXNrIGZvciBwcmVzdXBwbGllZCB2YWx1ZSAqLworI2RlZmluZSBPUFRfSEVYCQkweDEwMAkv
KiBpbnQgb3B0aW9uIGlzIGluIGhleCAqLworI2RlZmluZSBPUFRfTk9BUkcJMHgyMDAJLyogb3B0
aW9uIGRvZXNuJ3QgdGFrZSBhcmd1bWVudCAqLworI2RlZmluZSBPUFRfT1IJCTB4NDAwCS8qIE9S
IGluIGFyZ3VtZW50IHRvIHZhbHVlICovCisjZGVmaW5lIE9QVF9JTkMJCTB4ODAwCS8qIGluY3Jl
bWVudCB2YWx1ZSAqLworI2RlZmluZSBPUFRfQTJPUgkweDgwMAkvKiBmb3Igb19ib29sLCBPUiBh
cmcgdG8gKih1X2NoYXIgKilhZGRyMiAqLworI2RlZmluZSBPUFRfUFJJVgkweDEwMDAJLyogcHJp
dmlsZWdlZCBvcHRpb24gKi8KKyNkZWZpbmUgT1BUX1NUQVRJQwkweDIwMDAJLyogc3RyaW5nIG9w
dGlvbiBnb2VzIGludG8gc3RhdGljIGFycmF5ICovCisjZGVmaW5lIE9QVF9MTElNSVQJMHg0MDAw
CS8qIGNoZWNrIHZhbHVlIGFnYWluc3QgbG93ZXIgbGltaXQgKi8KKyNkZWZpbmUgT1BUX1VMSU1J
VAkweDgwMDAJLyogY2hlY2sgdmFsdWUgYWdhaW5zdCB1cHBlciBsaW1pdCAqLworI2RlZmluZSBP
UFRfTElNSVRTCShPUFRfTExJTUlUfE9QVF9VTElNSVQpCisjZGVmaW5lIE9QVF9aRVJPT0sJMHgx
MDAwMAkvKiAwIHZhbHVlIGlzIE9LIGV2ZW4gaWYgbm90IHdpdGhpbiBsaW1pdHMgKi8KKyNkZWZp
bmUgT1BUX0hJREUJMHgxMDAwMAkvKiBmb3Igb19zdHJpbmcsIHByaW50IHZhbHVlIGFzID8/Pz8/
PyAqLworI2RlZmluZSBPUFRfQTJMSVNUCTB4MTAwMDAgLyogZm9yIG9fc3BlY2lhbCwga2VlcCBs
aXN0IG9mIHZhbHVlcyAqLworI2RlZmluZSBPUFRfQTJDTFJCCTB4MTAwMDAgLyogb19ib29sLCBj
bHIgdmFsIGJpdHMgaW4gKih1X2NoYXIgKilhZGRyMiAqLworI2RlZmluZSBPUFRfTk9JTkNSCTB4
MjAwMDAJLyogdmFsdWUgbXVzdG4ndCBiZSBpbmNyZWFzZWQgKi8KKyNkZWZpbmUgT1BUX1pFUk9J
TkYJMHg0MDAwMAkvKiB3aXRoIE9QVF9OT0lOQ1IsIDAgPT0gaW5maW5pdHkgKi8KKyNkZWZpbmUg
T1BUX1BSSU8JMHg4MDAwMAkvKiBwcm9jZXNzIG9wdGlvbiBwcmlvcml0aWVzIGZvciB0aGlzIG9w
dGlvbiAqLworI2RlZmluZSBPUFRfUFJJT1NVQgkweDEwMDAwMCAvKiBzdWJzaWRpYXJ5IG1lbWJl
ciBvZiBwcmlvcml0eSBncm91cCAqLworI2RlZmluZSBPUFRfQUxJQVMJMHgyMDAwMDAgLyogb3B0
aW9uIGlzIGFsaWFzIGZvciBwcmV2aW91cyBvcHRpb24gKi8KKyNkZWZpbmUgT1BUX0EyQ09QWQkw
eDQwMDAwMCAvKiBhZGRyMiAtPiBzZWNvbmQgbG9jYXRpb24gdG8gcmN2IHZhbHVlICovCisjZGVm
aW5lIE9QVF9FTkFCTEUJMHg4MDAwMDAgLyogdXNlICphZGRyMiBhcyBlbmFibGUgZm9yIG9wdGlv
biAqLworI2RlZmluZSBPUFRfQTJDTFIJMHgxMDAwMDAwIC8qIGNsZWFyICooYm9vbCAqKWFkZHIy
ICovCisjZGVmaW5lIE9QVF9QUklWRklYCTB4MjAwMDAwMCAvKiB1c2VyIGNhbid0IG92ZXJyaWRl
IGlmIHNldCBieSByb290ICovCisjZGVmaW5lIE9QVF9JTklUT05MWQkweDQwMDAwMDAgLyogb3B0
aW9uIGNhbiBvbmx5IGJlIHNldCBpbiBpbml0IHBoYXNlICovCisjZGVmaW5lIE9QVF9ERVZFUVVJ
VgkweDgwMDAwMDAgLyogZXF1aXYgdG8gZGV2aWNlIG5hbWUgKi8KKyNkZWZpbmUgT1BUX0RFVk5B
TQkoT1BUX0lOSVRPTkxZIHwgT1BUX0RFVkVRVUlWKQorI2RlZmluZSBPUFRfQTJQUklOVEVSCTB4
MTAwMDAwMDAgLyogKmFkZHIyIGlzIGEgZm4gZm9yIHByaW50aW5nIG9wdGlvbiAqLworI2RlZmlu
ZSBPUFRfQTJTVFJWQUwJMHgyMDAwMDAwMCAvKiAqYWRkcjIgcG9pbnRzIHRvIGN1cnJlbnQgc3Ry
aW5nIHZhbHVlICovCisjZGVmaW5lIE9QVF9OT1BSSU5UCTB4NDAwMDAwMDAgLyogZG9uJ3QgcHJp
bnQgdGhpcyBvcHRpb24gYXQgYWxsICovCisKKyNkZWZpbmUgT1BUX1ZBTCh4KQkoKHgpICYgT1BU
X1ZBTFVFKQorCisvKiBWYWx1ZXMgZm9yIHByaW9yaXR5ICovCisjZGVmaW5lIE9QUklPX0RFRkFV
TFQJMAkvKiBhIGRlZmF1bHQgdmFsdWUgKi8KKyNkZWZpbmUgT1BSSU9fQ0ZHRklMRQkxCS8qIHZh
bHVlIGZyb20gYSBjb25maWd1cmF0aW9uIGZpbGUgKi8KKyNkZWZpbmUgT1BSSU9fQ01ETElORQky
CS8qIHZhbHVlIGZyb20gdGhlIGNvbW1hbmQgbGluZSAqLworI2RlZmluZSBPUFJJT19TRUNGSUxF
CTMJLyogdmFsdWUgZnJvbSBvcHRpb25zIGluIGEgc2VjcmV0cyBmaWxlICovCisjZGVmaW5lIE9Q
UklPX1JPT1QJMTAwCS8qIGFkZGVkIHRvIHByaW9yaXR5IGlmIE9QVF9QUklWRklYICYmIHJvb3Qg
Ki8KKworI2lmbmRlZiBHSURTRVRfVFlQRQorI2RlZmluZSBHSURTRVRfVFlQRQlnaWRfdAorI2Vu
ZGlmCisKKy8qIFN0cnVjdHVyZSByZXByZXNlbnRpbmcgYSBsaXN0IG9mIHBlcm1pdHRlZCBJUCBh
ZGRyZXNzZXMuICovCitzdHJ1Y3QgcGVybWl0dGVkX2lwIHsKKyAgICBpbnQJCXBlcm1pdDsJCS8q
IDEgPSBwZXJtaXQsIDAgPSBmb3JiaWQgKi8KKyAgICB1X2ludDMyX3QJYmFzZTsJCS8qIG1hdGNo
IGlmIChhZGRyICYgbWFzaykgPT0gYmFzZSAqLworICAgIHVfaW50MzJfdAltYXNrOwkJLyogYmFz
ZSBhbmQgbWFzayBhcmUgaW4gbmV0d29yayBieXRlIG9yZGVyICovCit9OworCisvKgorICogVW5m
b3J0dW5hdGVseSwgdGhlIGxpbnV4IGtlcm5lbCBkcml2ZXIgdXNlcyBhIGRpZmZlcmVudCBzdHJ1
Y3R1cmUKKyAqIGZvciBzdGF0aXN0aWNzIGZyb20gdGhlIHJlc3Qgb2YgdGhlIHBvcnRzLgorICog
VGhpcyBzdHJ1Y3R1cmUgc2VydmVzIGFzIGEgY29tbW9uIHJlcHJlc2VudGF0aW9uIGZvciB0aGUg
Yml0cworICogcHBwZCBuZWVkcy4KKyAqLworc3RydWN0IHBwcGRfc3RhdHMgeworICAgIHVuc2ln
bmVkIGludAlieXRlc19pbjsKKyAgICB1bnNpZ25lZCBpbnQJYnl0ZXNfb3V0OworICAgIHVuc2ln
bmVkIGludAlwa3RzX2luOworICAgIHVuc2lnbmVkIGludAlwa3RzX291dDsKK307CisKKy8qIFVz
ZWQgZm9yIHN0b3JpbmcgYSBzZXF1ZW5jZSBvZiB3b3Jkcy4gIFVzdWFsbHkgbWFsbG9jZWQuICov
CitzdHJ1Y3Qgd29yZGxpc3QgeworICAgIHN0cnVjdCB3b3JkbGlzdAkqbmV4dDsKKyAgICBjaGFy
CQkqd29yZDsKK307CisKKy8qIEFuIGVuZHBvaW50IGRpc2NyaW1pbmF0b3IsIHVzZWQgd2l0aCBt
dWx0aWxpbmsuICovCisjZGVmaW5lIE1BWF9FTkRQX0xFTgkyMAkvKiBtYXhpbXVtIGxlbmd0aCBv
ZiBkaXNjcmltaW5hdG9yIHZhbHVlICovCitzdHJ1Y3QgZXBkaXNjIHsKKyAgICB1bnNpZ25lZCBj
aGFyCWNsYXNzOworICAgIHVuc2lnbmVkIGNoYXIJbGVuZ3RoOworICAgIHVuc2lnbmVkIGNoYXIJ
dmFsdWVbTUFYX0VORFBfTEVOXTsKK307CisKKy8qIHZhbHVlcyBmb3IgZXBkaXNjLmNsYXNzICov
CisjZGVmaW5lIEVQRF9OVUxMCTAJLyogbnVsbCBkaXNjcmltaW5hdG9yLCBubyBkYXRhICovCisj
ZGVmaW5lIEVQRF9MT0NBTAkxCisjZGVmaW5lIEVQRF9JUAkJMgorI2RlZmluZSBFUERfTUFDCQkz
CisjZGVmaW5lIEVQRF9NQUdJQwk0CisjZGVmaW5lIEVQRF9QSE9ORU5VTQk1CisKK3R5cGVkZWYg
dm9pZCAoKm5vdGlmeV9mdW5jKSBfX1AoKHZvaWQgKiwgaW50KSk7CisKK3N0cnVjdCBub3RpZmll
ciB7CisgICAgc3RydWN0IG5vdGlmaWVyICpuZXh0OworICAgIG5vdGlmeV9mdW5jCSAgICBmdW5j
OworICAgIHZvaWQJICAgICphcmc7Cit9OworCisvKgorICogR2xvYmFsIHZhcmlhYmxlcy4KKyAq
LworCitleHRlcm4gaW50CWh1bmd1cDsJCS8qIFBoeXNpY2FsIGxheWVyIGhhcyBkaXNjb25uZWN0
ZWQgKi8KK2V4dGVybiBpbnQJaWZ1bml0OwkJLyogSW50ZXJmYWNlIHVuaXQgbnVtYmVyICovCitl
eHRlcm4gY2hhcglpZm5hbWVbXTsJLyogSW50ZXJmYWNlIG5hbWUgKi8KK2V4dGVybiBjaGFyCWhv
c3RuYW1lW107CS8qIE91ciBob3N0bmFtZSAqLworZXh0ZXJuIHVfY2hhcglvdXRwYWNrZXRfYnVm
W107IC8qIEJ1ZmZlciBmb3Igb3V0Z29pbmcgcGFja2V0cyAqLworZXh0ZXJuIGludAlkZXZmZDsJ
CS8qIGZkIG9mIHVuZGVybHlpbmcgZGV2aWNlICovCitleHRlcm4gaW50CWZkX3BwcDsJCS8qIGZk
IGZvciB0YWxraW5nIFBQUCAqLworZXh0ZXJuIGludAlwaGFzZTsJCS8qIEN1cnJlbnQgc3RhdGUg
b2YgbGluayAtIHNlZSB2YWx1ZXMgYmVsb3cgKi8KK2V4dGVybiBpbnQJYmF1ZF9yYXRlOwkvKiBD
dXJyZW50IGxpbmsgc3BlZWQgaW4gYml0cy9zZWMgKi8KK2V4dGVybiBjaGFyCSpwcm9nbmFtZTsJ
LyogTmFtZSBvZiB0aGlzIHByb2dyYW0gKi8KK2V4dGVybiBpbnQJcmVkaXJlY3Rfc3RkZXJyOy8q
IENvbm5lY3RvcidzIHN0ZGVyciBzaG91bGQgZ28gdG8gZmlsZSAqLworZXh0ZXJuIGNoYXIJcGVl
cl9hdXRobmFtZVtdOy8qIEF1dGhlbnRpY2F0ZWQgbmFtZSBvZiBwZWVyICovCitleHRlcm4gaW50
CWF1dGhfZG9uZVtOVU1fUFBQXTsgLyogTWV0aG9kcyBhY3R1YWxseSB1c2VkIGZvciBhdXRoICov
CitleHRlcm4gaW50CXByaXZpbGVnZWQ7CS8qIFdlIHdlcmUgcnVuIGJ5IHJlYWwtdWlkIHJvb3Qg
Ki8KK2V4dGVybiBpbnQJbmVlZF9ob2xkb2ZmOwkvKiBOZWVkIGhvbGRvZmYgcGVyaW9kIGFmdGVy
IGxpbmsgdGVybWluYXRlcyAqLworZXh0ZXJuIGNoYXIJKipzY3JpcHRfZW52OwkvKiBFbnZpcm9u
bWVudCB2YXJpYWJsZXMgZm9yIHNjcmlwdHMgKi8KK2V4dGVybiBpbnQJZGV0YWNoZWQ7CS8qIEhh
dmUgZGV0YWNoZWQgZnJvbSBjb250cm9sbGluZyB0dHkgKi8KK2V4dGVybiBHSURTRVRfVFlQRSBn
cm91cHNbTkdST1VQU19NQVhdOwkvKiBncm91cHMgdGhlIHVzZXIgaXMgaW4gKi8KK2V4dGVybiBp
bnQJbmdyb3VwczsJLyogSG93IG1hbnkgZ3JvdXBzIHZhbGlkIGluIGdyb3VwcyAqLworZXh0ZXJu
IHN0cnVjdCBwcHBkX3N0YXRzIGxpbmtfc3RhdHM7IC8qIGJ5dGUvcGFja2V0IGNvdW50cyBldGMu
IGZvciBsaW5rICovCitleHRlcm4gaW50CWxpbmtfc3RhdHNfdmFsaWQ7IC8qIHNldCBpZiBsaW5r
X3N0YXRzIGlzIHZhbGlkICovCitleHRlcm4gdW5zaWduZWQJbGlua19jb25uZWN0X3RpbWU7IC8q
IHRpbWUgdGhlIGxpbmsgd2FzIHVwIGZvciAqLworZXh0ZXJuIGludAl1c2luZ19wdHk7CS8qIHVz
aW5nIHB0eSBhcyBkZXZpY2UgKG5vdHR5IG9yIHB0eSBvcHQuKSAqLworZXh0ZXJuIGludAlsb2df
dG9fZmQ7CS8qIGxvZ2dpbmcgdG8gdGhpcyBmZCBhcyB3ZWxsIGFzIHN5c2xvZyAqLworZXh0ZXJu
IGJvb2wJbG9nX2RlZmF1bHQ7CS8qIGxvZ190b19mZCBpcyBkZWZhdWx0IChzdGRvdXQpICovCitl
eHRlcm4gY2hhcgkqbm9fcHBwX21zZzsJLyogbWVzc2FnZSB0byBwcmludCBpZiBwcHAgbm90IGlu
IGtlcm5lbCAqLworZXh0ZXJuIHZvbGF0aWxlIGludCBzdGF0dXM7CS8qIGV4aXQgc3RhdHVzIGZv
ciBwcHBkICovCitleHRlcm4gYm9vbAlkZXZuYW1fZml4ZWQ7CS8qIGNhbiBubyBsb25nZXIgY2hh
bmdlIGRldm5hbSAqLworZXh0ZXJuIGludAl1bnN1Y2Nlc3M7CS8qICMgdW5zdWNjZXNzZnVsIGNv
bm5lY3Rpb24gYXR0ZW1wdHMgKi8KK2V4dGVybiBpbnQJZG9fY2FsbGJhY2s7CS8qIHNldCBpZiB3
ZSB3YW50IHRvIGRvIGNhbGxiYWNrIG5leHQgKi8KK2V4dGVybiBpbnQJZG9pbmdfY2FsbGJhY2s7
CS8qIHNldCBpZiB0aGlzIGlzIGEgY2FsbGJhY2sgKi8KK2V4dGVybiBpbnQJZXJyb3JfY291bnQ7
CS8qICMgb2YgdGltZXMgZXJyb3IoKSBoYXMgYmVlbiBjYWxsZWQgKi8KK2V4dGVybiBjaGFyCXBw
cF9kZXZuYW1bTUFYUEFUSExFTl07CitleHRlcm4gY2hhciAgICAgcmVtb3RlX251bWJlcltNQVhO
QU1FTEVOXTsgLyogUmVtb3RlIHRlbGVwaG9uZSBudW1iZXIsIGlmIGF2YWlsLiAqLworZXh0ZXJu
IGludCAgICAgIHBwcF9zZXNzaW9uX251bWJlcjsgLyogU2Vzc2lvbiBudW1iZXIgKGVnIFBQUG9F
IHNlc3Npb24pICovCitleHRlcm4gaW50CWZkX2Rldm51bGw7CS8qIGZkIG9wZW4gdG8gL2Rldi9u
dWxsICovCisKK2V4dGVybiBpbnQJbGlzdGVuX3RpbWU7CS8qIHRpbWUgdG8gbGlzdGVuIGZpcnN0
IChtcykgKi8KK2V4dGVybiBib29sCWRvaW5nX211bHRpbGluazsKK2V4dGVybiBib29sCW11bHRp
bGlua19tYXN0ZXI7CitleHRlcm4gYm9vbAlidW5kbGVfZW9mOworZXh0ZXJuIGJvb2wJYnVuZGxl
X3Rlcm1pbmF0aW5nOworCitleHRlcm4gc3RydWN0IG5vdGlmaWVyICpwaWRjaGFuZ2U7ICAgLyog
Zm9yIG5vdGlmaWNhdGlvbnMgb2YgcGlkIGNoYW5naW5nICovCitleHRlcm4gc3RydWN0IG5vdGlm
aWVyICpwaGFzZWNoYW5nZTsgLyogZm9yIG5vdGlmaWNhdGlvbnMgb2YgcGhhc2UgY2hhbmdlcyAq
LworZXh0ZXJuIHN0cnVjdCBub3RpZmllciAqZXhpdG5vdGlmeTsgIC8qIGZvciBub3RpZmljYXRp
b24gdGhhdCB3ZSdyZSBleGl0aW5nICovCitleHRlcm4gc3RydWN0IG5vdGlmaWVyICpzaWdyZWNl
aXZlZDsgLyogbm90aWZpY2F0aW9uIG9mIHJlY2VpdmVkIHNpZ25hbCAqLworZXh0ZXJuIHN0cnVj
dCBub3RpZmllciAqaXBfdXBfbm90aWZpZXI7IC8qIElQQ1AgaGFzIGNvbWUgdXAgKi8KK2V4dGVy
biBzdHJ1Y3Qgbm90aWZpZXIgKmlwX2Rvd25fbm90aWZpZXI7IC8qIElQQ1AgaGFzIGdvbmUgZG93
biAqLworZXh0ZXJuIHN0cnVjdCBub3RpZmllciAqYXV0aF91cF9ub3RpZmllcjsgLyogcGVlciBo
YXMgYXV0aGVudGljYXRlZCAqLworZXh0ZXJuIHN0cnVjdCBub3RpZmllciAqbGlua19kb3duX25v
dGlmaWVyOyAvKiBsaW5rIGhhcyBnb25lIGRvd24gKi8KK2V4dGVybiBzdHJ1Y3Qgbm90aWZpZXIg
KmZvcmtfbm90aWZpZXI7CS8qIHdlIGFyZSBhIG5ldyBjaGlsZCBwcm9jZXNzICovCisKKy8qIFZh
bHVlcyBmb3IgZG9fY2FsbGJhY2sgYW5kIGRvaW5nX2NhbGxiYWNrICovCisjZGVmaW5lIENBTExC
QUNLX0RJQUxJTgkJMQkvKiB3ZSBhcmUgZXhwZWN0aW5nIHRoZSBjYWxsIGJhY2sgKi8KKyNkZWZp
bmUgQ0FMTEJBQ0tfRElBTE9VVAkyCS8qIHdlIGFyZSBkaWFsbGluZyBvdXQgdG8gY2FsbCBiYWNr
ICovCisKKy8qCisgKiBWYXJpYWJsZXMgc2V0IGJ5IGNvbW1hbmQtbGluZSBvcHRpb25zLgorICov
CisKK2V4dGVybiBpbnQJZGVidWc7CQkvKiBEZWJ1ZyBmbGFnICovCitleHRlcm4gaW50CWtkZWJ1
Z2ZsYWc7CS8qIFRlbGwga2VybmVsIHRvIHByaW50IGRlYnVnIG1lc3NhZ2VzICovCitleHRlcm4g
aW50CWRlZmF1bHRfZGV2aWNlOwkvKiBVc2luZyAvZGV2L3R0eSBvciBlcXVpdmFsZW50ICovCitl
eHRlcm4gY2hhcglkZXZuYW1bTUFYUEFUSExFTl07CS8qIERldmljZSBuYW1lICovCitleHRlcm4g
aW50CWNydHNjdHM7CS8qIFVzZSBoYXJkd2FyZSBmbG93IGNvbnRyb2wgKi8KK2V4dGVybiBib29s
CW1vZGVtOwkJLyogVXNlIG1vZGVtIGNvbnRyb2wgbGluZXMgKi8KK2V4dGVybiBpbnQJaW5zcGVl
ZDsJLyogSW5wdXQvT3V0cHV0IHNwZWVkIHJlcXVlc3RlZCAqLworZXh0ZXJuIHVfaW50MzJfdCBu
ZXRtYXNrOwkvKiBJUCBuZXRtYXNrIHRvIHNldCBvbiBpbnRlcmZhY2UgKi8KK2V4dGVybiBib29s
CWxvY2tmbGFnOwkvKiBDcmVhdGUgbG9jayBmaWxlIHRvIGxvY2sgdGhlIHNlcmlhbCBkZXYgKi8K
K2V4dGVybiBib29sCW5vZGV0YWNoOwkvKiBEb24ndCBkZXRhY2ggZnJvbSBjb250cm9sbGluZyB0
dHkgKi8KK2V4dGVybiBib29sCXVwZGV0YWNoOwkvKiBEZXRhY2ggZnJvbSBjb250cm9sbGluZyB0
dHkgd2hlbiBsaW5rIHVwICovCitleHRlcm4gY2hhcgkqaW5pdGlhbGl6ZXI7CS8qIFNjcmlwdCB0
byBpbml0aWFsaXplIHBoeXNpY2FsIGxpbmsgKi8KK2V4dGVybiBjaGFyCSpjb25uZWN0X3Njcmlw
dDsgLyogU2NyaXB0IHRvIGVzdGFibGlzaCBwaHlzaWNhbCBsaW5rICovCitleHRlcm4gY2hhcgkq
ZGlzY29ubmVjdF9zY3JpcHQ7IC8qIFNjcmlwdCB0byBkaXNlc3RhYmxpc2ggcGh5c2ljYWwgbGlu
ayAqLworZXh0ZXJuIGNoYXIJKndlbGNvbWVyOwkvKiBTY3JpcHQgdG8gd2VsY29tZSBjbGllbnQg
YWZ0ZXIgY29ubmVjdGlvbiAqLworZXh0ZXJuIGNoYXIJKnB0eWNvbW1hbmQ7CS8qIENvbW1hbmQg
dG8gcnVuIG9uIG90aGVyIHNpZGUgb2YgcHR5ICovCitleHRlcm4gaW50CW1heGNvbm5lY3Q7CS8q
IE1heGltdW0gY29ubmVjdCB0aW1lIChzZWNvbmRzKSAqLworZXh0ZXJuIGNoYXIJdXNlcltNQVhO
QU1FTEVOXTsvKiBPdXIgbmFtZSBmb3IgYXV0aGVudGljYXRpbmcgb3Vyc2VsdmVzICovCitleHRl
cm4gY2hhcglwYXNzd2RbTUFYU0VDUkVUTEVOXTsJLyogUGFzc3dvcmQgZm9yIFBBUCBvciBDSEFQ
ICovCitleHRlcm4gYm9vbAlhdXRoX3JlcXVpcmVkOwkvKiBQZWVyIGlzIHJlcXVpcmVkIHRvIGF1
dGhlbnRpY2F0ZSAqLworZXh0ZXJuIGJvb2wJcGVyc2lzdDsJLyogUmVvcGVuIGxpbmsgYWZ0ZXIg
aXQgZ29lcyBkb3duICovCitleHRlcm4gYm9vbAl1c2Vsb2dpbjsJLyogVXNlIC9ldGMvcGFzc3dk
IGZvciBjaGVja2luZyBQQVAgKi8KK2V4dGVybiBjaGFyCW91cl9uYW1lW01BWE5BTUVMRU5dOy8q
IE91ciBuYW1lIGZvciBhdXRoZW50aWNhdGlvbiBwdXJwb3NlcyAqLworZXh0ZXJuIGNoYXIJcmVt
b3RlX25hbWVbTUFYTkFNRUxFTl07IC8qIFBlZXIncyBuYW1lIGZvciBhdXRoZW50aWNhdGlvbiAq
LworZXh0ZXJuIGJvb2wJZXhwbGljaXRfcmVtb3RlOy8qIHJlbW90ZV9uYW1lIHNwZWNpZmllZCB3
aXRoIHJlbW90ZW5hbWUgb3B0ICovCitleHRlcm4gYm9vbAlkZW1hbmQ7CQkvKiBEbyBkaWFsLW9u
LWRlbWFuZCAqLworZXh0ZXJuIGNoYXIJKmlwcGFyYW07CS8qIEV4dHJhIHBhcmFtZXRlciBmb3Ig
aXAgdXAvZG93biBzY3JpcHRzICovCitleHRlcm4gYm9vbAljcnlwdHBhcDsJLyogT3RoZXJzJyBQ
QVAgcGFzc3dvcmRzIGFyZSBlbmNyeXB0ZWQgKi8KK2V4dGVybiBpbnQJaWRsZV90aW1lX2xpbWl0
Oy8qIFNodXQgZG93biBsaW5rIGlmIGlkbGUgZm9yIHRoaXMgbG9uZyAqLworZXh0ZXJuIGludAlo
b2xkb2ZmOwkvKiBEZWFkIHRpbWUgYmVmb3JlIHJlc3RhcnRpbmcgKi8KK2V4dGVybiBib29sCWhv
bGRvZmZfc3BlY2lmaWVkOyAvKiB0cnVlIGlmIHVzZXIgZ2F2ZSBhIGhvbGRvZmYgdmFsdWUgKi8K
K2V4dGVybiBib29sCW5vdHR5OwkJLyogU3RkaW4vb3V0IGlzIG5vdCBhIHR0eSAqLworZXh0ZXJu
IGNoYXIJKnB0eV9zb2NrZXQ7CS8qIFNvY2tldCB0byBjb25uZWN0IHRvIHB0eSAqLworZXh0ZXJu
IGNoYXIJKnJlY29yZF9maWxlOwkvKiBGaWxlIHRvIHJlY29yZCBjaGFycyBzZW50L3JlY2VpdmVk
ICovCitleHRlcm4gYm9vbAlzeW5jX3NlcmlhbDsJLyogRGV2aWNlIGlzIHN5bmNocm9ub3VzIHNl
cmlhbCBkZXZpY2UgKi8KK2V4dGVybiBpbnQJbWF4ZmFpbDsJLyogTWF4ICMgb2YgdW5zdWNjZXNz
ZnVsIGNvbm5lY3Rpb24gYXR0ZW1wdHMgKi8KK2V4dGVybiBjaGFyCWxpbmtuYW1lW01BWFBBVEhM
RU5dOyAvKiBsb2dpY2FsIG5hbWUgZm9yIGxpbmsgKi8KK2V4dGVybiBib29sCXR1bmVfa2VybmVs
OwkvKiBNYXkgYWx0ZXIga2VybmVsIHNldHRpbmdzIGFzIG5lY2Vzc2FyeSAqLworZXh0ZXJuIGlu
dAljb25uZWN0X2RlbGF5OwkvKiBUaW1lIHRvIGRlbGF5IGFmdGVyIGNvbm5lY3Qgc2NyaXB0ICov
CitleHRlcm4gaW50CW1heF9kYXRhX3JhdGU7CS8qIG1heCBieXRlcy9zZWMgdGhyb3VnaCBjaGFy
c2h1bnQgKi8KK2V4dGVybiBpbnQJcmVxX3VuaXQ7CS8qIGludGVyZmFjZSB1bml0IG51bWJlciB0
byB1c2UgKi8KK2V4dGVybiBib29sCW11bHRpbGluazsJLyogZW5hYmxlIG11bHRpbGluayBvcGVy
YXRpb24gKi8KK2V4dGVybiBib29sCW5vZW5kcG9pbnQ7CS8qIGRvbid0IHNlbmQgb3IgYWNjZXB0
IGVuZHB0LiBkaXNjcmltLiAqLworZXh0ZXJuIGNoYXIJKmJ1bmRsZV9uYW1lOwkvKiBidW5kbGUg
bmFtZSBmb3IgbXVsdGlsaW5rICovCitleHRlcm4gYm9vbAlkdW1wX29wdGlvbnM7CS8qIHByaW50
IG91dCBvcHRpb24gdmFsdWVzICovCitleHRlcm4gYm9vbAlkcnlydW47CQkvKiBjaGVjayBldmVy
eXRoaW5nLCBwcmludCBvcHRpb25zLCBleGl0ICovCitleHRlcm4gaW50CWNoaWxkX3dhaXQ7CS8q
ICMgc2Vjb25kcyB0byB3YWl0IGZvciBjaGlsZHJlbiBhdCBlbmQgKi8KKworI2lmZGVmIE1BWE9D
VEVUUworZXh0ZXJuIHVuc2lnbmVkIGludCBtYXhvY3RldHM7CSAgICAgLyogTWF4aW11bSBvY3Rl
dGVzIHBlciBzZXNzaW9uIChpbiBieXRlcykgKi8KK2V4dGVybiBpbnQgICAgICAgbWF4b2N0ZXRz
X2RpcjsgICAgICAvKiBEaXJlY3Rpb24gOgorCQkJCSAgICAgIDAgLSBpbitvdXQgKGRlZmF1bHQp
CisJCQkJICAgICAgMSAtIGluIAorCQkJCSAgICAgIDIgLSBvdXQKKwkJCQkgICAgICAzIC0gbWF4
KGluLG91dCkgKi8KK2V4dGVybiBpbnQgICAgICAgbWF4b2N0ZXRzX3RpbWVvdXQ7ICAvKiBUaW1l
b3V0IGZvciBjaGVjayBvZiBvY3RldHMgbGltaXQgKi8KKyNkZWZpbmUgUFBQX09DVEVUU19ESVJF
Q1RJT05fU1VNICAgICAgICAwCisjZGVmaW5lIFBQUF9PQ1RFVFNfRElSRUNUSU9OX0lOICAgICAg
ICAgMQorI2RlZmluZSBQUFBfT0NURVRTX0RJUkVDVElPTl9PVVQgICAgICAgIDIKKyNkZWZpbmUg
UFBQX09DVEVUU19ESVJFQ1RJT05fTUFYT1ZFUkFMICAzCisvKiBzYW1lIGFzIHByZXZpb3MsIGJ1
dCBsaXR0bGUgZGlmZmVyZW50IG9uIFJBRElVUyBzaWRlICovCisjZGVmaW5lIFBQUF9PQ1RFVFNf
RElSRUNUSU9OX01BWFNFU1NJT04gNAkKKyNlbmRpZgorCisjaWZkZWYgUFBQX0ZJTFRFUgorZXh0
ZXJuIHN0cnVjdAlicGZfcHJvZ3JhbSBwYXNzX2ZpbHRlcjsgICAvKiBGaWx0ZXIgZm9yIHBrdHMg
dG8gcGFzcyAqLworZXh0ZXJuIHN0cnVjdAlicGZfcHJvZ3JhbSBhY3RpdmVfZmlsdGVyOyAvKiBG
aWx0ZXIgZm9yIGxpbmstYWN0aXZlIHBrdHMgKi8KKyNlbmRpZgorCisjaWZkZWYgTVNMQU5NQU4K
K2V4dGVybiBib29sCW1zX2xhbm1hbjsJLyogVXNlIExhbk1hbiBwYXNzd29yZCBpbnN0ZWFkIG9m
IE5UICovCisJCQkJLyogSGFzIG1lYW5pbmcgb25seSB3aXRoIE1TLUNIQVAgY2hhbGxlbmdlcyAq
LworI2VuZGlmCisKKy8qIFZhbHVlcyBmb3IgYXV0aF9wZW5kaW5nLCBhdXRoX2RvbmUgKi8KKyNk
ZWZpbmUgUEFQX1dJVEhQRUVSCTB4MQorI2RlZmluZSBQQVBfUEVFUgkweDIKKyNkZWZpbmUgQ0hB
UF9XSVRIUEVFUgkweDQKKyNkZWZpbmUgQ0hBUF9QRUVSCTB4OAorI2RlZmluZSBFQVBfV0lUSFBF
RVIJMHgxMAorI2RlZmluZSBFQVBfUEVFUgkweDIwCisKKy8qIFZhbHVlcyBmb3IgYXV0aF9kb25l
IG9ubHkgKi8KKyNkZWZpbmUgQ0hBUF9NRDVfV0lUSFBFRVIJMHg0MAorI2RlZmluZSBDSEFQX01E
NV9QRUVSCQkweDgwCisjZGVmaW5lIENIQVBfTVNfU0hJRlQJCTgJLyogTFNCIHBvc2l0aW9uIGZv
ciBNUyBhdXRocyAqLworI2RlZmluZSBDSEFQX01TX1dJVEhQRUVSCTB4MTAwCisjZGVmaW5lIENI
QVBfTVNfUEVFUgkJMHgyMDAKKyNkZWZpbmUgQ0hBUF9NUzJfV0lUSFBFRVIJMHg0MDAKKyNkZWZp
bmUgQ0hBUF9NUzJfUEVFUgkJMHg4MDAKKworZXh0ZXJuIGNoYXIgKmN1cnJlbnRfb3B0aW9uOwkv
KiB0aGUgbmFtZSBvZiB0aGUgb3B0aW9uIGJlaW5nIHBhcnNlZCAqLworZXh0ZXJuIGludCAgcHJp
dmlsZWdlZF9vcHRpb247CS8qIHNldCBpZmYgdGhlIGN1cnJlbnQgb3B0aW9uIGNhbWUgZnJvbSBy
b290ICovCitleHRlcm4gY2hhciAqb3B0aW9uX3NvdXJjZTsJLyogc3RyaW5nIHNheWluZyB3aGVy
ZSB0aGUgb3B0aW9uIGNhbWUgZnJvbSAqLworZXh0ZXJuIGludCAgb3B0aW9uX3ByaW9yaXR5Owkv
KiBwcmlvcml0eSBvZiBjdXJyZW50IG9wdGlvbnMgKi8KKworLyoKKyAqIFZhbHVlcyBmb3IgcGhh
c2UuCisgKi8KKyNkZWZpbmUgUEhBU0VfREVBRAkJMAorI2RlZmluZSBQSEFTRV9JTklUSUFMSVpF
CTEKKyNkZWZpbmUgUEhBU0VfU0VSSUFMQ09OTgkyCisjZGVmaW5lIFBIQVNFX0RPUk1BTlQJCTMK
KyNkZWZpbmUgUEhBU0VfRVNUQUJMSVNICQk0CisjZGVmaW5lIFBIQVNFX0FVVEhFTlRJQ0FURQk1
CisjZGVmaW5lIFBIQVNFX0NBTExCQUNLCQk2CisjZGVmaW5lIFBIQVNFX05FVFdPUksJCTcKKyNk
ZWZpbmUgUEhBU0VfUlVOTklORwkJOAorI2RlZmluZSBQSEFTRV9URVJNSU5BVEUJCTkKKyNkZWZp
bmUgUEhBU0VfRElTQ09OTkVDVAkxMAorI2RlZmluZSBQSEFTRV9IT0xET0ZGCQkxMQorI2RlZmlu
ZSBQSEFTRV9NQVNURVIJCTEyCisKKy8qCisgKiBUaGUgZm9sbG93aW5nIHN0cnVjdCBnaXZlcyB0
aGUgYWRkcmVzc2VzIG9mIHByb2NlZHVyZXMgdG8gY2FsbAorICogZm9yIGEgcGFydGljdWxhciBw
cm90b2NvbC4KKyAqLworc3RydWN0IHByb3RlbnQgeworICAgIHVfc2hvcnQgcHJvdG9jb2w7CQkv
KiBQUFAgcHJvdG9jb2wgbnVtYmVyICovCisgICAgLyogSW5pdGlhbGl6YXRpb24gcHJvY2VkdXJl
ICovCisgICAgdm9pZCAoKmluaXQpIF9fUCgoaW50IHVuaXQpKTsKKyAgICAvKiBQcm9jZXNzIGEg
cmVjZWl2ZWQgcGFja2V0ICovCisgICAgdm9pZCAoKmlucHV0KSBfX1AoKGludCB1bml0LCB1X2No
YXIgKnBrdCwgaW50IGxlbikpOworICAgIC8qIFByb2Nlc3MgYSByZWNlaXZlZCBwcm90b2NvbC1y
ZWplY3QgKi8KKyAgICB2b2lkICgqcHJvdHJlaikgX19QKChpbnQgdW5pdCkpOworICAgIC8qIExv
d2VyIGxheWVyIGhhcyBjb21lIHVwICovCisgICAgdm9pZCAoKmxvd2VydXApIF9fUCgoaW50IHVu
aXQpKTsKKyAgICAvKiBMb3dlciBsYXllciBoYXMgZ29uZSBkb3duICovCisgICAgdm9pZCAoKmxv
d2VyZG93bikgX19QKChpbnQgdW5pdCkpOworICAgIC8qIE9wZW4gdGhlIHByb3RvY29sICovCisg
ICAgdm9pZCAoKm9wZW4pIF9fUCgoaW50IHVuaXQpKTsKKyAgICAvKiBDbG9zZSB0aGUgcHJvdG9j
b2wgKi8KKyAgICB2b2lkICgqY2xvc2UpIF9fUCgoaW50IHVuaXQsIGNoYXIgKnJlYXNvbikpOwor
ICAgIC8qIFByaW50IGEgcGFja2V0IGluIHJlYWRhYmxlIGZvcm0gKi8KKyAgICBpbnQgICgqcHJp
bnRwa3QpIF9fUCgodV9jaGFyICpwa3QsIGludCBsZW4sCisJCQkgIHZvaWQgKCpwcmludGVyKSBf
X1AoKHZvaWQgKiwgY2hhciAqLCAuLi4pKSwKKwkJCSAgdm9pZCAqYXJnKSk7CisgICAgLyogUHJv
Y2VzcyBhIHJlY2VpdmVkIGRhdGEgcGFja2V0ICovCisgICAgdm9pZCAoKmRhdGFpbnB1dCkgX19Q
KChpbnQgdW5pdCwgdV9jaGFyICpwa3QsIGludCBsZW4pKTsKKyAgICBib29sIGVuYWJsZWRfZmxh
ZzsJCS8qIDAgaWZmIHByb3RvY29sIGlzIGRpc2FibGVkICovCisgICAgY2hhciAqbmFtZTsJCQkv
KiBUZXh0IG5hbWUgb2YgcHJvdG9jb2wgKi8KKyAgICBjaGFyICpkYXRhX25hbWU7CQkvKiBUZXh0
IG5hbWUgb2YgY29ycmVzcG9uZGluZyBkYXRhIHByb3RvY29sICovCisgICAgb3B0aW9uX3QgKm9w
dGlvbnM7CQkvKiBMaXN0IG9mIGNvbW1hbmQtbGluZSBvcHRpb25zICovCisgICAgLyogQ2hlY2sg
cmVxdWVzdGVkIG9wdGlvbnMsIGFzc2lnbiBkZWZhdWx0cyAqLworICAgIHZvaWQgKCpjaGVja19v
cHRpb25zKSBfX1AoKHZvaWQpKTsKKyAgICAvKiBDb25maWd1cmUgaW50ZXJmYWNlIGZvciBkZW1h
bmQtZGlhbCAqLworICAgIGludCAgKCpkZW1hbmRfY29uZikgX19QKChpbnQgdW5pdCkpOworICAg
IC8qIFNheSB3aGV0aGVyIHRvIGJyaW5nIHVwIGxpbmsgZm9yIHRoaXMgcGt0ICovCisgICAgaW50
ICAoKmFjdGl2ZV9wa3QpIF9fUCgodV9jaGFyICpwa3QsIGludCBsZW4pKTsKK307CisKKy8qIFRh
YmxlIG9mIHBvaW50ZXJzIHRvIHN1cHBvcnRlZCBwcm90b2NvbHMgKi8KK2V4dGVybiBzdHJ1Y3Qg
cHJvdGVudCAqcHJvdG9jb2xzW107CisKKy8qCisgKiBUaGlzIHN0cnVjdCBjb250YWlucyBwb2lu
dGVycyB0byBhIHNldCBvZiBwcm9jZWR1cmVzIGZvcgorICogZG9pbmcgb3BlcmF0aW9ucyBvbiBh
ICJjaGFubmVsIi4gIEEgY2hhbm5lbCBwcm92aWRlcyBhIHdheQorICogdG8gc2VuZCBhbmQgcmVj
ZWl2ZSBQUFAgcGFja2V0cyAtIHRoZSBjYW5vbmljYWwgZXhhbXBsZSBpcworICogYSBzZXJpYWwg
cG9ydCBkZXZpY2UgaW4gUFBQIGxpbmUgZGlzY2lwbGluZSAob3IgZXF1aXZhbGVudGx5CisgKiB3
aXRoIFBQUCBTVFJFQU1TIG1vZHVsZXMgcHVzaGVkIG9udG8gaXQpLgorICovCitzdHJ1Y3QgY2hh
bm5lbCB7CisJLyogc2V0IG9mIG9wdGlvbnMgZm9yIHRoaXMgY2hhbm5lbCAqLworCW9wdGlvbl90
ICpvcHRpb25zOworCS8qIGZpbmQgYW5kIHByb2Nlc3MgYSBwZXItY2hhbm5lbCBvcHRpb25zIGZp
bGUgKi8KKwl2b2lkICgqcHJvY2Vzc19leHRyYV9vcHRpb25zKSBfX1AoKHZvaWQpKTsKKwkvKiBj
aGVjayBhbGwgdGhlIG9wdGlvbnMgdGhhdCBoYXZlIGJlZW4gZ2l2ZW4gKi8KKwl2b2lkICgqY2hl
Y2tfb3B0aW9ucykgX19QKCh2b2lkKSk7CisJLyogZ2V0IHRoZSBjaGFubmVsIHJlYWR5IHRvIGRv
IFBQUCwgcmV0dXJuIGEgZmlsZSBkZXNjcmlwdG9yICovCisJaW50ICAoKmNvbm5lY3QpIF9fUCgo
dm9pZCkpOworCS8qIHdlJ3JlIGZpbmlzaGVkIHdpdGggdGhlIGNoYW5uZWwgKi8KKwl2b2lkICgq
ZGlzY29ubmVjdCkgX19QKCh2b2lkKSk7CisJLyogcHV0IHRoZSBjaGFubmVsIGludG8gUFBQIGBt
b2RlJyAqLworCWludCAgKCplc3RhYmxpc2hfcHBwKSBfX1AoKGludCkpOworCS8qIHRha2UgdGhl
IGNoYW5uZWwgb3V0IG9mIFBQUCBgbW9kZScsIHJlc3RvcmUgbG9vcGJhY2sgaWYgZGVtYW5kICov
CisJdm9pZCAoKmRpc2VzdGFibGlzaF9wcHApIF9fUCgoaW50KSk7CisJLyogc2V0IHRoZSB0cmFu
c21pdC1zaWRlIFBQUCBwYXJhbWV0ZXJzIG9mIHRoZSBjaGFubmVsICovCisJdm9pZCAoKnNlbmRf
Y29uZmlnKSBfX1AoKGludCwgdV9pbnQzMl90LCBpbnQsIGludCkpOworCS8qIHNldCB0aGUgcmVj
ZWl2ZS1zaWRlIFBQUCBwYXJhbWV0ZXJzIG9mIHRoZSBjaGFubmVsICovCisJdm9pZCAoKnJlY3Zf
Y29uZmlnKSBfX1AoKGludCwgdV9pbnQzMl90LCBpbnQsIGludCkpOworCS8qIGNsZWFudXAgb24g
ZXJyb3Igb3Igbm9ybWFsIGV4aXQgKi8KKwl2b2lkICgqY2xlYW51cCkgX19QKCh2b2lkKSk7CisJ
LyogY2xvc2UgdGhlIGRldmljZSwgY2FsbGVkIGluIGNoaWxkcmVuIGFmdGVyIGZvcmsgKi8KKwl2
b2lkICgqY2xvc2UpIF9fUCgodm9pZCkpOworfTsKKworZXh0ZXJuIHN0cnVjdCBjaGFubmVsICp0
aGVfY2hhbm5lbDsKKworLyoKKyAqIFByb3RvdHlwZXMuCisgKi8KKworLyogUHJvY2VkdXJlcyBl
eHBvcnRlZCBmcm9tIG1haW4uYy4gKi8KK3ZvaWQgc2V0X2lmdW5pdCBfX1AoKGludCkpOwkvKiBz
ZXQgc3R1ZmYgdGhhdCBkZXBlbmRzIG9uIGlmdW5pdCAqLwordm9pZCBkZXRhY2ggX19QKCh2b2lk
KSk7CS8qIERldGFjaCBmcm9tIGNvbnRyb2xsaW5nIHR0eSAqLwordm9pZCBkaWUgX19QKChpbnQp
KTsJCS8qIENsZWFudXAgYW5kIGV4aXQgKi8KK3ZvaWQgcXVpdCBfX1AoKHZvaWQpKTsJCS8qIGxp
a2UgZGllKDEpICovCit2b2lkIG5vdm0gX19QKChjaGFyICopKTsJLyogU2F5IHdlIHJhbiBvdXQg
b2YgbWVtb3J5LCBhbmQgZGllICovCit2b2lkIHRpbWVvdXQgX19QKCh2b2lkICgqZnVuYykodm9p
ZCAqKSwgdm9pZCAqYXJnLCBpbnQgcywgaW50IHVzKSk7CisJCQkJLyogQ2FsbCBmdW5jKGFyZykg
YWZ0ZXIgcy51cyBzZWNvbmRzICovCit2b2lkIHVudGltZW91dCBfX1AoKHZvaWQgKCpmdW5jKSh2
b2lkICopLCB2b2lkICphcmcpKTsKKwkJCQkvKiBDYW5jZWwgY2FsbCB0byBmdW5jKGFyZykgKi8K
K3ZvaWQgcmVjb3JkX2NoaWxkIF9fUCgoaW50LCBjaGFyICosIHZvaWQgKCopICh2b2lkICopLCB2
b2lkICopKTsKK3BpZF90IHNhZmVfZm9yayBfX1AoKGludCwgaW50LCBpbnQpKTsJLyogRm9yayAm
IGNsb3NlIHN0dWZmIGluIGNoaWxkICovCitpbnQgIGRldmljZV9zY3JpcHQgX19QKChjaGFyICpj
bWQsIGludCBpbiwgaW50IG91dCwgaW50IGRvbnRfd2FpdCkpOworCQkJCS8qIFJ1biBgY21kJyB3
aXRoIGdpdmVuIHN0ZGluIGFuZCBzdGRvdXQgKi8KK3BpZF90IHJ1bl9wcm9ncmFtIF9fUCgoY2hh
ciAqcHJvZywgY2hhciAqKmFyZ3MsIGludCBtdXN0X2V4aXN0LAorCQkgICAgICAgdm9pZCAoKmRv
bmUpKHZvaWQgKiksIHZvaWQgKmFyZykpOworCQkJCS8qIFJ1biBwcm9ncmFtIHByb2cgd2l0aCBh
cmdzIGluIGNoaWxkICovCit2b2lkIHJlb3Blbl9sb2cgX19QKCh2b2lkKSk7CS8qIChyZSlvcGVu
IHRoZSBjb25uZWN0aW9uIHRvIHN5c2xvZyAqLwordm9pZCBwcmludF9saW5rX3N0YXRzIF9fUCgo
dm9pZCkpOyAvKiBQcmludCBzdGF0cywgaWYgYXZhaWxhYmxlICovCit2b2lkIHJlc2V0X2xpbmtf
c3RhdHMgX19QKChpbnQpKTsgLyogUmVzZXQgKGluaXQpIHN0YXRzIHdoZW4gbGluayBnb2VzIHVw
ICovCit2b2lkIHVwZGF0ZV9saW5rX3N0YXRzIF9fUCgoaW50KSk7IC8qIEdldCBzdGF0cyBhdCBs
aW5rIHRlcm1pbmF0aW9uICovCit2b2lkIHNjcmlwdF9zZXRlbnYgX19QKChjaGFyICosIGNoYXIg
KiwgaW50KSk7CS8qIHNldCBzY3JpcHQgZW52IHZhciAqLwordm9pZCBzY3JpcHRfdW5zZXRlbnYg
X19QKChjaGFyICopKTsJCS8qIHVuc2V0IHNjcmlwdCBlbnYgdmFyICovCit2b2lkIG5ld19waGFz
ZSBfX1AoKGludCkpOwkvKiBzaWduYWwgc3RhcnQgb2YgbmV3IHBoYXNlICovCit2b2lkIGFkZF9u
b3RpZmllciBfX1AoKHN0cnVjdCBub3RpZmllciAqKiwgbm90aWZ5X2Z1bmMsIHZvaWQgKikpOwor
dm9pZCByZW1vdmVfbm90aWZpZXIgX19QKChzdHJ1Y3Qgbm90aWZpZXIgKiosIG5vdGlmeV9mdW5j
LCB2b2lkICopKTsKK3ZvaWQgbm90aWZ5IF9fUCgoc3RydWN0IG5vdGlmaWVyICosIGludCkpOwor
aW50ICBwcHBfc2VuZF9jb25maWcgX19QKChpbnQsIGludCwgdV9pbnQzMl90LCBpbnQsIGludCkp
OworaW50ICBwcHBfcmVjdl9jb25maWcgX19QKChpbnQsIGludCwgdV9pbnQzMl90LCBpbnQsIGlu
dCkpOwordm9pZCByZW1vdmVfcGlkZmlsZXMgX19QKCh2b2lkKSk7Cit2b2lkIGxvY2tfZGIgX19Q
KCh2b2lkKSk7Cit2b2lkIHVubG9ja19kYiBfX1AoKHZvaWQpKTsKKworLyogUHJvY2VkdXJlcyBl
eHBvcnRlZCBmcm9tIHR0eS5jLiAqLwordm9pZCB0dHlfaW5pdCBfX1AoKHZvaWQpKTsKKworLyog
UHJvY2VkdXJlcyBleHBvcnRlZCBmcm9tIHV0aWxzLmMuICovCit2b2lkIGxvZ19wYWNrZXQgX19Q
KCh1X2NoYXIgKiwgaW50LCBjaGFyICosIGludCkpOworCQkJCS8qIEZvcm1hdCBhIHBhY2tldCBh
bmQgbG9nIGl0IHdpdGggc3lzbG9nICovCit2b2lkIHByaW50X3N0cmluZyBfX1AoKGNoYXIgKiwg
aW50LCAgdm9pZCAoKikgKHZvaWQgKiwgY2hhciAqLCAuLi4pLAorCQl2b2lkICopKTsJLyogRm9y
bWF0IGEgc3RyaW5nIGZvciBvdXRwdXQgKi8KK2ludCBzbHByaW50ZiBfX1AoKGNoYXIgKiwgaW50
LCBjaGFyICosIC4uLikpOwkJLyogc3ByaW50ZisrICovCitpbnQgdnNscHJpbnRmIF9fUCgoY2hh
ciAqLCBpbnQsIGNoYXIgKiwgdmFfbGlzdCkpOwkvKiB2c3ByaW50ZisrICovCitzaXplX3Qgc3Ry
bGNweSBfX1AoKGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpKTsJLyogc2FmZSBzdHJjcHkg
Ki8KK3NpemVfdCBzdHJsY2F0IF9fUCgoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCkpOwkv
KiBzYWZlIHN0cm5jcHkgKi8KK3ZvaWQgZGJnbG9nIF9fUCgoY2hhciAqLCAuLi4pKTsJLyogbG9n
IGEgZGVidWcgbWVzc2FnZSAqLwordm9pZCBpbmZvIF9fUCgoY2hhciAqLCAuLi4pKTsJLyogbG9n
IGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSAqLwordm9pZCBub3RpY2UgX19QKChjaGFyICosIC4u
LikpOwkvKiBsb2cgYSBub3RpY2UtbGV2ZWwgbWVzc2FnZSAqLwordm9pZCB3YXJuIF9fUCgoY2hh
ciAqLCAuLi4pKTsJLyogbG9nIGEgd2FybmluZyBtZXNzYWdlICovCit2b2lkIGVycm9yIF9fUCgo
Y2hhciAqLCAuLi4pKTsJLyogbG9nIGFuIGVycm9yIG1lc3NhZ2UgKi8KK3ZvaWQgZmF0YWwgX19Q
KChjaGFyICosIC4uLikpOwkvKiBsb2cgYW4gZXJyb3IgbWVzc2FnZSBhbmQgZGllKDEpICovCit2
b2lkIGluaXRfcHJfbG9nIF9fUCgoY2hhciAqLCBpbnQpKTsJLyogaW5pdGlhbGl6ZSBmb3IgdXNp
bmcgcHJfbG9nICovCit2b2lkIHByX2xvZyBfX1AoKHZvaWQgKiwgY2hhciAqLCAuLi4pKTsJLyog
cHJpbnRlciBmbiwgb3V0cHV0IHRvIHN5c2xvZyAqLwordm9pZCBlbmRfcHJfbG9nIF9fUCgodm9p
ZCkpOwkvKiBmaW5pc2ggdXAgYWZ0ZXIgdXNpbmcgcHJfbG9nICovCit2b2lkIGR1bXBfcGFja2V0
IF9fUCgoY29uc3QgY2hhciAqLCB1X2NoYXIgKiwgaW50KSk7CisJCQkJLyogZHVtcCBwYWNrZXQg
dG8gZGVidWcgbG9nIGlmIGludGVyZXN0aW5nICovCitzc2l6ZV90IGNvbXBsZXRlX3JlYWQgX19Q
KChpbnQsIHZvaWQgKiwgc2l6ZV90KSk7CisJCQkJLyogcmVhZCBhIGNvbXBsZXRlIGJ1ZmZlciAq
LworCisvKiBQcm9jZWR1cmVzIGV4cG9ydGVkIGZyb20gYXV0aC5jICovCit2b2lkIGxpbmtfcmVx
dWlyZWQgX19QKChpbnQpKTsJICAvKiB3ZSBhcmUgc3RhcnRpbmcgdG8gdXNlIHRoZSBsaW5rICov
Cit2b2lkIGxpbmtfdGVybWluYXRlZCBfX1AoKGludCkpOyAgLyogd2UgYXJlIGZpbmlzaGVkIHdp
dGggdGhlIGxpbmsgKi8KK3ZvaWQgbGlua19kb3duIF9fUCgoaW50KSk7CSAgLyogdGhlIExDUCBs
YXllciBoYXMgbGVmdCB0aGUgT3BlbmVkIHN0YXRlICovCit2b2lkIHVwcGVyX2xheWVyc19kb3du
IF9fUCgoaW50KSk7LyogdGFrZSBhbGwgTkNQcyBkb3duICovCit2b2lkIGxpbmtfZXN0YWJsaXNo
ZWQgX19QKChpbnQpKTsgLyogdGhlIGxpbmsgaXMgdXA7IGF1dGhlbnRpY2F0ZSBub3cgKi8KK3Zv
aWQgc3RhcnRfbmV0d29ya3MgX19QKChpbnQpKTsgICAvKiBzdGFydCBhbGwgdGhlIG5ldHdvcmsg
Y29udHJvbCBwcm90b3MgKi8KK3ZvaWQgY29udGludWVfbmV0d29ya3MgX19QKChpbnQpKTsgLyog
c3RhcnQgbmV0d29yayBbaXAsIGV0Y10gY29udHJvbCBwcm90b3MgKi8KK3ZvaWQgbnBfdXAgX19Q
KChpbnQsIGludCkpOwkgIC8qIGEgbmV0d29yayBwcm90b2NvbCBoYXMgY29tZSB1cCAqLwordm9p
ZCBucF9kb3duIF9fUCgoaW50LCBpbnQpKTsJICAvKiBhIG5ldHdvcmsgcHJvdG9jb2wgaGFzIGdv
bmUgZG93biAqLwordm9pZCBucF9maW5pc2hlZCBfX1AoKGludCwgaW50KSk7IC8qIGEgbmV0d29y
ayBwcm90b2NvbCBubyBsb25nZXIgbmVlZHMgbGluayAqLwordm9pZCBhdXRoX3BlZXJfZmFpbCBf
X1AoKGludCwgaW50KSk7CisJCQkJLyogcGVlciBmYWlsZWQgdG8gYXV0aGVudGljYXRlIGl0c2Vs
ZiAqLwordm9pZCBhdXRoX3BlZXJfc3VjY2VzcyBfX1AoKGludCwgaW50LCBpbnQsIGNoYXIgKiwg
aW50KSk7CisJCQkJLyogcGVlciBzdWNjZXNzZnVsbHkgYXV0aGVudGljYXRlZCBpdHNlbGYgKi8K
K3ZvaWQgYXV0aF93aXRocGVlcl9mYWlsIF9fUCgoaW50LCBpbnQpKTsKKwkJCQkvKiB3ZSBmYWls
ZWQgdG8gYXV0aGVudGljYXRlIG91cnNlbHZlcyAqLwordm9pZCBhdXRoX3dpdGhwZWVyX3N1Y2Nl
c3MgX19QKChpbnQsIGludCwgaW50KSk7CisJCQkJLyogd2Ugc3VjY2Vzc2Z1bGx5IGF1dGhlbnRp
Y2F0ZWQgb3Vyc2VsdmVzICovCit2b2lkIGF1dGhfY2hlY2tfb3B0aW9ucyBfX1AoKHZvaWQpKTsK
KwkJCQkvKiBjaGVjayBhdXRoZW50aWNhdGlvbiBvcHRpb25zIHN1cHBsaWVkICovCit2b2lkIGF1
dGhfcmVzZXQgX19QKChpbnQpKTsJLyogY2hlY2sgd2hhdCBzZWNyZXRzIHdlIGhhdmUgKi8KK2lu
dCAgY2hlY2tfcGFzc3dkIF9fUCgoaW50LCBjaGFyICosIGludCwgY2hhciAqLCBpbnQsIGNoYXIg
KiopKTsKKwkJCQkvKiBDaGVjayBwZWVyLXN1cHBsaWVkIHVzZXJuYW1lL3Bhc3N3b3JkICovCitp
bnQgIGdldF9zZWNyZXQgX19QKChpbnQsIGNoYXIgKiwgY2hhciAqLCBjaGFyICosIGludCAqLCBp
bnQpKTsKKwkJCQkvKiBnZXQgInNlY3JldCIgZm9yIGNoYXAgKi8KK2ludCAgZ2V0X3NycF9zZWNy
ZXQgX19QKChpbnQgdW5pdCwgY2hhciAqY2xpZW50LCBjaGFyICpzZXJ2ZXIsIGNoYXIgKnNlY3Jl
dCwKKyAgICBpbnQgYW1fc2VydmVyKSk7CitpbnQgIGF1dGhfaXBfYWRkciBfX1AoKGludCwgdV9p
bnQzMl90KSk7CisJCQkJLyogY2hlY2sgaWYgSVAgYWRkcmVzcyBpcyBhdXRob3JpemVkICovCitp
bnQgIGF1dGhfbnVtYmVyIF9fUCgodm9pZCkpOwkvKiBjaGVjayBpZiByZW1vdGUgbnVtYmVyIGlz
IGF1dGhvcml6ZWQgKi8KK2ludCAgYmFkX2lwX2FkcnMgX19QKCh1X2ludDMyX3QpKTsKKwkJCQkv
KiBjaGVjayBpZiBJUCBhZGRyZXNzIGlzIHVucmVhc29uYWJsZSAqLworCisvKiBQcm9jZWR1cmVz
IGV4cG9ydGVkIGZyb20gZGVtYW5kLmMgKi8KK3ZvaWQgZGVtYW5kX2NvbmYgX19QKCh2b2lkKSk7
CS8qIGNvbmZpZyBpbnRlcmZhY2UocykgZm9yIGRlbWFuZC1kaWFsICovCit2b2lkIGRlbWFuZF9i
bG9jayBfX1AoKHZvaWQpKTsJLyogc2V0IGFsbCBOUHMgdG8gcXVldWUgdXAgcGFja2V0cyAqLwor
dm9pZCBkZW1hbmRfdW5ibG9jayBfX1AoKHZvaWQpKTsgLyogc2V0IGFsbCBOUHMgdG8gcGFzcyBw
YWNrZXRzICovCit2b2lkIGRlbWFuZF9kaXNjYXJkIF9fUCgodm9pZCkpOyAvKiBzZXQgYWxsIE5Q
cyB0byBkaXNjYXJkIHBhY2tldHMgKi8KK3ZvaWQgZGVtYW5kX3JleG1pdCBfX1AoKGludCkpOwkv
KiByZXRyYW5zbWl0IHNhdmVkIGZyYW1lcyBmb3IgYW4gTlAgKi8KK2ludCAgbG9vcF9jaGFycyBf
X1AoKHVuc2lnbmVkIGNoYXIgKiwgaW50KSk7IC8qIHByb2Nlc3MgY2hhcnMgZnJvbSBsb29wYmFj
ayAqLworaW50ICBsb29wX2ZyYW1lIF9fUCgodW5zaWduZWQgY2hhciAqLCBpbnQpKTsgLyogc2hv
dWxkIHdlIGJyaW5nIGxpbmsgdXA/ICovCisKKy8qIFByb2NlZHVyZXMgZXhwb3J0ZWQgZnJvbSBt
dWx0aWxpbmsuYyAqLworI2lmZGVmIEhBVkVfTVVMVElMSU5LCit2b2lkIG1wX2NoZWNrX29wdGlv
bnMgX19QKCh2b2lkKSk7IC8qIENoZWNrIG11bHRpbGluay1yZWxhdGVkIG9wdGlvbnMgKi8KK2lu
dCAgbXBfam9pbl9idW5kbGUgX19QKCh2b2lkKSk7ICAvKiBqb2luIG91ciBsaW5rIHRvIGFuIGFw
cHJvcHJpYXRlIGJ1bmRsZSAqLwordm9pZCBtcF9leGl0X2J1bmRsZSBfX1AoKHZvaWQpKTsgIC8q
IGhhdmUgZGlzY29ubmVjdGVkIG91ciBsaW5rIGZyb20gYnVuZGxlICovCit2b2lkIG1wX2J1bmRs
ZV90ZXJtaW5hdGVkIF9fUCgodm9pZCkpOworY2hhciAqZXBkaXNjX3RvX3N0ciBfX1AoKHN0cnVj
dCBlcGRpc2MgKikpOyAvKiBzdHJpbmcgZnJvbSBlbmRwb2ludCBkaXNjcmltLiAqLworaW50ICBz
dHJfdG9fZXBkaXNjIF9fUCgoc3RydWN0IGVwZGlzYyAqLCBjaGFyICopKTsgLyogZW5kcHQgZGlz
Yy4gZnJvbSBzdHIgKi8KKyNlbHNlCisjZGVmaW5lIG1wX2J1bmRsZV90ZXJtaW5hdGVkKCkJLyog
bm90aGluZyAqLworI2RlZmluZSBtcF9leGl0X2J1bmRsZSgpCS8qIG5vdGhpbmcgKi8KKyNkZWZp
bmUgZG9pbmdfbXVsdGlsaW5rCQkwCisjZGVmaW5lIG11bHRpbGlua19tYXN0ZXIJMAorI2VuZGlm
CisKKy8qIFByb2NlZHVyZXMgZXhwb3J0ZWQgZnJvbSBzeXMtKi5jICovCit2b2lkIHN5c19pbml0
IF9fUCgodm9pZCkpOwkvKiBEbyBzeXN0ZW0tZGVwZW5kZW50IGluaXRpYWxpemF0aW9uICovCit2
b2lkIHN5c19jbGVhbnVwIF9fUCgodm9pZCkpOwkvKiBSZXN0b3JlIHN5c3RlbSBzdGF0ZSBiZWZv
cmUgZXhpdGluZyAqLworaW50ICBzeXNfY2hlY2tfb3B0aW9ucyBfX1AoKHZvaWQpKTsgLyogQ2hl
Y2sgb3B0aW9ucyBzcGVjaWZpZWQgKi8KK3ZvaWQgc3lzX2Nsb3NlIF9fUCgodm9pZCkpOwkvKiBD
bGVhbiB1cCBpbiBhIGNoaWxkIGJlZm9yZSBleGVjaW5nICovCitpbnQgIHBwcF9hdmFpbGFibGUg
X19QKCh2b2lkKSk7CS8qIFRlc3Qgd2hldGhlciBwcHAga2VybmVsIHN1cHBvcnQgZXhpc3RzICov
CitpbnQgIGdldF9wdHkgX19QKChpbnQgKiwgaW50ICosIGNoYXIgKiwgaW50KSk7CS8qIEdldCBw
dHkgbWFzdGVyL3NsYXZlICovCitpbnQgIG9wZW5fcHBwX2xvb3BiYWNrIF9fUCgodm9pZCkpOyAv
KiBPcGVuIGxvb3BiYWNrIGZvciBkZW1hbmQtZGlhbGxpbmcgKi8KK2ludCAgdHR5X2VzdGFibGlz
aF9wcHAgX19QKChpbnQpKTsgIC8qIFR1cm4gc2VyaWFsIHBvcnQgaW50byBhIHBwcCBpbnRlcmZh
Y2UgKi8KK3ZvaWQgdHR5X2Rpc2VzdGFibGlzaF9wcHAgX19QKChpbnQpKTsgLyogUmVzdG9yZSBw
b3J0IHRvIG5vcm1hbCBvcGVyYXRpb24gKi8KK3ZvaWQgZ2VuZXJpY19kaXNlc3RhYmxpc2hfcHBw
IF9fUCgoaW50IGRldl9mZCkpOyAvKiBSZXN0b3JlIGRldmljZSBzZXR0aW5nICovCitpbnQgIGdl
bmVyaWNfZXN0YWJsaXNoX3BwcCBfX1AoKGludCBkZXZfZmQpKTsgLyogTWFrZSBhIHBwcCBpbnRl
cmZhY2UgKi8KK3ZvaWQgbWFrZV9uZXdfYnVuZGxlIF9fUCgoaW50LCBpbnQsIGludCwgaW50KSk7
IC8qIENyZWF0ZSBuZXcgYnVuZGxlICovCitpbnQgIGJ1bmRsZV9hdHRhY2ggX19QKChpbnQpKTsJ
LyogQXR0YWNoIGxpbmsgdG8gZXhpc3RpbmcgYnVuZGxlICovCit2b2lkIGNmZ19idW5kbGUgX19Q
KChpbnQsIGludCwgaW50LCBpbnQpKTsgLyogQ29uZmlndXJlIGV4aXN0aW5nIGJ1bmRsZSAqLwor
dm9pZCBkZXN0cm95X2J1bmRsZSBfX1AoKHZvaWQpKTsgLyogVGVsbCBkcml2ZXIgdG8gZGVzdHJv
eSBidW5kbGUgKi8KK3ZvaWQgY2xlYW5fY2hlY2sgX19QKCh2b2lkKSk7CS8qIENoZWNrIGlmIGxp
bmUgd2FzIDgtYml0IGNsZWFuICovCit2b2lkIHNldF91cF90dHkgX19QKChpbnQsIGludCkpOyAv
KiBTZXQgdXAgcG9ydCdzIHNwZWVkLCBwYXJhbWV0ZXJzLCBldGMuICovCit2b2lkIHJlc3RvcmVf
dHR5IF9fUCgoaW50KSk7CS8qIFJlc3RvcmUgcG9ydCdzIG9yaWdpbmFsIHBhcmFtZXRlcnMgKi8K
K3ZvaWQgc2V0ZHRyIF9fUCgoaW50LCBpbnQpKTsJLyogUmFpc2Ugb3IgbG93ZXIgcG9ydCdzIERU
UiBsaW5lICovCit2b2lkIG91dHB1dCBfX1AoKGludCwgdV9jaGFyICosIGludCkpOyAvKiBPdXRw
dXQgYSBQUFAgcGFja2V0ICovCit2b2lkIHdhaXRfaW5wdXQgX19QKChzdHJ1Y3QgdGltZXZhbCAq
KSk7CisJCQkJLyogV2FpdCBmb3IgaW5wdXQsIHdpdGggdGltZW91dCAqLwordm9pZCBhZGRfZmQg
X19QKChpbnQpKTsJCS8qIEFkZCBmZCB0byBzZXQgdG8gd2FpdCBmb3IgKi8KK3ZvaWQgcmVtb3Zl
X2ZkIF9fUCgoaW50KSk7CS8qIFJlbW92ZSBmZCBmcm9tIHNldCB0byB3YWl0IGZvciAqLworaW50
ICByZWFkX3BhY2tldCBfX1AoKHVfY2hhciAqKSk7IC8qIFJlYWQgUFBQIHBhY2tldCAqLworaW50
ICBnZXRfbG9vcF9vdXRwdXQgX19QKCh2b2lkKSk7IC8qIFJlYWQgcGt0cyBmcm9tIGxvb3BiYWNr
ICovCit2b2lkIHR0eV9zZW5kX2NvbmZpZyBfX1AoKGludCwgdV9pbnQzMl90LCBpbnQsIGludCkp
OworCQkJCS8qIENvbmZpZ3VyZSBpL2YgdHJhbnNtaXQgcGFyYW1ldGVycyAqLwordm9pZCB0dHlf
c2V0X3hhY2NtIF9fUCgoZXh0X2FjY20pKTsKKwkJCQkvKiBTZXQgZXh0ZW5kZWQgdHJhbnNtaXQg
QUNDTSAqLwordm9pZCB0dHlfcmVjdl9jb25maWcgX19QKChpbnQsIHVfaW50MzJfdCwgaW50LCBp
bnQpKTsKKwkJCQkvKiBDb25maWd1cmUgaS9mIHJlY2VpdmUgcGFyYW1ldGVycyAqLworaW50ICBj
Y3BfdGVzdCBfX1AoKGludCwgdV9jaGFyICosIGludCwgaW50KSk7CisJCQkJLyogVGVzdCBzdXBw
b3J0IGZvciBjb21wcmVzc2lvbiBzY2hlbWUgKi8KK3ZvaWQgY2NwX2ZsYWdzX3NldCBfX1AoKGlu
dCwgaW50LCBpbnQpKTsKKwkJCQkvKiBTZXQga2VybmVsIENDUCBzdGF0ZSAqLworaW50ICBjY3Bf
ZmF0YWxfZXJyb3IgX19QKChpbnQpKTsgLyogVGVzdCBmb3IgZmF0YWwgZGVjb21wIGVycm9yIGlu
IGtlcm5lbCAqLworaW50ICBnZXRfaWRsZV90aW1lIF9fUCgoaW50LCBzdHJ1Y3QgcHBwX2lkbGUg
KikpOworCQkJCS8qIEZpbmQgb3V0IGhvdyBsb25nIGxpbmsgaGFzIGJlZW4gaWRsZSAqLworaW50
ICBnZXRfcHBwX3N0YXRzIF9fUCgoaW50LCBzdHJ1Y3QgcHBwZF9zdGF0cyAqKSk7CisJCQkJLyog
UmV0dXJuIGxpbmsgc3RhdGlzdGljcyAqLwordm9pZCBuZXRpZl9zZXRfbXR1IF9fUCgoaW50LCBp
bnQpKTsgLyogU2V0IFBQUCBpbnRlcmZhY2UgTVRVICovCitpbnQgIG5ldGlmX2dldF9tdHUgX19Q
KChpbnQpKTsgICAgICAvKiBHZXQgUFBQIGludGVyZmFjZSBNVFUgKi8KK2ludCAgc2lmdmpjb21w
IF9fUCgoaW50LCBpbnQsIGludCwgaW50KSk7CisJCQkJLyogQ29uZmlndXJlIFZKIFRDUCBoZWFk
ZXIgY29tcHJlc3Npb24gKi8KK2ludCAgc2lmdXAgX19QKChpbnQpKTsJCS8qIENvbmZpZ3VyZSBp
L2YgdXAgZm9yIG9uZSBwcm90b2NvbCAqLworaW50ICBzaWZucG1vZGUgX19QKChpbnQgdSwgaW50
IHByb3RvLCBlbnVtIE5QbW9kZSBtb2RlKSk7CisJCQkJLyogU2V0IG1vZGUgZm9yIGhhbmRsaW5n
IHBhY2tldHMgZm9yIHByb3RvICovCitpbnQgIHNpZmRvd24gX19QKChpbnQpKTsJLyogQ29uZmln
dXJlIGkvZiBkb3duIGZvciBvbmUgcHJvdG9jb2wgKi8KK2ludCAgc2lmYWRkciBfX1AoKGludCwg
dV9pbnQzMl90LCB1X2ludDMyX3QsIHVfaW50MzJfdCkpOworCQkJCS8qIENvbmZpZ3VyZSBJUHY0
IGFkZHJlc3NlcyBmb3IgaS9mICovCitpbnQgIGNpZmFkZHIgX19QKChpbnQsIHVfaW50MzJfdCwg
dV9pbnQzMl90KSk7CisJCQkJLyogUmVzZXQgaS9mIElQIGFkZHJlc3NlcyAqLworI2lmZGVmIElO
RVQ2CitpbnQgIHNpZjZhZGRyIF9fUCgoaW50LCBldWk2NF90LCBldWk2NF90KSk7CisJCQkJLyog
Q29uZmlndXJlIElQdjYgYWRkcmVzc2VzIGZvciBpL2YgKi8KK2ludCAgY2lmNmFkZHIgX19QKChp
bnQsIGV1aTY0X3QsIGV1aTY0X3QpKTsKKwkJCQkvKiBSZW1vdmUgYW4gSVB2NiBhZGRyZXNzIGZy
b20gaS9mICovCisjZW5kaWYKK2ludCAgc2lmZGVmYXVsdHJvdXRlIF9fUCgoaW50LCB1X2ludDMy
X3QsIHVfaW50MzJfdCkpOworCQkJCS8qIENyZWF0ZSBkZWZhdWx0IHJvdXRlIHRocm91Z2ggaS9m
ICovCitpbnQgIGNpZmRlZmF1bHRyb3V0ZSBfX1AoKGludCwgdV9pbnQzMl90LCB1X2ludDMyX3Qp
KTsKKwkJCQkvKiBEZWxldGUgZGVmYXVsdCByb3V0ZSB0aHJvdWdoIGkvZiAqLworaW50ICBzaWZw
cm94eWFycCBfX1AoKGludCwgdV9pbnQzMl90KSk7CisJCQkJLyogQWRkIHByb3h5IEFSUCBlbnRy
eSBmb3IgcGVlciAqLworaW50ICBjaWZwcm94eWFycCBfX1AoKGludCwgdV9pbnQzMl90KSk7CisJ
CQkJLyogRGVsZXRlIHByb3h5IEFSUCBlbnRyeSBmb3IgcGVlciAqLwordV9pbnQzMl90IEdldE1h
c2sgX19QKCh1X2ludDMyX3QpKTsgLyogR2V0IGFwcHJvcHJpYXRlIG5ldG1hc2sgZm9yIGFkZHJl
c3MgKi8KK2ludCAgbG9jayBfX1AoKGNoYXIgKikpOwkvKiBDcmVhdGUgbG9jayBmaWxlIGZvciBk
ZXZpY2UgKi8KK2ludCAgcmVsb2NrIF9fUCgoaW50KSk7CQkvKiBSZXdyaXRlIGxvY2sgZmlsZSB3
aXRoIG5ldyBwaWQgKi8KK3ZvaWQgdW5sb2NrIF9fUCgodm9pZCkpOwkvKiBEZWxldGUgcHJldmlv
dXNseS1jcmVhdGVkIGxvY2sgZmlsZSAqLwordm9pZCBsb2d3dG1wIF9fUCgoY29uc3QgY2hhciAq
LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKikpOworCQkJCS8qIFdyaXRlIGVudHJ5IHRvIHd0
bXAgZmlsZSAqLworaW50ICBnZXRfaG9zdF9zZWVkIF9fUCgodm9pZCkpOwkvKiBHZXQgaG9zdC1k
ZXBlbmRlbnQgcmFuZG9tIG51bWJlciBzZWVkICovCitpbnQgIGhhdmVfcm91dGVfdG8gX19QKCh1
X2ludDMyX3QpKTsgLyogQ2hlY2sgaWYgcm91dGUgdG8gYWRkciBleGlzdHMgKi8KKyNpZmRlZiBQ
UFBfRklMVEVSCitpbnQgIHNldF9maWx0ZXJzIF9fUCgoc3RydWN0IGJwZl9wcm9ncmFtICpwYXNz
LCBzdHJ1Y3QgYnBmX3Byb2dyYW0gKmFjdGl2ZSkpOworCQkJCS8qIFNldCBmaWx0ZXIgcHJvZ3Jh
bXMgaW4ga2VybmVsICovCisjZW5kaWYKKyNpZmRlZiBJUFhfQ0hBTkdFCitpbnQgIHNpcHhmYWRk
ciBfX1AoKGludCwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgY2hhciAqKSk7CitpbnQgIGNpcHhm
YWRkciBfX1AoKGludCkpOworI2VuZGlmCitpbnQgIGdldF9pZl9od2FkZHIgX19QKCh1X2NoYXIg
KmFkZHIsIGNoYXIgKm5hbWUpKTsKK2NoYXIgKmdldF9maXJzdF9ldGhlcm5ldCBfX1AoKHZvaWQp
KTsKKworLyogUHJvY2VkdXJlcyBleHBvcnRlZCBmcm9tIG9wdGlvbnMuYyAqLworaW50IHNldGlw
YWRkciBfX1AoKGNoYXIgKiwgY2hhciAqKiwgaW50KSk7IC8qIFNldCBsb2NhbC9yZW1vdGUgaXAg
YWRkcmVzc2VzICovCitpbnQgIHBhcnNlX2FyZ3MgX19QKChpbnQgYXJnYywgY2hhciAqKmFyZ3Yp
KTsKKwkJCQkvKiBQYXJzZSBvcHRpb25zIGZyb20gYXJndW1lbnRzIGdpdmVuICovCitpbnQgIG9w
dGlvbnNfZnJvbV9maWxlIF9fUCgoY2hhciAqZmlsZW5hbWUsIGludCBtdXN0X2V4aXN0LCBpbnQg
Y2hlY2tfcHJvdCwKKwkJCSAgICBpbnQgcHJpdmlsZWdlZCkpOworCQkJCS8qIFBhcnNlIG9wdGlv
bnMgZnJvbSBhbiBvcHRpb25zIGZpbGUgKi8KK2ludCAgb3B0aW9uc19mcm9tX3VzZXIgX19QKCh2
b2lkKSk7IC8qIFBhcnNlIG9wdGlvbnMgZnJvbSB1c2VyJ3MgLnBwcHJjICovCitpbnQgIG9wdGlv
bnNfZm9yX3R0eSBfX1AoKHZvaWQpKTsgLyogUGFyc2Ugb3B0aW9ucyBmcm9tIC9ldGMvcHBwL29w
dGlvbnMudHR5ICovCitpbnQgIG9wdGlvbnNfZnJvbV9saXN0IF9fUCgoc3RydWN0IHdvcmRsaXN0
ICosIGludCBwcml2aWxlZ2VkKSk7CisJCQkJLyogUGFyc2Ugb3B0aW9ucyBmcm9tIGEgd29yZGxp
c3QgKi8KK2ludCAgZ2V0d29yZCBfX1AoKEZJTEUgKmYsIGNoYXIgKndvcmQsIGludCAqbmV3bGlu
ZXAsIGNoYXIgKmZpbGVuYW1lKSk7CisJCQkJLyogUmVhZCBhIHdvcmQgZnJvbSBhIGZpbGUgKi8K
K3ZvaWQgb3B0aW9uX2Vycm9yIF9fUCgoY2hhciAqZm10LCAuLi4pKTsKKwkJCQkvKiBQcmludCBh
biBlcnJvciBtZXNzYWdlIGFib3V0IGFuIG9wdGlvbiAqLworaW50IGludF9vcHRpb24gX19QKChj
aGFyICosIGludCAqKSk7CisJCQkJLyogU2ltcGxpZmllZCBudW1iZXJfb3B0aW9uIGZvciBkZWNp
bWFsIGludHMgKi8KK3ZvaWQgYWRkX29wdGlvbnMgX19QKChvcHRpb25fdCAqKSk7IC8qIEFkZCBl
eHRyYSBvcHRpb25zICovCit2b2lkIGNoZWNrX29wdGlvbnMgX19QKCh2b2lkKSk7CS8qIGNoZWNr
IHZhbHVlcyBhZnRlciBhbGwgb3B0aW9ucyBwYXJzZWQgKi8KK2ludCAgb3ZlcnJpZGVfdmFsdWUg
X19QKChjb25zdCBjaGFyICosIGludCwgY29uc3QgY2hhciAqKSk7CisJCQkJLyogb3ZlcnJpZGUg
dmFsdWUgaWYgcGVybWl0dGVkIGJ5IHByaW9yaXR5ICovCit2b2lkIHByaW50X29wdGlvbnMgX19Q
KCh2b2lkICgqKSBfX1AoKHZvaWQgKiwgY2hhciAqLCAuLi4pKSwgdm9pZCAqKSk7CisJCQkJLyog
cHJpbnQgb3V0IHZhbHVlcyBvZiBhbGwgb3B0aW9ucyAqLworCitpbnQgcGFyc2VfZG90dGVkX2lw
IF9fUCgoY2hhciAqLCB1X2ludDMyX3QgKikpOworCisvKgorICogSG9va3MgdG8gZW5hYmxlIHBs
dWdpbnMgdG8gY2hhbmdlIHZhcmlvdXMgdGhpbmdzLgorICovCitleHRlcm4gaW50ICgqbmV3X3Bo
YXNlX2hvb2spIF9fUCgoaW50KSk7CitleHRlcm4gaW50ICgqaWRsZV90aW1lX2hvb2spIF9fUCgo
c3RydWN0IHBwcF9pZGxlICopKTsKK2V4dGVybiBpbnQgKCpob2xkb2ZmX2hvb2spIF9fUCgodm9p
ZCkpOworZXh0ZXJuIGludCAoKnBhcF9jaGVja19ob29rKSBfX1AoKHZvaWQpKTsKK2V4dGVybiBp
bnQgKCpwYXBfYXV0aF9ob29rKSBfX1AoKGNoYXIgKnVzZXIsIGNoYXIgKnBhc3N3ZCwgY2hhciAq
Km1zZ3AsCisJCQkJIHN0cnVjdCB3b3JkbGlzdCAqKnBhZGRycywKKwkJCQkgc3RydWN0IHdvcmRs
aXN0ICoqcG9wdHMpKTsKK2V4dGVybiB2b2lkICgqcGFwX2xvZ291dF9ob29rKSBfX1AoKHZvaWQp
KTsKK2V4dGVybiBpbnQgKCpwYXBfcGFzc3dkX2hvb2spIF9fUCgoY2hhciAqdXNlciwgY2hhciAq
cGFzc3dkKSk7CitleHRlcm4gaW50ICgqYWxsb3dlZF9hZGRyZXNzX2hvb2spIF9fUCgodV9pbnQz
Ml90IGFkZHIpKTsKK2V4dGVybiB2b2lkICgqaXBfdXBfaG9vaykgX19QKCh2b2lkKSk7CitleHRl
cm4gdm9pZCAoKmlwX2Rvd25faG9vaykgX19QKCh2b2lkKSk7CitleHRlcm4gdm9pZCAoKmlwX2No
b29zZV9ob29rKSBfX1AoKHVfaW50MzJfdCAqKSk7CisKK2V4dGVybiBpbnQgKCpjaGFwX2NoZWNr
X2hvb2spIF9fUCgodm9pZCkpOworZXh0ZXJuIGludCAoKmNoYXBfcGFzc3dkX2hvb2spIF9fUCgo
Y2hhciAqdXNlciwgY2hhciAqcGFzc3dkKSk7CisKKy8qIExldCBhIHBsdWdpbiBzbm9vcCBzZW50
IGFuZCByZWNlaXZlZCBwYWNrZXRzLiAgVXNlZnVsIGZvciBMMlRQICovCitleHRlcm4gdm9pZCAo
KnNub29wX3JlY3ZfaG9vaykgX19QKCh1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVuKSk7CitleHRl
cm4gdm9pZCAoKnNub29wX3NlbmRfaG9vaykgX19QKCh1bnNpZ25lZCBjaGFyICpwLCBpbnQgbGVu
KSk7CisKKy8qCisgKiBJbmxpbmUgdmVyc2lvbnMgb2YgZ2V0L3B1dCBjaGFyL3Nob3J0L2xvbmcu
CisgKiBQb2ludGVyIGlzIGFkdmFuY2VkOyB3ZSBhc3N1bWUgdGhhdCBib3RoIGFyZ3VtZW50cwor
ICogYXJlIGx2YWx1ZXMgYW5kIHdpbGwgYWxyZWFkeSBiZSBpbiByZWdpc3RlcnMuCisgKiBjcCBN
VVNUIGJlIHVfY2hhciAqLgorICovCisjZGVmaW5lIEdFVENIQVIoYywgY3ApIHsgXAorCShjKSA9
ICooY3ApKys7IFwKK30KKyNkZWZpbmUgUFVUQ0hBUihjLCBjcCkgeyBcCisJKihjcCkrKyA9ICh1
X2NoYXIpIChjKTsgXAorfQorCisKKyNkZWZpbmUgR0VUU0hPUlQocywgY3ApIHsgXAorCShzKSA9
ICooY3ApKysgPDwgODsgXAorCShzKSB8PSAqKGNwKSsrOyBcCit9CisjZGVmaW5lIFBVVFNIT1JU
KHMsIGNwKSB7IFwKKwkqKGNwKSsrID0gKHVfY2hhcikgKChzKSA+PiA4KTsgXAorCSooY3ApKysg
PSAodV9jaGFyKSAocyk7IFwKK30KKworI2RlZmluZSBHRVRMT05HKGwsIGNwKSB7IFwKKwkobCkg
PSAqKGNwKSsrIDw8IDg7IFwKKwkobCkgfD0gKihjcCkrKzsgKGwpIDw8PSA4OyBcCisJKGwpIHw9
ICooY3ApKys7IChsKSA8PD0gODsgXAorCShsKSB8PSAqKGNwKSsrOyBcCit9CisjZGVmaW5lIFBV
VExPTkcobCwgY3ApIHsgXAorCSooY3ApKysgPSAodV9jaGFyKSAoKGwpID4+IDI0KTsgXAorCSoo
Y3ApKysgPSAodV9jaGFyKSAoKGwpID4+IDE2KTsgXAorCSooY3ApKysgPSAodV9jaGFyKSAoKGwp
ID4+IDgpOyBcCisJKihjcCkrKyA9ICh1X2NoYXIpIChsKTsgXAorfQorCisjZGVmaW5lIElOQ1BU
UihuLCBjcCkJKChjcCkgKz0gKG4pKQorI2RlZmluZSBERUNQVFIobiwgY3ApCSgoY3ApIC09IChu
KSkKKworLyoKKyAqIFN5c3RlbSBkZXBlbmRlbnQgZGVmaW5pdGlvbnMgZm9yIHVzZXItbGV2ZWwg
NC4zQlNEIFVOSVggaW1wbGVtZW50YXRpb24uCisgKi8KKworI2RlZmluZSBUSU1FT1VUKHIsIGYs
IHQpCXRpbWVvdXQoKHIpLCAoZiksICh0KSwgMCkKKyNkZWZpbmUgVU5USU1FT1VUKHIsIGYpCQl1
bnRpbWVvdXQoKHIpLCAoZikpCisKKyNkZWZpbmUgQkNPUFkocywgZCwgbCkJCW1lbWNweShkLCBz
LCBsKQorI2RlZmluZSBCWkVSTyhzLCBuKQkJbWVtc2V0KHMsIDAsIG4pCisjZGVmaW5lCUJDTVAo
czEsIHMyLCBsKQkJbWVtY21wKHMxLCBzMiwgbCkKKworI2RlZmluZSBQUklOVE1TRyhtLCBsKQkJ
eyBpbmZvKCJSZW1vdGUgbWVzc2FnZTogJTAuKnYiLCBsLCBtKTsgfQorCisvKgorICogTUFLRUhF
QURFUiAtIEFkZCBIZWFkZXIgZmllbGRzIHRvIGEgcGFja2V0LgorICovCisjZGVmaW5lIE1BS0VI
RUFERVIocCwgdCkgeyBcCisgICAgUFVUQ0hBUihQUFBfQUxMU1RBVElPTlMsIHApOyBcCisgICAg
UFVUQ0hBUihQUFBfVUksIHApOyBcCisgICAgUFVUU0hPUlQodCwgcCk7IH0KKworLyoKKyAqIEV4
aXQgc3RhdHVzIHZhbHVlcy4KKyAqLworI2RlZmluZSBFWElUX09LCQkJMAorI2RlZmluZSBFWElU
X0ZBVEFMX0VSUk9SCTEKKyNkZWZpbmUgRVhJVF9PUFRJT05fRVJST1IJMgorI2RlZmluZSBFWElU
X05PVF9ST09UCQkzCisjZGVmaW5lIEVYSVRfTk9fS0VSTkVMX1NVUFBPUlQJNAorI2RlZmluZSBF
WElUX1VTRVJfUkVRVUVTVAk1CisjZGVmaW5lIEVYSVRfTE9DS19GQUlMRUQJNgorI2RlZmluZSBF
WElUX09QRU5fRkFJTEVECTcKKyNkZWZpbmUgRVhJVF9DT05ORUNUX0ZBSUxFRAk4CisjZGVmaW5l
IEVYSVRfUFRZQ01EX0ZBSUxFRAk5CisjZGVmaW5lIEVYSVRfTkVHT1RJQVRJT05fRkFJTEVECTEw
CisjZGVmaW5lIEVYSVRfUEVFUl9BVVRIX0ZBSUxFRAkxMQorI2RlZmluZSBFWElUX0lETEVfVElN
RU9VVAkxMgorI2RlZmluZSBFWElUX0NPTk5FQ1RfVElNRQkxMworI2RlZmluZSBFWElUX0NBTExC
QUNLCQkxNAorI2RlZmluZSBFWElUX1BFRVJfREVBRAkJMTUKKyNkZWZpbmUgRVhJVF9IQU5HVVAJ
CTE2CisjZGVmaW5lIEVYSVRfTE9PUEJBQ0sJCTE3CisjZGVmaW5lIEVYSVRfSU5JVF9GQUlMRUQJ
MTgKKyNkZWZpbmUgRVhJVF9BVVRIX1RPUEVFUl9GQUlMRUQJMTkKKyNpZmRlZiBNQVhPQ1RFVFMK
KyNkZWZpbmUgRVhJVF9UUkFGRklDX0xJTUlUCTIwCisjZW5kaWYKKyNkZWZpbmUgRVhJVF9DTklE
X0FVVEhfRkFJTEVECTIxCisKKy8qCisgKiBEZWJ1ZyBtYWNyb3MuICBTbGlnaHRseSB1c2VmdWwg
Zm9yIGZpbmRpbmcgYnVncyBpbiBwcHBkLCBub3QgcGFydGljdWxhcmx5CisgKiB1c2VmdWwgZm9y
IGZpbmRpbmcgb3V0IHdoeSB5b3VyIGNvbm5lY3Rpb24gaXNuJ3QgYmVpbmcgZXN0YWJsaXNoZWQu
CisgKi8KKyNpZmRlZiBERUJVR0FMTAorI2RlZmluZSBERUJVR01BSU4JMQorI2RlZmluZSBERUJV
R0ZTTQkxCisjZGVmaW5lIERFQlVHTENQCTEKKyNkZWZpbmUgREVCVUdJUENQCTEKKyNkZWZpbmUg
REVCVUdJUFY2Q1AJMQorI2RlZmluZSBERUJVR1VQQVAJMQorI2RlZmluZSBERUJVR0NIQVAJMQor
I2VuZGlmCisKKyNpZm5kZWYgTE9HX1BQUAkJCS8qIHdlIHVzZSBMT0dfTE9DQUwyIGZvciBzeXNs
b2cgYnkgZGVmYXVsdCAqLworI2lmIGRlZmluZWQoREVCVUdNQUlOKSB8fCBkZWZpbmVkKERFQlVH
RlNNKSB8fCBkZWZpbmVkKERFQlVHU1lTKSBcCisgIHx8IGRlZmluZWQoREVCVUdMQ1ApIHx8IGRl
ZmluZWQoREVCVUdJUENQKSB8fCBkZWZpbmVkKERFQlVHVVBBUCkgXAorICB8fCBkZWZpbmVkKERF
QlVHQ0hBUCkgfHwgZGVmaW5lZChERUJVRykgfHwgZGVmaW5lZChERUJVR0lQVjZDUCkKKyNkZWZp
bmUgTE9HX1BQUCBMT0dfTE9DQUwyCisjZWxzZQorI2RlZmluZSBMT0dfUFBQIExPR19EQUVNT04K
KyNlbmRpZgorI2VuZGlmIC8qIExPR19QUFAgKi8KKworI2lmZGVmIERFQlVHTUFJTgorI2RlZmlu
ZSBNQUlOREVCVUcoeCkJaWYgKGRlYnVnKSBkYmdsb2cgeAorI2Vsc2UKKyNkZWZpbmUgTUFJTkRF
QlVHKHgpCisjZW5kaWYKKworI2lmZGVmIERFQlVHU1lTCisjZGVmaW5lIFNZU0RFQlVHKHgpCWlm
IChkZWJ1ZykgZGJnbG9nIHgKKyNlbHNlCisjZGVmaW5lIFNZU0RFQlVHKHgpCisjZW5kaWYKKwor
I2lmZGVmIERFQlVHRlNNCisjZGVmaW5lIEZTTURFQlVHKHgpCWlmIChkZWJ1ZykgZGJnbG9nIHgK
KyNlbHNlCisjZGVmaW5lIEZTTURFQlVHKHgpCisjZW5kaWYKKworI2lmZGVmIERFQlVHTENQCisj
ZGVmaW5lIExDUERFQlVHKHgpCWlmIChkZWJ1ZykgZGJnbG9nIHgKKyNlbHNlCisjZGVmaW5lIExD
UERFQlVHKHgpCisjZW5kaWYKKworI2lmZGVmIERFQlVHSVBDUAorI2RlZmluZSBJUENQREVCVUco
eCkJaWYgKGRlYnVnKSBkYmdsb2cgeAorI2Vsc2UKKyNkZWZpbmUgSVBDUERFQlVHKHgpCisjZW5k
aWYKKworI2lmZGVmIERFQlVHSVBWNkNQCisjZGVmaW5lIElQVjZDUERFQlVHKHgpICBpZiAoZGVi
dWcpIGRiZ2xvZyB4CisjZWxzZQorI2RlZmluZSBJUFY2Q1BERUJVRyh4KQorI2VuZGlmCisKKyNp
ZmRlZiBERUJVR1VQQVAKKyNkZWZpbmUgVVBBUERFQlVHKHgpCWlmIChkZWJ1ZykgZGJnbG9nIHgK
KyNlbHNlCisjZGVmaW5lIFVQQVBERUJVRyh4KQorI2VuZGlmCisKKyNpZmRlZiBERUJVR0NIQVAK
KyNkZWZpbmUgQ0hBUERFQlVHKHgpCWlmIChkZWJ1ZykgZGJnbG9nIHgKKyNlbHNlCisjZGVmaW5l
IENIQVBERUJVRyh4KQorI2VuZGlmCisKKyNpZmRlZiBERUJVR0lQWENQCisjZGVmaW5lIElQWENQ
REVCVUcoeCkJaWYgKGRlYnVnKSBkYmdsb2cgeAorI2Vsc2UKKyNkZWZpbmUgSVBYQ1BERUJVRyh4
KQorI2VuZGlmCisKKyNpZm5kZWYgU0lHVFlQRQorI2lmIGRlZmluZWQoc3VuKSB8fCBkZWZpbmVk
KFNZU1YpIHx8IGRlZmluZWQoUE9TSVhfU09VUkNFKQorI2RlZmluZSBTSUdUWVBFIHZvaWQKKyNl
bHNlCisjZGVmaW5lIFNJR1RZUEUgaW50CisjZW5kaWYgLyogZGVmaW5lZChzdW4pIHx8IGRlZmlu
ZWQoU1lTVikgfHwgZGVmaW5lZChQT1NJWF9TT1VSQ0UpICovCisjZW5kaWYgLyogU0lHVFlQRSAq
LworCisjaWZuZGVmIE1JTgorI2RlZmluZSBNSU4oYSwgYikJKChhKSA8IChiKT8gKGEpOiAoYikp
CisjZW5kaWYKKyNpZm5kZWYgTUFYCisjZGVmaW5lIE1BWChhLCBiKQkoKGEpID4gKGIpPyAoYSk6
IChiKSkKKyNlbmRpZgorCisjaWZuZGVmIG9mZnNldG9mCisjZGVmaW5lIG9mZnNldG9mKHR5cGUs
IG1lbWJlcikgKChzaXplX3QpICYoKHR5cGUgKikwKS0+bWVtYmVyKQorI2VuZGlmCisKKyNlbmRp
ZiAvKiBfX1BQUF9IX18gKi8K
</data>        

          </attachment>
    </bug>

</bugzilla>