public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* java/1212: Compiler permits uninitialized final variables
@ 2000-12-20 12:21 bryce
  0 siblings, 0 replies; only message in thread
From: bryce @ 2000-12-20 12:21 UTC (permalink / raw)
  To: java-gnats

>Number:         1212
>Category:       java
>Synopsis:       Compiler permits uninitialized final variables
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apbianco
>State:          feedback
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 20 12:17:43 PST 2000
>Closed-Date:    
>Last-Modified:  Wed Dec 06 11:00:45 PST 2000
>Originator:     Bryce McKinlay
>Release:        gcc version 2.96 20000305 (experimental)
>Organization:
>Environment:
any
>Description:
Final variables must be initialized where they are declared.
gcj does not check this.
>How-To-Repeat:
The following code should generate an error:

class Final
{
  final int foo;
}
>Fix:
The fix is now in egcs. I needed it there:
  http://gcc.gnu.org/ml/gcc-patches/2000-12/msg00317.html
>Release-Note:
This patch has been tested with more test cases (attached,)
a libgcj build, a JServ build, the XLM xp and sax 
packages build plus other 1.1 specific tests.
>Audit-Trail:

Formerly PR gcj/163


From: bryce@sourceware.cygnus.com
To: java-gnats@sourceware.cygnus.com
Cc:  
Subject: gcj/163
Date: 7 Mar 2000 22:54:12 -0000

 CVSROOT:	/cvs/java
 Module name:	libgcj
 Changes by:	bryce@sourceware.cygnus.com	00/03/07 14:54:12
 
 Modified files:
 	libjava/testsuite: ChangeLog 
 Added files:
 	libjava/testsuite/libjava.compile: PR163.java PR163.xfail 
 
 Log message:
 	2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>
 	
 	Test for PR gcj/163:
 	* libjava.lang/PR163.java: New file.
 	* libjava.lang/PR163.xfail: New file.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/gcc/libjava/testsuite/ChangeLog.diff?cvsroot=java&r1=1.65&r2=1.66
 http://gcc.gnu.org/cgi-bin/gcc/libjava/testsuite/libjava.compile/PR163.java.diff?cvsroot=java&r1=NONE&r2=1.1
 http://gcc.gnu.org/cgi-bin/gcc/libjava/testsuite/libjava.compile/PR163.xfail.diff?cvsroot=java&r1=NONE&r2=1.1
 
State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Fri Oct 13 11:50:52 2000
State-Changed-Why:
    I attached a patch.

From: apbianco@cygnus.com
To: apbianco@cygnus.com, bryce@albatross.co.nz,
  java-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: gcj/163
Date: 13 Oct 2000 18:50:52 -0000

 Synopsis: Compiler permits uninitialized final variables
 
 State-Changed-From-To: open->feedback
 State-Changed-By: apbianco
 State-Changed-When: Fri Oct 13 11:50:52 2000
 State-Changed-Why:
     I attached a patch.
 
 http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view&pr=163&database=java

From: Alexandre Petit-Bianco <apbianco@cygnus.com>
To: java-gnats@sourceware.cygnus.com
Cc:  
Subject: Re: gcj/163
Date: Sat, 28 Oct 2000 18:40:21 -0700 (PDT)

 apbianco@cygnus.com writes:
 
 >      I attached a patch.
 
 Here's a revised patch that should also fix 323.
 
 ./A
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-tar; name="t.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="t.tar.gz"

H4sIAAdZ5zkAA+2ZTU/bQBCGc7V/xdwgamr8FVsh4kRLVRUJJCIVXPVgnCVZ5K6RvQkOKP+9s7s2
Tvgol8YEtO8BB+/MKhA/78xsjiiLU+s6nsedjcl2bDsI/I6NCh9dhZzQ7dihEzpB33edPsZ7jh12
wN7cW2o0K3icA3Tim0sasyR7Ke619XeqvT2AI/EMAC0gJ5/joqATRsZAGVzGuQXfORTTbJaO2Q43
zSTFAJVg3puAulLJjMNVlsEBDAaDoVyYZ3QstoDdLtybhlr11NrSXJpv/ZdrCR1vmH2hV/l3vYZ/
D187ruv3Nf9tCPkvrZSwCZ8KB5A0WzXnxyAZlyQLfncF5uWv3111H5rUmmwN9jvTaYaf6RvXf9f3
G/79QNb/vqf5b0PI/9c5yRd8StmkcgACU5KTBxeQj0hFvDSAHiyGD7/NCnKYzRhXd2TsbhUlLgv0
CsDNC6tEkyiH6BCGahnw/85pUu2e5XSCHccBMHJbbWL3wO4O0U+0oWxQoy2o/36//8C/Zwey/geB
5r8NKcRHiLfk9yan85iTla6+HL6wsHhp4a7p8+WPkZwAloaBXnMmRwlQUwaUELMxLJB+SOI0hRgS
nuVrmWJDiuky++SHaZRqd2OBV7eeJlaDle9cixyVIjsV6UEY0X0+JZniQ5A0OYYK93rgdz/0yHK+
Bfy7TjP/e64r+e/r+b8Vqce9qvTnssqvTfRD4QvnT9BSo78c6emna0HIciWuDjhbFJz8sbIZt9Am
GE9ZQ+DKecAScf+QcL0DXWwB/8j+Cv+h5D+0Nf9tCPkXJGKxYwTnAAScchqn9I6Ma1e4kMd366ag
cf0giraAf+z2G/591f+Hvua/DSnEI3jmMF+UZnk3elr+jbXaX/fT0aN+ver2G08R25rGv9oC3Qu0
q6gFA3iVfy9s+A9swb/vav5bEVJ6qCwgMvH1N8JIjuP8GDIGP/FyknBwHHC8fS/Y9wZw+mUELn5m
GFz3B1H0dGyoWnu8jati/K+/HRyCOgg4jNkOX3UGfksT0gNsQpj47lEeBGgj0NLS0tLS0tL67/oL
C9Di0AAoAAA=
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch"

MjAwMC0xMC0xMyAgQWxleGFuZHJlIFBldGl0LUJpYW5jbyAgPGFwYmlhbmNvQGN5Z251cy5jb20+
CgoJKiBjaGVjay1pbml0LmMgKGNoZWNrX2luaXQpOiBGaXhlZCBsZWFkaW5nIGNvbW1lbnQuIFVz
ZQoJTE9DQUxfRklOQUxfUC4KCSogZGVjbC5jIChwdXNoX2p2bV9zbG90KTogVXNlIE1BWUJFX0NS
RUFURV9WQVJfTEFOR19ERUNMX1NQRUNJRklDLgoJKGdpdmVfbmFtZV90b19sb2NhbHMpOiBMaWtl
d2lzZS4KCShsYW5nX21hcmtfdHJlZSk6IEhhbmRsZSBGSUVMRF9ERUNMLiBSZWdpc3RlciBgYW0n
IGFuZCBgd2ZsJwoJZmllbGRzIGluIGxhbmdfZGVjbF92YXIuCgkqIGphdmEtdHJlZS5oIChERUNM
X0ZVTkNUSU9OX1NZTlRIRVRJQ19DVE9SLAoJREVDTF9GVU5DVElPTl9BTExfRklOQUxfSU5JVElB
TElaRUQpOiBOZXcgbWFjcm9zLgoJKEZJRUxEX0lOTkVSX0FDQ0VTUyk6IFJlbW92ZWQgdWdseSBj
YXN0LCBtYWNybyByZXdyaXR0ZW4uCgkoRklFTERfSU5ORVJfQUNDRVNTX1AsIERFQ0xfRklFTERf
RklOQUxfSVVELCBERUNMX0ZJRUxEX0ZJTkFMX0xJSUMsCglERUNMX0ZJRUxEX0ZJTkFMX0lFUlIs
IERFQ0xfRklFTERfRklOQUxfV0ZMKTogTmV3IG1hY3Jvcy4KCShMT0NBTF9GSU5BTCk6IFJld3Jp
dHRlbi4KCShMT0NBTF9GSU5BTF9QLCBGSU5BTF9WQVJJQUJMRV9QLCBDTEFTU19GSU5BTF9WQVJJ
QUJMRV9QCglNQVlCRV9DUkVBVEVfVkFSX0xBTkdfREVDTF9TUEVDSUZJQyk6IE5ldyBtYWNyb3Mu
Cgkoc3RydWN0IGxhbmdfZGVjbCk6IEZpeGVkIGNvbW1lbnRzLiBBZGRlZCBgc3ludGhldGljX2N0
b3InIGFuZAoJYGluaXRfZmluYWwnIGZpZWxkcy4KCShzdHJ1Y3QgbGFuZ19kZWNsX3Zhcik6IEZp
eGVkIGxlYWRpbmcgY29tbWVudC4gQWRkZWQgYGFtJywgYHdmbCcsCglgZmluYWxfdWlkJywgYGZp
bmFsX2xpaWMnLCBgZmluYWxfaWVycicgYW5kIGBsb2NhbF9maW5hbCcgZmllbGRzLgoJKFRZUEVf
SEFTX0ZJTkFMX1ZBUklBQkxFKTogTmV3IG1hY3JvLgoJKHN0cnVjdCBsYW5nX3R5cGUpOiBBZGRl
ZCBgYWZ2JyBmaWVsZC4KCSogcGFyc2UueSAoY2hlY2tfc3RhdGljX2ZpbmFsX3ZhcmlhYmxlX2Fz
c2lnbm1lbnRfZmxhZyk6IE5ldyBmdW5jdGlvbi4KCShyZXNldF9zdGF0aWNfZmluYWxfdmFyaWFi
bGVfYXNzaWdubWVudF9mbGFnKTogTGlrZXdpc2UuCgkoY2hlY2tfZmluYWxfdmFyaWFibGVfbG9j
YWxfYXNzaWdubWVudF9mbGFnKTogTGlrZXdpc2UuCgkocmVzZXRfZmluYWxfdmFyaWFibGVfbG9j
YWxfYXNzaWdubWVudF9mbGFnKTogTGlrZXdpc2UuCgkoY2hlY2tfZmluYWxfdmFyaWFibGVfaW5k
aXJlY3RfYXNzaWdubWVudCk6IExpa2V3aXNlLgoJKGNoZWNrX2ZpbmFsX3ZhcmlhYmxlX2dsb2Jh
bF9hc3NpZ25tZW50X2ZsYWcpOiBMaWtld2lzZS4KCShhZGRfaW5uZXJfY2xhc3NfZmllbGRzKTog
VXNlIExPQ0FMX0ZJTkFMX1AuCgkocmVnaXN0ZXJfZmllbGRzKTogSGFuZGxlIGxvY2FsIGZpbmFs
cyBhbmQgZmluYWwgdmFyaWFibGVzLgoJKGNyYWZ0X2NvbnN0cnVjdG9yKTogU2V0IERFQ0xfRlVO
Q1RJT05fU1lOVEhFVElDX0NUT1IuCgkoZGVjbGFyZV9sb2NhbF92YXJpYWJsZXMpOiBDYWxsIE1B
WUJFX0NSRUFURV9WQVJfTEFOR19ERUNMX1NQRUNJRklDLgoJKHNvdXJjZV9zdGFydF9qYXZhX21l
dGhvZCk6IENhbGwgTUFZQkVfQ1JFQVRFX1ZBUl9MQU5HX0RFQ0xfU1BFQ0lGSUMKCW9uIGxvY2Fs
IGZpbmFscy4KCShqYXZhX2NvbXBsZXRlX2V4cGFuZF9tZXRob2RzKTogTG9vcCB0byBzZXQKCVRZ
UEVfSEFTX0ZJTkFMX1ZBUklBQkxFLiBDYWxsCglgcmVzZXRfZmluYWxfdmFyaWFibGVfbG9jYWxf
YXNzaWdubWVudF9mbGFnJyBhbmQgCglgY2hlY2tfZmluYWxfdmFyaWFibGVfbG9jYWxfYXNzaWdu
bWVudF9mbGFnJyBhY2NvcmRpbmdseSBiZWZvcmUKCWFuZCBhZnRlciBjb25zdHJ1Y3RvciBleHBh
bnNpb24uIENhbGwKCWByZXNldF9zdGF0aWNfZmluYWxfdmFyaWFibGVfYXNzaWdubWVudF9mbGFn
JwoJYmVmb3JlIGV4cGFuZGluZyA8Y2xpbml0PiBhbmQgYWZ0ZXIgY2FsbCAKCWBjaGVja19zdGF0
aWNfZmluYWxfdmFyaWFibGVfYXNzaWdubWVudF9mbGFnJyBpZiB0aGUKCWN1cnJlbnRfY2xhc3Mg
aXNuJ3QgYW4gaW50ZXJmYWNlLiBBZnRlciBhbGwgbWV0aG9kcyBoYXZlIGJlZW4KCWV4cGFuZGVk
LCBjYWxsIGBjaGVja19maW5hbF92YXJpYWJsZV9nbG9iYWxfYXNzaWdubWVudF9mbGFnJyBhbmQK
CWBjaGVja19zdGF0aWNfZmluYWxfdmFyaWFibGVfYXNzaWdubWVudF9mbGFnJyBpZiB0aGUgY3Vy
cmVudCBjbGFzcwoJaXMgYW4gaW50ZXJmYWNlLiAKCShtYXliZV95YW5rX2NsaW5pdCk6IEZpeGVk
IHR5cG8gaW4gY29tbWVudC4KCShidWlsZF9vdXRlcl9maWVsZF9hY2Nlc3NfbWV0aG9kcyk6IFJl
bW92ZWQgb2xkIHNhbml0eSBjaGVjay4gVXNlCglGSUVMRF9JTk5FUl9BQ0NFU1NfUC4gQ2FsbCBN
QVlCRV9DUkVBVEVfVkFSX0xBTkdfREVDTF9TUEVDSUZJQy4KCURvbid0IGNyZWF0ZSBhY2Nlc3Mg
bWV0aG9kcyBmb3IgZmluYWxzLgoJKHJlc29sdmVfZmllbGRfYWNjZXNzKTogVXNlIGBDTEFTU19G
SU5BTF9WQVJJQUJMRV9QJy4KCShqYXZhX2NvbXBsZXRlX3RyZWUpOiBMaWtld2lzZS4gUmVzZXQg
REVDTF9GSUVMRF9GSU5BTF9JVUQgaWYKCWV4aXN0aW5nIERFQ0xfSU5JVCBoYXMgYmVlbiBwcm9j
ZXNzZWQuIAoJKGphdmFfY29tcGxldGVfbGhzKTogTGlrZXdpc2UuCgkoY2hlY2tfZmluYWxfYXNz
aWdubWVudCk6IEZpbHRlciBpbnB1dCBvbiBgbHZhbHVlJydzIFRSRUVfQ09ERS4KCVRlc3QgZm9y
IENPTVBPTkVOVF9SRUYgdG8gZ2V0IHRvIHRoZSBGSUVMRF9ERUNMLiBJbXBsZW1lbnRlZCBuZXcK
CWxvZ2ljLgoJKHBhdGNoX2Fzc2lnbm1lbnQpOiBVc2UgTE9DQUxfRklOQUxfUC4KCShmb2xkX2Nv
bnN0YW50X2Zvcl9pbml0KTogUmVzZXQgREVDTF9GSUVMRF9GSU5BTF9JVUQgaWYKCURFQ0xfSU5J
VElBTCBpcyBudWxsaWZpZWQuCgpJbmRleDogY2hlY2staW5pdC5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvZ2NjL2VnY3MvZ2NjL2phdmEvY2hlY2staW5pdC5jLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjI0CmRpZmYgLXUgLXAgLXIxLjI0IGNoZWNrLWluaXQuYwotLS0gY2hlY2staW5pdC5j
CTIwMDAvMDgvMTMgMTY6NDg6NTQJMS4yNAorKysgY2hlY2staW5pdC5jCTIwMDAvMTAvMjkgMDE6
MzE6MzgKQEAgLTM1Niw4ICszNTYsNyBAQCBkb25lX2FsdGVybmF0aXZlIChhZnRlciwgY3VycmVu
dCkKICAgc3RhcnRfY3VycmVudF9sb2NhbHMgPSBjdXJyZW50LnNhdmVfc3RhcnRfY3VycmVudF9s
b2NhbHM7IFwKIH0KIAotLyogQ2hlY2sgZm9yICh1bilpbml0aWFsaXplZCBsb2NhbCB2YXJpYWJs
ZXMgaW4gRVhQLgotKi8KKy8qIENoZWNrIGZvciAodW4paW5pdGlhbGl6ZWQgbG9jYWwgdmFyaWFi
bGVzIGluIEVYUC4gICovCiAKIHN0YXRpYyB2b2lkCiBjaGVja19pbml0IChleHAsIGJlZm9yZSkK
QEAgLTM4NywxNCArMzg2LDE0IEBAIGNoZWNrX2luaXQgKGV4cCwgYmVmb3JlKQogICAgICAgLyog
V2UncmUgaW50ZXJlc3RlZCBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbiBhbmQgcGFyYW1ldGVyCiAg
ICAgICAgICBkZWNsYXJhdGlvbiB3aGVuIHRoZXkncmUgZGVjbGFyZWQgd2l0aCB0aGUgYGZpbmFs
JyBtb2RpZmllci4gKi8KICAgICAgIGlmICgoVFJFRV9DT0RFICh0bXApID09IFZBUl9ERUNMICYm
ICEgRklFTERfU1RBVElDICh0bXApKQotCSAgfHwgKFRSRUVfQ09ERSAodG1wKSA9PSBQQVJNX0RF
Q0wgJiYgTE9DQUxfRklOQUwgKHRtcCkpKQorCSAgfHwgKFRSRUVfQ09ERSAodG1wKSA9PSBQQVJN
X0RFQ0wgJiYgTE9DQUxfRklOQUxfUCAodG1wKSkpCiAJewogCSAgaW50IGluZGV4OwogCSAgY2hl
Y2tfaW5pdCAoVFJFRV9PUEVSQU5EIChleHAsIDEpLCBiZWZvcmUpOwogCSAgaW5kZXggPSBERUNM
X0JJVF9JTkRFWCAodG1wKTsKIAkgIC8qIEEgZmluYWwgbG9jYWwgYWxyZWFkeSBhc3NpZ25lZCBv
ciBhIGZpbmFsIHBhcmFtZXRlcgogICAgICAgICAgICAgIGFzc2lnbmVkIG11c3QgYmUgcmVwb3J0
ZWQgYXMgZXJyb3JzICovCi0JICBpZiAoTE9DQUxfRklOQUwgKHRtcCkgCisJICBpZiAoTE9DQUxf
RklOQUxfUCAodG1wKQogCSAgICAgICYmIChpbmRleCA9PSAtMSB8fCBUUkVFX0NPREUgKHRtcCkg
PT0gUEFSTV9ERUNMKSkKIAkgICAgcGFyc2VfZXJyb3JfY29udGV4dCAod2ZsLCAiQ2FuJ3QgYXNz
aWduIGhlcmUgYSB2YWx1ZSB0byB0aGUgYGZpbmFsJyB2YXJpYWJsZSBgJXMnIiwgSURFTlRJRklF
Ul9QT0lOVEVSIChERUNMX05BTUUgKHRtcCkpKTsKIApJbmRleDogZGVjbC5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvZ2NjL2VnY3MvZ2NjL2phdmEvZGVjbC5jLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjc3CmRpZmYgLXUgLXAgLXIxLjc3IGRlY2wuYwotLS0gZGVjbC5jCTIwMDAvMTAvMTYg
MjI6NDU6MDcJMS43NworKysgZGVjbC5jCTIwMDAvMTAvMjkgMDE6MzI6MDAKQEAgLTEyNyw4ICsx
MjcsNyBAQCBwdXNoX2p2bV9zbG90IChpbmRleCwgZGVjbCkKICAgLyogTm93IGxpbmsgdGhlIGRl
Y2wgaW50byB0aGUgZGVjbF9tYXAuICovCiAgIGlmIChERUNMX0xBTkdfU1BFQ0lGSUMgKGRlY2wp
ID09IE5VTEwpCiAgICAgewotICAgICAgREVDTF9MQU5HX1NQRUNJRklDIChkZWNsKQotCT0gKHN0
cnVjdCBsYW5nX2RlY2wgKikgZ2djX2FsbG9jIChzaXplb2YgKHN0cnVjdCBsYW5nX2RlY2xfdmFy
KSk7CisgICAgICBNQVlCRV9DUkVBVEVfVkFSX0xBTkdfREVDTF9TUEVDSUZJQyAoZGVjbCk7CiAg
ICAgICBERUNMX0xPQ0FMX1NUQVJUX1BDIChkZWNsKSA9IDA7CiAgICAgICBERUNMX0xPQ0FMX0VO
RF9QQyAoZGVjbCkgPSBERUNMX0NPREVfTEVOR1RIIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpOwog
ICAgICAgREVDTF9MT0NBTF9TTE9UX05VTUJFUiAoZGVjbCkgPSBpbmRleDsKQEAgLTE2MjAsOCAr
MTYxOSw3IEBAIGdpdmVfbmFtZV90b19sb2NhbHMgKGpjZikKIAkgICAgIGNvbW1lbnRzIGZvciBl
eHByLmM6bWF5YmVfYWRqdXN0X3N0YXJ0X3BjLiAqLwogCSAgc3RhcnRfcGMgPSBtYXliZV9hZGp1
c3Rfc3RhcnRfcGMgKGpjZiwgY29kZV9vZmZzZXQsIHN0YXJ0X3BjLCBzbG90KTsKIAotCSAgREVD
TF9MQU5HX1NQRUNJRklDIChkZWNsKQotCSAgICA9IChzdHJ1Y3QgbGFuZ19kZWNsICopIGdnY19h
bGxvYyAoc2l6ZW9mIChzdHJ1Y3QgbGFuZ19kZWNsX3ZhcikpOworCSAgTUFZQkVfQ1JFQVRFX1ZB
Ul9MQU5HX0RFQ0xfU1BFQ0lGSUMgKGRlY2wpOwogCSAgREVDTF9MT0NBTF9TTE9UX05VTUJFUiAo
ZGVjbCkgPSBzbG90OwogCSAgREVDTF9MT0NBTF9TVEFSVF9QQyAoZGVjbCkgPSBzdGFydF9wYzsK
ICNpZiAwCkBAIC0xOTAxLDcgKzE4OTksOCBAQCBsYW5nX21hcmtfdHJlZSAodCkKICAgICAgIGdn
Y19tYXJrX3RyZWUgKGxpLT51dGY4X3JlZik7CiAgICAgfQogICBlbHNlIGlmIChUUkVFX0NPREUg
KHQpID09IFZBUl9ERUNMCi0JICAgfHwgVFJFRV9DT0RFICh0KSA9PSBQQVJNX0RFQ0wpCisJICAg
fHwgVFJFRV9DT0RFICh0KSA9PSBQQVJNX0RFQ0wKKwkgICB8fCBUUkVFX0NPREUgKHQpID09IEZJ
RUxEX0RFQ0wpCiAgICAgewogICAgICAgc3RydWN0IGxhbmdfZGVjbF92YXIgKmxkdiA9IAogCSgo
c3RydWN0IGxhbmdfZGVjbF92YXIgKikgREVDTF9MQU5HX1NQRUNJRklDICh0KSk7CkBAIC0xOTA5
LDYgKzE5MDgsOCBAQCBsYW5nX21hcmtfdHJlZSAodCkKIAl7CiAJICBnZ2NfbWFyayAobGR2KTsK
IAkgIGdnY19tYXJrX3RyZWUgKGxkdi0+c2xvdF9jaGFpbik7CisJICBnZ2NfbWFya190cmVlIChs
ZHYtPmFtKTsKKwkgIGdnY19tYXJrX3RyZWUgKGxkdi0+d2ZsKTsKIAl9CiAgICAgfQogICBlbHNl
IGlmIChUUkVFX0NPREUgKHQpID09IEZVTkNUSU9OX0RFQ0wpCkluZGV4OiBqYXZhLXRyZWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL2djYy9lZ2NzL2djYy9qYXZhL2phdmEtdHJlZS5oLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjg3CmRpZmYgLXUgLXAgLXIxLjg3IGphdmEtdHJlZS5oCi0t
LSBqYXZhLXRyZWUuaAkyMDAwLzEwLzE5IDA0OjE5OjA5CTEuODcKKysrIGphdmEtdHJlZS5oCTIw
MDAvMTAvMjkgMDE6MzI6NDMKQEAgLTg4LDcgKzg4LDYgQEAgc3RydWN0IEpDRjsKICAgIDM6IE1F
VEhPRF9GSU5BTCAoaW4gRlVOQ1RJT05fREVDTCkKICAgICAgIEZJRUxEX0ZJTkFMIChpbiBGSUVM
RF9ERUNMKQogICAgICAgQ0xBU1NfRklOQUwgKGluIFRZUEVfREVDTCkKLSAgICAgIExPQ0FMX0ZJ
TkFMIChpbiBWQVJfREVDTCkKICAgIDQ6IE1FVEhPRF9TWU5DSFJPTklaRUQgKGluIEZVTkNUSU9O
X0RFQ0wpLgogICAgICAgTEFCRUxfSU5fU1VCUiAoaW4gTEFCRUxfREVDTCkKICAgICAgIENMQVNT
X0lOVEVSRkFDRSAoaW4gVFlQRV9ERUNMKQpAQCAtNjk3LDEyICs2OTYsMTMgQEAgc3RydWN0IGxh
bmdfaWRlbnRpZmllcgogICAgaXMgZXhjbHVkZWQsIGJlY2F1c2Ugc29tZXRpbWVzIGNyZWF0ZWQg
YXMgYSBwYXJhbWV0ZXIgYmVmb3JlIHRoZQogICAgZnVuY3Rpb24gZGVjbCBleGlzdHMuICovCiAj
ZGVmaW5lIERFQ0xfRlVOQ1RJT05fTkFQKERFQ0wpIChERUNMX0xBTkdfU1BFQ0lGSUMoREVDTCkt
Pm5hcCkKKy8qIFRydWUgaWYgREVDTCBpcyBhIHN5bnRoZXRpYyBjdG9yLiAgKi8KKyNkZWZpbmUg
REVDTF9GVU5DVElPTl9TWU5USEVUSUNfQ1RPUihERUNMKSBcCisgIChERUNMX0xBTkdfU1BFQ0lG
SUMoREVDTCktPnN5bnRoZXRpY19jdG9yKQorLyogVHJ1ZSBpZiBERUNMIGluaXRpYWxpemVzIGFs
bCBpdHMgZmluYWxzICovCisjZGVmaW5lIERFQ0xfRlVOQ1RJT05fQUxMX0ZJTkFMX0lOSVRJQUxJ
WkVEKERFQ0wpIFwKKyAgKERFQ0xfTEFOR19TUEVDSUZJQyhERUNMKS0+aW5pdF9maW5hbCkKIAot
LyogRm9yIGEgRklFTERfREVDTCwgaG9sZHMgdGhlIG5hbWUgb2YgdGhlIGFjY2VzcyBtZXRob2Qg
dXNlZCB0bwotICAgcmVhZC93cml0ZSB0aGUgY29udGVudCBvZiB0aGUgZmllbGQgZnJvbSBhbiBp
bm5lciBjbGFzcy4gCi0gICBUaGUgY2FzdCBpcyB1Z2x5LiBGSVhNRSAgKi8KLSNkZWZpbmUgRklF
TERfSU5ORVJfQUNDRVNTKERFQ0wpICAgICAgICgodHJlZSlERUNMX0xBTkdfU1BFQ0lGSUMgKERF
Q0wpKQotCiAvKiBUcnVlIHdoZW4gREVDTCBhbGlhc2VzIGFuIG91dGVyIGNvbnRleHQgbG9jYWwg
dmFyaWFibGUuICAqLwogI2RlZmluZSBGSUVMRF9MT0NBTF9BTElBUyhERUNMKSBERUNMX0xBTkdf
RkxBR182IChERUNMKQogCkBAIC03NzUsNiArNzc1LDQ2IEBAIHN0cnVjdCBsYW5nX2lkZW50aWZp
ZXIKICAgIHNsb3RfbnVtYmVyIGluIGRlY2xfbWFwLiAqLwogI2RlZmluZSBERUNMX0xPQ0FMX1NM
T1RfQ0hBSU4oTk9ERSkgXAogICAoKChzdHJ1Y3QgbGFuZ19kZWNsX3ZhciopREVDTF9MQU5HX1NQ
RUNJRklDKE5PREUpKS0+c2xvdF9jaGFpbikKKy8qIEZvciBhIEZJRUxEX0RFQ0wsIGhvbGRzIHRo
ZSBuYW1lIG9mIHRoZSBhY2Nlc3MgbWV0aG9kLiBVc2VkIHRvCisgICByZWFkL3dyaXRlIHRoZSBj
b250ZW50IG9mIHRoZSBmaWVsZCBmcm9tIGFuIGlubmVyIGNsYXNzLiAgKi8KKyNkZWZpbmUgRklF
TERfSU5ORVJfQUNDRVNTKERFQ0wpIFwKKyAgKCgoc3RydWN0IGxhbmdfZGVjbF92YXIqKURFQ0xf
TEFOR19TUEVDSUZJQyhERUNMKSktPmFtKQorLyogU2FmZWx5IHRlc3RzIHdoZXRoZXIgRklFTERf
SU5ORVJfQUNDRVNTIGV4aXN0cyBvciBub3QuICovCisjZGVmaW5lIEZJRUxEX0lOTkVSX0FDQ0VT
U19QKERFQ0wpIFwKKyAgREVDTF9MQU5HX1NQRUNJRklDIChERUNMKSAmJiBGSUVMRF9JTk5FUl9B
Q0NFU1MgKERFQ0wpCisvKiBUcnVlIGlmIGEgZmluYWwgdmFyaWFibGUgd2FzIGluaXRpYWxpemVk
IHVwb24gaXRzIGRlY2xhcmF0aW9uLiAqLworI2RlZmluZSBERUNMX0ZJRUxEX0ZJTkFMX0lVRChO
T0RFKSBcCisgICgoKHN0cnVjdCBsYW5nX2RlY2xfdmFyKilERUNMX0xBTkdfU1BFQ0lGSUMoTk9E
RSkpLT5maW5hbF9pdWQpCisvKiBTZXQgdG8gdHJ1ZSBpZiBhIGZpbmFsIHZhcmlhYmxlIGlzIHNl
ZW4gbG9jYWxseSBpbml0aWFsaXplZCBvbiBhCisgICBjdG9yLiAqLworI2RlZmluZSBERUNMX0ZJ
RUxEX0ZJTkFMX0xJSUMoTk9ERSkgXAorICAoKChzdHJ1Y3QgbGFuZ19kZWNsX3ZhciopREVDTF9M
QU5HX1NQRUNJRklDKE5PREUpKS0+ZmluYWxfbGlpYykKKy8qIFNldCB0byB0cnVlIGlmIGFuIGlu
aXRpYWxpemF0aW9uIGVycm9yIHdhcyBhbHJlYWR5IGZvdW5kIHdpdGggdGhpcworICAgZmluYWwg
dmFyaWFibGUuICovCisjZGVmaW5lIERFQ0xfRklFTERfRklOQUxfSUVSUihOT0RFKSBcCisgICgo
KHN0cnVjdCBsYW5nX2RlY2xfdmFyKilERUNMX0xBTkdfU1BFQ0lGSUMoTk9ERSkpLT5maW5hbF9p
ZXJyKQorLyogVGhlIG9yaWdpbmFsIFdGTCBvZiBhIGZpbmFsIHZhcmlhYmxlLiAqLworI2RlZmlu
ZSBERUNMX0ZJRUxEX0ZJTkFMX1dGTChOT0RFKSBcCisgICgoKHN0cnVjdCBsYW5nX2RlY2xfdmFy
KilERUNMX0xBTkdfU1BFQ0lGSUMoTk9ERSkpLT53ZmwpCisvKiBUcnVlIGlmIE5PREUgaXMgYSBs
b2NhbCBmaW5hbCAoYXMgb3Bwb3NlZCB0byBhIGZpbmFsIHZhcmlhYmxlLikKKyAgIFRoaXMgbWFj
cm8gYWNjZXNzZXMgdGhlIGZsYWcgdG8gcmVhZCBvciBzZXQgaXQuICovCisjZGVmaW5lIExPQ0FM
X0ZJTkFMKE5PREUpIFwKKyAgKCgoc3RydWN0IGxhbmdfZGVjbF92YXIqKURFQ0xfTEFOR19TUEVD
SUZJQyhOT0RFKSktPmxvY2FsX2ZpbmFsKQorLyogVHJ1ZSBpZiBOT0RFIGlzIGEgbG9jYWwgZmlu
YWwuICovCisjZGVmaW5lIExPQ0FMX0ZJTkFMX1AoTk9ERSkgKERFQ0xfTEFOR19TUEVDSUZJQyAo
Tk9ERSkgJiYgTE9DQUxfRklOQUwgKE5PREUpKQorLyogVHJ1ZSBpZiBOT0RFIGlzIGEgZmluYWwg
dmFyaWFibGUgKi8KKyNkZWZpbmUgRklOQUxfVkFSSUFCTEVfUChOT0RFKSAoRklFTERfRklOQUwg
KE5PREUpICYmICFGSUVMRF9TVEFUSUMgKE5PREUpKQorLyogVHJ1ZSBpZiBOT0RFIGlzIGEgY2xh
c3MgZmluYWwgdmFyaWFibGUgKi8KKyNkZWZpbmUgQ0xBU1NfRklOQUxfVkFSSUFCTEVfUChOT0RF
KSBcCisgIChGSUVMRF9GSU5BTCAoTk9ERSkgJiYgRklFTERfU1RBVElDIChOT0RFKSkKKy8qIENy
ZWF0ZSBhIERFQ0xfTEFOR19TUEVDSUZJQyBpZiBuZWNlc3NhcnkuICovCisjZGVmaW5lIE1BWUJF
X0NSRUFURV9WQVJfTEFOR19ERUNMX1NQRUNJRklDKFQpCQkJXAorICBpZiAoREVDTF9MQU5HX1NQ
RUNJRklDIChUKSA9PSBOVUxMKQkJCQlcCisgICAgewkJCQkJCQkJXAorICAgICAgREVDTF9MQU5H
X1NQRUNJRklDICgoVCkpCQkJCQlcCisJPSAoKHN0cnVjdCBsYW5nX2RlY2wgKikJCQkJCVwKKwkg
ICBnZ2NfYWxsb2NfY2xlYXJlZCAoc2l6ZW9mIChzdHJ1Y3QgbGFuZ19kZWNsX3ZhcikpKTsJXAor
ICAgIH0KIAogLyogRm9yIGEgbG9jYWwgVkFSX0RFQ0wsIGhvbGRzIHRoZSBpbmRleCBpbnRvIGEg
d29yZHMgYml0c3RyaW5nIHRoYXQKICAgIHNwZWNpZmllcyBpZiB0aGlzIGRlY2wgaXMgZGVmaW5p
dGl2ZWx5IGFzc2lnbmVkLgpAQCAtNzk0LDE1ICs4MzQsMTUgQEAgc3RydWN0IGxhbmdfZGVjbAog
ICB0cmVlIHRocm93c19saXN0OwkJLyogRXhjZXB0aW9uIHNwZWNpZmllZCBieSBgdGhyb3dzJyAq
LwogICB0cmVlIGZ1bmN0aW9uX2RlY2xfYm9keTsJLyogSG9sZCBhbGwgZnVuY3Rpb24ncyBzdGF0
ZW1lbnRzICovCiAgIHRyZWUgY2FsbGVkX2NvbnN0cnVjdG9yOwkvKiBXaGVuIGRlY2wgaXMgYSBj
b25zdHJ1Y3RvciwgdGhlCi0JCQkJICAgbGlzdCBvZiBvdGhlciBjb25zdHJ1Y3RvciBpdCBjYWxs
cy4gKi8KKwkJCQkgICBsaXN0IG9mIG90aGVyIGNvbnN0cnVjdG9yIGl0IGNhbGxzICovCiAgIHN0
cnVjdCBoYXNoX3RhYmxlIGluaXRfdGVzdF90YWJsZTsKLQkJCQkvKiBDbGFzcyBpbml0aWFsaXph
dGlvbiB0ZXN0IHZhcmlhYmxlcy4gICovCisJCQkJLyogQ2xhc3MgaW5pdGlhbGl6YXRpb24gdGVz
dCB2YXJpYWJsZXMgICovCiAgIHRyZWUgaW5uZXJfYWNjZXNzOwkJLyogVGhlIGlkZW50aWZpZXIg
b2YgdGhlIGFjY2VzcyBtZXRob2QKIAkJCQkgICB1c2VkIGZvciBpbnZvY2F0aW9uIGZyb20gaW5u
ZXIgY2xhc3NlcyAqLwogICBpbnQgbmFwOwkJCS8qIE51bWJlciBvZiBhcnRpZmljaWFsIHBhcmFt
ZXRlcnMgKi8KLQotICBpbnQgbmF0aXZlIDogMTsJCS8qIE5vbnplcm8gaWYgdGhpcyBpcyBhIG5h
dGl2ZQotCQkJCSAgIG1ldGhvZC4gICovCisgIGludCBuYXRpdmUgOiAxOwkJLyogTm9uemVybyBp
ZiB0aGlzIGlzIGEgbmF0aXZlIG1ldGhvZCAgKi8KKyAgaW50IHN5bnRoZXRpY19jdG9yIDogMTsJ
LyogTm9uemVybyBpZiB0aGlzIGlzIGEgc3ludGhldGljIGN0b3IgKi8KKyAgaW50IGluaXRfZmlu
YWwgOiAxOwkJLyogTm9uemVybyBhbGwgZmluYWxzIGFyZSBpbml0aWFsaXplZCAqLwogfTsKIAog
LyogaW5pdF90ZXN0X3RhYmxlIGhhc2ggdGFibGUgZW50cnkgc3RydWN0dXJlLiAgKi8KQEAgLTgx
MiwxMyArODUyLDIwIEBAIHN0cnVjdCBpbml0X3Rlc3RfaGFzaF9lbnRyeQogICB0cmVlIGluaXRf
dGVzdF9kZWNsOwogfTsKIAotLyogREVDTF9MQU5HX1NQRUNJRklDIGZvciBWQVJfREVDTCBhbmQg
UEFSTV9ERUNMLiAqLworLyogREVDTF9MQU5HX1NQRUNJRklDIGZvciBWQVJfREVDTCwgUEFSTV9E
RUNMIGFuZCBzb21ldGltZXMgRklFTERfREVDTAorICAgKGFjY2VzcyBtZXRob2RzIG9uIG91dGVy
IGNsYXNzIGZpZWxkcykgYW5kIGZpbmFsIGZpZWxkcy4gKi8KIHN0cnVjdCBsYW5nX2RlY2xfdmFy
CiB7CiAgIGludCBzbG90X251bWJlcjsKICAgaW50IHN0YXJ0X3BjOwogICBpbnQgZW5kX3BjOwog
ICB0cmVlIHNsb3RfY2hhaW47CisgIHRyZWUgYW07CQkJLyogQWNjZXNzIG1ldGhvZCBmb3IgdGhp
cyBmaWVsZCAoMS4xKSAqLworICB0cmVlIHdmbDsJCQkvKiBPcmlnaW5hbCB3ZmwgKi8KKyAgaW50
IGZpbmFsX2l1ZCA6IDE7CQkvKiBGaW5hbCBpbml0aWFsaXplZCB1cG9uIGRlY2xhcmF0aW9uICov
CisgIGludCBmaW5hbF9saWljIDogMTsJCS8qIEZpbmFsIGxvY2FsbHkgaW5pdGlhbGl6ZWQgaW4g
Y3RvcnMgKi8KKyAgaW50IGZpbmFsX2llcnIgOiAxOwkJLyogSW5pdGlhbGl6YXRpb24gZXJyb3Ig
YWxyZWFkeSBkZXRlY3RlZCAqLworICBpbnQgbG9jYWxfZmluYWwgOiAxOwkJLyogVHJ1ZSBpZiB0
aGUgZGVjbCBpcyBhIGxvY2FsIGZpbmFsICovCiB9OwogCiAvKiBNYWNybyB0byBhY2Nlc3MgZmll
bGRzIGluIGBzdHJ1Y3QgbGFuZ190eXBlJy4gICovCkBAIC04NDMsNiArODkwLDcgQEAgc3RydWN0
IGxhbmdfZGVjbF92YXIKICNkZWZpbmUgVFlQRV9ET1RfQ0xBU1MoVCkgICAgICAgIChUWVBFX0xB
TkdfU1BFQ0lGSUMoVCktPmRvdF9jbGFzcykKICNkZWZpbmUgVFlQRV9QUklWQVRFX0lOTkVSX0NM
QVNTKFQpIChUWVBFX0xBTkdfU1BFQ0lGSUMoVCktPnBpYykKICNkZWZpbmUgVFlQRV9QUk9URUNU
RURfSU5ORVJfQ0xBU1MoVCkgKFRZUEVfTEFOR19TUEVDSUZJQyhUKS0+cG9pYykKKyNkZWZpbmUg
VFlQRV9IQVNfRklOQUxfVkFSSUFCTEUoVCkgKFRZUEVfTEFOR19TUEVDSUZJQyhUKS0+YWZ2KQog
CiBzdHJ1Y3QgbGFuZ190eXBlCiB7CkBAIC04NTksNiArOTA3LDcgQEAgc3RydWN0IGxhbmdfdHlw
ZQogCQkJCSAgIDxub25fcHJpbWl0aXZlX3R5cGU+LmNsYXNzICovCiAgIHVuc2lnbmVkIHBpYzox
OwkJLyogUHJpdmF0ZSBJbm5lciBDbGFzcy4gKi8KICAgdW5zaWduZWQgcG9pYzoxOwkJLyogUHJv
dGVjdGVkIElubmVyIENsYXNzLiAqLworICB1bnNpZ25lZCBhZnY6MTsJCS8qIEhhcyBmaW5hbCB2
YXJpYWJsZXMgKi8KIH07CiAKICNpZmRlZiBKQVZBX1VTRV9IQU5ETEVTCkBAIC0xMTA2LDcgKzEx
NTUsNiBAQCBzdHJ1Y3QgcnR4X2RlZiAqIGphdmFfbGFuZ19leHBhbmRfZXhwciBQCiAjZGVmaW5l
IEZJRUxEX0ZJTkFMKERFQ0wpIERFQ0xfTEFOR19GTEFHXzMgKERFQ0wpCiAjZGVmaW5lIEZJRUxE
X1ZPTEFUSUxFKERFQ0wpIERFQ0xfTEFOR19GTEFHXzQgKERFQ0wpCiAjZGVmaW5lIEZJRUxEX1RS
QU5TSUVOVChERUNMKSBERUNMX0xBTkdfRkxBR181IChERUNMKQotI2RlZmluZSBMT0NBTF9GSU5B
TChERUNMKSBGSUVMRF9GSU5BTChERUNMKQogCiAvKiBBY2Nlc3MgZmxhZ3MgZXRjIGZvciBhIGNs
YXNzIChhIFRZUEVfREVDTCk6ICovCiAKSW5kZXg6IHBhcnNlLnkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9nY2MvZWdjcy9nY2MvamF2YS9wYXJzZS55LHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjIyMQpkaWZmIC11IC1wIC1yMS4yMjEgcGFyc2UueQotLS0gcGFyc2UueQkyMDAwLzEwLzI1IDA1
OjQ3OjI4CTEuMjIxCisrKyBwYXJzZS55CTIwMDAvMTAvMjkgMDE6MzY6NTUKQEAgLTEwMSw2ICsx
MDEsMTIgQEAgc3RhdGljIGludCBwcm9jZXNzX2ltcG9ydHMgUEFSQU1TICgodm9pZAogc3RhdGlj
IHZvaWQgcmVhZF9pbXBvcnRfZGlyIFBBUkFNUyAoKHRyZWUpKTsKIHN0YXRpYyBpbnQgZmluZF9p
bl9pbXBvcnRzX29uX2RlbWFuZCBQQVJBTVMgKCh0cmVlKSk7CiBzdGF0aWMgdm9pZCBmaW5kX2lu
X2ltcG9ydHMgUEFSQU1TICgodHJlZSkpOworc3RhdGljIHZvaWQgY2hlY2tfc3RhdGljX2ZpbmFs
X3ZhcmlhYmxlX2Fzc2lnbm1lbnRfZmxhZyBQQVJBTVMgKCh0cmVlKSk7CitzdGF0aWMgdm9pZCBy
ZXNldF9zdGF0aWNfZmluYWxfdmFyaWFibGVfYXNzaWdubWVudF9mbGFnIFBBUkFNUyAoKHRyZWUp
KTsKK3N0YXRpYyB2b2lkIGNoZWNrX2ZpbmFsX3ZhcmlhYmxlX2xvY2FsX2Fzc2lnbm1lbnRfZmxh
ZyBQQVJBTVMgKCh0cmVlLCB0cmVlKSk7CitzdGF0aWMgdm9pZCByZXNldF9maW5hbF92YXJpYWJs
ZV9sb2NhbF9hc3NpZ25tZW50X2ZsYWcgUEFSQU1TICgodHJlZSkpOworc3RhdGljIGludCAgY2hl
Y2tfZmluYWxfdmFyaWFibGVfaW5kaXJlY3RfYXNzaWdubWVudCBQQVJBTVMgKCh0cmVlKSk7Citz
dGF0aWMgdm9pZCBjaGVja19maW5hbF92YXJpYWJsZV9nbG9iYWxfYXNzaWdubWVudF9mbGFnIFBB
UkFNUyAoKHRyZWUpKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2lubmVyX2NsYXNzX2FjY2VzcyBQQVJB
TVMgKCh0cmVlLCB0cmVlLCB0cmVlKSk7CiBzdGF0aWMgaW50IGNoZWNrX3BrZ19jbGFzc19hY2Nl
c3MgUEFSQU1TICgodHJlZSwgdHJlZSkpOwogc3RhdGljIHZvaWQgcmVnaXN0ZXJfcGFja2FnZSBQ
QVJBTVMgKCh0cmVlKSk7CkBAIC0zOTUxLDcgKzM5NTcsNyBAQCBhZGRfaW5uZXJfY2xhc3NfZmll
bGRzIChjbGFzc19kZWNsLCBmY3RfCiAJICB0cmVlIHdmbCwgaW5pdCwgbGlzdDsKIAkgIAogCSAg
LyogQXZvaWQgbm9uIGZpbmFsIGFyZ3VtZW50cy4gKi8KLQkgIGlmICghTE9DQUxfRklOQUwgKGRl
Y2wpKQorCSAgaWYgKCFMT0NBTF9GSU5BTF9QIChkZWNsKSkKIAkgICAgY29udGludWU7CiAJICAK
IAkgIE1BTkdMRV9PVVRFUl9MT0NBTF9WQVJJQUJMRV9OQU1FIChuYW1lLCBERUNMX05BTUUgKGRl
Y2wpKTsKQEAgLTQxODQsMTEgKzQxOTAsMjkgQEAgcmVnaXN0ZXJfZmllbGRzIChmbGFncywgdHlw
ZSwgdmFyaWFibGVfbAogICAgICAgZmllbGRfZGVjbCA9IGFkZF9maWVsZCAoY2xhc3NfdHlwZSwg
Y3VycmVudF9uYW1lLCByZWFsX3R5cGUsIGZsYWdzKTsKICAgICAgIENIRUNLX0RFUFJFQ0FURUQg
KGZpZWxkX2RlY2wpOwogCi0gICAgICAvKiBJZiB0aGUgY291cGxlIGluaXRpYWxpemVyL2luaXRp
YWxpemVkIGlzIG1hcmtlZCBBUkdfRklOQUxfUCwgd2UKLQkgbWFyayB0aGUgY3JlYXRlZCBmaWVs
ZCBGSUVMRF9MT0NBTF9BTElBUywgc28gdGhhdCB3ZSBjYW4gCi0JIGhpZGUgcGFyYW1ldGVycyB0
byB0aGlzIGlubmVyIGNsYXNzIGZpbml0JCBhbmQgY29uc3RydWN0b3JzLiAqLworICAgICAgLyog
SWYgdGhlIGZpZWxkIGRlbm90ZXMgYSBmaW5hbCBpbnN0YW5jZSB2YXJpYWJsZSwgdGhlbiB3ZQor
CSBhbGxvY2F0ZSBhIExBTkdfREVDTF9TUEVDSUZJQyBwYXJ0IHRvIGtlZXAgdHJhY2sgb2YgaXRz
CisJIGluaXRpYWxpemF0aW9uLiBXZSBhbHNvIG1hcmsgd2hldGhlciB0aGUgZmllbGQgd2FzCisJ
IGluaXRpYWxpemVkIHVwb24gaXQncyBkZWNsYXJhdGlvbi4gV2UgZG9uJ3QgZG8gdGhhdCBpZiB0
aGUKKwkgY3JlYXRlZCBmaWVsZCBpcyBhbiBhbGlhcyB0byBhIGZpbmFsIGxvY2FsLiAqLworICAg
ICAgaWYgKCFBUkdfRklOQUxfUCAoY3VycmVudCkgJiYgKGZsYWdzICYgQUNDX0ZJTkFMKSkKKwl7
CisJICBNQVlCRV9DUkVBVEVfVkFSX0xBTkdfREVDTF9TUEVDSUZJQyAoZmllbGRfZGVjbCk7CisJ
ICBERUNMX0ZJRUxEX0ZJTkFMX1dGTCAoZmllbGRfZGVjbCkgPSBjbDsKKwkgIGlmICgoZmxhZ3Mg
JiBBQ0NfU1RBVElDKSAmJiBpbml0KQorCSAgICBERUNMX0ZJRUxEX0ZJTkFMX0lVRCAoZmllbGRf
ZGVjbCkgPSAxOworCX0KKworICAgICAgLyogSWYgdGhlIGNvdXBsZSBpbml0aWFsaXplci9pbml0
aWFsaXplZCBpcyBtYXJrZWQgQVJHX0ZJTkFMX1AsCisJIHdlIG1hcmsgdGhlIGNyZWF0ZWQgZmll
bGQgRklFTERfTE9DQUxfQUxJQVMsIHNvIHRoYXQgd2UgY2FuCisJIGhpZGUgcGFyYW1ldGVycyB0
byB0aGlzIGlubmVyIGNsYXNzIGZpbml0JCBhbmQKKwkgY29uc3RydWN0b3JzLiBJdCBhbHNvIG1l
YW5zIHRoYXQgdGhlIGZpZWxkIGlzbid0IGZpbmFsIHBlcgorCSBzYXkuICovCiAgICAgICBpZiAo
QVJHX0ZJTkFMX1AgKGN1cnJlbnQpKQotCUZJRUxEX0xPQ0FMX0FMSUFTIChmaWVsZF9kZWNsKSA9
IDE7CisJeworCSAgRklFTERfTE9DQUxfQUxJQVMgKGZpZWxkX2RlY2wpID0gMTsKKwkgIEZJRUxE
X0ZJTkFMIChmaWVsZF9kZWNsKSA9IDA7CisJfQogICAgICAgCiAgICAgICAvKiBDaGVjayBpZiB3
ZSBtdXN0IGNoYWluLiAqLwogICAgICAgaWYgKG11c3RfY2hhaW4pCkBAIC01MTgxLDcgKzUyMDUs
NyBAQCBjcmFmdF9jb25zdHJ1Y3RvciAoY2xhc3NfZGVjbCwgYXJncykKICAgZml4X21ldGhvZF9h
cmd1bWVudF9uYW1lcyAocGFybSwgZGVjbCk7CiAgIC8qIE5vdywgbWFyayB0aGUgYXJ0aWZpY2lh
bCBwYXJhbWV0ZXJzLiAqLwogICBERUNMX0ZVTkNUSU9OX05BUCAoZGVjbCkgPSBhcnRpZmljaWFs
OwotICBERUNMX0NPTlNUUlVDVE9SX1AgKGRlY2wpID0gMTsKKyAgREVDTF9GVU5DVElPTl9TWU5U
SEVUSUNfQ1RPUiAoZGVjbCkgPSBERUNMX0NPTlNUUlVDVE9SX1AgKGRlY2wpID0gMTsKIH0KIAog
CkBAIC03MDM4LDYgKzcwNjIsNyBAQCBkZWNsYXJlX2xvY2FsX3ZhcmlhYmxlcyAobW9kaWZpZXIs
IHR5cGUsCiAgICAgICAvKiBOZXZlciBsYXlvdXQgdGhpcyBkZWNsLiBUaGlzIHdpbGwgYmUgZG9u
ZSB3aGVuIGl0cyBzY29wZQogCSB3aWxsIGJlIGVudGVyZWQgKi8KICAgICAgIGRlY2wgPSBidWls
ZF9kZWNsIChWQVJfREVDTCwgbmFtZSwgcmVhbF90eXBlKTsKKyAgICAgIE1BWUJFX0NSRUFURV9W
QVJfTEFOR19ERUNMX1NQRUNJRklDIChkZWNsKTsKICAgICAgIExPQ0FMX0ZJTkFMIChkZWNsKSA9
IGZpbmFsX3A7CiAgICAgICBCTE9DS19DSEFJTl9ERUNMIChkZWNsKTsKICAgICAgIApAQCAtNzEx
NSw3ICs3MTQwLDEwIEBAIHNvdXJjZV9zdGFydF9qYXZhX21ldGhvZCAoZm5kZWNsKQogICAgICAg
LyogUmVtZW1iZXIgaWYgYSBsb2NhbCB2YXJpYWJsZSB3YXMgZGVjbGFyZWQgZmluYWwgKHZpYSBp
dHMKICAgICAgICAgIFRSRUVfTElTVCBvZiB0eXBlL25hbWUuKSBTZXQgTE9DQUxfRklOQUwgYWNj
b3JkaW5nbHkuICovCiAgICAgICBpZiAoQVJHX0ZJTkFMX1AgKHRlbSkpCi0JTE9DQUxfRklOQUwg
KHBhcm1fZGVjbCkgPSAxOworCXsKKwkgIE1BWUJFX0NSRUFURV9WQVJfTEFOR19ERUNMX1NQRUNJ
RklDIChwYXJtX2RlY2wpOworCSAgTE9DQUxfRklOQUwgKHBhcm1fZGVjbCkgPSAxOworCX0KIAog
ICAgICAgQkxPQ0tfQ0hBSU5fREVDTCAocGFybV9kZWNsKTsKICAgICB9CkBAIC03NDcxLDYgKzc0
OTksMTQgQEAgamF2YV9jb21wbGV0ZV9leHBhbmRfbWV0aG9kcyAoY2xhc3NfZGVjbAogCiAgIGN1
cnJlbnRfY2xhc3MgPSBUUkVFX1RZUEUgKGNsYXNzX2RlY2wpOwogCisgIC8qIEZpbmQgd2hldGhl
ciB0aGUgY2xhc3MgaGFzIGZpbmFsIHZhcmlhYmxlcyAqLworICBmb3IgKGRlY2wgPSBUWVBFX0ZJ
RUxEUyAoY3VycmVudF9jbGFzcyk7IGRlY2w7IGRlY2wgPSBUUkVFX0NIQUlOIChkZWNsKSkKKyAg
ICBpZiAoRklFTERfRklOQUwgKGRlY2wpKQorICAgICAgeworCVRZUEVfSEFTX0ZJTkFMX1ZBUklB
QkxFIChjdXJyZW50X2NsYXNzKSA9IDE7CisJYnJlYWs7CisgICAgICB9CisKICAgLyogSW5pdGlh
bGl6ZSBhIG5ldyBjb25zdGFudCBwb29sICovCiAgIGluaXRfb3V0Z29pbmdfY3Bvb2wgKCk7CiAK
QEAgLTc1MDMsNyArNzUzOSwxNSBAQCBqYXZhX2NvbXBsZXRlX2V4cGFuZF9tZXRob2RzIChjbGFz
c19kZWNsCiAgICAgICBpZiAobm9fYm9keSkKIAlyZXN0b3JlX2xpbmVfbnVtYmVyX3N0YXR1cyAo
MSk7CiAKKyAgICAgIC8qIFJlc2V0IHRoZSBmaW5hbCBsb2NhbCB2YXJpYWJsZSBhc3NpZ25tZW50
IGZsYWdzICovCisgICAgICBpZiAoVFlQRV9IQVNfRklOQUxfVkFSSUFCTEUgKGN1cnJlbnRfY2xh
c3MpKQorCXJlc2V0X2ZpbmFsX3ZhcmlhYmxlX2xvY2FsX2Fzc2lnbm1lbnRfZmxhZyAoY3VycmVu
dF9jbGFzcyk7CisKICAgICAgIGphdmFfY29tcGxldGVfZXhwYW5kX21ldGhvZCAoZGVjbCk7CisK
KyAgICAgIC8qIENoZWNrIGZvciBtaXNzZWQgb3V0IGZpbmFsIHZhcmlhYmxlIGFzc2lnbm1lbnQg
Ki8KKyAgICAgIGlmIChUWVBFX0hBU19GSU5BTF9WQVJJQUJMRSAoY3VycmVudF9jbGFzcykpCisJ
Y2hlY2tfZmluYWxfdmFyaWFibGVfbG9jYWxfYXNzaWdubWVudF9mbGFnIChjdXJyZW50X2NsYXNz
LCBkZWNsKTsKICAgICAgIAogICAgICAgaWYgKG5vX2JvZHkpCiAJcmVzdG9yZV9saW5lX251bWJl
cl9zdGF0dXMgKDApOwpAQCAtNzUzMSwxMCArNzU3NSwxNyBAQCBqYXZhX2NvbXBsZXRlX2V4cGFu
ZF9tZXRob2RzIChjbGFzc19kZWNsCiAgIC8qIElmIHRoZXJlIGlzIGluZGVlZCBhIDxjbGluaXQ+
LCBmdWxseSBleHBhbmQgaXQgbm93ICovCiAgIGlmIChjbGluaXQpCiAgICAgeworICAgICAgLyog
UmVzZXQgdGhlIGZpbmFsIGxvY2FsIHZhcmlhYmxlIGFzc2lnbm1lbnQgZmxhZ3MgKi8KKyAgICAg
IGlmIChUWVBFX0hBU19GSU5BTF9WQVJJQUJMRSAoY3VycmVudF9jbGFzcykpCisJcmVzZXRfc3Rh
dGljX2ZpbmFsX3ZhcmlhYmxlX2Fzc2lnbm1lbnRfZmxhZyAoY3VycmVudF9jbGFzcyk7CiAgICAg
ICAvKiBQcmV2ZW50IHRoZSB1c2Ugb2YgYHRoaXMnIGluc2lkZSA8Y2xpbml0PiAqLwogICAgICAg
Y3R4cC0+ZXhwbGljaXRfY29uc3RydWN0b3JfcCA9IDE7CiAgICAgICBqYXZhX2NvbXBsZXRlX2V4
cGFuZF9tZXRob2QgKGNsaW5pdCk7CiAgICAgICBjdHhwLT5leHBsaWNpdF9jb25zdHJ1Y3Rvcl9w
ID0gMDsKKyAgICAgIC8qIENoZWNrIGZvciBtaXNzZWQgb3V0IHN0YXRpYyBmaW5hbCB2YXJpYWJs
ZSBhc3NpZ25tZW50ICovCisgICAgICBpZiAoVFlQRV9IQVNfRklOQUxfVkFSSUFCTEUgKGN1cnJl
bnRfY2xhc3MpCisJICAmJiAhQ0xBU1NfSU5URVJGQUNFIChjbGFzc19kZWNsKSkKKwljaGVja19z
dGF0aWNfZmluYWxfdmFyaWFibGVfYXNzaWdubWVudF9mbGFnIChjdXJyZW50X2NsYXNzKTsKICAg
ICB9CiAgIAogICAvKiBXZSBtaWdodCBoYXZlIGdlbmVyYXRlZCBhIGNsYXNzJCB0aGF0IHdlIG5v
dyB3YW50IHRvIGV4cGFuZCAqLwpAQCAtNzU0OSw2ICs3NjAwLDE1IEBAIGphdmFfY29tcGxldGVf
ZXhwYW5kX21ldGhvZHMgKGNsYXNzX2RlY2wKIAkgICYmIHZlcmlmeV9jb25zdHJ1Y3Rvcl9jaXJj
dWxhcml0eSAoZGVjbCwgZGVjbCkpCiAJYnJlYWs7CiAKKyAgLyogRmluYWwgY2hlY2sgb24gdGhl
IGluaXRpYWxpemF0aW9uIG9mIGZpbmFsIHZhcmlhYmxlcy4gKi8KKyAgaWYgKFRZUEVfSEFTX0ZJ
TkFMX1ZBUklBQkxFIChjdXJyZW50X2NsYXNzKSkKKyAgICB7CisgICAgICBjaGVja19maW5hbF92
YXJpYWJsZV9nbG9iYWxfYXNzaWdubWVudF9mbGFnIChjdXJyZW50X2NsYXNzKTsKKyAgICAgIC8q
IElmIHdlIGhhdmUgYW4gaW50ZXJmYWNlLCBjaGVjayBmb3IgdW5pbml0aWFsaXplZCBmaWVsZHMu
ICovCisgICAgICBpZiAoQ0xBU1NfSU5URVJGQUNFIChjbGFzc19kZWNsKSkKKwljaGVja19zdGF0
aWNfZmluYWxfdmFyaWFibGVfYXNzaWdubWVudF9mbGFnIChjdXJyZW50X2NsYXNzKTsKKyAgICB9
CisKICAgLyogU2F2ZSB0aGUgY29uc3RhbnQgcG9vbC4gV2UnbGwgbmVlZCB0byByZXN0b3JlIGl0
IGxhdGVyLiAqLwogICBUWVBFX0NQT09MIChjdXJyZW50X2NsYXNzKSA9IG91dGdvaW5nX2Nwb29s
OwogfQpAQCAtNzY4OSw3ICs3NzQ5LDcgQEAgbWF5YmVfeWFua19jbGluaXQgKG1kZWNsKQogCWNv
bnRpbnVlOwogCiAgICAgICAvKiBBbnl0aGluZyB0aGF0IGlzbid0IFN0cmluZyBvciBhIGJhc2lj
IHR5cGUgaXMgcnVsZWQgb3V0IC0tIG9yCi0JIGlmIHdlIG5vdyBob3cgdG8gZGVhbCB3aXRoIGl0
ICh3aGVuIGRvaW5nIHRoaW5ncyBuYXRpdmVseSkgd2UKKwkgaWYgd2Uga25vdyBob3cgdG8gZGVh
bCB3aXRoIGl0ICh3aGVuIGRvaW5nIHRoaW5ncyBuYXRpdmVseSkgd2UKIAkgc2hvdWxkIGdlbmVy
YXRlZCBhbiBlbXB0eSA8Y2xpbml0PiBzbyB0aGF0IFNVSUQgYXJlIGNvbXB1dGVkCiAJIGNvcnJl
Y3RseS4gKi8KICAgICAgIGlmICghIEpTVFJJTkdfVFlQRV9QIChUUkVFX1RZUEUgKGN1cnJlbnQp
KQpAQCAtODAzMCwxNCArODA5MCwxMSBAQCBidWlsZF9vdXRlcl9maWVsZF9hY2Nlc3NfbWV0aG9k
cyAoZGVjbCkKIHsKICAgdHJlZSBpZCwgYXJncywgc3RtdCwgbWRlY2w7CiAgIAotICAvKiBDaGVj
ayBwb2ludCwgdG8gYmUgcmVtb3ZlZC4gRklYTUUgKi8KLSAgaWYgKEZJRUxEX0lOTkVSX0FDQ0VT
UyAoZGVjbCkgCi0gICAgICAmJiBUUkVFX0NPREUgKEZJRUxEX0lOTkVSX0FDQ0VTUyAoZGVjbCkp
ICE9IElERU5USUZJRVJfTk9ERSkKLSAgICBhYm9ydCAoKTsKLQotICBpZiAoRklFTERfSU5ORVJf
QUNDRVNTIChkZWNsKSkKKyAgaWYgKEZJRUxEX0lOTkVSX0FDQ0VTU19QIChkZWNsKSkKICAgICBy
ZXR1cm4gRklFTERfSU5ORVJfQUNDRVNTIChkZWNsKTsKIAorICBNQVlCRV9DUkVBVEVfVkFSX0xB
TkdfREVDTF9TUEVDSUZJQyAoZGVjbCk7CisgCiAgIC8qIENyZWF0ZSB0aGUgaWRlbnRpZmllciBh
bmQgYSBmdW5jdGlvbiBuYW1lZCBhZnRlciBpdC4gKi8KICAgaWQgPSBidWlsZF9uZXdfYWNjZXNz
X2lkICgpOwogCkBAIC04MDU1LDE3ICs4MTEyLDIxIEBAIGJ1aWxkX291dGVyX2ZpZWxkX2FjY2Vz
c19tZXRob2RzIChkZWNsKQogCQkJCQkgICBUUkVFX1RZUEUgKGRlY2wpLCBpZCwgYXJncywgc3Rt
dCk7CiAgIERFQ0xfRlVOQ1RJT05fQUNDRVNTX0RFQ0wgKG1kZWNsKSA9IGRlY2w7CiAKLSAgLyog
Q3JlYXRlIHRoZSB3cml0ZSBhY2Nlc3MgbWV0aG9kICovCi0gIGFyZ3MgPSBidWlsZF90cmVlX2xp
c3QgKGluc3RfaWQsIGJ1aWxkX3BvaW50ZXJfdHlwZSAoREVDTF9DT05URVhUIChkZWNsKSkpOwot
ICBUUkVFX0NIQUlOIChhcmdzKSA9IGJ1aWxkX3RyZWVfbGlzdCAod3B2X2lkLCBUUkVFX1RZUEUg
KGRlY2wpKTsKLSAgVFJFRV9DSEFJTiAoVFJFRV9DSEFJTiAoYXJncykpID0gZW5kX3BhcmFtc19u
b2RlOwotICBzdG10ID0gbWFrZV9xdWFsaWZpZWRfcHJpbWFyeSAoYnVpbGRfd2ZsX25vZGUgKGlu
c3RfaWQpLAotCQkJCSBidWlsZF93Zmxfbm9kZSAoREVDTF9OQU1FIChkZWNsKSksIDApOwotICBz
dG10ID0gYnVpbGRfcmV0dXJuICgwLCBidWlsZF9hc3NpZ25tZW50IChBU1NJR05fVEssIDAsIHN0
bXQsCi0JCQkJCSAgICBidWlsZF93Zmxfbm9kZSAod3B2X2lkKSkpOwotCi0gIG1kZWNsID0gYnVp
bGRfb3V0ZXJfZmllbGRfYWNjZXNzX21ldGhvZCAoREVDTF9DT05URVhUIChkZWNsKSwgCi0JCQkJ
CSAgIFRSRUVfVFlQRSAoZGVjbCksIGlkLCBhcmdzLCBzdG10KTsKKyAgLyogQ3JlYXRlIHRoZSB3
cml0ZSBhY2Nlc3MgbWV0aG9kLiBObyB3cml0ZSBhY2Nlc3MgZm9yIGZpbmFsIHZhcmlhYmxlICov
CisgIGlmICghRklFTERfRklOQUwgKGRlY2wpKQorICAgIHsKKyAgICAgIGFyZ3MgPSBidWlsZF90
cmVlX2xpc3QgKGluc3RfaWQsIAorCQkJICAgICAgYnVpbGRfcG9pbnRlcl90eXBlIChERUNMX0NP
TlRFWFQgKGRlY2wpKSk7CisgICAgICBUUkVFX0NIQUlOIChhcmdzKSA9IGJ1aWxkX3RyZWVfbGlz
dCAod3B2X2lkLCBUUkVFX1RZUEUgKGRlY2wpKTsKKyAgICAgIFRSRUVfQ0hBSU4gKFRSRUVfQ0hB
SU4gKGFyZ3MpKSA9IGVuZF9wYXJhbXNfbm9kZTsKKyAgICAgIHN0bXQgPSBtYWtlX3F1YWxpZmll
ZF9wcmltYXJ5IChidWlsZF93Zmxfbm9kZSAoaW5zdF9pZCksCisJCQkJICAgICBidWlsZF93Zmxf
bm9kZSAoREVDTF9OQU1FIChkZWNsKSksIDApOworICAgICAgc3RtdCA9IGJ1aWxkX3JldHVybiAo
MCwgYnVpbGRfYXNzaWdubWVudCAoQVNTSUdOX1RLLCAwLCBzdG10LAorCQkJCQkJYnVpbGRfd2Zs
X25vZGUgKHdwdl9pZCkpKTsKKyAgICAgIG1kZWNsID0gYnVpbGRfb3V0ZXJfZmllbGRfYWNjZXNz
X21ldGhvZCAoREVDTF9DT05URVhUIChkZWNsKSwgCisJCQkJCSAgICAgICBUUkVFX1RZUEUgKGRl
Y2wpLCBpZCwgCisJCQkJCSAgICAgICBhcmdzLCBzdG10KTsKKyAgICB9CiAgIERFQ0xfRlVOQ1RJ
T05fQUNDRVNTX0RFQ0wgKG1kZWNsKSA9IGRlY2w7CiAKICAgLyogUmV0dXJuIHRoZSBhY2Nlc3Mg
bmFtZSAqLwpAQCAtODk1OSw3ICs5MDIwLDcgQEAgcmVzb2x2ZV9maWVsZF9hY2Nlc3MgKHF1YWxf
d2ZsLCBmaWVsZF9kZQogICAgICAgaWYgKCF0eXBlX2ZvdW5kKQogCXR5cGVfZm91bmQgPSBERUNM
X0NPTlRFWFQgKGRlY2wpOwogICAgICAgaXNfc3RhdGljID0gSkRFQ0xfUCAoZGVjbCkgJiYgRklF
TERfU1RBVElDIChkZWNsKTsKLSAgICAgIGlmIChGSUVMRF9GSU5BTCAoZGVjbCkgJiYgRklFTERf
U1RBVElDIChkZWNsKQorICAgICAgaWYgKENMQVNTX0ZJTkFMX1ZBUklBQkxFX1AgKGRlY2wpCiAJ
ICAmJiBKUFJJTUlUSVZFX1RZUEVfUCAoVFJFRV9UWVBFIChkZWNsKSkKIAkgICYmIERFQ0xfSU5J
VElBTCAoZGVjbCkpCiAJewpAQCAtMTA5MzksNyArMTEwMDAsNyBAQCBqYXZhX2NvbXBsZXRlX3Ry
ZWUgKG5vZGUpCiAgICAgIHRyZWUgbm9kZTsKIHsKICAgbm9kZSA9IGphdmFfY29tcGxldGVfbGhz
IChub2RlKTsKLSAgaWYgKEpERUNMX1AgKG5vZGUpICYmIEZJRUxEX1NUQVRJQyAobm9kZSkgJiYg
RklFTERfRklOQUwgKG5vZGUpIAorICBpZiAoSkRFQ0xfUCAobm9kZSkgJiYgQ0xBU1NfRklOQUxf
VkFSSUFCTEVfUCAobm9kZSkKICAgICAgICYmIERFQ0xfSU5JVElBTCAobm9kZSkgIT0gTlVMTF9U
UkVFCiAgICAgICAmJiAhZmxhZ19lbWl0X3hyZWYpCiAgICAgewpAQCAtMTA5NTgsNiArMTEwMTks
OCBAQCBqYXZhX2NvbXBsZXRlX3RyZWUgKG5vZGUpCiAJICBlbHNlCiAJICAgIHJldHVybiB2YWx1
ZTsKIAl9CisgICAgICBlbHNlCisgICAgICAgIERFQ0xfRklFTERfRklOQUxfSVVEIChub2RlKSA9
IDA7CiAgICAgfQogICByZXR1cm4gbm9kZTsKIH0KQEAgLTExNDQ4LDYgKzExNTExLDggQEAgamF2
YV9jb21wbGV0ZV9saHMgKG5vZGUpCiAJICAgIH0KIAkgIGlmICghIGZsYWdfZW1pdF9jbGFzc19m
aWxlcykKIAkgICAgREVDTF9JTklUSUFMIChubikgPSBOVUxMX1RSRUU7CisJICBpZiAoQ0xBU1Nf
RklOQUxfVkFSSUFCTEVfUCAobm4pKQorCSAgICBERUNMX0ZJRUxEX0ZJTkFMX0lVRCAobm4pID0g
MDsKIAl9CiAgICAgICB3Zmxfb3AyID0gVFJFRV9PUEVSQU5EIChub2RlLCAxKTsKIApAQCAtMTIw
MDUsNiArMTIwNzAsMjE0IEBAIHByaW50X2ludF9ub2RlIChub2RlKQogICByZXR1cm4gYnVmZmVy
OwogfQogCisMCisKKy8qIFRoaXMgc2VjdGlvbiBvZiB0aGUgY29kZSBoYW5kbGUgYXNzaWdubWVu
dCBjaGVjayB3aXRoIEZJTkFMCisgICB2YXJpYWJsZXMuICAqLworCitzdGF0aWMgdm9pZAorcmVz
ZXRfc3RhdGljX2ZpbmFsX3ZhcmlhYmxlX2Fzc2lnbm1lbnRfZmxhZyAoY2xhc3MpCisgICAgIHRy
ZWUgY2xhc3M7Cit7CisgIHRyZWUgZmllbGQ7CisgIGZvciAoZmllbGQgPSBUWVBFX0ZJRUxEUyAo
Y2xhc3MpOyBmaWVsZDsgZmllbGQgPSBUUkVFX0NIQUlOIChmaWVsZCkpCisgICAgaWYgKENMQVNT
X0ZJTkFMX1ZBUklBQkxFX1AgKGZpZWxkKSkKKyAgICAgIERFQ0xfRklFTERfRklOQUxfTElJQyAo
ZmllbGQpID0gMDsKK30KKworLyogRmlndXJlIHdoZXRoZXIgYWxsIGZpbmFsIHN0YXRpYyB2YXJp
YWJsZSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQuICAqLworCitzdGF0aWMgdm9pZAorY2hlY2tfc3Rh
dGljX2ZpbmFsX3ZhcmlhYmxlX2Fzc2lnbm1lbnRfZmxhZyAoY2xhc3MpCisgICAgIHRyZWUgY2xh
c3M7Cit7CisgIHRyZWUgZmllbGQ7CisKKyAgZm9yIChmaWVsZCA9IFRZUEVfRklFTERTIChjbGFz
cyk7IGZpZWxkOyBmaWVsZCA9IFRSRUVfQ0hBSU4gKGZpZWxkKSkKKyAgICBpZiAoQ0xBU1NfRklO
QUxfVkFSSUFCTEVfUCAoZmllbGQpCisJJiYgIURFQ0xfRklFTERfRklOQUxfSVVEIChmaWVsZCkg
JiYgIURFQ0xfRklFTERfRklOQUxfTElJQyAoZmllbGQpKQorICAgICAgcGFyc2VfZXJyb3JfY29u
dGV4dAorCShERUNMX0ZJRUxEX0ZJTkFMX1dGTCAoZmllbGQpLAorCSAiQmxhbmsgc3RhdGljIGZp
bmFsIHZhcmlhYmxlIGAlcycgbWF5IG5vdCBoYXZlIGJlIGluaXRpYWxpemVkIiwKKwkgSURFTlRJ
RklFUl9QT0lOVEVSIChERUNMX05BTUUgKGZpZWxkKSkpOworfQorCisvKiBUaGlzIGZ1bmN0aW9u
IG1hcmtzIGFsbCBmaW5hbCB2YXJpYWJsZSBsb2NhbGx5IHVuYXNzaWduZWQuICAqLworCitzdGF0
aWMgdm9pZAorcmVzZXRfZmluYWxfdmFyaWFibGVfbG9jYWxfYXNzaWdubWVudF9mbGFnIChjbGFz
cykKKyAgICAgdHJlZSBjbGFzczsKK3sKKyAgdHJlZSBmaWVsZDsKKyAgZm9yIChmaWVsZCA9IFRZ
UEVfRklFTERTIChjbGFzcyk7IGZpZWxkOyBmaWVsZCA9IFRSRUVfQ0hBSU4gKGZpZWxkKSkKKyAg
ICBpZiAoRklOQUxfVkFSSUFCTEVfUCAoZmllbGQpKQorICAgICAgREVDTF9GSUVMRF9GSU5BTF9M
SUlDIChmaWVsZCkgPSAwOworfQorCisvKiBGaWd1cmUgd2hldGhlciBhbGwgZmluYWwgdmFyaWFi
bGVzIGhhdmUgYmVlbSBpbml0aWFsaXplZCBpbiBNREVDTAorICAgYW5kIG1hcmsgTURFQ0wgYWNj
b3JkaW5nbHkuICAqLworCitzdGF0aWMgdm9pZAorY2hlY2tfZmluYWxfdmFyaWFibGVfbG9jYWxf
YXNzaWdubWVudF9mbGFnIChjbGFzcywgbWRlY2wpCisgICAgIHRyZWUgY2xhc3M7CisgICAgIHRy
ZWUgbWRlY2w7Cit7CisgIHRyZWUgZmllbGQ7CisgIGludCBpbml0aWFsaXplZCA9IDA7CisgIGlu
dCBub25faW5pdGlhbGl6ZWQgPSAwOyAKKworICBpZiAoREVDTF9GVU5DVElPTl9TWU5USEVUSUNf
Q1RPUiAobWRlY2wpKQorICAgIHJldHVybjsKKworICAvKiBGaXJzdCBmaW5kIG91dCB3aGV0aGVy
IGFsbCBmaW5hbCB2YXJpYWJsZXMgb3Igbm8gZmluYWwgdmFyaWFibGUKKyAgICAgYXJlIGluaXRp
YWxpemVkIGluIHRoaXMgY3Rvci4gV2UgZG9uJ3QgdGFrZSBpbnRvIGFjY291bnQgZmluYWwKKyAg
ICAgdmFyaWFibGUgdGhhdCBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgdXBvbiBkZWNsYXJhdGlvbi4g
ICovCisgIGZvciAoZmllbGQgPSBUWVBFX0ZJRUxEUyAoY2xhc3MpOyBmaWVsZDsgZmllbGQgPSBU
UkVFX0NIQUlOIChmaWVsZCkpCisgICAgaWYgKEZJTkFMX1ZBUklBQkxFX1AgKGZpZWxkKSAmJiAh
REVDTF9GSUVMRF9GSU5BTF9JVUQgKGZpZWxkKSkKKyAgICAgIHsKKwlpZiAoREVDTF9GSUVMRF9G
SU5BTF9MSUlDIChmaWVsZCkpCisJICBpbml0aWFsaXplZCsrOworCWVsc2UKKwkgIG5vbl9pbml0
aWFsaXplZCsrOworICAgICAgfQorCisgIC8qIFRoZXJlIHdlcmUgbm8gbm9uIGluaXRpYWxpemVk
IHZhcmlhYmxlIGFuZCBubyBpbml0aWFsaXplZCB2YXJpYWJsZS4KKyAgICAgVGhpcyBjdG9yIGlz
IGZpbmUuICovCisgIGlmICghbm9uX2luaXRpYWxpemVkICYmICFpbml0aWFsaXplZCkKKyAgICBE
RUNMX0ZVTkNUSU9OX0FMTF9GSU5BTF9JTklUSUFMSVpFRCAobWRlY2wpID0gMTsKKyAgLyogSWYg
bm8gdmFyaWFibGVzIGhhdmUgYmVlbiBpbml0aWFsaXplZCwgdGhhdCBmaW5lLiBXZSdsbCBjaGVj
aworICAgICBsYXRlciB3aGV0aGVyIHRoaXMgY3RvciBjYWxscyBhIGNvbnN0cnVjdG9yIHdoaWNo
IGluaXRpYWxpemVzCisgICAgIHRoZW0uIFdlIG1hcmsgdGhlIGN0b3IgYXMgbm90IGluaXRpYWxp
emluZyBhbGwgaXRzIGZpbmFscy4gKi8KKyAgZWxzZSBpZiAoaW5pdGlhbGl6ZWQgPT0gMCkKKyAg
ICBERUNMX0ZVTkNUSU9OX0FMTF9GSU5BTF9JTklUSUFMSVpFRCAobWRlY2wpID0gMDsKKyAgLyog
SWYgd2UgaGF2ZSBhIG1peGVkIGJhZywgdGhlbiB3ZSBoYXZlIGEgcHJvYmxlbS4gV2UgbmVlZCB0
byByZXBvcnQKKyAgICAgYWxsIHRoZSB2YXJpYWJsZXMgd2UncmUgbm90IGluaXRpYWxpemluZy4g
ICovCisgIGVsc2UgaWYgKGluaXRpYWxpemVkICYmIG5vbl9pbml0aWFsaXplZCkKKyAgICB7Cisg
ICAgICBERUNMX0ZVTkNUSU9OX0FMTF9GSU5BTF9JTklUSUFMSVpFRCAobWRlY2wpID0gMDsKKyAg
ICAgIGZvciAoZmllbGQgPSBUWVBFX0ZJRUxEUyAoY2xhc3MpOyBmaWVsZDsgZmllbGQgPSBUUkVF
X0NIQUlOIChmaWVsZCkpCisJaWYgKEZJRUxEX0ZJTkFMIChmaWVsZCkKKwkgICAgJiYgIURFQ0xf
RklFTERfRklOQUxfSVVEIChmaWVsZCkgJiYgIURFQ0xfRklFTERfRklOQUxfTElJQyAoZmllbGQp
KQorCSAgeworCSAgICBwYXJzZV9lcnJvcl9jb250ZXh0IAorCSAgICAgIChsb29rdXBfY2wgKG1k
ZWNsKSwKKwkgICAgICAgIkJsYW5rIGZpbmFsIHZhcmlhYmxlIGAlcycgbWF5IG5vdCBoYXZlIGJl
ZW4gaW5pdGlhbGl6ZWQgaW4gdGhpcyBjb25zdHJ1Y3RvciIsCisJICAgICAgIElERU5USUZJRVJf
UE9JTlRFUiAoREVDTF9OQU1FIChmaWVsZCkpKTsKKwkgICAgREVDTF9GSUVMRF9GSU5BTF9JRVJS
IChmaWVsZCkgPSAxOworCSAgfQorICAgIH0KKyAgLyogT3RoZXJ3aXNlIHdlIGtub3cgdGhpcyBj
dG9yIGlzIGluaXRpYWxpemluZyBhbGwgaXRzIGZpbmFsCisgICAgIHZhcmlhYmxlLiBXZSBtYXJr
IGl0IHNvLiAqLworICBlbHNlCisgICAgREVDTF9GVU5DVElPTl9BTExfRklOQUxfSU5JVElBTEla
RUQgKG1kZWNsKSA9IDE7Cit9CisKKy8qIFRoaXMgZnVuY3Rpb24gcmVjdXJzZXMgaW4gYSBzaW1w
bGUgd2hhdCB0aHJvdWdoIFNUTVQgYW5kIHN0b3BzIHdoZW4KKyAgIGl0IGZpbmRzIGEgY29uc3Ry
dWN0b3IgY2FsbC4gSXQgdGhlbiB2ZXJpZmllcyB0aGF0IHRoZSBjYWxsZWQKKyAgIGNvbnN0cnVj
dG9yIGluaXRpYWxpemVkIGl0cyBmaW5hbCBwcm9wZXJseS4gUmV0dXJuIDEgdXBvbiBzdWNjZXNz
LAorICAgMCBvciAtMSBvdGhlcndpc2UuICAqLworCitzdGF0aWMgaW50CitjaGVja19maW5hbF92
YXJpYWJsZV9pbmRpcmVjdF9hc3NpZ25tZW50IChzdG10KQorICAgICB0cmVlIHN0bXQ7Cit7Cisg
IGludCByZXM7CisgIHN3aXRjaCAoVFJFRV9DT0RFIChzdG10KSkKKyAgICB7CisgICAgY2FzZSBF
WFBSX1dJVEhfRklMRV9MT0NBVElPTjoKKyAgICAgIHJldHVybiBjaGVja19maW5hbF92YXJpYWJs
ZV9pbmRpcmVjdF9hc3NpZ25tZW50IChFWFBSX1dGTF9OT0RFIChzdG10KSk7CisgICAgY2FzZSBD
T01QT1VORF9FWFBSOgorICAgICAgcmVzID0gY2hlY2tfZmluYWxfdmFyaWFibGVfaW5kaXJlY3Rf
YXNzaWdubWVudCAoVFJFRV9PUEVSQU5EIChzdG10LCAwKSk7CisgICAgICBpZiAocmVzKQorCXJl
dHVybiByZXM7CisgICAgICByZXR1cm4gY2hlY2tfZmluYWxfdmFyaWFibGVfaW5kaXJlY3RfYXNz
aWdubWVudCAoVFJFRV9PUEVSQU5EIChzdG10LCAxKSk7CisgICAgY2FzZSBTQVZFX0VYUFI6Cisg
ICAgICByZXR1cm4gY2hlY2tfZmluYWxfdmFyaWFibGVfaW5kaXJlY3RfYXNzaWdubWVudCAoVFJF
RV9PUEVSQU5EIChzdG10LCAwKSk7CisgICAgY2FzZSBDQUxMX0VYUFI6CisgICAgICB7CisJdHJl
ZSBkZWNsID0gVFJFRV9PUEVSQU5EIChzdG10LCAwKTsKKwl0cmVlIGZib2R5OworCisJaWYgKFRS
RUVfQ09ERSAoZGVjbCkgIT0gRlVOQ1RJT05fREVDTCkKKwkgIGRlY2wgPSBUUkVFX09QRVJBTkQg
KFRSRUVfT1BFUkFORCAoZGVjbCwgMCksIDApOworCWlmIChUUkVFX0NPREUgKGRlY2wpICE9IEZV
TkNUSU9OX0RFQ0wpCisJICBmYXRhbCAoIkNhbid0IGZpbmQgRlVOQ1RJT05fREVDTCBpbiBDQUxM
X0VYUFIgLSBjaGVja19maW5hbF92YXJpYWJsZV9pbmRpcmVjdF9hc3NpZ25tZW50Iik7CisJaWYg
KERFQ0xfRlVOQ1RJT05fQUxMX0ZJTkFMX0lOSVRJQUxJWkVEIChkZWNsKSkKKwkgIHJldHVybiAx
OworCWlmIChERUNMX0ZJTklUX1AgKGRlY2wpIHx8IERFQ0xfQ09OVEVYVCAoZGVjbCkgIT0gY3Vy
cmVudF9jbGFzcykKKwkgIHJldHVybiAtMTsKKwlmYm9keSA9IEJMT0NLX0VYUFJfQk9EWSAoREVD
TF9GVU5DVElPTl9CT0RZIChkZWNsKSk7CisJaWYgKGZib2R5ID09IGVycm9yX21hcmtfbm9kZSkK
KwkgIHJldHVybiAtMTsKKwlmYm9keSA9IEJMT0NLX0VYUFJfQk9EWSAoZmJvZHkpOworCXJldHVy
biBjaGVja19maW5hbF92YXJpYWJsZV9pbmRpcmVjdF9hc3NpZ25tZW50IChmYm9keSk7CisgICAg
ICB9CisgICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOworICAgIH0KKyAgcmV0dXJuIDA7Cit9CisK
Ky8qIFRoaXMgaXMgdGhlIGxhc3QgY2hhbmNlIHRvIGNhdGNoIGEgZmluYWwgdmFyaWFibGUgaW5p
dGlhbGl6YXRpb24KKyAgIHByb2JsZW0uIFRoaXMgcm91dGluZSB3aWxsIHJlcG9ydCBhbiBlcnJv
ciBpZiBhIGZpbmFsIHZhcmlhYmxlIHdhcworICAgbmV2ZXIgKGdsb2JhbGx5KSBpbml0aWFsaXpl
ZCBhbmQgbmV2ZXIgcmVwb3J0ZWQgYXMgbm90IGhhdmluZyBiZWVuCisgICBpbml0aWFsaXplZCBw
cm9wZXJseS4gKi8KKworc3RhdGljIHZvaWQKK2NoZWNrX2ZpbmFsX3ZhcmlhYmxlX2dsb2JhbF9h
c3NpZ25tZW50X2ZsYWcgKGNsYXNzKQorICAgICB0cmVlIGNsYXNzOworeworICB0cmVlIGZpZWxk
LCBtZGVjbDsKKyAgaW50IG5uY3RvciA9IDA7CisKKyAgLyogV2UgZ28gdGhyb3VnaCBhbGwgbmF0
dXJhbCBjdG9ycyBhbmQgc2VlIHdoZXRoZXIgdGhleSdyZQorICAgICBpbml0aWFsaXppbmcgYWxs
IHRoZWlyIGZpbmFsIHZhcmlhYmxlcyBvciBub3QuICovCisgIGN1cnJlbnRfZnVuY3Rpb25fZGVj
bCA9IE5VTExfVFJFRTsgLyogRm9yIHRoZSBlcnJvciByZXBvcnQuICovCisgIGZvciAobWRlY2wg
PSBUWVBFX01FVEhPRFMgKGNsYXNzKTsgbWRlY2w7IG1kZWNsID0gVFJFRV9DSEFJTiAobWRlY2wp
KQorICAgIGlmIChERUNMX0NPTlNUUlVDVE9SX1AgKG1kZWNsKSAmJiAhIERFQ0xfRlVOQ1RJT05f
U1lOVEhFVElDX0NUT1IgKG1kZWNsKSkKKyAgICAgIHsKKwlpZiAoIURFQ0xfRlVOQ1RJT05fQUxM
X0ZJTkFMX0lOSVRJQUxJWkVEIChtZGVjbCkpCisJICB7CisJICAgIC8qIEl0IGRvZXNuJ3QuIE1h
eWJlIGl0IGNhbGxzIGEgY29uc3RydWN0b3IgdGhhdCBpbml0aWFsaXplcworCSAgICAgICB0aGVt
LiAgZmluZCBvdXQuICovCisJICAgIHRyZWUgZmJvZHkgPSBCTE9DS19FWFBSX0JPRFkgKERFQ0xf
RlVOQ1RJT05fQk9EWSAobWRlY2wpKTsKKwkgICAgaWYgKGZib2R5ID09IGVycm9yX21hcmtfbm9k
ZSkKKwkgICAgICBjb250aW51ZTsKKwkgICAgZmJvZHkgPSBCTE9DS19FWFBSX0JPRFkgKGZib2R5
KTsKKwkgICAgaWYgKGNoZWNrX2ZpbmFsX3ZhcmlhYmxlX2luZGlyZWN0X2Fzc2lnbm1lbnQgKGZi
b2R5KSA9PSAxKQorCSAgICAgIHsKKwkJREVDTF9GVU5DVElPTl9BTExfRklOQUxfSU5JVElBTEla
RUQgKG1kZWNsKSA9IDE7CisJCW5uY3RvcisrOworCSAgICAgIH0KKwkgICAgZWxzZQorCSAgICAg
IHBhcnNlX2Vycm9yX2NvbnRleHQKKwkJKGxvb2t1cF9jbCAobWRlY2wpLAorCQkgIkZpbmFsIHZh
cmlhYmxlIGluaXRpYWxpemF0aW9uIGVycm9yIGluIHRoaXMgY29uc3RydWN0b3IiKTsKKwkgIH0K
KwllbHNlCisJICBubmN0b3IrKzsKKyAgICAgIH0KKworICAvKiBGaW5hbGx5IHdlIGNhdGNoIGZp
bmFsIHZhcmlhYmxlcyB0aGF0IG5ldmVyIHdlcmUgaW5pdGlhbGl6ZWQgKi8KKyAgZm9yIChmaWVs
ZCA9IFRZUEVfRklFTERTIChjbGFzcyk7IGZpZWxkOyBmaWVsZCA9IFRSRUVfQ0hBSU4gKGZpZWxk
KSkKKyAgICBpZiAoRklOQUxfVkFSSUFCTEVfUCAoZmllbGQpCisJLyogSWYgdGhlIGZpZWxkIHdh
c24ndCBpbml0aWFsaXplZCB1cG9uIGRlY2xhcmF0aW9uICovCisJJiYgIURFQ0xfRklFTERfRklO
QUxfSVVEIChmaWVsZCkKKwkvKiBUaGVyZSB3YXNuJ3QgbmF0dXJhbCBjdG9yIGluIHdoaWNoIHRo
ZSBmaWVsZCBjb3VsZCBoYXZlIGJlZW4KKwkgICBpbml0aWFsaXplZCAqLworCSYmICFubmN0b3IK
KwkvKiBJZiB3ZSBuZXZlciByZXBvcnRlZCBhIHByb2JsZW0gd2l0aCB0aGlzIGZpZWxkICovCisJ
JiYgIURFQ0xfRklFTERfRklOQUxfSUVSUiAoZmllbGQpKQorICAgICAgeworCWN1cnJlbnRfZnVu
Y3Rpb25fZGVjbCA9IE5VTEw7CisJcGFyc2VfZXJyb3JfY29udGV4dAorCSAgKERFQ0xfRklFTERf
RklOQUxfV0ZMIChmaWVsZCksCisJICAgIkZpbmFsIHZhcmlhYmxlIGAlcycgaGFzbid0IGJlZW4g
aW5pdGlhbGl6ZWQgdXBvbiBpdHMgZGVjbGFyYXRpb24iLAorCSAgIElERU5USUZJRVJfUE9JTlRF
UiAoREVDTF9OQU1FIChmaWVsZCkpKTsKKyAgICAgIH0KKworfQorCiAvKiBSZXR1cm4gMSBpZiBh
biBhc3NpZ25tZW50IHRvIGEgRklOQUwgaXMgYXR0ZW1wdGVkIGluIGEgbm9uIHN1aXRhYmxlCiAg
ICBjb250ZXh0LiAgKi8KIApAQCAtMTIwMTIsMjcgKzEyMjg1LDUyIEBAIHN0YXRpYyBpbnQKIGNo
ZWNrX2ZpbmFsX2Fzc2lnbm1lbnQgKGx2YWx1ZSwgd2ZsKQogICAgICB0cmVlIGx2YWx1ZSwgd2Zs
OwogewotICBpZiAoVFJFRV9DT0RFIChsdmFsdWUpID09IENPTVBPVU5EX0VYUFIgCisgIGlmIChU
UkVFX0NPREUgKGx2YWx1ZSkgIT0gQ09NUE9ORU5UX1JFRiAmJiAhSkRFQ0xfUCAobHZhbHVlKSkK
KyAgICByZXR1cm4gMDsKKworICBpZiAoVFJFRV9DT0RFIChsdmFsdWUpID09IENPTVBPTkVOVF9S
RUYKICAgICAgICYmIEpERUNMX1AgKFRSRUVfT1BFUkFORCAobHZhbHVlLCAxKSkpCiAgICAgbHZh
bHVlID0gVFJFRV9PUEVSQU5EIChsdmFsdWUsIDEpOworCisgIGlmICghRklFTERfRklOQUwgKGx2
YWx1ZSkpCisgICAgcmV0dXJuIDA7CiAKLSAgLyogV2hlbiBnZW5lcmF0aW5nIGNsYXNzIGZpbGVz
LCByZWZlcmVuY2VzIHRvIHRoZSBgbGVuZ3RoJyBmaWVsZAotICAgICBsb29rIGEgYml0IGRpZmZl
cmVudC4gICovCi0gIGlmICgoZmxhZ19lbWl0X2NsYXNzX2ZpbGVzCi0gICAgICAgJiYgVFJFRV9D
T0RFIChsdmFsdWUpID09IENPTVBPTkVOVF9SRUYKLSAgICAgICAmJiBUWVBFX0FSUkFZX1AgKFRS
RUVfVFlQRSAoVFJFRV9PUEVSQU5EIChsdmFsdWUsIDApKSkKLSAgICAgICAmJiBGSUVMRF9GSU5B
TCAoVFJFRV9PUEVSQU5EIChsdmFsdWUsIDEpKSkKLSAgICAgIHx8IChUUkVFX0NPREUgKGx2YWx1
ZSkgPT0gRklFTERfREVDTAotCSAgJiYgRklFTERfRklOQUwgKGx2YWx1ZSkKLQkgICYmICFERUNM
X0NMSU5JVF9QIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpCi0JICAmJiAhREVDTF9GSU5JVF9QIChj
dXJyZW50X2Z1bmN0aW9uX2RlY2wpKSkKKyAgLyogTm93IHRoZSBsb2dpYy4gV2UgY2FuIG1vZGlm
eSBhIGZpbmFsIFZBUklBQkxFOgorICAgICAxKSBpbiBmaW5pdCQsIChpdHMgZGVjbGFyYXRpb24g
d2FzIGZvbGxvd2VkIGJ5IGFuIGluaXRpYWxpemF0aW9uLCkKKyAgICAgMikgY29uc2lzdGVudGx5
IGluIGVhY2ggbmF0dXJhbCBjdG9yLCBpZiBpdCB3YXNuJ3QgaW5pdGlhbGl6ZWQgaW4KKyAgICAg
ICAgZmluaXQkIG9yIG9uY2UgaW4gPGNsaW5pdD4uICBJbiBhbnkgb3RoZXIgY2FzZXMsIGFuIGVy
cm9yIHNob3VsZCBiZQorCXJlcG9ydGVkLiAqLworICBpZiAoREVDTF9GSU5JVF9QIChjdXJyZW50
X2Z1bmN0aW9uX2RlY2wpKQogICAgIHsKLSAgICAgIHBhcnNlX2Vycm9yX2NvbnRleHQgCi0gICAg
ICAgICh3ZmwsICJDYW4ndCBhc3NpZ24gYSB2YWx1ZSB0byB0aGUgZmluYWwgdmFyaWFibGUgYCVz
JyIsCi0JIElERU5USUZJRVJfUE9JTlRFUiAoRVhQUl9XRkxfTk9ERSAod2ZsKSkpOwotICAgICAg
cmV0dXJuIDE7CisgICAgICBERUNMX0ZJRUxEX0ZJTkFMX0lVRCAobHZhbHVlKSA9IDE7CisgICAg
ICByZXR1cm4gMDsKICAgICB9Ci0gIHJldHVybiAwOworCisgIGlmICghREVDTF9GVU5DVElPTl9T
WU5USEVUSUNfQ1RPUiAoY3VycmVudF9mdW5jdGlvbl9kZWNsKQorICAgICAgLyogT25seSBpZiBp
dCB3YXNuJ3QgZ2l2ZW4gYSB2YWx1ZSB1cG9uIGluaXRpYWxpemF0aW9uICovCisgICAgICAmJiBE
RUNMX0xBTkdfU1BFQ0lGSUMgKGx2YWx1ZSkgJiYgIURFQ0xfRklFTERfRklOQUxfSVVEIChsdmFs
dWUpCisgICAgICAvKiBJZiBpdCB3YXMgbmV2ZXIgYXNzaWduZWQgYSB2YWx1ZSBpbiB0aGlzIGNv
bnN0cnVjdG9yICovCisgICAgICAmJiAhREVDTF9GSUVMRF9GSU5BTF9MSUlDIChsdmFsdWUpKQor
ICAgIHsKKyAgICAgIC8qIFR1cm4gdGhlIGxvY2FsbHkgYXNzaWduZWQgZmxhZyBvbiwgaXQgd2ls
bCBiZSBjaGVja2VkIGxhdGVyCisJIG9uIHRvIHBvaW50IG91dCBhdCBkaXNjcmVwYW5jaWVzLiAq
LworICAgICAgREVDTF9GSUVMRF9GSU5BTF9MSUlDIChsdmFsdWUpID0gMTsKKyAgICAgIGlmIChE
RUNMX0NMSU5JVF9QIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpKQorCURFQ0xfRklFTERfRklOQUxf
SVVEIChsdmFsdWUpID0gMTsKKyAgICAgIHJldHVybiAwOworICAgIH0KKworICAvKiBPdGhlciBw
cm9ibGVtcyBzaG91bGQgYmUgcmVwb3J0ZWQgcmlnaHQgYXdheS4gKi8KKyAgcGFyc2VfZXJyb3Jf
Y29udGV4dCAKKyAgICAod2ZsLCAiQ2FuJ3QgJXNhc3NpZ24gYSB2YWx1ZSB0byB0aGUgZmluYWwg
dmFyaWFibGUgYCVzJyIsCisgICAgIChGSUVMRF9TVEFUSUMgKGx2YWx1ZSkgPyAicmUiIDogIiIp
LAorICAgICBJREVOVElGSUVSX1BPSU5URVIgKEVYUFJfV0ZMX05PREUgKHdmbCkpKTsKKworICAv
KiBOb3RlIHRoYXQgc3RhdGljIGZpZWxkIGNhbiBiZSBpbml0aWFsaXplZCBvbmNlIGFuZCBvbmx5
IG9uY2UuICovCisgIGlmIChGSUVMRF9TVEFUSUMgKGx2YWx1ZSkpCisgICAgREVDTF9GSUVMRF9G
SU5BTF9JRVJSIChsdmFsdWUpID0gMTsKKworICByZXR1cm4gMTsKIH0KIAogLyogSW5saW5lIHJl
ZmVyZW5jZXMgdG8gamF2YS5sYW5nLlBSSU1UWVBFLlRZUEUgd2hlbiBhY2Nlc3NlZCBpbgpAQCAt
MTIyNDAsNyArMTI1MzgsNyBAQCBwYXRjaF9hc3NpZ25tZW50IChub2RlLCB3Zmxfb3AxLCB3Zmxf
b3AyCiAgIC8qIEZpbmFsIGxvY2FscyBjYW4gYmUgdXNlZCBhcyBjYXNlIHZhbHVlcyBpbiBzd2l0
Y2gKICAgICAgc3RhdGVtZW50LiBQcmVwYXJlIHRoZW0gZm9yIHRoaXMgZXZlbnR1YWxpdHkuICov
CiAgIGlmIChUUkVFX0NPREUgKGx2YWx1ZSkgPT0gVkFSX0RFQ0wgCi0gICAgICAmJiBMT0NBTF9G
SU5BTCAobHZhbHVlKQorICAgICAgJiYgTE9DQUxfRklOQUxfUCAobHZhbHVlKQogICAgICAgJiYg
VFJFRV9DT05TVEFOVCAobmV3X3JocykKICAgICAgICYmIElERU5USUZJRVJfTE9DQUxfVkFMVUUg
KERFQ0xfTkFNRSAobHZhbHVlKSkKICAgICAgICYmIEpJTlRFR1JBTF9UWVBFX1AgKFRSRUVfVFlQ
RSAobHZhbHVlKSkKQEAgLTE1MjEyLDYgKzE1NTEwLDggQEAgZm9sZF9jb25zdGFudF9mb3JfaW5p
dCAobm9kZSwgY29udGV4dCkKICAgICAgIERFQ0xfSU5JVElBTCAobm9kZSkgPSBOVUxMX1RSRUU7
CiAgICAgICB2YWwgPSBmb2xkX2NvbnN0YW50X2Zvcl9pbml0ICh2YWwsIG5vZGUpOwogICAgICAg
REVDTF9JTklUSUFMIChub2RlKSA9IHZhbDsKKyAgICAgIGlmICghdmFsICYmIENMQVNTX0ZJTkFM
X1ZBUklBQkxFX1AgKG5vZGUpKQorCURFQ0xfRklFTERfRklOQUxfSVVEIChub2RlKSA9IDA7CiAg
ICAgICByZXR1cm4gdmFsOwogCiAgICAgY2FzZSBFWFBSX1dJVEhfRklMRV9MT0NBVElPTjoK



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2000-12-20 12:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-20 12:21 java/1212: Compiler permits uninitialized final variables bryce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).