<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>129029</bug_id>
          
          <creation_ts>2014-02-18 22:54:16 -0800</creation_ts>
          <short_desc>Simplify PLATFORM(MAC) &amp;&amp; !PLATFORM(IOS) and similar expressions</short_desc>
          <delta_ts>2014-02-19 00:07:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>982253</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-02-18 22:54:16 -0800</bug_when>
    <thetext>Simplify PLATFORM(MAC) &amp;&amp; !PLATFORM(IOS) and similar expressions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982254</commentid>
    <comment_count>1</comment_count>
      <attachid>224597</attachid>
    <who name="">mitz</who>
    <bug_when>2014-02-18 22:56:38 -0800</bug_when>
    <thetext>Created attachment 224597
Remove redundant !PLATFORM(IOS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982255</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-18 22:59:50 -0800</bug_when>
    <thetext>Attachment 224597 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 77 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982265</commentid>
    <comment_count>3</comment_count>
      <attachid>224597</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-02-19 00:04:15 -0800</bug_when>
    <thetext>Comment on attachment 224597
Remove redundant !PLATFORM(IOS)

View in context: https://bugs.webkit.org/attachment.cgi?id=224597&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

The style bot thinks you should remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982267</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-02-19 00:07:20 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r164358&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224597</attachid>
            <date>2014-02-18 22:56:38 -0800</date>
            <delta_ts>2014-02-19 00:04:14 -0800</delta_ts>
            <desc>Remove redundant !PLATFORM(IOS)</desc>
            <filename>bug-129029-20140218225703.patch</filename>
            <type>text/plain</type>
            <size>72569</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY0MzU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE0LTAyLTE4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAg
U2ltcGxpZnkgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSBhbmQgc2ltaWxhciBleHBy
ZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI5MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBBUEkvSlNWYWx1ZVJlZi5jcHA6CisgICAgICAgIChKU1ZhbHVlVW5wcm90ZWN0KToKKyAgICAg
ICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29sLmNwcDoKKwogMjAxNC0wMi0x
OCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3RseSBp
bnN0YWxsIGxpYmxsdm1Gb3JKU0MuZHlsaWIgaW4gcHJvZHVjdGlvbiBidWlsZHMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAkocmV2aXNpb24gMTY0MzQ3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDQsMTMgKzQ0LDEzIEBACiAKICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6
Om1pbgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JN
KE1BQykKICNpbmNsdWRlIDxtYWNoLW8vZHlsZC5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oTUFDKQogc3RhdGljIGJvb2wgZXZlcm5vdGVIYWNrTmVlZGVkKCkKIHsKICAgICBzdGF0aWMg
Y29uc3QgaW50MzJfdCB3ZWJraXRMYXN0VmVyc2lvbldpdGhFdmVybm90ZUhhY2sgPSAzNTEzMzk1
OTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIEpTVmFsdWVQcm90ZWN0KEpTQ29udGV4dFJlZiBj
dHgsIEpTCiAKIHZvaWQgSlNWYWx1ZVVucHJvdGVjdChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVl
UmVmIHZhbHVlKQogewotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQ
TEFURk9STShNQUMpCiAgICAgaWYgKCghdmFsdWUgfHwgIWN0eCkgJiYgZXZlcm5vdGVIYWNrTmVl
ZGVkKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29s
LmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0
NSw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykg
JiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTA5
MAorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwOTAKIC8vIE1BRFZfRlJFRV9SRVVTQUJMRSBkb2VzIG5vdCB3b3JrIGZvciBKSVQgbWVtb3J5
IG9uIG9sZGVyIE9TZXMgc28gdXNlIE1BRFZfRlJFRSBpbiB0aGF0IGNhc2UuCiAjZGVmaW5lIFdU
Rl9VU0VfTUFEVl9GUkVFX0ZPUl9KSVRfTUVNT1JZIDEKICNlbmRpZgpJbmRleDogU291cmNlL1dU
Ri9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE2NDM1NykKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTQtMDItMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBTaW1wbGlmeSBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpIGFuZCBzaW1p
bGFyIGV4cHJlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjkwMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHd0Zi9GZWF0dXJlRGVmaW5lcy5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5o
OgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmcuY3BwOgorICAgICAgICAqIHd0Zi90ZXh0L2NmL1N0
cmluZ0ltcGxDRi5jcHA6CisgICAgICAgIChnYXJiYWdlQ29sbGVjdGlvbkVuYWJsZWQpOgorCiAy
MDE0LTAyLTE4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUExB
VEZPUk0oTUFDKSBpcyB0cnVlIHdoZW4gYnVpbGRpbmcgZm9yIGlPUwpJbmRleDogU291cmNlL1dU
Ri93dGYvRmVhdHVyZURlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9GZWF0
dXJlRGVmaW5lcy5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV1RGL3d0Zi9GZWF0dXJl
RGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNyArMTU5LDcgQEAKICNlbmRpZiAvKiBQ
TEFURk9STShJT1MpICovCiAKIC8qIC0tLS0tLS0tLSBBcHBsZSBNQUMgcG9ydCAobm90IElPUykg
LS0tLS0tLS0tICovCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBM
QVRGT1JNKE1BQykKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfU0VUKQogI2RlZmlu
ZSBFTkFCTEVfQ1NTX0lNQUdFX1NFVCAxCkBAIC0yMzYsNyArMjM2LDcgQEAKICNkZWZpbmUgRU5B
QkxFX01FRElBX1NPVVJDRSAxCiAjZW5kaWYKIAotI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgJiYg
IVBMQVRGT1JNKElPUykgKi8KKyNlbmRpZiAvKiBQTEFURk9STShNQUMpICovCiAKIC8qIC0tLS0t
LS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0tLS0tICovCiAjaWYgUExBVEZPUk0oV0lOKSAm
JiAhT1MoV0lOQ0UpICYmICFQTEFURk9STShXSU5fQ0FJUk8pCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJl
dmlzaW9uIDE2NDM1NykKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2Niw3ICs0NjYsNyBAQAogI2RlZmluZSBIQVZFX09VVF9PRl9QUk9DRVNTX0xBWUVS
X0hPU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
CisjaWYgUExBVEZPUk0oTUFDKQogCiAjZGVmaW5lIFdURl9VU0VfQVBQS0lUIDEKICNkZWZpbmUg
SEFWRV9SVU5MT09QX1RJTUVSIDEKQEAgLTQ4Myw3ICs0ODMsNyBAQAogI3VuZGVmIF9fQVNTRVJU
X01BQ1JPU19ERUZJTkVfVkVSU0lPTlNfV0lUSE9VVF9VTkRFUlNDT1JFUwogI2RlZmluZSBfX0FT
U0VSVF9NQUNST1NfREVGSU5FX1ZFUlNJT05TX1dJVEhPVVRfVU5ERVJTQ09SRVMgMAogCi0jZW5k
aWYgLyogUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAqLworI2VuZGlmIC8qIFBMQVRG
T1JNKE1BQykgKi8KIAogI2lmIE9TKERBUldJTikgJiYgIVBMQVRGT1JNKEdUSykKICNkZWZpbmUg
RU5BQkxFX1BVUkdFQUJMRV9NRU1PUlkgMQpAQCAtOTM5LDI1ICs5MzksMjUgQEAKICNkZWZpbmUg
V1RGX1VTRV9BVkZPVU5EQVRJT04gMQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oSU9TKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA2MDAwMCkgfHwgKChQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwODApCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gNjAwMDApIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA4MCkKICNkZWZpbmUgV1RGX1VTRV9DT1JFTUVESUEgMQogI2Rl
ZmluZSBIQVZFX0FWRk9VTkRBVElPTl9WSURFT19PVVRQVVQgMQogI2VuZGlmCiAKLSNpZiAoUExB
VEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA1MDAwMCkg
fHwgKChQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpKSB8fCAoT1MoV0lORE9XUykgJiYg
VVNFKENHKSkgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwKQorI2lm
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDUw
MDAwKSB8fCAoUExBVEZPUk0oTUFDKSB8fCAoT1MoV0lORE9XUykgJiYgVVNFKENHKSkgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwKQogI2RlZmluZSBIQVZFX0FWRk9V
TkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVAgMQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0o
SU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA3MDAwMCkgfHwgKCgo
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSkgfHwgKE9TKFdJTkRPV1MpICYmIFVTRShD
RykpKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTApCisjaWYgKFBM
QVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gNzAwMDAp
IHx8ICgoUExBVEZPUk0oTUFDKSB8fCAoT1MoV0lORE9XUykgJiYgVVNFKENHKSkpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MCkKICNkZWZpbmUgSEFWRV9BVkZPVU5E
QVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCAxCiAjZGVmaW5lIEhBVkVfTUVESUFfQUNDRVNT
SUJJTElUWV9GUkFNRVdPUksgMQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA2MDAwMCkgfHwgKChQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShJT1MpKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwOTApCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gNjAwMDApIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA5MCkKICNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fTE9BREVSX0RF
TEVHQVRFIDEKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAorI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAjZGVmaW5l
IFdURl9VU0VfVklERU9UT09MQk9YIDEKICNlbmRpZgogCkBAIC05NjksNyArOTY5LDcgQEAKICNk
ZWZpbmUgV1RGX1VTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IgMQog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oTUFDKQogI2RlZmluZSBXVEZfVVNFX0NPUkVBVURJTyAxCiAjZW5kaWYKIApAQCAtOTg3LDEx
ICs5ODcsMTEgQEAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oRUZMKQogI2RlZmlu
ZSBXVEZfVVNFX1VOSUZJRURfVEVYVF9DSEVDS0lORyAxCiAjZW5kaWYKLSNpZiAhUExBVEZPUk0o
SU9TKSAmJiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKQogI2RlZmluZSBXVEZfVVNF
X0FVVE9NQVRJQ19URVhUX1JFUExBQ0VNRU5UIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIC8qIFNvbWUgcGxhdGZvcm1z
IHByb3ZpZGUgVUkgZm9yIHN1Z2dlc3RpbmcgYXV0b2NvcnJlY3Rpb24uICovCiAjZGVmaW5lIFdU
Rl9VU0VfQVVUT0NPUlJFQ1RJT05fUEFORUwgMQogI2VuZGlmCkBAIC0xMDI5LDcgKzEwMjksNyBA
QAogI2RlZmluZSBfSEFTX0VYQ0VQVElPTlMgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA5MAorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCiAjZGVmaW5lIEhBVkVfTlNfQUNUSVZJVFkgMQogI2VuZGlmCiAKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
VGhyZWFkaW5nLmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBUaHJlYWRJZGVudGlmaWVy
IGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jCiAgICAgcmV0dXJuIGNyZWF0ZVRocmVhZEludGVybmFs
KHRocmVhZEVudHJ5UG9pbnQsIGNvbnRleHQsIG5hbWUpOwogfQogCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShXSU4pCiAKIC8vIEZvciBBQkkgY29tcGF0aWJpbGl0eSB3aXRoIFNhZmFyaSBv
biBNYWMgLyBXaW5kb3dzOiBTYWZhcmkgdXNlcyB0aGUgcHJpdmF0ZQogLy8gY3JlYXRlVGhyZWFk
KCkgYW5kIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKCkgZnVuY3Rpb25zIGRpcmVjdGx5IGFuZCB3
ZSBuZWVkCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9jZi9TdHJpbmdJbXBsQ0YuY3BwCShyZXZp
c2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDEzICsyOSwxMyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPG9iamMvb2JqYy1h
dXRvLmg+CiAjZW5kaWYKIAogc3RhdGljIGlubGluZSBib29sIGdhcmJhZ2VDb2xsZWN0aW9uRW5h
YmxlZCgpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRG
T1JNKE1BQykKICAgICByZXR1cm4gb2JqY19jb2xsZWN0aW5nRW5hYmxlZCgpOwogI2Vsc2UKICAg
ICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjQzNTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw4NCBAQAorMjAx
NC0wMi0xOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBs
aWZ5IFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgYW5kIHNpbWlsYXIgZXhwcmVzc2lv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTAy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvclBvaW50KToKKyAg
ICAgICAgKiBjb25maWcuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmNvcHlVUkwpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29t
bWFuZDo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRBcmNoaXZl
KToKKyAgICAgICAgKiBwYWdlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAgICAgICAqIHBh
Z2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6OmNhcHRpb25QcmVmZXJlbmNlcyk6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9EcmFnRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtTW91c2VF
dmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1v
dXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6c3VwcG9ydHNVcGRhdGVP
blNlY29uZGFyeVRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6ZGVzdHJveSk6CisgICAgICAgICogcGxhdGZvcm0vVGhy
ZWFkR2xvYmFsRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3Rp
bmF0aW9uTWFjLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVh
ZGVyTWFjLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFj
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRTaXplLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnN0YWxsZWRN
ZWRpYUVuZ2luZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXRpRnJvbU1JTUVUeXBlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpzdXBwb3J0c0V4dGVuc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmRyYXdCdWZmZXJzRVhUKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjo6RXh0ZW5z
aW9uczNET3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMu
bW06CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llSmFyQ0ZOZXQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGU6OnJlcG9ydEVycm9yVG9DbGllbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZXh0ZW5kVGV4dENvZGVjTWFwcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmFsbG93c0luZGVwZW5kZW50bHlDb21wb3NpdGVkRnJhbWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlv
bik6CisKIDIwMTQtMDItMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBQTEFURk9STShNQUMpIGlzIHRydWUgd2hlbiBidWlsZGluZyBmb3IgaU9TCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb25m
aWcuaAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvY29uZmlnLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAjZGVmaW5lIFdU
Rl9VU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHJl
dmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NjMsNyArMTk2Myw3IEBA
IEludFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmQKICAgICAgICAgICAgIG91
cnJlY3QgPSBib3VuZGluZ0JveDsKICAgICB9CiAgICAgCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICByZXR1cm4gbV9yZW5kZXJlci0+
dmlldygpLmZyYW1lVmlldygpLmNvbnRlbnRzVG9TY3JlZW4ocGl4ZWxTbmFwcGVkSW50UmVjdChv
dXJyZWN0KSk7CiAjZWxzZQogICAgIHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0KG91cnJlY3Qp
OwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplYwogICAgIExheW91dFBvaW50IHBvaW50UmVzdWx0OwogICAgIHdoaWxlICgxKSB7CiAg
ICAgICAgIExheW91dFBvaW50IG91cnBvaW50OwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRG
T1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIG91cnBvaW50ID0gZnJhbWVWaWV3
LT5zY3JlZW5Ub0NvbnRlbnRzKHBvaW50KTsKICNlbHNlCiAgICAgICAgIG91cnBvaW50ID0gcG9p
bnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAxNjQzNTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
Myw3ICs1NTMsNyBAQCBTdHJpbmcgRWRpdG9yOjpyZWFkUGxhaW5UZXh0RnJvbVBhc3RlYm9hCiAg
ICAgcmV0dXJuIHBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKHRleHQpOwogfQogCi0jaWYgIShQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpKQorI2lmICFQTEFURk9STShNQUMpCiAKIFN0cmlu
ZyBFZGl0b3I6OnBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRl
eHQmIHRleHQpCiB7CkBAIC0xNDAyLDcgKzE0MDIsNyBAQCB2b2lkIEVkaXRvcjo6Y29weVVSTChj
b25zdCBVUkwmIHVybCwgY29uCiAgICAgcGFzdGVib2FyZFVSTC51cmwgPSB1cmw7CiAgICAgcGFz
dGVib2FyZFVSTC50aXRsZSA9IHRpdGxlOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBmaWxsSW5Vc2VyVmlzaWJsZUZvcm0ocGFz
dGVib2FyZFVSTCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ckNvbW1hbmQuY3BwCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAxLDcgKzExMDEsNyBAQCBz
dGF0aWMgYm9vbCBleGVjdXRlU3dhcFdpdGhNYXJrKEZyYW1lJiBmCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0o
TUFDKQogc3RhdGljIGJvb2wgZXhlY3V0ZVRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbihGcmFt
ZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsK
ICAgICBmcmFtZS5lZGl0b3IoKS50YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKTsKQEAgLTEz
MjEsNyArMTMyMSw3IEBAIHN0YXRpYyBib29sIGVuYWJsZWRSZWRvKEZyYW1lJiBmcmFtZSwgRXYK
ICAgICByZXR1cm4gZnJhbWUuZWRpdG9yKCkuY2FuUmVkbygpOwogfQogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBib29sIGVu
YWJsZWRUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2UpCiB7CiAgICAgcmV0dXJuIGZyYW1lLmVkaXRvcigpLmNhbkNvcHlF
eGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CkBAIC0xNjI4LDcgKzE2MjgsNyBAQCBzdGF0aWMg
Y29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hCiAgICAgICAgIHsgIlBhc3RlR2xvYmFs
U2VsZWN0aW9uIiwgeyBleGVjdXRlUGFzdGVHbG9iYWxTZWxlY3Rpb24sIHN1cHBvcnRlZEZyb21N
ZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAg
ICAgICAgIHsgIlRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbiIsIHsgZXhlY3V0ZVRha2VGaW5k
U3RyaW5nRnJvbVNlbGVjdGlvbiwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJs
ZWRUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24sIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICNlbmRp
ZgogI2lmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQg
VHlwaW5nQ29tbWFuZDo6bWFya01pc3NwZWxsaW5nc0FmdGUKIHsKICAgICBGcmFtZSYgZnJhbWUg
PSB0aGlzLT5mcmFtZSgpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIWZyYW1lLmVkaXRvcigpLmlzQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkKICAgICAgICAgJiYgIWZyYW1lLmVkaXRvcigpLmlzQXV0b21h
dGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKCkKICAgICAgICAgJiYgIWZyYW1lLmVkaXRvcigp
LmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjMsNyArOTIzLDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6bG9hZEFyY2hpdmUoUGFzc1JlZlB0cgogICAgIFN1YnN0aXR1dGVE
YXRhIHN1YnN0aXR1dGVEYXRhKG1haW5SZXNvdXJjZS0+ZGF0YSgpLCBtYWluUmVzb3VyY2UtPm1p
bWVUeXBlKCksIG1haW5SZXNvdXJjZS0+dGV4dEVuY29kaW5nKCksIFVSTCgpKTsKICAgICAKICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtYWluUmVzb3VyY2UtPnVybCgpKTsKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHJlcXVl
c3QuYXBwbHlXZWJBcmNoaXZlSGFja0Zvck1haWwoKTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgJKHJldmlzaW9uIDE2NDM0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDEwICszMSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmICFQTEFURk9STShJT1MpICYmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCisjaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAK
IC8vIFNvbWUgcGxhdGZvcm1zIHByb3ZpZGUgVUkgZm9yIHN1Z2dlc3RpbmcgYWx0ZXJuYXRpdmUg
ZGljdGF0aW9uIHRleHQuCiAjZGVmaW5lIFdURl9VU0VfRElDVEFUSU9OX0FMVEVSTkFUSVZFUyAx
Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9u
IDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ0Nyw3ICsyNDQ3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1
cm5WZXJ0aWNhbFRpYwogfQogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShJT1MpCisjaWYgIVBMQVRGT1JNKE1BQykKIHZvaWQgRXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVBy
ZXBhcmVGb3JXaGVlbEV2ZW50cyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBIaXRU
ZXN0UmVzdWx0JiwgRWxlbWVudComLCBDb250YWluZXJOb2RlKiYsIFNjcm9sbGFibGVBcmVhKiYs
IGJvb2wmKQogewogfQpAQCAtMjc4NCw3ICsyNzg0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZUFjY2Vzc0tleShjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi0jaWYgIVBMQVRGT1JN
KE1BQykgfHwgUExBVEZPUk0oSU9TKQorI2lmICFQTEFURk9STShNQUMpCiBib29sIEV2ZW50SGFu
ZGxlcjo6bmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3MoKSBjb25zdAogewog
ICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHJldmlz
aW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
IAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiAhUExBVEZP
Uk0oSU9TKSkgfHwgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSykKKyNpZiBQTEFU
Rk9STShNQUMpIHx8IEhBVkUoTUVESUFfQUNDRVNTSUJJTElUWV9GUkFNRVdPUkspCiAjaW5jbHVk
ZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaCIKICNlbHNlCiAjaW5jbHVkZSAiQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5oIgpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgUGFnZUdyb3Vw
OjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2UKIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIFBhZ2VH
cm91cDo6Y2FwdGlvblByZWZlcmVuY2VzKCkKIHsKICAgICBpZiAoIW1fY2FwdGlvblByZWZlcmVu
Y2VzKSB7Ci0jaWYgKFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykpIHx8IEhBVkUoTUVE
SUFfQUNDRVNTSUJJTElUWV9GUkFNRVdPUkspCisjaWYgUExBVEZPUk0oTUFDKSB8fCBIQVZFKE1F
RElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLKQogICAgICAgICBtX2NhcHRpb25QcmVmZXJlbmNl
cyA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY+KCp0aGlz
KTsKICNlbHNlCiAgICAgICAgIG1fY2FwdGlvblByZWZlcmVuY2VzID0gc3RkOjptYWtlX3VuaXF1
ZTxDYXB0aW9uVXNlclByZWZlcmVuY2VzPigqdGhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5jcHAJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDcgKzQxLDcgQEAgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+IAogCiBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShT
Y3JvbGxpbmdTdGF0ZVRyZWUmIHN0YXRlVHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKICAg
ICA6IFNjcm9sbGluZ1N0YXRlTm9kZShTY3JvbGxpbmdOb2RlLCBzdGF0ZVRyZWUsIG5vZGVJRCkK
LSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgICwgbV92ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXIoMCkKICAgICAsIG1faG9yaXpvbnRhbFNj
cm9sbGJhclBhaW50ZXIoMCkKICNlbmRpZgpAQCAtNTcsNyArNTcsNyBAQCBTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0CiAKIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSYgc3RhdGVOb2RlLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKICAg
ICA6IFNjcm9sbGluZ1N0YXRlTm9kZShzdGF0ZU5vZGUsIGFkb3B0aXZlVHJlZSkKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV92
ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXIoc3RhdGVOb2RlLnZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRl
cigpKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlcihzdGF0ZU5vZGUuaG9yaXpv
bnRhbFNjcm9sbGJhclBhaW50ZXIoKSkKICNlbmRpZgpAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQg
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb28KICAgICBzZXRQcm9wZXJ0eUNoYW5n
ZWQoRm9vdGVyTGF5ZXIpOwogfQogCi0jaWYgIShQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1MpKQorI2lmICFQTEFURk9STShNQUMpCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0U2Nyb2xsYmFyUGFpbnRlcnNGcm9tU2Nyb2xsYmFycyhTY3JvbGxiYXIqLCBTY3JvbGxi
YXIqKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgJKHJldmlzaW9uIDE2NDM0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNyArMTI2LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IExheWVyUmVwcmVzZW50YXRpb24mIGZvb3RlckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9m
b290ZXJMYXllcjsgfQogICAgIHZvaWQgc2V0Rm9vdGVyTGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNl
bnRhdGlvbiYpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBM
QVRGT1JNKE1BQykKICAgICBTY3JvbGxiYXJQYWludGVyIHZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxTY3JvbGxiYXJQYWludGVyLmdldCgpOyB9CiAg
ICAgU2Nyb2xsYmFyUGFpbnRlciBob3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlcigpIGNvbnN0IHsg
cmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhclBhaW50ZXIuZ2V0KCk7IH0KICNlbmRpZgpAQCAt
MTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2hlYWRl
ckxheWVyOwogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9mb290ZXJMYXllcjsKIAotI2lmIFBM
QVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0
YWluUHRyPFNjcm9sbGJhclBhaW50ZXI+IG1fdmVydGljYWxTY3JvbGxiYXJQYWludGVyOwogICAg
IFJldGFpblB0cjxTY3JvbGxiYXJQYWludGVyPiBtX2hvcml6b250YWxTY3JvbGxiYXJQYWludGVy
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBpc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihJbnRQb2lu
dCk7CiAgICAgCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3Jt
V2hlZWxFdmVudFBoYXNlKSA9IDA7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCShyZXZp
c2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZQogICAgIGNhbGxPbk1haW5UaHJlYWQo
YmluZCgmQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVTY3JvbGxQb3Np
dGlvbkFmdGVyQXN5bmNTY3JvbGwsIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IuZ2V0KCksIG5vZGVJ
RCwgc2Nyb2xsUG9zaXRpb24sIGlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoKSwgc2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVl
OjpoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UpCiB7
CiAgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgJKHJldmlz
aW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVOb2RlKFNjcm9s
bGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24g
PSBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7Ci0jaWYgUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBvdmVycmlkZTsK
ICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgJKHJldmlzaW9uIDE2
NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNp
ZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgIGJv
b2wgY29udGFpbnNGaWxlcygpIGNvbnN0OwogICAgIHVuc2lnbmVkIG51bWJlck9mRmlsZXMoKSBj
b25zdDsKICAgICBpbnQgbW9kaWZpZXJLZXlTdGF0ZSgpIGNvbnN0OwotI2lmIFBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFzdGVib2FyZE5hbWU7IH0KICNl
bmRpZgogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAgICBEcmFnRGF0YVJlZiBtX3Bs
YXRmb3JtRHJhZ0RhdGE7CiAgICAgRHJhZ09wZXJhdGlvbiBtX2RyYWdnaW5nU291cmNlT3BlcmF0
aW9uTWFzazsKICAgICBEcmFnQXBwbGljYXRpb25GbGFncyBtX2FwcGxpY2F0aW9uRmxhZ3M7Ci0j
aWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBTdHJpbmcgbV9wYXN0ZWJvYXJkTmFtZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFdJTikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCShyZXZpc2lvbiAxNjQzNDcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTUsNyArOTUsNyBAQCBTdHJpbmcgZW5jb2RlRm9yRmlsZU5hbWUoY29uc3QgU3RyaW5n
JiBpCiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi0jaWYgIVBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oSU9TKQorI2lmICFQTEFURk9STShNQUMpCiAKIHZvaWQgc2V0TWV0YWRh
dGFVUkwoU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAko
cmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFuCiB7CiB9CiAKLSNpZiAhUExBVEZPUk0oTUFD
KSB8fCBQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKE1BQykKIAogdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6Omluc3RhbGwoKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp1
bmluc3RhbGwoKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgJKHJl
dmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAko
d29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBAQCBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRl
bnQgewogc3RydWN0IFBhc3RlYm9hcmRVUkwgewogICAgIFVSTCB1cmw7CiAgICAgU3RyaW5nIHRp
dGxlOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShN
QUMpCiAgICAgU3RyaW5nIHVzZXJWaXNpYmxlRm9ybTsKICNlbmRpZgogfTsKQEAgLTExOSw3ICsx
MTksNyBAQCBwdWJsaWM6CiAKIHN0cnVjdCBQYXN0ZWJvYXJkUGxhaW5UZXh0IHsKICAgICBTdHJp
bmcgdGV4dDsKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGJvb2wgaXNVUkw7CiAjZW5kaWYKIH07CkBAIC0xODAsNyArMTgwLDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgcmVzb3VyY2VNSU1FVHlwZShjb25zdCBOU1N0cmlu
ZyAqbWltZVR5cGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogCkBAIC0yMjMsNyArMjIzLDcg
QEAgcHJpdmF0ZToKICAgICBsb25nIG1fY2hhbmdlQ291bnQ7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgU3RyaW5n
IG1fcGFzdGVib2FyZE5hbWU7CiAgICAgbG9uZyBtX2NoYW5nZUNvdW50OwogI2VuZGlmCkBAIC0y
NDAsNyArMjQwLDcgQEAgcHJpdmF0ZToKIGV4dGVybiBOU1N0cmluZyAqV2ViQXJjaGl2ZVBib2Fy
ZFR5cGU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNp
ZiBQTEFURk9STShNQUMpCiBleHRlcm4gY29uc3QgY2hhciogY29uc3QgV2ViQXJjaGl2ZVBib2Fy
ZFR5cGU7CiBleHRlcm4gY29uc3QgY2hhciogY29uc3QgV2ViVVJMTmFtZVBib2FyZFR5cGU7CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVu
dC5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bU1vdXNlRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fYnV0dG9uKE5vQnV0dG9uKQogICAgICAgICAgICAg
LCBtX2NsaWNrQ291bnQoMCkKICAgICAgICAgICAgICwgbV9tb2RpZmllckZsYWdzKDApCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAg
ICAgICAgICwgbV9ldmVudE51bWJlcigwKQogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgICAgICAg
ICAgLCBtX2RpZEFjdGl2YXRlV2ViVmlldyhmYWxzZSkKQEAgLTY5LDcgKzY5LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2J1dHRvbihidXR0b24pCiAgICAgICAgICAg
ICAsIG1fY2xpY2tDb3VudChjbGlja0NvdW50KQogICAgICAgICAgICAgLCBtX21vZGlmaWVyRmxh
Z3MoMCkKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0o
TUFDKQogICAgICAgICAgICAgLCBtX2V2ZW50TnVtYmVyKDApCiAjZWxpZiBQTEFURk9STShXSU4p
CiAgICAgICAgICAgICAsIG1fZGlkQWN0aXZhdGVXZWJWaWV3KGZhbHNlKQpAQCAtMTAxLDcgKzEw
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50KGNv
bnN0IEV2YXNfRXZlbnRfTW91c2VfTW92ZSosIEludFBvaW50KTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAg
aW50IGV2ZW50TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudE51bWJlcjsgfQogI2VuZGlm
CiAKQEAgLTEyMSw3ICsxMjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBt
X2NsaWNrQ291bnQ7CiAgICAgICAgIHVuc2lnbmVkIG1fbW9kaWZpZXJGbGFnczsKIAotI2lmIFBM
QVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAg
IGludCBtX2V2ZW50TnVtYmVyOwogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBib29sIG1f
ZGlkQWN0aXZhdGVXZWJWaWV3OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1QYXN0ZWJvYXJkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1QYXN0ZWJvYXJkLmgJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMp
CiBPQkpDX0NMQVNTIE5TUGFzdGVib2FyZDsKICNlbmRpZgogCkBAIC04Miw3ICs4Miw3IEBAIHB1
YmxpYzoKICAgICBpbnQgY291bnQoKTsKIAogcHJpdmF0ZToKLSNpZiBQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxOU1Bhc3Rl
Ym9hcmQ+IG1fcGFzdGVib2FyZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAkocmV2aXNpb24gMTY0MzQ3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIE9CSkNfQ0xB
U1MgTlNTY3JlZW47CiBPQkpDX0NMQVNTIE5TV2luZG93OwogI2lmZGVmIE5TR0VPTUVUUllfVFlQ
RVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKTsKICAg
ICB2b2lkIHNjcmVlbkNvbG9yUHJvZmlsZShDb2xvclByb2ZpbGUmKTsKIAotI2lmIFBMQVRGT1JN
KE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgTlNTY3JlZW4g
KnNjcmVlbkZvcldpbmRvdyhOU1dpbmRvdyAqKTsKIAogICAgIEZsb2F0UmVjdCB0b1VzZXJTcGFj
ZShjb25zdCBOU1JlY3QmLCBOU1dpbmRvdyAqZGVzdGluYXRpb24pOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDksNyArNTQ5
LDcgQEAgYm9vbCBTY3JvbGxiYXI6OnN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcgogewogICAgIC8v
IEl0J3MgdW5mb3J0dW5hdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGRvbmUgd2l0aCBhbiBpZmRl
Zi4gSWRlYWxseSB0aGVyZSB3b3VsZCBiZSBhIHdheSB0byBmZWF0dXJlLWRldGVjdAogICAgIC8v
IHRoZSBuZWNlc3Nhcnkgc3VwcG9ydCB3aXRoaW4gQXBwS2l0LgotI2lmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpICYmICFQTEFURk9STShJT1MpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMDAwCiAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEgPyAhbV9zY3JvbGxhYmxlQXJl
YS0+dXBkYXRlc1Njcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJlYWQoKSA6IGZhbHNlOwogI2Vs
c2UKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRk
ZW5UZXJtaW5hdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1
ZGRlblRlcm1pbmF0aW9uLmgJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1N1ZGRlblRlcm1pbmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9u
KCk7CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCi0jaWYgUExBVEZPUk0o
SU9TKSB8fCAhUExBVEZPUk0oTUFDKQorI2lmICFQTEFURk9STShNQUMpCiAgICAgaW5saW5lIHZv
aWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgeyB9CiAgICAgaW5saW5lIHZvaWQgZW5hYmxl
U3VkZGVuVGVybWluYXRpb24oKSB7IH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1dURlRocmVhZERhdGEuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIlRleHRDb2RlQ01hYy5oIgogI2Vu
ZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgVGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0
YSgpCiAgICAgLCBtX2lzTWFpblRocmVhZChpc01haW5UaHJlYWQoKSkKICNlbmRpZgogICAgICwg
bV9jYWNoZWRDb252ZXJ0ZXJJQ1UoYWRvcHRQdHIobmV3IElDVUNvbnZlcnRlcldyYXBwZXIpKQot
I2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAg
ICAgLCBtX2NhY2hlZENvbnZlcnRlclRFQyhhZG9wdFB0cihuZXcgVEVDQ29udmVydGVyV3JhcHBl
cikpCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtODUsNyArODUsNyBAQCBUaHJl
YWRHbG9iYWxEYXRhOjp+VGhyZWFkR2xvYmFsRGF0YSgpCiAKIHZvaWQgVGhyZWFkR2xvYmFsRGF0
YTo6ZGVzdHJveSgpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lm
IFBMQVRGT1JNKE1BQykKICAgICBtX2NhY2hlZENvbnZlcnRlclRFQy5jbGVhcigpOwogI2VuZGlm
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgJKHJl
dmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgSUNVQ29udmVydGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVySUNVKCkgeyBy
ZXR1cm4gKm1fY2FjaGVkQ29udmVydGVySUNVOyB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBURUNDb252ZXJ0ZXJXcmFw
cGVyJiBjYWNoZWRDb252ZXJ0ZXJURUMoKSB7IHJldHVybiAqbV9jYWNoZWRDb252ZXJ0ZXJURUM7
IH0KICNlbmRpZgogCkBAIC05MSw3ICs5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICBPd25QdHI8SUNVQ29udmVydGVyV3JhcHBlcj4gbV9jYWNoZWRDb252ZXJ0ZXJJQ1U7CiAK
LSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgICAgICBPd25QdHI8VEVDQ29udmVydGVyV3JhcHBlcj4gbV9jYWNoZWRDb252ZXJ0ZXJURUM7
CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlv
RGVzdGluYXRpb25NYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1B
QykKIAogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb25NYWMuaCIKIApAQCAtMTgzLDYgKzE4Myw2
IEBAIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25NYWM6OmlucHV0UHJvYygKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9T
KQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8p
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVhZGVy
TWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9GaWxlUmVhZGVyTWFjLmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogCiAjaW5jbHVk
ZSAiQXVkaW9GaWxlUmVhZGVyTWFjLmgiCiAKQEAgLTI0OSw2ICsyNDksNiBAQCBQYXNzUmVmUHRy
PEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5j
cHAJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb1Nlc3Npb25NYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCiAKLSNpZiBVU0Uo
QVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFVT
RShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShNQUMpCiAKICNpbmNsdWRlICJGbG9hdENvbnZl
cnNpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0xNjQsNCArMTY0LDQgQEAgdm9pZCBB
dWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpegogCiB9CiAKLSNlbmRpZiAvLyBVU0Uo
QVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2VuZGlm
IC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3IuaAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTks
NyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Kj4g
bV9jbGllbnRzOwogICAgIEhhc2hTZXQ8RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Kj4qIG1f
Y2xpZW50c1RvQmVOb3RpZmllZDsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShNQUMpCiBwdWJsaWM6CiAgICAgdm9pZCBkaXNwbGF5TGlua0ZpcmVk
KGRvdWJsZSBub3dTZWNvbmRzLCBkb3VibGUgb3V0cHV0VGltZVNlY29uZHMpOwogcHJpdmF0ZToK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgJ
KHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTMgKzM1LDEzIEBACiB0eXBlZGVmIHN0
cnVjdCBDR1BvaW50IENHUG9pbnQ7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19T
QU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUG9pbnQgTlNQb2ludDsK
ICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNQb2ludCBOU1BvaW50OwogI2VuZGlmCi0jZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgog
ICAgIG9wZXJhdG9yIENHUG9pbnQoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUykKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKQogICAgIEZsb2F0UG9pbnQoY29uc3Qg
TlNQb2ludCYpOwogICAgIG9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdDsKICNlbmRpZgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgJKHJldmlzaW9u
IDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMyArMzgsMTMgQEAKIHR5cGVkZWYgc3RydWN0IENHUmVj
dCBDR1JlY3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykK
KyNpZiBQTEFURk9STShNQUMpCiAjaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VP
TUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBOU1JlY3Q7CiAjZWxzZQogdHlwZWRl
ZiBzdHJ1Y3QgX05TUmVjdCBOU1JlY3Q7CiAjZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShJT1MpCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgVVNFKENB
SVJPKQogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZSBjYWlyb19yZWN0YW5nbGVfdDsK
QEAgLTE3MSw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dSZWN0KCkgY29uc3Q7
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgIWRlZmlu
ZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCisjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9U
WVBFUykKICAgICBGbG9hdFJlY3QoY29uc3QgTlNSZWN0Jik7CiAgICAgb3BlcmF0b3IgTlNSZWN0
KCkgY29uc3Q7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0U2l6ZS5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTMgKzM5LDEz
IEBACiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgQ0dTaXplOwogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogI2lmZGVmIE5TR0VP
TUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1Np
emUgTlNTaXplOwogI2Vsc2UKIHR5cGVkZWYgc3RydWN0IF9OU1NpemUgTlNTaXplOwogI2VuZGlm
Ci0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTMsNyArMTEzLDcgQEAg
cHVibGljOgogICAgIG9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCiAgICAgZXhwbGljaXQg
RmxvYXRTaXplKGNvbnN0IE5TU2l6ZSAmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNp
bmNlIGl0J3MgbG9zc3kKICAgICBvcGVyYXRvciBOU1NpemUoKSBjb25zdDsKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAkocmV2aXNpb24g
MTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgQ0dS
ZWN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYg
UExBVEZPUk0oTUFDKQogI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZ
X1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNSZWN0OwogI2Vsc2UKQEAgLTE5Myw3ICsx
OTMsNyBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQ0dSZWN0KCkgY29uc3Q7CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgIWRlZmluZWQoTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAh
ZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKICAgICBv
cGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNlbmRpZgogCkBAIC0yNDgsNyArMjQ4LDcgQEAgaW5s
aW5lIGJvb2wgSW50UmVjdDo6aXNJbmZpbml0ZSgpIGNvbnN0CiBJbnRSZWN0IGVuY2xvc2luZ0lu
dFJlY3QoY29uc3QgQ0dSZWN0Jik7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykgJiYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVU
UllfVFlQRVMpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVT
X1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKIEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25z
dCBOU1JlY3QmKTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbnRTaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW50U2l6ZS5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAK
IHR5cGVkZWYgc3RydWN0IENHU2l6ZSBDR1NpemU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAjaWZkZWYgTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHU2l6ZSBO
U1NpemU7CiAjZWxzZQpAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBD
R1NpemUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UykKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9B
U19DR0dFT01FVFJZX1RZUEVTKQogICAgIGV4cGxpY2l0IEludFNpemUoY29uc3QgTlNTaXplICYp
OyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAgIG9wZXJh
dG9yIE5TU2l6ZSgpIGNvbnN0OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxNjQzNDcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyNCw3ICsyMjQsNyBAQCBzdGF0aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9y
eSo+JiBpbnN0CiAgICAgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChTZXR0aW5nczo6aXNRVEtpdEVuYWJs
ZWQoKSkKICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJlZ2lzdGVyTWVkaWFFbmdp
bmUoYWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAkocmV2aXNpb24gMTY0
MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
Ry5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNSw3ICs0MDUsNyBAQCBzdGF0aWMgaW5saW5lIENG
U3RyaW5nUmVmIGpwZWdVVEkoKQogICAgIAogc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
dXRpRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7Ci0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICByZXR1cm4gYWRv
cHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKGtVVFRhZ0NsYXNzTUlN
RVR5cGUsIG1pbWVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIDApKTsKICNlbHNlCiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsgLy8gSXQgaXMgdW5jbGVhciBpZiBDRlNUUiBpcyB0aHJl
YWRzYWZlLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9j
dW1lbnRJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBACiAKICNpZiBVU0UoQ0cpCiAKLSNpZiBQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogI2RlZmluZSBXVEZfVVNFX1BE
RktJVF9GT1JfUERGRE9DVU1FTlRJTUFHRSAxCiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbQkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSwxMyArMzksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gVGhlc2UgQ29y
ZVRleHQgVGV4dCBTcGFjaW5nIGZlYXR1cmUgc2VsZWN0b3JzIGFyZSBub3QgZGVmaW5lZCBpbiBD
b3JlVGV4dC4KIGVudW0gVGV4dFNwYWNpbmdDVEZlYXR1cmVTZWxlY3RvciB7IFRleHRTcGFjaW5n
UHJvcG9ydGlvbmFsLCBUZXh0U3BhY2luZ0Z1bGxXaWR0aCwgVGV4dFNwYWNpbmdIYWxmV2lkdGgs
IFRleHRTcGFjaW5nVGhpcmRXaWR0aCwgVGV4dFNwYWNpbmdRdWFydGVyV2lkdGggfTsKIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiB2b2lk
IEZvbnRQbGF0Zm9ybURhdGE6OmxvYWRGb250KE5TRm9udCogbnNGb250LCBmbG9hdCwgTlNGb250
KiYgb3V0TlNGb250LCBDR0ZvbnRSZWYmIGNnRm9udCkKIHsKICAgICBvdXROU0ZvbnQgPSBuc0Zv
bnQ7CiAgICAgY2dGb250ID0gQ1RGb250Q29weUdyYXBoaWNzRm9udCh0b0NURm9udFJlZihuc0Zv
bnQpLCAwKTsKIH0KLSNlbmRpZiAgLy8gUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQor
I2VuZGlmICAvLyBQTEFURk9STShNQUMpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShOU0ZvbnQgKm5zRm9udCwgZmxvYXQgc2l6ZSwgYm9v
bCBpc1ByaW50ZXJGb250LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1
ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFy
aWFudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGlj
c0NvbnRleHRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbQkocmV2aXNpb24gMTY0MzQ3KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3TGluZUZvckRvY3VtZW4KICAgICAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgICAgICB9
Ci0jaWYgIVBMQVRGT1JNKElPUykgJiYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykK
ICAgICAgICAgLy8gVG8gc3VwcG9ydCBjb3JyZWN0aW9uIHBhbmVsLgogICAgICAgICBjYXNlIERv
Y3VtZW50TWFya2VyQXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudExpbmVTdHlsZToKICAgICAgICAg
Y2FzZSBEb2N1bWVudE1hcmtlckRpY3RhdGlvbkFsdGVybmF0aXZlc0xpbmVTdHlsZToKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA5LDcgKzIwOSw3IEBAIGJvb2wgRXh0ZW5zaW9uczNET3BlbkdM
OjpzdXBwb3J0c0V4dGVuc2kKICAgICAgICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5j
b250YWlucygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7CiAKICAgICBpZiAo
bmFtZSA9PSAiR0xfRVhUX2RyYXdfYnVmZmVycyIpIHsKLSNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICByZXR1cm4gbV9hdmFpbGFi
bGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9BUkJfZHJhd19idWZmZXJzIik7CiAjZWxzZQogICAg
ICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHN1cHBvcnQgZm9yIG90aGVyIHBsYXRmb3Jtcy4KQEAg
LTIyOCw3ICsyMjgsNyBAQCBib29sIEV4dGVuc2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNp
CiB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNv
bnN0IEdDM0RlbnVtKiBidWZzKQogewogICAgIC8vICBGSVhNRTogaW1wbGVtZW50IHN1cHBvcnQg
Zm9yIG90aGVyIHBsYXRmb3Jtcy4KLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIDo6Z2xEcmF3QnVmZmVyc0FSQihuLCBidWZzKTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKG4pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTENvbW1vbi5jcHAJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MSw3ICs3MSw3IEBAIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjo6RXh0ZW5z
aW9uczNET3AKICAgICBpZiAodmVuZG9yQ29tcG9uZW50cy5jb250YWlucygiaW50ZWwiKSkKICAg
ICAgICAgbV9pc0ludGVsID0gdHJ1ZTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKG1faXNBTUQgfHwgbV9pc0ludGVsKQog
ICAgICAgICBtX3JlcXVpcmVzQnVpbHRJbkZ1bmN0aW9uRW11bGF0aW9uID0gdHJ1ZTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQkocmV2aXNpb24g
MTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBv
cnQgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiS2V5RXZlbnRDb2NvYS5o
IgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtNzgsNCArNzgsNCBAQCB2b2lkIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0
ZU5vdGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RhdGVOb3RpZmllci5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
CisjaWYgUExBVEZPUk0oTUFDKQogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1
ZGUgIlRpbWVyLmgiCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZnlO
ZXR3b3JrU3RhdGVDaGFuZ2UoKTsKICAgICB2b2lkIHVwZGF0ZVN0YXRlKCk7CiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQg
bmV0d29ya1N0YXRlQ2hhbmdlVGltZXJGaXJlZChUaW1lcjxOZXR3b3JrU3RhdGVOb3RpZmllcj4m
KTsKIAogICAgIHN0YXRpYyB2b2lkIGR5bmFtaWNTdG9yZUNhbGxiYWNrKFNDRHluYW1pY1N0b3Jl
UmVmLCBDRkFycmF5UmVmIGNoYW5nZWRLZXlzLCB2b2lkICppbmZvKTsgCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNw
cAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9Db29raWVKYXJDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJTikgfHwgKCFQTEFU
Rk9STShJT1MpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA8PSAxMDkwKQorI2lmIFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDkwKQogZW51bSB7CiAgICAgQ0ZIVFRQ
Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeUV4Y2x1c2l2ZWx5RnJvbU1haW5Eb2N1bWVudERvbWFp
biA9IDMKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwNCw3ICsxMDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCB1
cGRhdGVGcm9tRGVsZWdhdGVQcmVzZXJ2aW5nT2xkSFRUUEJvZHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICB2b2lkIGFwcGx5V2ViQXJjaGl2ZUhhY2tGb3JNYWlsKCk7CiAjZW5k
aWYKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCShyZXZp
c2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdENGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM3LDcgKzMzNyw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbigKICNlbmRpZgogfQogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0OjphcHBseVdlYkFyY2hpdmVIYWNrRm9yTWFpbCgpCiB7CiAgICAgLy8g
SGFjayBiZWNhdXNlIE1haWwgY2hlY2tzIGZvciB0aGlzIHByb3BlcnR5IHRvIGRldGVjdCBkYXRh
IC8gYXJjaGl2ZSBsb2FkcwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAJKHJldmlz
aW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0
U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzgsNyArNTc4LDcgQEAg
dm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlcG9ydEVycm9yVG9DbAogICAgIENGSW5kZXggZXJy
b3JDb2RlID0gQ0ZFcnJvckdldENvZGUoZXJyb3IpOwogICAgIFN0cmluZyBkZXNjcmlwdGlvbjsK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMp
CiAKICNpZiBDT01QSUxFUihDTEFORykKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Z1JlZ2lzdHJ5LmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcg
KzQyLDcgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0
cmluZ0V4dHJhcy5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lm
IFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJUZXh0Q29kZWNNYWMuaCIKICNlbmRpZgogCkBAIC0y
NzksNyArMjc5LDcgQEAgc3RhdGljIHZvaWQgZXh0ZW5kVGV4dENvZGVjTWFwcygpCiAgICAgVGV4
dENvZGVjSUNVOjpyZWdpc3RlckVuY29kaW5nTmFtZXMoYWRkVG9UZXh0RW5jb2RpbmdOYW1lTWFw
KTsKICAgICBUZXh0Q29kZWNJQ1U6OnJlZ2lzdGVyQ29kZWNzKGFkZFRvVGV4dENvZGVjTWFwKTsK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMp
CiAgICAgVGV4dENvZGVjTWFjOjpyZWdpc3RlckVuY29kaW5nTmFtZXMoYWRkVG9UZXh0RW5jb2Rp
bmdOYW1lTWFwKTsKICAgICBUZXh0Q29kZWNNYWM6OnJlZ2lzdGVyQ29kZWNzKGFkZFRvVGV4dENv
ZGVjTWFwKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTEyLDcgKzE5MTIsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aGFzM0RD
b250ZW50CiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphbGxvd3NJbmRlcGVuZGVudGx5
Q29tcG9zaXRlZEZyYW1lcyhjb25zdCBGcmFtZVZpZXcqIHZpZXcpCiB7Ci0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBmcmFtZXMg
YXJlIG9ubHkgaW5kZXBlbmRlbnRseSBjb21wb3NpdGVkIGluIE1hYyBwcmUtV2ViS2l0Mi4KICAg
ICByZXR1cm4gdmlldy0+cGxhdGZvcm1XaWRnZXQoKTsKICNlbHNlCkBAIC0yMzgzLDEwICsyMzgz
LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcAogICAgIHJldHVy
biAoYW5pbUNvbnRyb2xsZXIuaXNSdW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcigmcmVuZGVyZXIs
IENTU1Byb3BlcnR5T3BhY2l0eSkKICAgICAgICAgICAgICYmIChpbkNvbXBvc2l0aW5nTW9kZSgp
IHx8IChtX2NvbXBvc2l0aW5nVHJpZ2dlcnMgJiBDaHJvbWVDbGllbnQ6OkFuaW1hdGVkT3BhY2l0
eVRyaWdnZXIpKSkKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaWYgUExBVEZPUk0oSU9TKSB8
fCAhUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
ODAKLSAgICAgICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8xMDkwNzI1MT4gLSBXZWJLaXQyIGRv
ZXNuJ3Qgc3VwcG9ydCBDQSBhbmltYXRpb25zIG9mIENJIGZpbHRlcnMgb24gTGlvbiBhbmQgYmVs
b3cKICAgICAgICAgICAgIHx8IGFuaW1Db250cm9sbGVyLmlzUnVubmluZ0FuaW1hdGlvbk9uUmVu
ZGVyZXIoJnJlbmRlcmVyLCBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcikKLSNlbmRpZiAvLyBQTEFU
Rk9STShJT1MpIHx8ICFQTEFURk9STShNQUMpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA4MAogI2VuZGlmIC8vIENTU19GSUxURVJTCiAgICAgICAgICAgICB8fCBhbmlt
Q29udHJvbGxlci5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKCZyZW5kZXJlciwgQ1NTUHJv
cGVydHlXZWJraXRUcmFuc2Zvcm0pOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTY0MzU3
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
NDMgQEAKKzIwMTQtMDItMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAg
ICAgICBTaW1wbGlmeSBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpIGFuZCBzaW1pbGFy
IGV4cHJlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjkwMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBsdWdpblByb2Nlc3M6Om5ldHNjYXBlUGx1Z2luTW9kdWxlKToKKyAgICAgICAgKiBTaGFyZWQv
QVBJL2MvV0tEZXByZWNhdGVkRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cGFnZURpZFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAg
ICAgKFdLQnVuZGxlUGFnZVNldFRvcE92ZXJoYW5nSW1hZ2UpOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2V0Qm90dG9tT3ZlcmhhbmdJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1BhZ2VCYW5uZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6bWFpbkZyYW1lRGlkTGF5b3V0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRy
YXdSZWN0VG9JbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdQYWdlc1RvUERG
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBjb25maWcuaDoKKwogMjAxNC0wMi0xOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFBMQVRGT1JNKE1BQykgaXMgdHJ1ZSB3aGVuIGJ1aWxkaW5nIGZv
ciBpT1MKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL2NvbmZpZy5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9j
b25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsMTMgKzc2LDEzIEBACiAjZW5kaWYKIAogI2lm
bmRlZiBFTkFCTEVfU0VDX0lURU1fU0hJTQotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykKKyNpZiBQTEFURk9STShNQUMpCiAjZGVmaW5lIEVOQUJMRV9TRUNfSVRFTV9TSElNIDEK
ICNlbmRpZgogI2VuZGlmCiAKICNpZm5kZWYgSEFWRV9XSU5ET1dfU0VSVkVSX09DQ0xVU0lPTl9O
T1RJRklDQVRJT05TCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyNpZiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogI2RlZmluZSBIQVZFX1dJ
TkRPV19TRVJWRVJfT0NDTFVTSU9OX05PVElGSUNBVElPTlMgMQogI2VuZGlmCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAko
cmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNs
dWRlIDxjcnRfZXh0ZXJucy5oPgogI2VuZGlmCiAKQEAgLTEwNiw3ICsxMDYsNyBAQCBOZXRzY2Fw
ZVBsdWdpbk1vZHVsZSogUGx1Z2luUHJvY2Vzczo6bmV0CiAgICAgICAgIEFTU0VSVCghbV9wbHVn
aW5QYXRoLmlzTnVsbCgpKTsKICAgICAgICAgbV9wbHVnaW5Nb2R1bGUgPSBOZXRzY2FwZVBsdWdp
bk1vZHVsZTo6Z2V0T3JDcmVhdGUobV9wbHVnaW5QYXRoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChtX3BsdWdp
bk1vZHVsZSkgewogICAgICAgICAgICAgaWYgKG1fcGx1Z2luTW9kdWxlLT5wbHVnaW5RdWlya3Mo
KS5jb250YWlucyhQbHVnaW5RdWlya3M6OlByb2duYW1lU2hvdWxkQmVXZWJLaXRQbHVnaW5Ib3N0
KSkKICAgICAgICAgICAgICAgICAqY29uc3RfY2FzdDxjb25zdCBjaGFyKio+KF9OU0dldFByb2du
YW1lKCkpID0gIldlYktpdFBsdWdpbkhvc3QiOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3
ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2RlZmluZSBERUZBVUxUX1dFQktJVF9TQ1JP
TExfQU5JTUFUT1JfRU5BQkxFRCBmYWxzZQogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKSAm
JiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5
MAorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDkwCiAjZGVmaW5lIERFRkFVTFRfU0NSRUVOX0ZPTlRfU1VCU1RJVFVUSU9OX0VOQUJMRUQg
ZmFsc2UKICNlbHNlCiAjZGVmaW5lIERFRkFVTFRfU0NSRUVOX0ZPTlRfU1VCU1RJVFVUSU9OX0VO
QUJMRUQgdHJ1ZQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGVwcmVjYXRl
ZEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLRGVwcmVjYXRlZEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RlcHJlY2F0ZWRGdW5jdGlvbnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV0tNdXRhYmxlRGljdGlvbmFyeS5oIgog
I2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRl
TWFjLmgiCiAjZW5kaWYKIApAQCAtNDcsNyArNDcsNyBAQCBXS19FWFBPUlQgYm9vbCBXS0RpY3Rp
b25hcnlBZGRJdGVtKFdLTXV0CiBXS19FWFBPUlQgYm9vbCBXS0RpY3Rpb25hcnlJc011dGFibGUo
V0tEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnkpOwogV0tfRVhQT1JUIHZvaWQgV0tEaWN0aW9uYXJ5
UmVtb3ZlSXRlbShXS011dGFibGVEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnksIFdLU3RyaW5nUmVm
IGtleSk7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oTUFDKQogV0tfRVhQT1JUIENHQ29udGV4dFJlZiBXS0dyYXBoaWNzQ29udGV4dEdldENHQ29u
dGV4dChXS0dyYXBoaWNzQ29udGV4dFJlZiBncmFwaGljc0NvbnRleHQpOwogI2VuZGlmCiB9CkBA
IC03Niw3ICs3Niw3IEBAIHZvaWQgV0tEaWN0aW9uYXJ5UmVtb3ZlSXRlbShXS011dGFibGVEaWMK
ICAgICB0b0ltcGwoZGljdGlvbmFyeVJlZiktPnJlbW92ZSh0b0ltcGwoa2V5UmVmKS0+c3RyaW5n
KCkpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRG
T1JNKE1BQykKIENHQ29udGV4dFJlZiBXS0dyYXBoaWNzQ29udGV4dEdldENHQ29udGV4dChXS0dy
YXBoaWNzQ29udGV4dFJlZiBncmFwaGljc0NvbnRleHQpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDE2NDM0
NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpID0gMDsKIAot
I2lmICFQTEFURk9STShJT1MpICYmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpCiAg
ICAgdmlydHVhbCB2b2lkIHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRX
aW5kb3dIYXNGb2N1cykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBBdHRyaWJ1dGVkU3RyaW5nJiwgY29uc3QgRGljdGlv
bmFyeVBvcHVwSW5mbyYpID0gMDsKQEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBWZWN0b3I8U3RyaW5nPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0
aW9uQ29udGV4dCkgPSAwOwogI2VuZGlmIC8vIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQog
I2VuZGlmIC8vIFVTRShBUFBLSVQpCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykgJiYgUExBVEZP
Uk0oTUFDKQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIFBMQVRGT1JNKElPUykKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1
ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UXVhZD4mIGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRS
YWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBi
b3R0b21SaWdodFJhZGl1cykgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00ODgsNyArNDg4LDcgQEAgcHJpdmF0ZToKICAg
ICBIVFRQQ29va2llQWNjZXB0UG9saWN5IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2VuaGFuY2VkQWNjZXNzaWJpbGl0
eU9ic2VydmVyOwogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hdXRvbWF0aWNUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYXV0
b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAkocmV2aXNpb24gMTY0
MzQ3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldLR2VvbWV0cnkuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAg
LTkzLDcgKzkzLDcgQEAgcHVibGljOgogICAgIHZvaWQgaGlkZSgpOwogICAgIHZvaWQgY2xvc2Uo
KTsKICAgICAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CiAgICAgdm9pZCB1cGRh
dGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNvbnN0OwogICAgIHZvaWQgaW5zcGVjdGVkVmlld0Zy
YW1lRGlkQ2hhbmdlKENHRmxvYXQgPSAwKTsKQEAgLTIyNCw3ICsyMjQsNyBAQCBwcml2YXRlOgog
CiAgICAgQXR0YWNobWVudFNpZGUgbV9hdHRhY2htZW50U2lkZTsKIAotI2lmIFBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdL
V2ViSW5zcGVjdG9yV0tWaWV3PiBtX2luc3BlY3RvclZpZXc7CiAgICAgUmV0YWluUHRyPE5TV2lu
ZG93PiBtX2luc3BlY3RvcldpbmRvdzsKICAgICBSZXRhaW5QdHI8TlNCdXR0b24+IG1fZG9ja0Jv
dHRvbUJ1dHRvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODU3LDcgKzg1Nyw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRDaGFuZ2VCYWNrRm9yd2FyZEwKIHsKICAgICBtX2xvYWRlckNsaWVudC0+ZGlk
Q2hhbmdlQmFja0ZvcndhcmRMaXN0KHRoaXMsIGFkZGVkLCBzdGQ6Om1vdmUocmVtb3ZlZCkpOwog
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBtX3BhZ2VDbGllbnQuY2xlYXJDdXN0b21Td2lwZVZpZXdzKCk7CiAjZW5kaWYKIH0KQEAg
LTI4MzYsNyArMjgzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VWaWV3cG9ydFBy
b3AKIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKCkKIHsKICAgICBtX3VpQ2xpZW50
LT5wYWdlRGlkU2Nyb2xsKHRoaXMpOwotI2lmICFQTEFURk9STShJT1MpICYmIFBMQVRGT1JNKE1B
QykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChSZWFzb25G
b3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiAjZW5kaWYKIH0KQEAgLTM5MjUs
NyArMzkyNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlQWZ0ZXJQcm9jZXMKICAg
ICAvLyBGSVhNRTogTm90aWZ5IGlucHV0IG1ldGhvZHMgYWJvdXQgYWJhbmRvbmVkIGNvbXBvc2l0
aW9uLgogICAgIG1fdGVtcG9yYXJpbHlDbG9zZWRDb21wb3NpdGlvbiA9IGZhbHNlOwogCi0jaWYg
IVBMQVRGT1JNKElPUykgJiYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBk
aXNtaXNzQ29ycmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJ
Z25vcmVkKTsKICAgICBtX3BhZ2VDbGllbnQuZGlzbWlzc0RpY3Rpb25hcnlMb29rdXBQYW5lbCgp
OwogI2VuZGlmCkBAIC0zOTY1LDcgKzM5NjUsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
IFdlYlBhZ2VQcm94eTo6CiAgICAgcGFyYW1ldGVycy5iYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBh
Z2UgPSBtX2JhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTsKICAgICBwYXJhbWV0ZXJzLmxheWVy
SG9zdGluZ01vZGUgPSBtX2xheWVySG9zdGluZ01vZGU7CiAKLSNpZiBQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBhcmFtZXRlcnMuY29sb3JT
cGFjZSA9IG1fcGFnZUNsaWVudC5jb2xvclNwYWNlKCk7CiAjZW5kaWYKIApAQCAtNDM1OCw3ICs0
MzU4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEF1dG9TaXppbmdTaG91bGRFeAogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0QXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodChzaG91bGRFeHBhbmQpLCBtX3BhZ2VJRCwgMCk7CiB9CiAKLSNpZiAhUExB
VEZPUk0oSU9TKSAmJiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93aW5nKGJvb2wmIGlzU2hvd2luZykK
IHsKQEAgLTQ0MDgsNyArNDQwOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWN0YXRpb25BbHRl
cm5hdGl2ZXMKIH0KICNlbmRpZgogCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykgJiYgUExBVEZP
Uk0oTUFDKQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
UmV0YWluUHRyPENHSW1hZ2VSZWY+IFdlYlBhZ2VQcm94eTo6dGFrZVZpZXdTbmFwc2hvdCgpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAxNjQz
NDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExMzksNyArMTEzOSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1heWJlSW5p
dGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJik7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93
aW5nKGJvb2wmKTsKICAgICB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCBwYW5lbFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50
U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmlu
Z3MpOwogICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChpbnQzMl90IHJlYXNvbik7CkBA
IC0xMTUxLDcgKzExNTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlRGljdGF0aW9uQWx0
ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpOwogICAgIHZvaWQgZGljdGF0aW9u
QWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBy
ZXN1bHQpOwogI2VuZGlmCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9T
KQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lk
IGRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBn
ZW9tZXRyaWVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
Ym90dG9tTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRp
dXMpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAxNjQzNDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNyArMjgx
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBVU0UoQVBQS0lUKQogICAgIFN1
YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZygpIC0+IChib29sIGlzU2hvd2luZykKICNlbmRpZgot
I2lmICFQTEFURk9STShJT1MpICYmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpCiAg
ICAgIyBBdXRvY29ycmVjdGlvbiBtZXNzYWdlcwogICAgIFNob3dDb3JyZWN0aW9uUGFuZWwoaW50
MzJfdCBwYW5lbFR5cGUsIFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZGluZ0JveE9mUmVwbGFjZWRT
dHJpbmcsIFN0cmluZyByZXBsYWNlZFN0cmluZywgU3RyaW5nIHJlcGxhY2VtZW50U3RyaW5nLCBW
ZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykKICAgICBEaXNtaXNz
Q29ycmVjdGlvblBhbmVsKGludDMyX3QgcmVhc29uKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDE2NDM0NykKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIC0gKHZvaWQpX2FkanVzdEZvckF1dG9tYXRpY0tleWJv
YXJkSW5mbzoKIAogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
CisjaWYgUExBVEZPUk0oTUFDKQogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKICNlbmRpZgog
CkBAIC04NCw3ICs4NCw3IEBAIC0gKHZvaWQpX2FkanVzdEZvckF1dG9tYXRpY0tleWJvYXJkSW5m
bzoKICAgICBib29sIF9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OwogICAg
IENHRmxvYXQgX2xhc3RBZGp1c3RtZW50Rm9yU2Nyb2xsZXI7CiAjZW5kaWYKLSNpZiBQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0
cjxXS1ZpZXc+IF93a1ZpZXc7CiAjZW5kaWYKIH0KQEAgLTE0OCw3ICsxNDgsNyBAQCAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyCiAgICAgW2NlbnRlciBhZGRPYnNlcnZl
cjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmRXaWxsSGlkZTopIG5hbWU6VUlLZXli
b2FyZFdpbGxIaWRlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIF93a1Zp
ZXcgPSBbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgY29udGV4dDpjb250ZXh0
IGNvbmZpZ3VyYXRpb246c3RkOjptb3ZlKHdlYlBhZ2VDb25maWd1cmF0aW9uKV07CiAgICAgW3Nl
bGYgYWRkU3Vidmlldzpfd2tWaWV3LmdldCgpXTsKICAgICBfcGFnZSA9IFdlYktpdDo6dG9JbXBs
KFtfd2tWaWV3IHBhZ2VSZWZdKTsKQEAgLTQzMSw3ICs0MzEsNyBAQCAtICh2b2lkKV9rZXlib2Fy
ZFdpbGxIaWRlOihOU05vdGlmaWNhdGlvCiAKICNwcmFnbWEgbWFyayBPUyBYLXNwZWNpZmljIG1l
dGhvZHMKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9S
TShNQUMpCiAKIC0gKHZvaWQpcmVzaXplU3Vidmlld3NXaXRoT2xkU2l6ZTooTlNTaXplKW9sZFNp
emUKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBTY3JvbGxpbmdUcmVlOjpFdmVudFJlc3Vs
dCBSZW1vdGVTY3JvbGxpCiAgICAgcmV0dXJuIERpZEhhbmRsZUV2ZW50OwogfQogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlIHBoYXNlKQogewogICAgIC8vIEZJWE1FOiBoYW5kIG9mZiB0byBtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk/CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5n
L1JlbW90ZVNjcm9sbGluZ1RyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTY0MzQ3KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBSZW1vdGVTY3JvbGxpbmdUcmVlKFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2V0
T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFdlYkNvcmU6OlN5bmNTY3JvbGxpbmdMYXll
clBvc2l0aW9uKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNYWMubW0JKHJldmlzaW9uIDE2NDM0NykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDcg
KzE0NCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKIHsKICAg
ICBwYXJhbWV0ZXJzLnByZXNlbnRlckFwcGxpY2F0aW9uUGlkID0gZ2V0cGlkKCk7CiAKLSNpZiBQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBh
cmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBbW05T
QXBwIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYRW5oYW5jZWRVc2VySW50ZXJmYWNl
Il0gYm9vbFZhbHVlXTsKICNlbHNlCiAgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5j
ZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNTYsNyArMzU2LDcgQEAgdm9pZCBXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheVdp
dAogCiB2b2lkIFdLQnVuZGxlUGFnZVNldFRvcE92ZXJoYW5nSW1hZ2UoV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYsIFdLSW1hZ2VSZWYgaW1hZ2VSZWYpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB0b0ltcGwocGFnZVJlZiktPnNl
dFRvcE92ZXJoYW5nSW1hZ2UodG9JbXBsKGltYWdlUmVmKSk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShwYWdlUmVmKTsKQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lkIFdLQnVuZGxlUGFnZVNldFRv
cE92ZXJoYW5nSW1hZ2UoV0tCCiAKIHZvaWQgV0tCdW5kbGVQYWdlU2V0Qm90dG9tT3ZlcmhhbmdJ
bWFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tJbWFnZVJlZiBpbWFnZVJlZikKIHsKLSNp
ZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAg
IHRvSW1wbChwYWdlUmVmKS0+c2V0Qm90dG9tT3ZlcmhhbmdJbWFnZSh0b0ltcGwoaW1hZ2VSZWYp
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCShyZXZpc2lvbiAxNjQzNDcp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKQorI2lmIFBMQVRGT1JNKE1BQykKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgICAg
ICB2aXJ0dWFsIGJvb2wgbW91c2VFdmVudChQYWdlQmFubmVyKiwgV2ViRXZlbnQ6OlR5cGUsIFdl
Yk1vdXNlRXZlbnQ6OkJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSA9IDA7CiAgICAg
fTsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShN
QUMpCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UGFnZUJhbm5lcj4gY3JlYXRlKENBTGF5ZXIgKiwg
aW50IGhlaWdodCwgQ2xpZW50Kik7CiAgICAgQ0FMYXllciAqbGF5ZXIoKTsKICNlbmRpZgpAQCAt
NzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRBZGRQYXJlbnRMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKik7CiAKIHByaXZhdGU6Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBleHBsaWNpdCBQYWdlQmFubmVyKENB
TGF5ZXIgKiwgaW50IGhlaWdodCwgQ2xpZW50Kik7CiAjZW5kaWYKIApAQCAtOTAsNyArOTAsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9tb3VzZURvd25JbkJhbm5lcjsKICAgICBib29sIG1faXNI
aWRkZW47CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2xheWVyOwogICAgIGludCBtX2hlaWdo
dDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAkocmV2aXNpb24gMTY0MzQ3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc5LDcgKzEyNzksNyBA
QCB2b2lkIFdlYlBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0CiAgICAgbV9wYWdlLT5z
ZXREZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiAKICAgICAvLyBUZWxsIGFsbCBvdXIg
cGx1Zy1pbiB2aWV3cyB0aGF0IHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIGNoYW5nZWQuCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBm
b3IgKGF1dG8qIHBsdWdpblZpZXcgOiBtX3BsdWdpblZpZXdzKQogICAgICAgICBwbHVnaW5WaWV3
LT5zZXREZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiAKQEAgLTIwMjgsNyArMjAyOCw3
IEBAIHZvaWQgV2ViUGFnZTo6c2V0Q2FuU3RhcnRNZWRpYVRpbWVyRmlyZWQKICAgICAgICAgbV9w
YWdlLT5zZXRDYW5TdGFydE1lZGlhKHRydWUpOwogfQogCi0jaWYgIVBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oSU9TKQorI2lmICFQTEFURk9STShNQUMpCiB2b2lkIFdlYlBhZ2U6OmRpZFVwZGF0
ZVZpZXdTdGF0ZVRpbWVyRmlyZWQoKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkVXBkYXRlVmlld1N0YXRlKCkpOwpAQCAtMzA3NCw3ICszMDc0LDcgQEAgdm9pZCBXZWJQ
YWdlOjptYWluRnJhbWVEaWRMYXlvdXQoKQogICAgIH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX3ZpZXdHZXN0
dXJlR2VvbWV0cnlDb2xsZWN0b3IubWFpbkZyYW1lRGlkTGF5b3V0KCk7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0zMzYwLDcgKzMzNjAsNyBAQCB2b2lkIFdlYlBhZ2U6OnN0b3BTcGVh
a2luZygpCiAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKE1BQykKIFJldGFpblB0cjxQREZEb2N1bWVudD4gV2ViUGFnZTo6cGRmRG9j
dW1lbnRGb3JQcmludGluZ0ZyYW1lKEZyYW1lKiBjb3JlRnJhbWUpCiB7CiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpOwpAQCAtMzM3Niw3ICszMzc2LDcgQEAg
UmV0YWluUHRyPFBERkRvY3VtZW50PiBXZWJQYWdlOjpwZGZEb2N1bQogCiAgICAgcmV0dXJuIHBs
dWdpblZpZXctPnBkZkRvY3VtZW50Rm9yUHJpbnRpbmcoKTsKIH0KLSNlbmRpZiAvLyBQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1MpCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiB2b2lk
IFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8pCiB7CkBAIC0zMzg4LDEwICszMzg4LDEwIEBAIHZvaWQgV2ViUGFnZTo6YmVn
aW5QcmludGluZyh1aW50NjRfdCBmcmEKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JN
KE1BQykKICAgICBpZiAocGRmRG9jdW1lbnRGb3JQcmludGluZ0ZyYW1lKGNvcmVGcmFtZSkpCiAg
ICAgICAgIHJldHVybjsKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAgICAgaWYgKCFtX3ByaW50Q29udGV4dCkKICAg
ICAgICAgbV9wcmludENvbnRleHQgPSBhZG9wdFB0cihuZXcgUHJpbnRDb250ZXh0KGNvcmVGcmFt
ZSkpOwpAQCAtMzQ1MCw3ICszNDUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2Uo
dWludDY0X3QgZgogCiAjaWYgVVNFKENHKQogICAgIGlmIChjb3JlRnJhbWUpIHsKLSNpZiBQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBB
U1NFUlQoY29yZUZyYW1lLT5kb2N1bWVudCgpLT5wcmludGluZygpIHx8IHBkZkRvY3VtZW50Rm9y
UHJpbnRpbmdGcmFtZShjb3JlRnJhbWUpKTsKICNlbHNlCiAgICAgICAgIEFTU0VSVChjb3JlRnJh
bWUtPmRvY3VtZW50KCktPnByaW50aW5nKCkpOwpAQCAtMzQ2Miw3ICszNDYyLDcgQEAgdm9pZCBX
ZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZgogICAgICAgICBmbG9hdCBwcmludGlu
Z1NjYWxlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGltYWdlU2l6ZS53aWR0aCgpKSAvIHJlY3Qud2lk
dGgoKTsKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zY2FsZShGbG9hdFNpemUocHJpbnRpbmdT
Y2FsZSwgcHJpbnRpbmdTY2FsZSkpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgaWYgKFJldGFpblB0cjxQREZEb2N1bWVu
dD4gcGRmRG9jdW1lbnQgPSBwZGZEb2N1bWVudEZvclByaW50aW5nRnJhbWUoY29yZUZyYW1lKSkg
ewogICAgICAgICAgICAgQVNTRVJUKCFtX3ByaW50Q29udGV4dCk7CiAgICAgICAgICAgICBncmFw
aGljc0NvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwpAQCAtMzQ5Niw3ICszNDk2LDcg
QEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcgogI2lmIFVTRShDRykK
ICAgICBpZiAoY29yZUZyYW1lKSB7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBBU1NFUlQoY29yZUZyYW1lLT5kb2N1bWVu
dCgpLT5wcmludGluZygpIHx8IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFtZShjb3JlRnJhbWUp
KTsKICNlbHNlCiAgICAgICAgIEFTU0VSVChjb3JlRnJhbWUtPmRvY3VtZW50KCktPnByaW50aW5n
KCkpOwpAQCAtMzUwOCw3ICszNTA4LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERih1
aW50NjRfdCBmcgogICAgICAgICBDR1JlY3QgbWVkaWFCb3ggPSAobV9wcmludENvbnRleHQgJiYg
bV9wcmludENvbnRleHQtPnBhZ2VDb3VudCgpKSA/IG1fcHJpbnRDb250ZXh0LT5wYWdlUmVjdCgw
KSA6IENHUmVjdE1ha2UoMCwgMCwgcHJpbnRJbmZvLmF2YWlsYWJsZVBhcGVyV2lkdGgsIHByaW50
SW5mby5hdmFpbGFibGVQYXBlckhlaWdodCk7CiAgICAgICAgIFJldGFpblB0cjxDR0NvbnRleHRS
ZWY+IGNvbnRleHQgPSBhZG9wdENGKENHUERGQ29udGV4dENyZWF0ZShwZGZEYXRhQ29uc3VtZXIu
Z2V0KCksICZtZWRpYUJveCwgMCkpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgaWYgKFJldGFpblB0cjxQREZEb2N1bWVu
dD4gcGRmRG9jdW1lbnQgPSBwZGZEb2N1bWVudEZvclByaW50aW5nRnJhbWUoY29yZUZyYW1lKSkg
ewogICAgICAgICAgICAgQVNTRVJUKCFtX3ByaW50Q29udGV4dCk7CiAgICAgICAgICAgICBkcmF3
UGFnZXNUb1BERkZyb21QREZEb2N1bWVudChjb250ZXh0LmdldCgpLCBwZGZEb2N1bWVudC5nZXQo
KSwgcHJpbnRJbmZvLCBmaXJzdCwgY291bnQpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE2
NDM0NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yOTEsNyArMjkxLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgQWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVt
YmVyLCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpIC0+IChib29sIHJlc3VsdCkKICAgICBJ
bnNlcnREaWN0YXRlZFRleHQoU3RyaW5nIHRleHQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VT
dGFydCwgdWludDY0X3QgcmVwbGFjZW1lbnRSYW5nZUVuZCwgVmVjdG9yPFdlYkNvcmU6OkRpY3Rh
dGlvbkFsdGVybmF0aXZlPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpIC0+IChib29sIGhhbmRsZWQs
IFdlYktpdDo6RWRpdG9yU3RhdGUgbmV3U3RhdGUpCiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIEluc2VydFRleHQoU3Ry
aW5nIHRleHQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VTdGFydCwgdWludDY0X3QgcmVwbGFj
ZW1lbnRSYW5nZUVuZCkgLT4gKGJvb2wgaGFuZGxlZCwgV2ViS2l0OjpFZGl0b3JTdGF0ZSBuZXdT
dGF0ZSkKICAgICBTZXRDb21wb3NpdGlvbihTdHJpbmcgdGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNv
bXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRfdCBzZWxlY3Rpb25TdGFydCwg
dWludDY0X3Qgc2VsZWN0aW9uRW5kLCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVp
bnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQpIC0+IChXZWJLaXQ6OkVkaXRvclN0YXRlIG5ld1N0
YXRlKQogICAgIENvbmZpcm1Db21wb3NpdGlvbigpIC0+IChXZWJLaXQ6OkVkaXRvclN0YXRlIG5l
d1N0YXRlKQo=
</data>
<flag name="review"
          id="248695"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>