<?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>104080</bug_id>
          
          <creation_ts>2012-12-04 20:10:26 -0800</creation_ts>
          <short_desc>Remove #ifs that are always true</short_desc>
          <delta_ts>2012-12-22 14:33:01 -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 name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>thakis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>783290</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-12-04 20:10:26 -0800</bug_when>
    <thetext>Remove #ifs that are always true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783293</commentid>
    <comment_count>1</comment_count>
      <attachid>177657</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-12-04 20:11:44 -0800</bug_when>
    <thetext>Created attachment 177657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783303</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-12-04 20:20:26 -0800</bug_when>
    <thetext>Committed r136620: &lt;http://trac.webkit.org/changeset/136620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796685</commentid>
    <comment_count>3</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-12-22 14:33:01 -0800</bug_when>
    <thetext>Hi,

can you prefix webkit2 patches with [webkit2] please? This would&apos;ve saved me clicking through to this patch :-)

Thanks,
Nico</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177657</attachid>
            <date>2012-12-04 20:11:44 -0800</date>
            <delta_ts>2012-12-04 20:18:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104080-20121204200910.patch</filename>
            <type>text/plain</type>
            <size>53689</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGJhYWZhNDc0ZmIzZGU2
NDFlNGI5NjFiMzJjOGNmMTcxYzYzNTgzZC4uMDQ2ZDM2MmQ5OTQwNjNkM2JiZWQ1ZjE5NDUxMTVj
OTNlMjI4ZmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMyBAQAogMjAxMi0xMi0wNCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJlbW92ZSAjaWZz
IHRoYXQgYXJlIGFsd2F5cyB0cnVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDQwODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAgaXMg
YWx3YXlzIHRydWUsIHNvIHJlbW92ZSBhbGwgdGhlICNpZnMuCisKKyAgICAgICAgKiBQbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFs
aXplU2FuZGJveCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpEaWN0aW9uYXJ5UG9wdXBJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9EaWN0
aW9uYXJ5UG9wdXBJbmZvLmg6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rvcnku
bW06CisgICAgICAgIChXZWJLaXQ6OnBoYXNlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpt
b21lbnR1bVBoYXNlRm9yRXZlbnQpOgorICAgICAgICAqIFNoYXJlZFdvcmtlclByb2Nlc3MvbWFj
L1NoYXJlZFdvcmtlclByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVT
YW5kYm94KToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QREZWaWV3Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKFdlYktpdDo6UERGVmlld1Njcm9sbFZpZXdfc2Nyb2xsV2hlZWwpOgor
ICAgICAgICAoV2ViS2l0OjpQREZWaWV3Q29udHJvbGxlcjo6cGRmS2l0QnVuZGxlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpc21pc3NEaWN0aW9uYXJ5TG9va3VwUGFuZWwpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWNvbW1lbmRlZFNjcm9s
bGJhclN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW06CisgICAgICAgICgtW1dLVmlldyBkaXNwbGF5SWZOZWVkZWRdKToKKyAgICAgICAgKC1bV0tW
aWV3IGRyYWdnaW5nVXBkYXRlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHZpZXdEaWRNb3ZlVG9X
aW5kb3ddKToKKyAgICAgICAgKC1bV0tWaWV3IF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX2NhY2hlV2luZG93Qm90dG9tQ29ybmVyUmVjdF0pOgorICAg
ICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0UmVmOnBhZ2VHcm91cFJlZjpyZWxh
dGVkVG9QYWdlOl0pOgorICAgICAgICAoK1tXS1ZpZXcgaGlkZVdvcmREZWZpbml0aW9uV2luZG93
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlhYmxl
cy5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVudFZhcmlh
Ymxlcy5oOgorICAgICAgICAoRW52aXJvbm1lbnRWYXJpYWJsZXMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjphZGREWUxERW52aXJvbm1lbnRBZGRpdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVX
ZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50KToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OnRyeVByZWV4aXN0aW5nUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6OmNyZWF0ZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6Omxh
dW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZv
U3RvcmVNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6c2hvdWxkVXNl
UGx1Z2luKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjpyZWFjdGl2YXRlSW5h
Y3RpdmVQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9j
ZXNzUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6cGxh
dGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xs
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJ
UmVzdWx0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChX
ZWJQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6aW5pdGlhbGl6ZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6
OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIubW06CisgICAgICAgIChjb252ZXJ0UmVjdFRvU2NyZWVuKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdl
YktpdDJQcmVmaXguaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVCcm93c2VyRnVuY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUE5fR2V0VmFsdWUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94
RnVuY3Rpb25zLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpzaG91bGRF
cmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGljdGlv
bmFyeUxvb2t1cEF0TG9jYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cEZvclNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwRm9yUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
bWFjL1NlY0l0ZW1TaGltTWV0aG9kcy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQ
cm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZWNJdGVtUmVzcG9u
c2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzTWFpbik6CisgICAgICAgICogV2ViUHJvY2Vzc1NlcnZp
Y2UvV2ViUHJvY2Vzc1NlcnZpY2VNYWluLm1tOgorICAgICAgICAobWFpbik6CisgICAgICAgICog
V2ViUHJvY2Vzc1NlcnZpY2VGb3JXZWJLaXREZXZlbG9wbWVudC9XZWJQcm9jZXNzU2VydmljZUZv
cldlYktpdERldmVsb3BtZW50TWFpbi5tbToKKyAgICAgICAgKFdlYlByb2Nlc3NTZXJ2aWNlRm9y
V2ViS2l0RGV2ZWxvcG1lbnRFdmVudEhhbmRsZXIpOgorICAgICAgICAobWFpbik6CisKKzIwMTIt
MTItMDQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBS
ZW1vdmUgbW9yZSBTbm93IExlb3BhcmQgb25seSBjb2RlCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQwNzkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KaW5kZXggYjdjNTJlNjEz
NGNiNDRhZWRjMjM2NDU1OWQ4MTQ2YWYyZjRkMGM2Yy4uNTk2YTNhZjk0MGQ4OWE3ZTdiYjY3YzY5
MDJlZmY5ZmIwOWQ5ZDQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCkBAIC00MCw5ICs0MCw3IEBACiAjaW1wb3J0IDxv
YmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAKLSNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNpbXBvcnQgIk5ldHNjYXBlU2FuZGJveEZ1
bmN0aW9ucy5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0yNzQsNyArMjcy
LDYgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpzZXRGdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKGJv
b2wgZnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZykKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlBsdWdpblByb2Nlc3NQcm94eTo6U2V0RnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZyhm
dWxsc2NyZWVuV2luZG93SXNTaG93aW5nKSwgMCk7CiB9CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNv
bnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgY29uc3QgU3RyaW5nJiBzYW5kYm94UHJvZmlsZURpcmVj
dG9yeVBhdGgpCiB7CiAgICAgaWYgKHNhbmRib3hQcm9maWxlRGlyZWN0b3J5UGF0aC5pc0VtcHR5
KCkpCkBAIC0zMDMsNyArMzAwLDYgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29u
c3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBjb25zdCBTdHJpbmcmIHNhbmRib3hQcm8KIAogICAgIGVu
dGVyU2FuZGJveChbcHJvZmlsZVN0cmluZy5nZXQoKSBVVEY4U3RyaW5nXSwgMCwgMCk7CiB9Ci0j
ZW5kaWYKIAogc3RhdGljIHZvaWQgbXV0ZUF1ZGlvKHZvaWQpCiB7CkBAIC0zMjUsOSArMzIxLDcg
QEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGEKICAgICAKICAgICBXS1NldFZpc2libGVBcHBsaWNh
dGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CiAKLSNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpbml0aWFsaXplU2FuZGJveChtX3Bs
dWdpblBhdGgsIHBhcmFtZXRlcnMuc2FuZGJveFByb2ZpbGVEaXJlY3RvcnlQYXRoKTsKLSNlbmRp
ZgogCiAgICAgaWYgKHBhcmFtZXRlcnMucHJvY2Vzc1R5cGUgPT0gVHlwZVNuYXBzaG90UHJvY2Vz
cykKICAgICAgICAgbXV0ZUF1ZGlvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlv
bmFyeVBvcHVwSW5mby5jcHAKaW5kZXggMjM3NmNiZGFiMjYzNWI4NTZhOGY2OThlMThlN2UwYWI0
OWI3MzU5Zi4uMmI2ZjA5MWVlM2E4MmQwNjNiN2Q5NjdlODljZTgwYzViYjkyZDE4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcApAQCAtMzksNyAr
MzksNyBAQCB2b2lkIERpY3Rpb25hcnlQb3B1cEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBvcmlnaW47CiAgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKHR5cGUpOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgYm9v
bCBoYWRPcHRpb25zID0gb3B0aW9uczsKICAgICBlbmNvZGVyIDw8IGhhZE9wdGlvbnM7CiAgICAg
aWYgKGhhZE9wdGlvbnMpCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgRGljdGlvbmFyeVBvcHVwSW5m
bzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGljdGlvbmFyeVBv
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0ocmVz
dWx0LnR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKKyNpZiBQTEFURk9STShNQUMp
CiAgICAgYm9vbCBoYWRPcHRpb25zOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlQm9vbChoYWRP
cHRpb25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmgKaW5kZXggYWY5MjFkYzI1MzUyYTExNGYxNmM5MDI4ODhmZDk0
Y2Y0YTAwNmZkYy4uMzVjN2NmMTlhNjE2MTYzMWNiZGMwODIwNDU5MDRiNzRhOWMzZmIyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oCkBAIC01MCw3ICs1
MCw3IEBAIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvIHsKIAogICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgb3JpZ2luOwogICAgIFR5cGUgdHlwZTsKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBvcHRpb25zOwogI2VuZGlmCiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCA3NzJjMGY3MDZj
YzJiNmMwM2VhZDdjMzQ0ODJhZjI4ZjIzM2Y5MjMxLi4xZDRiZjdkYTVjMDVmZWExNTk0YmUyZGJk
ODAwOTUxZjk2YjU5YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dl
YkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50
RmFjdG9yeS5tbQpAQCAtMTk5LDggKzE5OSw3IEBAIHN0YXRpYyBOU1BvaW50IHBvaW50Rm9yRXZl
bnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93VmlldykKIAogc3RhdGljIFdlYldoZWVs
RXZlbnQ6OlBoYXNlIHBoYXNlRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCi0gICAgdWludDMyX3QgcGhhc2UgPSBX
ZWJXaGVlbEV2ZW50OjpQaGFzZU5vbmU7IAorICAgIHVpbnQzMl90IHBoYXNlID0gV2ViV2hlZWxF
dmVudDo6UGhhc2VOb25lOwogICAgIGlmIChbZXZlbnQgcGhhc2VdICYgTlNFdmVudFBoYXNlQmVn
YW4pCiAgICAgICAgIHBoYXNlIHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW47CiAgICAgaWYg
KFtldmVudCBwaGFzZV0gJiBOU0V2ZW50UGhhc2VTdGF0aW9uYXJ5KQpAQCAtMjE3LDE2ICsyMTYs
MTIgQEAgc3RhdGljIFdlYldoZWVsRXZlbnQ6OlBoYXNlIHBoYXNlRm9yRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiAjZW5kaWYKIAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJXaGVlbEV2ZW50OjpQ
aGFzZT4ocGhhc2UpOwotI2Vsc2UKLSAgICByZXR1cm4gV2ViV2hlZWxFdmVudDo6UGhhc2VOb25l
OwotI2VuZGlmCiB9CiAKIHN0YXRpYyBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNl
Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgdWludDMyX3QgcGhhc2UgPSBXZWJXaGVl
bEV2ZW50OjpQaGFzZU5vbmU7IAogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgaWYgKFtldmVudCBtb21lbnR1bVBoYXNlXSAmIE5TRXZlbnRQaGFzZUJl
Z2FuKQogICAgICAgICBwaGFzZSB8PSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuOwogICAgIGlm
IChbZXZlbnQgbW9tZW50dW1QaGFzZV0gJiBOU0V2ZW50UGhhc2VTdGF0aW9uYXJ5KQpAQCAtMjM3
LDIyICsyMzIsNiBAQCBzdGF0aWMgV2ViV2hlZWxFdmVudDo6UGhhc2UgbW9tZW50dW1QaGFzZUZv
ckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBwaGFzZSB8PSBXZWJXaGVlbEV2ZW50OjpQ
aGFzZUVuZGVkOwogICAgIGlmIChbZXZlbnQgbW9tZW50dW1QaGFzZV0gJiBOU0V2ZW50UGhhc2VD
YW5jZWxsZWQpCiAgICAgICAgIHBoYXNlIHw9IFdlYldoZWVsRXZlbnQ6OlBoYXNlQ2FuY2VsbGVk
OwotI2Vsc2UKLSAgICBzd2l0Y2ggKFdLR2V0TlNFdmVudE1vbWVudHVtUGhhc2UoZXZlbnQpKSB7
Ci0gICAgY2FzZSBXS0V2ZW50UGhhc2VOb25lOgotICAgICAgICBwaGFzZSA9IFdlYldoZWVsRXZl
bnQ6OlBoYXNlTm9uZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXS0V2ZW50UGhhc2VCZWdh
bjoKLSAgICAgICAgcGhhc2UgPSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFdLRXZlbnRQaGFzZUNoYW5nZWQ6Ci0gICAgICAgIHBoYXNlID0gV2Vi
V2hlZWxFdmVudDo6UGhhc2VDaGFuZ2VkOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdLRXZl
bnRQaGFzZUVuZGVkOgotICAgICAgICBwaGFzZSA9IFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQ7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSNlbmRpZgogCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFdlYldoZWVsRXZlbnQ6OlBoYXNlPihwaGFzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFjLm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9tYWMvU2hhcmVkV29ya2VyUHJvY2Vz
c01hYy5tbQppbmRleCAzNDFhZmU5NmEyNjdmODAyYTg2NjIzMmMxMTc2NzRlZDk0YTA5ODU2Li5j
ODc1ZmYwMWIxNDdkNDdjMDhhY2ZhNDFjOTdlMDk3YjJkMDEyYzU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL21hYy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvbWFjL1NoYXJlZFdv
cmtlclByb2Nlc3NNYWMubW0KQEAgLTQ2LDcgKzQ2LDYgQEAgZXh0ZXJuICJDIiBpbnQgc2FuZGJv
eF9pbml0X3dpdGhfcGFyYW1ldGVycyhjb25zdCBjaGFyICpwcm9maWxlLCB1aW50NjRfdCBmbGFn
cywKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwNzAKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTYW5kYm94KCkKIHsKICAgICBO
U0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNz
RnJvbVN0cmluZyhAIldLVmlldyIpXTsKQEAgLTU4LDcgKzU3LDYgQEAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZVNhbmRib3goKQogICAgICAgICBleGl0KEVYX05PUEVSTSk7CiAgICAgfQogfQotI2Vu
ZGlmCiAKIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0
IFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CkBA
IC02OCw5ICs2Niw3IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplKGNvbnN0IFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhCiAgICAgCiAgICAgV0tTZXRW
aXNpYmxlQXBwbGljYXRpb25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOwogCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaW5pdGlhbGl6
ZVNhbmRib3goKTsKLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW0K
aW5kZXggN2IwM2E1NjQ1YzZhNDA0NDIwZWM4MTg5NWI0OTA4ZGMxZGM4ZjlkMS4uZjI2N2U5OTUy
NmNjYTdlMGE1MzJhYjUzMjNiNmI5YWE3MDY1YTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUERGVmlld0NvbnRyb2xsZXIubW0KQEAgLTUwNCw3ICs1
MDQsNiBAQCBib29sIFBERlZpZXdDb250cm9sbGVyOjpmb3J3YXJkU2Nyb2xsV2hlZWxFdmVudChO
U0V2ZW50ICp3aGVlbEV2ZW50KQogICAgIHJldHVybiB0cnVlOwogfQogCi0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiBzdGF0aWMgSU1QIG9sZFBERlZpZXdTY3Jv
bGxWaWV3X3Njcm9sbFdoZWVsOwogCiBzdGF0aWMgV0tQREZWaWV3ICpmaW5kRW5jbG9zaW5nV0tQ
REZWaWV3KE5TVmlldyAqdmlldykKQEAgLTUzOSw3ICs1MzgsNiBAQCBzdGF0aWMgdm9pZCBQREZW
aWV3U2Nyb2xsVmlld19zY3JvbGxXaGVlbChOU1Njcm9sbFZpZXcqIHNlbGYsIFNFTCBfY21kLCBO
U0V2ZW50CiAKICAgICB3dGZDYWxsSU1QPHZvaWQ+KG9sZFBERlZpZXdTY3JvbGxWaWV3X3Njcm9s
bFdoZWVsLCBzZWxmLCBfY21kLCB3aGVlbEV2ZW50KTsKIH0KLSNlbmRpZgogCiBOU0J1bmRsZSog
UERGVmlld0NvbnRyb2xsZXI6OnBkZktpdEJ1bmRsZSgpCiB7CkBAIC01NTcsMTIgKzU1NSwxMCBA
QCBOU0J1bmRsZSogUERGVmlld0NvbnRyb2xsZXI6OnBkZktpdEJ1bmRsZSgpCiAgICAgaWYgKCFb
cGRmS2l0QnVuZGxlIGxvYWRdKQogICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IGxvYWQgUERG
S2l0LmZyYW1ld29yayIpOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAgICAgaWYgKENsYXNzIHBkZlZpZXdTY3JvbGxWaWV3Q2xhc3MgPSBbcGRmS2l0QnVu
ZGxlIGNsYXNzTmFtZWQ6QCJQREZWaWV3U2Nyb2xsVmlldyJdKSB7CiAgICAgICAgIGlmIChNZXRo
b2Qgc2Nyb2xsV2hlZWwgPSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChwZGZWaWV3U2Nyb2xsVmll
d0NsYXNzLCBAc2VsZWN0b3Ioc2Nyb2xsV2hlZWw6KSkpCiAgICAgICAgICAgICBvbGRQREZWaWV3
U2Nyb2xsVmlld19zY3JvbGxXaGVlbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihzY3JvbGxX
aGVlbCwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KFBERlZpZXdTY3JvbGxWaWV3X3Njcm9sbFdoZWVs
KSk7CiAgICAgfQotI2VuZGlmCiAKICAgICByZXR1cm4gcGRmS2l0QnVuZGxlOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRl
eCBhZjMzYTA4ZmQ4OTJiZjlmMmUwNDY1ODE3N2EyMzUxM2NiMzY2YWYyLi43MzQyMTA4ZmM0YWFk
NjYyNzJjMGM2MTU4Mzk3OWM4YjhmOTk5YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtNDcyLDI0ICs0NzIsMTYgQEAg
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgQXR0
cmlidXRlZFN0cmluZyYgdGV4dCwgY28KICAgICBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5n
PiBhdHRyaWJ1dGVkU3RyaW5nID0gdGV4dC5zdHJpbmc7CiAgICAgTlNQb2ludCB0ZXh0QmFzZWxp
bmVPcmlnaW4gPSBkaWN0aW9uYXJ5UG9wdXBJbmZvLm9yaWdpbjsKIAotI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIC8vIENvbnZlcnQgdG8gc2NyZWVuIGNv
b3JkaW5hdGVzLgogICAgIHRleHRCYXNlbGluZU9yaWdpbiA9IFttX3drVmlldyBjb252ZXJ0UG9p
bnQ6dGV4dEJhc2VsaW5lT3JpZ2luIHRvVmlldzpuaWxdOwogICAgIHRleHRCYXNlbGluZU9yaWdp
biA9IFttX3drVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KHRleHRC
YXNlbGluZU9yaWdpbi54LCB0ZXh0QmFzZWxpbmVPcmlnaW4ueSwgMCwgMCldLm9yaWdpbjsKIAog
ICAgIFdLU2hvd1dvcmREZWZpbml0aW9uV2luZG93KGF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCksIHRl
eHRCYXNlbGluZU9yaWdpbiwgKE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnlQb3B1cEluZm8ub3B0
aW9ucy5nZXQoKSk7Ci0jZWxzZQotICAgIC8vIElmIHRoZSBkaWN0aW9uYXJ5IGxvb2t1cCBpcyBi
ZWluZyB0cmlnZ2VyZWQgYnkgYSBob3Qga2V5LCBmb3JjZSB0aGUgb3ZlcmxheSBzdHlsZS4KLSAg
ICBOU0RpY3Rpb25hcnkgKm9wdGlvbnMgPSAoZGljdGlvbmFyeVBvcHVwSW5mby50eXBlID09IERp
Y3Rpb25hcnlQb3B1cEluZm86OkhvdEtleSkgPyBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRo
T2JqZWN0Ok5TRGVmaW5pdGlvblByZXNlbnRhdGlvblR5cGVPdmVybGF5IGZvcktleTpOU0RlZmlu
aXRpb25QcmVzZW50YXRpb25UeXBlS2V5XSA6IDA7Ci0gICAgW21fd2tWaWV3IHNob3dEZWZpbml0
aW9uRm9yQXR0cmlidXRlZFN0cmluZzphdHRyaWJ1dGVkU3RyaW5nLmdldCgpIHJhbmdlOk5TTWFr
ZVJhbmdlKDAsIFthdHRyaWJ1dGVkU3RyaW5nLmdldCgpIGxlbmd0aF0pIG9wdGlvbnM6b3B0aW9u
cyBiYXNlbGluZU9yaWdpblByb3ZpZGVyOl4oTlNSYW5nZSBhZGp1c3RlZFJhbmdlKSB7IHJldHVy
biAoTlNQb2ludCl0ZXh0QmFzZWxpbmVPcmlnaW47IH1dOwotI2VuZGlmCiB9CiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpc21pc3NEaWN0aW9uYXJ5TG9va3VwUGFuZWwoKQogewotI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIFdLSGlkZVdvcmREZWZpbml0
aW9uV2luZG93KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJl
Y3Rpb25QYW5lbChBbHRlcm5hdGl2ZVRleHRUeXBlIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0
ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpCkBAIC01MTksMTUgKzUxMSwxMiBAQCBTdHJpbmcg
UGFnZUNsaWVudEltcGw6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFdlYkNvcmU6OlJlYXNv
bkZvckRpc21pc3NpbmdBbAogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWNvcmRBdXRvY29ycmVj
dGlvblJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlIHJlc3BvbnNlVHlwZSwgY29u
c3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmlu
ZykKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBO
U0NvcnJlY3Rpb25SZXNwb25zZSByZXNwb25zZSA9IHJlc3BvbnNlVHlwZSA9PSBBdXRvY29ycmVj
dGlvblJldmVydGVkID8gTlNDb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnRlZCA6IE5TQ29ycmVjdGlv
blJlc3BvbnNlRWRpdGVkOwogICAgIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZShtX3drVmlldywgcmVzcG9uc2UsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVu
dFN0cmluZyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5kZWRT
Y3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQogewotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIE5TQXJyYXkgKnRyYWNraW5nQXJl
YXMgPSBbbV93a1ZpZXcgdHJhY2tpbmdBcmVhc107CiAgICAgTlNVSW50ZWdlciBjb3VudCA9IFt0
cmFja2luZ0FyZWFzIGNvdW50XTsKICAgICBBU1NFUlQoY291bnQgPT0gMSk7CkBAIC01NDgsOSAr
NTM3LDYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURp
ZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckluZm86bmlsXTsKICAgICBbbV93
a1ZpZXcgYWRkVHJhY2tpbmdBcmVhOnRyYWNraW5nQXJlYV07CiAgICAgW3RyYWNraW5nQXJlYSBy
ZWxlYXNlXTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG5ld1N0eWxlKTsKLSNlbmRpZgogfQog
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjppbnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25z
dCBJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBmOTYyMGIwZTk5M2Q4YTEyNDBmYTk0NzA2OWExZDk4
YjBkOGY0MzBkLi4zZjg1YzBhNGRmYTlhNDIwNzk1YTM3OGViOTA4M2MyN2E3Nzk1MzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC05NjMsNyArOTYz
LDYgQEAgc3RhdGljIHZvaWQgc3BlYWtTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nLCBXS0Vycm9y
UmVmIGVycm9yLCB2b2lkKikKIAogLSAodm9pZClkaXNwbGF5SWZOZWVkZWQKIHsKLSNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIHJlbW92ZSB0aGlzIGNvZGUgd2hlbiA8cmRhcjovL3Byb2JsZW0vOTM2MjA4NT4gaXMgcmVz
b2x2ZWQuIEluIHRoZSBtZWFudGltZSwKICAgICAvLyBpdCBpcyBuZWNlc3NhcnkgdG8gZGlzYWJs
ZSBzY3JlbiB1cGRhdGVzIHNvIHdlIGdldCBhIGNoYW5jZSB0byByZWRyYXcgdGhlIGNvcm5lcnMg
YmVmb3JlIHRoaXMgCiAgICAgLy8gZGlzcGxheSBpcyB2aXNpYmxlLgpAQCAtOTcxLDE3ICs5NzAs
MTQgQEAgc3RhdGljIHZvaWQgc3BlYWtTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nLCBXS0Vycm9y
UmVmIGVycm9yLCB2b2lkKikKICAgICBCT09MIHNob3VsZE1hc2tXaW5kb3cgPSB3aW5kb3cgJiYg
IU5TSXNFbXB0eVJlY3QoX2RhdGEtPl93aW5kb3dCb3R0b21Db3JuZXJJbnRlcnNlY3Rpb25SZWN0
KTsKICAgICBpZiAoc2hvdWxkTWFza1dpbmRvdykKICAgICAgICAgTlNEaXNhYmxlU2NyZWVuVXBk
YXRlcygpOwotI2VuZGlmCiAKICAgICBbc3VwZXIgZGlzcGxheUlmTmVlZGVkXTsKIAotI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChzaG91bGRNYXNr
V2luZG93KSB7CiAgICAgICAgIFt3aW5kb3cgX21hc2tSb3VuZGVkQm90dG9tQ29ybmVyczpfZGF0
YS0+X3dpbmRvd0JvdHRvbUNvcm5lckludGVyc2VjdGlvblJlY3RdOwogICAgICAgICBOU0VuYWJs
ZVNjcmVlblVwZGF0ZXMoKTsKICAgICAgICAgX2RhdGEtPl93aW5kb3dCb3R0b21Db3JuZXJJbnRl
cnNlY3Rpb25SZWN0ID0gTlNaZXJvUmVjdDsKICAgICB9Ci0jZW5kaWYKIH0KIAogLy8gRXZlbnRz
CkBAIC0xNjg1LDcgKzE2ODEsNiBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0
dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIF9kYXRh
LT5fcGFnZS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhLCBbW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1Bh
c3RlYm9hcmRdIG5hbWVdKTsKICAgICAKICAgICBXZWJDb3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vz
c2lvbiA9IF9kYXRhLT5fcGFnZS0+ZHJhZ1Nlc3Npb24oKTsKLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBOU0ludGVnZXIgbnVtYmVyT2ZWYWxpZEl0ZW1z
Rm9yRHJvcCA9IGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7CiAgICAgTlNE
cmFnZ2luZ0Zvcm1hdGlvbiBkcmFnZ2luZ0Zvcm1hdGlvbiA9IE5TRHJhZ2dpbmdGb3JtYXRpb25O
b25lOwogICAgIGlmIChkcmFnU2Vzc2lvbi5tb3VzZUlzT3ZlckZpbGVJbnB1dCAmJiBudW1iZXJP
ZlZhbGlkSXRlbXNGb3JEcm9wID4gMCkKQEAgLTE2OTUsNyArMTY5MCw3IEBAIHN0YXRpYyB2b2lk
IGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29t
cG9zaXRpb25VbmRlCiAgICAgICAgIFtkcmFnZ2luZ0luZm8gc2V0TnVtYmVyT2ZWYWxpZEl0ZW1z
Rm9yRHJvcDpudW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wXTsKICAgICBpZiAoW2RyYWdnaW5nSW5m
byBkcmFnZ2luZ0Zvcm1hdGlvbl0gIT0gZHJhZ2dpbmdGb3JtYXRpb24pCiAgICAgICAgIFtkcmFn
Z2luZ0luZm8gc2V0RHJhZ2dpbmdGb3JtYXRpb246ZHJhZ2dpbmdGb3JtYXRpb25dOwotI2VuZGlm
CisKICAgICByZXR1cm4gZHJhZ1Nlc3Npb24ub3BlcmF0aW9uOwogfQogCkBAIC0xOTAwLDkgKzE4
OTUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZh
Y3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAgICAgICAgICAgX2RhdGEtPl9lbmRH
ZXN0dXJlTW9uaXRvciA9IG5pbDsKICAgICAgICAgfQogI2VuZGlmCi0jaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIFdLSGlkZVdvcmREZWZpbml0aW9u
V2luZG93KCk7Ci0jZW5kaWYKICAgICB9CiAKICAgICBfZGF0YS0+X3BhZ2UtPnNldEludHJpbnNp
Y0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcl0pOwpA
QCAtMjE4MiwxNSArMjE3NSw5IEBAIHN0YXRpYyB2b2lkIGRyYXdQYWdlQmFja2dyb3VuZChDR0Nv
bnRleHRSZWYgY29udGV4dCwgV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBJCiAtIChmbG9hdClf
aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IKIHsKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3Nl
bGYgd2luZG93XTsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAK
ICAgICBpZiAod2luZG93KQogICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0
b3JdOwogICAgIHJldHVybiBbW05TU2NyZWVuIG1haW5TY3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rv
cl07Ci0jZWxzZQotICAgIGlmICh3aW5kb3cpCi0gICAgICAgIHJldHVybiBbd2luZG93IHVzZXJT
cGFjZVNjYWxlRmFjdG9yXTsKLSAgICByZXR1cm4gW1tOU1NjcmVlbiBtYWluU2NyZWVuXSB1c2Vy
U3BhY2VTY2FsZUZhY3Rvcl07Ci0jZW5kaWYKIH0KIAogLSAodm9pZClfc2V0RHJhd2luZ0FyZWFT
aXplOihOU1NpemUpc2l6ZQpAQCAtMjg3MCw4ICsyODU3LDcgQEAgc3RhdGljIE5TU3RyaW5nICpw
YXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAodm9pZClf
Y2FjaGVXaW5kb3dCb3R0b21Db3JuZXJSZWN0CiB7Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCByZW1vdmUgdGhpcyBj
b2RlIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzkzNjIwODU+IGlzIHJlc29sdmVkLiAKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHJlbW92ZSB0aGlzIGNvZGUgd2hlbiA8cmRhcjovL3Byb2JsZW0vOTM2
MjA4NT4gaXMgcmVzb2x2ZWQuCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107
CiAgICAgaWYgKCF3aW5kb3cpCiAgICAgICAgIHJldHVybjsKQEAgLTI4NzksNyArMjg2NSw2IEBA
IHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcg
KnBhdGgpCiAgICAgX2RhdGEtPl93aW5kb3dCb3R0b21Db3JuZXJJbnRlcnNlY3Rpb25SZWN0ID0g
W3dpbmRvdyBfaW50ZXJzZWN0Qm90dG9tQ29ybmVyc1dpdGhSZWN0OltzZWxmIGNvbnZlcnRSZWN0
OltzZWxmIHZpc2libGVSZWN0XSB0b1ZpZXc6bmlsXV07CiAgICAgaWYgKCFOU0lzRW1wdHlSZWN0
KF9kYXRhLT5fd2luZG93Qm90dG9tQ29ybmVySW50ZXJzZWN0aW9uUmVjdCkpCiAgICAgICAgIFtz
ZWxmIHNldE5lZWRzRGlzcGxheUluUmVjdDpbc2VsZiBjb252ZXJ0UmVjdDpfZGF0YS0+X3dpbmRv
d0JvdHRvbUNvcm5lckludGVyc2VjdGlvblJlY3QgZnJvbVZpZXc6bmlsXV07Ci0jZW5kaWYKIH0K
IAogLSAoTlNJbnRlZ2VyKXNwZWxsQ2hlY2tlckRvY3VtZW50VGFnCkBAIC0yOTM2LDE0ICsyOTIx
LDEwIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNT
dHJpbmcgKnBhdGgpCiAKICAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBoYXZlIGRlc2ln
biBkZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxsIHRoZSB0aW1lLgog
ICAgIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2luZ01vdXNlTW92ZWQg
fCBOU1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2luZ0luVmlzaWJsZVJl
Y3Q7Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYg
KFdLUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlTGVnYWN5KQog
ICAgICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVBbHdheXM7CiAgICAgZWxzZQogICAg
ICAgICBvcHRpb25zIHw9IE5TVHJhY2tpbmdBY3RpdmVJbktleVdpbmRvdzsKLSNlbHNlCi0gICAg
b3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5LZXlXaW5kb3c7Ci0jZW5kaWYKIAogICAgIE5T
VHJhY2tpbmdBcmVhICp0cmFja2luZ0FyZWEgPSBbW05TVHJhY2tpbmdBcmVhIGFsbG9jXSBpbml0
V2l0aFJlY3Q6ZnJhbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnMKQEAgLTMwNjYsOSArMzA0Nyw3
IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJp
bmcgKnBhdGgpCiAKICsgKHZvaWQpaGlkZVdvcmREZWZpbml0aW9uV2luZG93CiB7Ci0jaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgV0tIaWRlV29yZERlZmlu
aXRpb25XaW5kb3coKTsKLSNlbmRpZgogfQogCiAtIChDR0Zsb2F0KW1pbmltdW1MYXlvdXRXaWR0
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZp
cm9ubWVudFZhcmlhYmxlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmNwcAppbmRleCBiZTBmOTA5ZWIzMWFlZjA0N2FlYTYz
OGRlMjYxZmQxOTZkN2JhZDRjLi40ODBmYTIyNjMwNjRhODk3MjU5MWE3YjRjOGEzOTQyNDhkMzVh
M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vu
dmlyb25tZW50VmFyaWFibGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVzLmNwcApAQCAtMTM2LDggKzEzNiw2IEBAIHZv
aWQgRW52aXJvbm1lbnRWYXJpYWJsZXM6OmNvcHlFbnZpcm9ubWVudFZhcmlhYmxlcygpCiAgICAg
bV9lbnZpcm9ubWVudFBvaW50ZXIgPSBtX2Vudmlyb25tZW50VmFyaWFibGVzLmRhdGEoKTsKIH0K
IAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAotCiBjb25zdCBj
aGFyKiBFbnZpcm9ubWVudFZhcmlhYmxlczo6cHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWVL
ZXkoKQogewogICAgIHJldHVybiAiV0VCS0lUX1BSRUVYSVNUSU5HX1BST0NFU1NfU0VSVklDRV9O
QU1FIjsKQEAgLTE0OCw2ICsxNDYsNCBAQCBjb25zdCBjaGFyKiBFbnZpcm9ubWVudFZhcmlhYmxl
czo6cHJlZXhpc3RpbmdQcm9jZXNzVHlwZUtleSgpCiAgICAgcmV0dXJuICJXRUJLSVRfUFJFRVhJ
U1RJTkdfUFJPQ0VTU19UWVBFIjsKIH0KIAotI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRWYXJpYWJs
ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvRW52aXJvbm1lbnRW
YXJpYWJsZXMuaAppbmRleCBmZjRhYjEwNjA4YzkyMzM2M2VkYTUxNGZjY2ZlNzJmYmZiMDI3YTA5
Li45NjE2OTNlNjA1Yjg4MTIwZmM3ZGEwZDFlNTA5NmQxMGQzYTRjOGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL0Vudmlyb25tZW50VmFyaWFibGVz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9FbnZpcm9ubWVu
dFZhcmlhYmxlcy5oCkBAIC00NiwxMCArNDYsOCBAQCBwdWJsaWM6CiAKICAgICBjaGFyKiogZW52
aXJvbm1lbnRQb2ludGVyKCkgY29uc3QgeyByZXR1cm4gbV9lbnZpcm9ubWVudFBvaW50ZXI7IH0K
IAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZUtleSgpOwogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBwcmVleGlzdGluZ1Byb2Nlc3NUeXBlS2V5KCk7Ci0jZW5kaWYKIAog
cHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiB2YWx1ZUlmVmFyaWFibGVIYXNOYW1lKGNvbnN0IGNo
YXIqIGVudmlyb25tZW50VmFyaWFibGUsIGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQppbmRleCBhMjQxMDBhN2VhNjU2OGZhMzFhYzJhOTcyNjdlYjllYWEwY2Y5
NDNjLi43ZWVkNmYzNGFiZGE5YmI4MWM2ODUyN2FjZmMyNTUxODAxNTVkZDBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQpAQCAtOTcsMTAgKzk3LDggQEAgc3RhdGljIHZvaWQgc2V0VXBUZXJtaW5h
dGlvbk5vdGlmaWNhdGlvbkhhbmRsZXIocGlkX3QgcGlkKQogCiBzdGF0aWMgdm9pZCBhZGREWUxE
RW52aXJvbm1lbnRBZGRpdGlvbnMoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPcHRpb25zLCBib29sIGlzV2ViS2l0RGV2ZWxvcG1lbnRCdWlsZCwgRW52aXJvbm1l
bnRWYXJpYWJsZXMmIGVudmlyb25tZW50VmFyaWFibGVzKQogewotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4
dHJhY3RvciBlbnZpcm9ubWVudEV4dHJhY3RvcihbW05TQnVuZGxlIG1haW5CdW5kbGVdIGV4ZWN1
dGFibGVQYXRoXSwgX05TR2V0TWFjaEV4ZWN1dGVIZWFkZXIoKS0+Y3B1dHlwZSk7CiAgICAgZW52
aXJvbm1lbnRFeHRyYWN0b3IuZ2V0RXh0cmFjdGVkRW52aXJvbm1lbnRWYXJpYWJsZXMoZW52aXJv
bm1lbnRWYXJpYWJsZXMpOwotI2VuZGlmCiAKICAgICBOU0J1bmRsZSAqd2ViS2l0MkJ1bmRsZSA9
IFtOU0J1bmRsZSBidW5kbGVXaXRoSWRlbnRpZmllcjpAImNvbS5hcHBsZS5XZWJLaXQyIl07CiAg
ICAgTlNTdHJpbmcgKmZyYW1ld29ya3NQYXRoID0gW1t3ZWJLaXQyQnVuZGxlIGJ1bmRsZVBhdGhd
IHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CkBAIC0yNDQsOSArMjQyLDcgQEAg
c3RhdGljIHZvaWQgY3JlYXRlV2ViUHJvY2Vzc1NlcnZpY2VGb3JXZWJLaXREZXZlbG9wbWVudChj
b25zdCBQcm9jZXNzTGF1bmNoZXI6OkwKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUocmVF
eGVjTWVzc2FnZSwgImVudmlyb25tZW50IiwgZW52aXJvbm1lbnQpOwogICAgIHhwY19yZWxlYXNl
KGVudmlyb25tZW50KTsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKHJlRXhlY01lc3NhZ2UsICJleGVjdXRh
YmxlLWhlYXAiLCBsYXVuY2hPcHRpb25zLmV4ZWN1dGFibGVIZWFwKTsKLSNlbmRpZgogCiAgICAg
eHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKHJlRXhlY0Nvbm5lY3Rpb24sIHJlRXhlY01lc3Nh
Z2UpOwogICAgIHhwY19yZWxlYXNlKHJlRXhlY01lc3NhZ2UpOwpAQCAtMzExLDcgKzMwNyw2IEBA
IHN0YXRpYyB2b2lkIGNyZWF0ZVdlYlByb2Nlc3NTZXJ2aWNlKGNvbnN0IFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoCiB9CiAjZW5kaWYKIAotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogc3RhdGljIGJvb2wgdHJ5UHJlZXhpc3RpbmdQcm9j
ZXNzKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucywg
UHJvY2Vzc0xhdW5jaGVyKiB0aGF0LCBEaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzRnVuY3Rpb24g
ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2Vzc0Z1bmN0aW9uKQogewogICAgIEVudmlyb25tZW50VmFy
aWFibGVzIGVudmlyb25tZW50VmFyaWFibGVzOwpAQCAtMzU3LDcgKzM1Miw2IEBAIHN0YXRpYyBi
b29sIHRyeVByZWV4aXN0aW5nUHJvY2Vzcyhjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmIGxhdW5jaE9wCiAgICAgUnVuTG9vcDo6bWFpbigpLT5kaXNwYXRjaChiaW5kKGRpZEZp
bmlzaExhdW5jaGluZ1Byb2Nlc3NGdW5jdGlvbiwgdGhhdCwgcHJvY2Vzc0lkZW50aWZpZXIsIENv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIobGlzdGVuaW5nUG9ydCkpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiBzdGF0aWMgdm9pZCBjcmVhdGVQcm9jZXNzKGNvbnN0IFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucywgYm9vbCBpc1dlYktp
dERldmVsb3BtZW50QnVpbGQsIFByb2Nlc3NMYXVuY2hlciogdGhhdCwgRGlkRmluaXNoTGF1bmNo
aW5nUHJvY2Vzc0Z1bmN0aW9uIGRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3NGdW5jdGlvbikKIHsK
QEAgLTQzOCwxMSArNDMyLDkgQEAgc3RhdGljIHZvaWQgY3JlYXRlUHJvY2Vzcyhjb25zdCBQcm9j
ZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMsIGIKICAgICAvLyBTdGFy
dCBzdXNwZW5kZWQgc28gd2UgY2FuIHNldCB1cCB0aGUgdGVybWluYXRpb24gbm90aWZpY2F0aW9u
IGhhbmRsZXIuCiAgICAgZmxhZ3MgfD0gUE9TSVhfU1BBV05fU1RBUlRfU1VTUEVOREVEOwogCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgc3RhdGljIGNv
bnN0IGludCBhbGxvd0V4ZWN1dGFibGVIZWFwRmxhZyA9IDB4MjAwMDsKICAgICBpZiAobGF1bmNo
T3B0aW9ucy5leGVjdXRhYmxlSGVhcCkKICAgICAgICAgZmxhZ3MgfD0gYWxsb3dFeGVjdXRhYmxl
SGVhcEZsYWc7Ci0jZW5kaWYKIAogICAgIHBvc2l4X3NwYXduYXR0cl9zZXRmbGFncygmYXR0ciwg
ZmxhZ3MpOwogCkBAIC00NzIsMTAgKzQ2NCw4IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVByb2Nlc3Mo
Y29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zLCBiCiAK
IHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIHsKLSNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBpZiAodHJ5UHJlZXhpc3RpbmdQcm9j
ZXNzKG1fbGF1bmNoT3B0aW9ucywgdGhpcywgJlByb2Nlc3NMYXVuY2hlcjo6ZGlkRmluaXNoTGF1
bmNoaW5nUHJvY2VzcykpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgYm9vbCBpc1dl
YktpdERldmVsb3BtZW50QnVpbGQgPSAhW1tbW05TQnVuZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVy
OkAiY29tLmFwcGxlLldlYktpdDIiXSBidW5kbGVQYXRoXSBzdHJpbmdCeURlbGV0aW5nTGFzdFBh
dGhDb21wb25lbnRdIGhhc1ByZWZpeDpAIi9TeXN0ZW0vIl07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFjLm1t
CmluZGV4IDZlYmRlNjQ3NjUzYzVjODlmODhkMWQ4NDllYmU3MmQxYTVkZGRlOGEuLmM0OWE2MzQ0
ODQzY2FkNWZmNmNiZGYzNGYwMTQ3NmUyMDc1ZTM3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbQpA
QCAtMTMyLDEyICsxMzIsMTAgQEAgYm9vbCBQbHVnaW5JbmZvU3RvcmU6OnNob3VsZFVzZVBsdWdp
bihWZWN0b3I8UGx1Z2luTW9kdWxlSW5mbz4mIGFscmVhZHlMb2FkZWRQbHUKICAgICBpZiAoIWNo
ZWNrRm9yUHJlZmVycmVkUGx1Z2luKGFscmVhZHlMb2FkZWRQbHVnaW5zLCBwbHVnaW4sICJjb20u
YXBwbGUuamF2YS5KYXZhQXBwbGV0UGx1Z2luIiwgIG9yYWNsZUphdmFBcHBsZXRQbHVnaW5CdW5k
bGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogICAgIGlmIChwbHVnaW4uYnVuZGxlSWRlbnRpZmll
ciA9PSAiY29tLmFwcGxlLmphdmEuSmF2YUFwcGxldFBsdWdpbiIgJiYgc2hvdWxkQmxvY2tQbHVn
aW4ocGx1Z2luKSAmJiAhV0tJc0phdmFQbHVnSW5BY3RpdmUoKSkgewogICAgICAgICAvLyBJZiB0
aGUgQXBwbGUgSmF2YSBwbHVnLWluIGlzIGJsb2NrZWQgYW5kIHRoZXJlJ3Mgbm8gSmF2YSBydW50
aW1lIGluc3RhbGxlZCwganVzdCBwcmV0ZW5kIHRoYXQgdGhlIHBsdWctaW4gZG9lc24ndCBleGlz
dC4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNlbmRpZgogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC0xNTUsMTIgKzE1MywxMCBAQCBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IFBsdWdp
bkluZm9TdG9yZTo6cG9saWN5Rm9yUGx1Z2luKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mCiAKIGJv
b2wgUGx1Z2luSW5mb1N0b3JlOjpyZWFjdGl2YXRlSW5hY3RpdmVQbHVnaW4oY29uc3QgUGx1Z2lu
TW9kdWxlSW5mbyYgcGx1Z2luKQogewotI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwNzAKICAgICBpZiAocGx1Z2luLmJ1bmRsZUlkZW50aWZpZXIgPT0gb3JhY2xlSmF2YUFw
cGxldFBsdWdpbkJ1bmRsZUlkZW50aWZpZXIpIHsKICAgICAgICAgV0tBY3RpdmF0ZUphdmFQbHVn
SW4oKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2VuZGlmCiAKICAgICByZXR1cm4g
ZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9t
YWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBlOTJlZjllNzZkNGQxZDU0
ODQ2ZDUyZjI4OTQxYzJmZDk4YTMyZThmLi5jMDZjOWUzNWFjNTM1YWJmY2ZkNzAzOTI3MWYzZGU0
ZTIyZGI2YmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9t
YWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTM2LDkgKzM2LDcgQEAK
ICNpbXBvcnQgPHNwYXduLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNpbXBvcnQgPFF1YXJ0ekNv
cmUvQ0FSZW1vdGVMYXllclNlcnZlci5oPgotI2VuZGlmCiAKIEBpbnRlcmZhY2UgV0tQbGFjZWhv
bGRlck1vZGFsV2luZG93IDogTlNXaW5kb3cgCiBAZW5kCkBAIC0xMzUsMTEgKzEzMyw3IEBAIHZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKQogICAgIHBhcmFtZXRlcnMucGFyZW50UHJv
Y2Vzc05hbWUgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1lXTsKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBtYWNoX3BvcnRf
dCByZW5kZXJTZXJ2ZXJQb3J0ID0gW1tDQVJlbW90ZUxheWVyU2VydmVyIHNoYXJlZFNlcnZlcl0g
c2VydmVyUG9ydF07Ci0jZWxzZQotICAgIG1hY2hfcG9ydF90IHJlbmRlclNlcnZlclBvcnQgPSBX
S0luaXRpYWxpemVSZW5kZXJTZXJ2ZXIoKTsKLSNlbmRpZgogCiAgICAgaWYgKHJlbmRlclNlcnZl
clBvcnQgIT0gTUFDSF9QT1JUX05VTEwpCiAgICAgICAgIHBhcmFtZXRlcnMuYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1BvcnQgPSBDb3JlSVBDOjpNYWNoUG9ydChyZW5kZXJTZXJ2ZXJQb3J0LCBNQUNI
X01TR19UWVBFX0NPUFlfU0VORCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IGI5ODY4NGU5NTZjZTZkYWFmODMxMmFlNzBmMDk2MjY5NTYyNjU5OTUuLjE0
MDZiM2I0YTdiYTE2NmRmMDc3OGNkYWVkNjhhOTQ2MDk5OGQwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTAxLDEyICsyMTAxLDEwIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwCiAgICAgLy8gRklYTUUgKGJ1ZyA1OTExMSk6IGRpZENvbW1pdExv
YWRGb3JGcmFtZSBjb21lcyB0b28gbGF0ZSB3aGVuIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSBiL2Yg
Y2FjaGUsIG1ha2luZyB1cyBkaXNhYmxlIHNlY3VyZSBldmVudCBtb2RlIGluIHBhc3N3b3JkIGZp
ZWxkcy4KICAgICAvLyBGSVhNRSAoYnVnIDU5MTIxKTogQSBsb2FkIGdvaW5nIG9uIGluIG9uZSBm
cmFtZSBzaG91bGRuJ3QgYWZmZWN0IHR5cGluZyBpbiBzaWJsaW5nIGZyYW1lcy4KICAgICBtX3Bh
Z2VDbGllbnQtPnJlc2V0VGV4dElucHV0U3RhdGUoKTsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgbW92ZWQg
aW5zaWRlIHJlc2V0VGV4dElucHV0U3RhdGUoKT8KICAgICBkaXNtaXNzQ29ycmVjdGlvblBhbmVs
KFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKICAgICBtX3BhZ2VD
bGllbnQtPmRpc21pc3NEaWN0aW9uYXJ5TG9va3VwUGFuZWwoKTsKICNlbmRpZgotI2VuZGlmCiAK
ICAgICBjbGVhckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKTsKIApAQCAtMjcyNyw3ICsyNzI1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBW
aWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCiB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFNjcm9s
bCgpCiB7CiAgICAgbV91aUNsaWVudC5wYWdlRGlkU2Nyb2xsKHRoaXMpOwotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCisjaWYgUExB
VEZPUk0oTUFDKQogICAgIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVhc29uRm9yRGlzbWlzc2lu
Z0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogI2VuZGlmCiB9CkBAIC0zNzQzLDcgKzM3NDEsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKCkKICAgICBtX3RvdWNoRXZlbnRR
dWV1ZS5jbGVhcigpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25v
cmVkKTsKICAgICBtX3BhZ2VDbGllbnQtPmRpc21pc3NEaWN0aW9uYXJ5TG9va3VwUGFuZWwoKTsK
ICNlbmRpZgpAQCAtNDE0OSw3ICs0MTQ3LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN1YnN0aXR1
dGlvbnNQYW5lbElzU2hvd2luZyhib29sJiBpc1Nob3dpbmcpCiAgICAgaXNTaG93aW5nID0gVGV4
dENoZWNrZXI6OnN1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZygpOwogfQogCi0jaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
d0NvcnJlY3Rpb25QYW5lbChpbnQzMl90IHBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRl
cm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykKIHsKICAgICBtX3BhZ2VDbGllbnQtPnNob3dDb3Jy
ZWN0aW9uUGFuZWwoKEFsdGVybmF0aXZlVGV4dFR5cGUpcGFuZWxUeXBlLCBib3VuZGluZ0JveE9m
UmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZywgYWx0ZXJu
YXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOwpAQCAtNDE2OSwxNCArNDE2NiwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShpbnQzMl90IHJlc3BvbnNl
VHlwZSwgY29uc3QgU3RyaQogewogICAgIG1fcGFnZUNsaWVudC0+cmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZSgoQXV0b2NvcnJlY3Rpb25SZXNwb25zZVR5cGUpcmVzcG9uc2VUeXBlLCByZXBs
YWNlZFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcpOwogfQotI2VuZGlmIC8vIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
QWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB7Ci0jaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgaWYgKCFpc0Nsb3NlZCgp
KQogICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZUFsdGVy
bmF0aXZlVGV4dFVJUmVzdWx0KHJlc3VsdCksIG1fcGFnZUlELCAwKTsKLSNlbmRpZgogfQogCiAj
aWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggZmY4ZWM1MTMzODExMDBhZjJkMDgwOWI3NWY5M2VkNTRlZDZjOGMz
NS4uM2EzMTU2OTRlMjRhYzMyOWZhMWM2ZDdiZjFmNWM1NGNlMDk2NGUyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTAxNSwxMiArMTAxNSwxMCBAQCBwcml2
YXRlOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc3Vic3RpdHV0aW9uc1BhbmVsSXNT
aG93aW5nKGJvb2wmKTsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
NzAKICAgICB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCBwYW5lbFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOwogICAg
IHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChpbnQzMl90IHJlYXNvbik7CiAgICAgdm9pZCBk
aXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihpbnQzMl90IHJlYXNvbiwgU3RyaW5nJiByZXN1bHQp
OwogICAgIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShpbnQzMl90IHJlc3BvbnNl
VHlwZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNl
bWVudFN0cmluZyk7Ci0jZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCiAKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAgICB2b2lkIHNob3dE
aWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdC
b3hPZkRpY3RhdGVkVGV4dCwgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1Yzg5
ZmFlMzU2MTVjY2Y4OTI2YTJhZjRjMzc5ZDRhMzI3N2RhMTIxLi4wODQ4MjYzZDQyZGZkNjRlNWZi
NDRlM2ZhNjFjOGJkNGQxYTNjNzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTMwMCw3ICszMDAsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBTdWJzdGl0dXRpb25zUGFu
ZWxJc1Nob3dpbmcoKSAtPiAoYm9vbCBpc1Nob3dpbmcpCiAjZW5kaWYKLSNpZiBQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2lmIFBMQVRG
T1JNKE1BQykKICAgICAjIEF1dG9jb3JyZWN0aW9uIG1lc3NhZ2VzCiAgICAgU2hvd0NvcnJlY3Rp
b25QYW5lbChpbnQzMl90IHBhbmVsVHlwZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kaW5nQm94
T2ZSZXBsYWNlZFN0cmluZywgU3RyaW5nIHJlcGxhY2VkU3RyaW5nLCBTdHJpbmcgcmVwbGFjZW1l
bnRTdHJpbmcsIFZlY3RvcjxTdHJpbmc+IGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKQog
ICAgIERpc21pc3NDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCByZWFzb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbQppbmRleCA2ZGE4YTQzMDE5YTgw
MGViNzVmMmUxMzI1NDRmZTZhOGEyYWUxMjNkLi5mNWM4Y2UyYmJiMTJhMjAxNGUxYWU2ODRkMThi
MDNmMjA5Y2RkOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Rl
eHRDaGVja2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENo
ZWNrZXJNYWMubW0KQEAgLTMwLDExICszMCw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIEBpbnRlcmZhY2UgTlNTcGVsbENoZWNrZXIgKFdl
Yk5TU3BlbGxDaGVja2VyRGV0YWlscykKIC0gKE5TU3RyaW5nICopbGFuZ3VhZ2VGb3JXb3JkUmFu
Z2U6KE5TUmFuZ2UpcmFuZ2UgaW5TdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIG9ydGhvZ3JhcGh5
OihOU09ydGhvZ3JhcGh5ICopb3J0aG9ncmFwaHk7CiBAZW5kCi0jZW5kaWYKIAogc3RhdGljIE5T
U3RyaW5nKiBjb25zdCBXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkID0gQCJX
ZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkIjsKIHN0YXRpYyBOU1N0cmluZyog
Y29uc3QgV2ViQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gQCJXZWJDb250aW51b3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQiOwpAQCAtNjUsMTAgKzYzLDggQEAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZVN0YXRlKCkKICAgICB0ZXh0Q2hlY2tlclN0YXRlLmlzQXV0b21hdGljTGlua0RldGVj
dGlvbkVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29s
Rm9yS2V5OldlYkF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkXTsKICAgICB0ZXh0Q2hlY2tl
clN0YXRlLmlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCA9IFtbTlNVc2VyRGVmYXVs
dHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViQXV0b21hdGljVGV4dFJlcGxh
Y2VtZW50RW5hYmxlZF07CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICAgICBpZiAoIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9i
amVjdEZvcktleTpXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXSkKICAgICAg
ICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQg
PSBbTlNTcGVsbENoZWNrZXIgaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXTsK
LSNlbmRpZgogCiAgICAgZGlkSW5pdGlhbGl6ZVN0YXRlID0gdHJ1ZTsKIH0KQEAgLTM3Miw3ICsz
NjgsNiBAQCB2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJp
bmcoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBiYWRHcgogCiB2b2lkIFRleHRDaGVja2VyOjpnZXRH
dWVzc2VzRm9yV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29y
ZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBOU1N0cmluZyog
bGFuZ3VhZ2UgPSBuaWw7CiAgICAgTlNPcnRob2dyYXBoeSogb3J0aG9ncmFwaHkgPSBuaWw7CiAg
ICAgTlNTcGVsbENoZWNrZXIgKmNoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxD
aGVja2VyXTsKQEAgLTM4MSw5ICszNzYsNiBAQCB2b2lkIFRleHRDaGVja2VyOjpnZXRHdWVzc2Vz
Rm9yV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZAogICAg
ICAgICBsYW5ndWFnZSA9IFtjaGVja2VyIGxhbmd1YWdlRm9yV29yZFJhbmdlOk5TTWFrZVJhbmdl
KDAsIGNvbnRleHQubGVuZ3RoKCkpIGluU3RyaW5nOmNvbnRleHQgb3J0aG9ncmFwaHk6b3J0aG9n
cmFwaHldOwogICAgIH0KICAgICBOU0FycmF5KiBzdHJpbmdzQXJyYXkgPSBbY2hlY2tlciBndWVz
c2VzRm9yV29yZFJhbmdlOk5TTWFrZVJhbmdlKDAsIHdvcmQubGVuZ3RoKCkpIGluU3RyaW5nOndv
cmQgbGFuZ3VhZ2U6bGFuZ3VhZ2UgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbERvY3VtZW50
VGFnXTsKLSNlbHNlCi0gICAgTlNBcnJheSogc3RyaW5nc0FycmF5ID0gW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIGd1ZXNzZXNGb3JXb3JkOndvcmRdOwotI2VuZGlmCiAKICAg
ICBmb3IgKE5TU3RyaW5nICpndWVzcyBpbiBzdHJpbmdzQXJyYXkpCiAgICAgICAgIGd1ZXNzZXMu
YXBwZW5kKGd1ZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA3YTg5MWNiNzFkNGFj
MzVkZTdlODlkYTA0ZDQxN2Y5ZmQyNmQxZjJhLi4yNjIzYTQwNmU0MjQ5YmEyODhjZDhmNjg3NWY5
ZGFmMmUxNTRiNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC02OCwyMCArNjgsMTAg
QEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIERlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2
YWwgPSAxOwogLSAodm9pZClfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlv
bjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiBAZW5kCiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKIHN0YXRpYyBOU1JlY3QgY29udmVydFJlY3RUb1NjcmVl
bihOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgcmVjdCkKIHsKICAgICByZXR1cm4gW3dpbmRvdyBj
b252ZXJ0UmVjdFRvU2NyZWVuOnJlY3RdOwogfQotI2Vsc2UKLXN0YXRpYyBOU1JlY3QgY29udmVy
dFJlY3RUb1NjcmVlbihOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgcmVjdCkKLXsKLSAgICBOU1Jl
Y3QgZnJhbWUgPSBbd2luZG93IGZyYW1lXTsKLSAgICByZWN0Lm9yaWdpbi54ICs9IGZyYW1lLm9y
aWdpbi54OwotICAgIHJlY3Qub3JpZ2luLnkgKz0gZnJhbWUub3JpZ2luLnk7Ci0gICAgcmV0dXJu
IHJlY3Q7Ci19Ci0jZW5kaWYKIAogQGludGVyZmFjZSBOU1dpbmRvdyhJc09uQWN0aXZlU3BhY2VB
ZGRpdGlvbkZvclRpZ2VyQW5kTGVvcGFyZCkKIC0gKEJPT0wpaXNPbkFjdGl2ZVNwYWNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCmluZGV4IDhiMWMx
NjJiY2M0ZmIxZWYxMGQ1YTlkYTBhODIyYzk5ZGI1MDZlMDIuLmNlNWJkMjlmYmU0ZTI3NTgwYjgy
OTE5M2MyN2FlYjNjZGViMjZkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNYWMubW0KQEAgLTM5LDkgKzM5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW1wb3J0IDxzeXMvcGFyYW0uaD4KIAotI2lmIEhBVkUoSE9T
VEVEX0NPUkVfQU5JTUFUSU9OKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FSZW1vdGVMYXllclNlcnZlci5oPgotI2VuZGlm
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMTEsMTEgKzEwOSw3IEBAIHZvaWQg
V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVLZXJuaW5nQW5k
TGlnYXR1cmVzQnlEZWZhdWx0ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gYm9vbEZvcktleTpXZWJLaXRLZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVmYXVsdERl
ZmF1bHRzS2V5XTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShI
T1NURURfQ09SRV9BTklNQVRJT04pCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDcwCiAgICAgbWFjaF9wb3J0X3QgcmVuZGVyU2VydmVyUG9ydCA9IFtbQ0FSZW1vdGVM
YXllclNlcnZlciBzaGFyZWRTZXJ2ZXJdIHNlcnZlclBvcnRdOwotI2Vsc2UKLSAgICBtYWNoX3Bv
cnRfdCByZW5kZXJTZXJ2ZXJQb3J0ID0gV0tJbml0aWFsaXplUmVuZGVyU2VydmVyKCk7Ci0jZW5k
aWYKICAgICBpZiAocmVuZGVyU2VydmVyUG9ydCAhPSBNQUNIX1BPUlRfTlVMTCkKICAgICAgICAg
cGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCA9IENvcmVJUEM6Ok1hY2hQb3J0
KHJlbmRlclNlcnZlclBvcnQsIE1BQ0hfTVNHX1RZUEVfQ09QWV9TRU5EKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0MlByZWZpeC5oCmluZGV4IDBkNGRjN2M4NmQwOGU5MjM5ZjNlMDJkNDNiYjM2MGM4Y2Zh
MTQ1ZDMuLmEzMmVlMWNkZjI3NTc1NGY5ODc5YzY5MGI0NzExYzY1YmI0NDI5YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyUHJlZml4LmgKQEAgLTMyLDkgKzMyLDcgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAogI2RlZmluZSBFTkFC
TEVfV0VCX1BST0NFU1NfU0FOREJPWCAxCi0jZW5kaWYKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogI2RlZmluZSBFTkFCTEVfUExVR0lOX1BST0NFU1MgMQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3Nl
ckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5kZXggNWRhNDNhN2U0ZmNkMmY4NjQ5NTQxZmRlN2U5
M2M4NTI0MDVkODRkMC4uODYwMmUzYWQ5NjQ0OTkxNTllZDQ0YjM1MmVhOTg5ZmM3MThmM2JlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCkBAIC0zOSw3ICszOSw3IEBA
CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJOZXRzY2FwZVNhbmRib3hGdW5j
dGlvbnMuaCIKICNlbmRpZgogCkBAIC01MDUsNyArNTA1LDcgQEAgc3RhdGljIE5QRXJyb3IgTlBO
X0dldFZhbHVlKE5QUCBucHAsIE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkICp2YWx1ZSkKICAg
ICAgICAgICAgICooTlBCb29sKil2YWx1ZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwICYmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKICAgICAgICAgY2FzZSBXS05WU2FuZGJveEZ1bmN0aW9uczoKICAg
ICAgICAgewogICAgICAgICAgICAgKihXS05TYW5kYm94RnVuY3Rpb25zICoqKXZhbHVlID0gbmV0
c2NhcGVTYW5kYm94RnVuY3Rpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVT
YW5kYm94RnVuY3Rpb25zLm1tCmluZGV4IGU5NDc0NDk1YTczNjk4ZDgxMGZkNGVmNzk5ZjhkZDY1
YWExNTcyODguLjE1ODQ1MTg0MTMxMzlkOTgwYmQ5ZTdlNjVlOTc3ZGQzOTJlOTU2YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0
c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tCkBAIC0yOCw4
ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkgJiYgRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCi0KICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2lu
TW9kdWxlLmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKQEAgLTIwMyw2ICsy
MDEsNCBAQCBOUEVycm9yIFdLTl9GaWxlU3RvcEFjY2Vzc2luZyhjb25zdCBjaGFyKiBwYXRoKQog
ICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAotI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAotCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpICYmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cAppbmRleCA0YTZjZjgzYzU3YzRhYzY4NmJjNGU1YjNjZTMyMGFkMDgzMWQ1NzZhLi4xZjcyNzA4
NjA5NzdkN2Y0OWQ5ZDVlODUzMGI3MTBmYmQ0ZmY2YTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRleHRXaWxsQmVE
ZWxldGVkSW5UZXh0RmllbGQoRWxlbWVudCogZWxlbWVudCkKIGJvb2wgV2ViRWRpdG9yQ2xpZW50
OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBwcmV2ZW50cyBlcmFzaW5nIHNw
ZWxsaW5nIG1hcmtlcnMgb24gT1MgWCBMaW9uIG9yIGxhdGVyIHRvIG1hdGNoIEFwcEtpdCBvbiB0
aGVzZSBNYWMgT1MgWCB2ZXJzaW9ucy4KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2lmIFBMQVRGT1JNKE1BQykKICAgICByZXR1
cm4gdHlwZSAhPSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTSh0eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGI1NDIxZDBiZWMzMmY4NDhlM2Qz
ZjMyNTNiMGM2NGRlNTc1ZmI4MDkuLjY0ZjRhMWI3ZjQ4ZmI5N2JmNTc3Y2RlMTgyZTRiMmU2N2Jj
NTY1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGlu
dCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0
aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9u
Rm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50
IGxlbmd0aCwgVmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFy
TG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkgT1ZFUlJJREU7Ci0jaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVD
aGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVj
a2luZ1R5cGVzLCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykg
T1ZFUlJJREU7CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhH
cmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwm
KSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCAwOGRi
MGFkM2JkOTdhNmZjYTM1N2JlOTU1MjYyMjE3Mjc3ODA4MzhhLi5kOWNiOTdiN2E5MjNiOTdhY2Y4
YWM5MTU3MTAwZDk2ZjdlN2NiMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNl
Lm1tCkBAIC0zNyw5ICszNyw3IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9p
ZCkKICAgICAKICAgICBkaXNwYXRjaF9vbmNlKCZpbml0T25jZSwgXnsKICAgICAgICAgSU5JVChB
ZHZhbmNlRGVmYXVsdEJ1dHRvblB1bHNlQW5pbWF0aW9uKTsKLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAgSU5JVChDQUxheWVyRW51bWVyYXRlUmVj
dHNCZWluZ0RyYXduV2l0aEJsb2NrKTsKLSNlbmRpZgogICAgICAgICBJTklUKENvcHlDRkxvY2Fs
aXphdGlvblByZWZlcnJlZE5hbWUpOwogICAgICAgICBJTklUKENHQ29udGV4dEdldFNob3VsZFNt
b290aEZvbnRzKTsKICAgICAgICAgSU5JVChDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2VBbmRUcmFu
c2Zvcm0pOwpAQCAtMTI0LDcgKzEyMiw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2Uodm9pZCkKIAogICAgICAgICBJTklUKFNldE1ldGFkYXRhVVJMKTsKICAgICAgICAgCi0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgIElOSVQoSU9T
dXJmYWNlQ29udGV4dENyZWF0ZSk7CiAgICAgICAgIElOSVQoSU9TdXJmYWNlQ29udGV4dENyZWF0
ZUltYWdlKTsKICAgICAgICAgSU5JVChDcmVhdGVDVFR5cGVzZXR0ZXJXaXRoVW5pQ2hhclByb3Zp
ZGVyQW5kT3B0aW9ucyk7CkBAIC0xMzQsMTAgKzEzMSw3IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0
ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAgSU5JVChTZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9u
U3BlY2lmaWNJbmZvcm1hdGlvbik7CiAgICAgICAgIElOSVQoQVZBc3NldFJlc29sdmVkVVJMKTsK
ICAgICAgICAgSU5JVChDdXJzb3IpOwotI2Vsc2UKLSAgICAgICAgSU5JVChHZXRIeXBoZW5hdGlv
bkxvY2F0aW9uQmVmb3JlSW5kZXgpOwotICAgICAgICBJTklUKEdldE5TRXZlbnRNb21lbnR1bVBo
YXNlKTsKLSNlbmRpZgorCiAjaWYgVVNFKENGTkVUV09SSykKICAgICAgICAgSU5JVChHZXREZWZh
dWx0SFRUUENvb2tpZVN0b3JhZ2UpOwogICAgICAgICBJTklUKENvcHlDcmVkZW50aWFsRnJvbUNG
UGVyc2lzdGVudFN0b3JhZ2UpOwpAQCAtMTY0LDIyICsxNTgsMTYgQEAgdm9pZCBJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKENvcHlDRlVSTFJlc3BvbnNlU3Vn
Z2VzdGVkRmlsZW5hbWUpOwogICAgICAgICBJTklUKFNldENGVVJMUmVzcG9uc2VNSU1FVHlwZSk7
CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICAgICAg
SU5JVChDcmVhdGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZSk7Ci0jZW5kaWYKIAogI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgICAgICBJTklUKEdl
dE1hY09TWFZlcnNpb25TdHJpbmcpOwogICAgICAgICBJTklUKEV4ZWN1dGFibGVXYXNMaW5rZWRP
bk9yQmVmb3JlTGlvbik7CiAjZW5kaWYKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAogICAgICAgICBJTklUKENHUGF0aEFkZFJvdW5kZWRSZWN0KTsKLSNlbmRp
ZgotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAg
IElOSVQoQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQb3N0Q2FjaGluZyk7Ci0jZW5kaWYKKwogI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwICYm
ICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoRmlsdGVySXNNYW5hZ2VkU2Vzc2lvbik7CiAg
ICAgICAgIElOSVQoRmlsdGVyQ3JlYXRlSW5zdGFuY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBkNzI5YWQxODUzNTFmZGQ2ZjlhNmMz
MWUyMDM4MTkxNGU1ODhlYTAuLmQ4NTMyZjUyNmE1YTEyMzM0OTZiN2FlM2I5ODgxMjBkY2ZkODBl
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTM0MDksNyArMzQwOSw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tbWl0UGFnZVRyYW5zaXRpb25W
aWV3cG9ydCgpCiB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQ
YWdlOjpoYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkK
IHsKICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2Vk
T3JNYWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IGQ0ODE3YzAyODBmZmE3NGI1ZDgwMTY2YTI0YzVlZDM0OTc5ZTUzNGEuLjNiNmRk
OGVmNjZlMTQyMDZkZmRlMWExM2Q1NzBmNmViMWQ1ZWY3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNTUwLDcgKzU1MCw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgdW5tYXJrQWxsTWlzc3BlbGxpbmdzKCk7CiAgICAgdm9pZCB1bm1hcmtBbGxC
YWRHcmFtbWFyKCk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNzAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBoYW5kbGVBbHRl
cm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IGFkNDI5MmI0YmVlYmIyYzE5OGMxMTY3MzM2ZDViN2U0OTUxZWIwNTQuLjYzODM1ODNmZWVl
MzRlMmUxNzA5ODA0Njk1YTZhOTkxYjc0OThmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMDIsNyArMzAy
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgRmluZFpvb21hYmxlQXJlYUZvclBvaW50
KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpJbnRTaXplIGFyZWEpCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDcwCisjaWYgUExBVEZPUk0oTUFDKQogICAgIEhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVz
dWx0KFN0cmluZyByZXN1bHQpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGRlNDliZDJmZWViMDBhZTZk
ZDEzNzVjMDU0ZmJlOTQxZjgzY2ZiMTAuLjE1Y2FiZGM5YjU2NWJjNDFkNjJjM2NjNTRlMDYwZDg3
MTZkNjIxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0KQEAgLTQ5MCw3ICs0OTAsNiBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50JiBmbG9hdFBvaW50
KQogCiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zID0gbmlsOwogCi0jaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgLy8gQXMgY29udGV4dCwgd2UgYXJlIGdv
aW5nIHRvIHVzZSB0aGUgc3Vycm91bmRpbmcgcGFyYWdyYXBoIG9mIHRleHQuCiAgICAgVmlzaWJs
ZVBvc2l0aW9uIHBhcmFncmFwaFN0YXJ0ID0gc3RhcnRPZlBhcmFncmFwaChwb3NpdGlvbik7CiAg
ICAgVmlzaWJsZVBvc2l0aW9uIHBhcmFncmFwaEVuZCA9IGVuZE9mUGFyYWdyYXBoKHBvc2l0aW9u
KTsKQEAgLTUwNSwxMSArNTA0LDYgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxv
b2t1cEF0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKICAgICBSZWZQdHI8
UmFuZ2U+IGZpbmFsUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnN1YnJhbmdlKGZ1bGxDaGFyYWN0ZXJS
YW5nZS5nZXQoKSwgZXh0cmFjdGVkUmFuZ2UubG9jYXRpb24sIGV4dHJhY3RlZFJhbmdlLmxlbmd0
aCk7CiAgICAgaWYgKCFmaW5hbFJhbmdlKQogICAgICAgICByZXR1cm47Ci0jZWxzZQotICAgIFJl
ZlB0cjxSYW5nZT4gZmluYWxSYW5nZSA9IG1ha2VSYW5nZShzdGFydE9mV29yZChwb3NpdGlvbiks
IGVuZE9mV29yZChwb3NpdGlvbikpOwotICAgIGlmICghZmluYWxSYW5nZSkKLSAgICAgICAgcmV0
dXJuOwotI2VuZGlmCiAKICAgICBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJhbmdlKERpY3Rp
b25hcnlQb3B1cEluZm86OkhvdEtleSwgZnJhbWUsIGZpbmFsUmFuZ2UuZ2V0KCksIG9wdGlvbnMp
OwogfQpAQCAtNTIyLDcgKzUxNiw2IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURpY3Rpb25hcnlM
b29rdXBGb3JTZWxlY3Rpb24oRGljdGlvbmFyeVBvcHVwSW5mbzo6VHlwZSB0eXBlCiAKICAgICBO
U0RpY3Rpb25hcnkgKm9wdGlvbnMgPSBuaWw7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwNzAKICAgICBWaXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uU3RhcnQgPSBz
ZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHNlbGVjdGlvbkVu
ZCA9IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7CiAKQEAgLTUzOCw3ICs1MzEsNiBAQCB2b2lkIFdl
YlBhZ2U6OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwRm9yU2VsZWN0aW9uKERpY3Rpb25hcnlQb3B1
cEluZm86OlR5cGUgdHlwZQogCiAgICAgLy8gU2luY2Ugd2UgYWxyZWFkeSBoYXZlIHRoZSByYW5n
ZSB3ZSB3YW50LCB3ZSBqdXN0IG5lZWQgdG8gZ3JhYiB0aGUgcmV0dXJuZWQgb3B0aW9ucy4KICAg
ICBXS0V4dHJhY3RXb3JkRGVmaW5pdGlvblRva2VuUmFuZ2VGcm9tQ29udGV4dHVhbFN0cmluZyhm
dWxsUGxhaW5UZXh0U3RyaW5nLCByYW5nZVRvUGFzcywgJm9wdGlvbnMpOwotI2VuZGlmCiAKICAg
ICBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJhbmdlKHR5cGUsIGZyYW1lLCBzZWxlY3RlZFJh
bmdlLmdldCgpLCBvcHRpb25zKTsKIH0KQEAgLTU2MSw5ICs1NTMsNyBAQCB2b2lkIFdlYlBhZ2U6
OnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwRm9yUmFuZ2UoRGljdGlvbmFyeVBvcHVwSW5mbzo6VHlw
ZSB0eXBlLCBGcgogICAgIERpY3Rpb25hcnlQb3B1cEluZm8gZGljdGlvbmFyeVBvcHVwSW5mbzsK
ICAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLnR5cGUgPSB0eXBlOwogICAgIGRpY3Rpb25hcnlQb3B1
cEluZm8ub3JpZ2luID0gRmxvYXRQb2ludChyYW5nZVJlY3QueCgpLCByYW5nZVJlY3QueSgpICsg
KHN0eWxlLT5mb250TWV0cmljcygpLmFzY2VudCgpICogcGFnZVNjYWxlRmFjdG9yKCkpKTsKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICAgICBkaWN0aW9uYXJ5
UG9wdXBJbmZvLm9wdGlvbnMgPSAoQ0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnM7Ci0jZW5kaWYKIAog
ICAgIE5TQXR0cmlidXRlZFN0cmluZyAqbnNBdHRyaWJ1dGVkU3RyaW5nID0gW1dlYkhUTUxDb252
ZXJ0ZXIgZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2U6cmFuZ2VdOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbU1ldGhvZHMubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbU1ldGhvZHMubW0KaW5k
ZXggNmU2MzQ5ZGM3YmYzZDliYTQxMDNjNjJkZGM0ODMwYWMwNzNkZTQ5Zi4uZDFmOGRiODdlZjgx
YTE4Nzk4MzZmZTRhOTk2MzQwOGMyMTg1YzIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1NZXRob2RzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTWV0aG9kcy5tbQpAQCAtMjYsOCArMjYsNiBAQAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJTZWNJdGVtU2hpbU1ldGhvZHMuaCIKIAotI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAotCiAjaW1wb3J0ICJCbG9j
a2luZ1Jlc3BvbnNlTWFwLmgiCiAjaW1wb3J0ICJTZWNJdGVtUmVxdWVzdERhdGEuaCIKICNpbXBv
cnQgIlNlY0l0ZW1SZXNwb25zZURhdGEuaCIKQEAgLTExOCw1ICsxMTYsMyBAQCB2b2lkIGluaXRp
YWxpemVTZWNJdGVtU2hpbSgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQppbmRleCAwY2M5M2YxNGUzNjYx
ZTJlYTRhODE4YzY0ZjBmOWExZGI2MWVmOWVkLi5kZmUwYjgzMjA3ZjA3YjlmY2UwMjFjNzhiNmU2
ODdmZTg0OTUxZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlBy
b2Nlc3NNYWMubW0KQEAgLTMwNSw5ICszMDUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
VGVybWluYXRlKCkKIAogdm9pZCBXZWJQcm9jZXNzOjpzZWNJdGVtUmVzcG9uc2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU2VjSXRlbVJlc3BvbnNlRGF0
YSYgcmVzcG9uc2UpCiB7Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDcwCiAgICAgZGlkUmVjZWl2ZVNlY0l0ZW1SZXNwb25zZShyZXF1ZXN0SUQsIHJlc3BvbnNlKTsK
LSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0KaW5kZXggZDQzOTliNTYyMDlm
ZGRhZDhjMDNlMGY3ODNjMzczY2RiODZhNTMyMS4uNzAyY2VhMmQ5ZDU2NjljMmY2ZTE0ZjA1NTFl
OTM5OTQxZGYxOGU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMv
V2ViUHJvY2Vzc01haW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMv
V2ViUHJvY2Vzc01haW5NYWMubW0KQEAgLTQ2LDkgKzQ2LDcgQEAKICNpbXBvcnQgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiBleHRlcm4gIkMiIGtlcm5fcmV0dXJu
X3QgYm9vdHN0cmFwX3JlZ2lzdGVyMihtYWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwg
dWludDY0X3QpOwotI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQogQGludGVyZmFjZSBOU0FwcGxp
Y2F0aW9uIChXZWJOU0FwcGxpY2F0aW9uRGV0YWlscykKQEAgLTcyLDkgKzcwLDcgQEAgaW50IFdl
YlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKIAogICAgIFN0cmlu
ZyBzZXJ2aWNlTmFtZSA9IGNvbW1hbmRMaW5lWyJzZXJ2aWNlbmFtZSJdOwogICAgIFN0cmluZyBj
bGllbnRFeGVjdXRhYmxlOwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAogICAgIGNsaWVudEV4ZWN1dGFibGUgPSBjb21tYW5kTGluZVsiY2xpZW50LWV4ZWN1dGFi
bGUiXTsKLSNlbmRpZgogCiAgICAgaWYgKHNlcnZpY2VOYW1lLmlzRW1wdHkoKSAmJiBjbGllbnRF
eGVjdXRhYmxlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKQEAgLTk1
LDkgKzkxLDcgQEAgaW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5k
TGluZSkKICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiTm8gY2xpZW50IGlkZW50aWZpZXIgcGFz
c2VkIHRvIHRoZSBXZWJQcm9jZXNzIik7CiAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJF
OwogICAgICAgICB9Ci0gICAgfQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTA3MAotICAgIGVsc2UgeworICAgIH0gZWxzZSB7CiAgICAgICAgIG1hY2hfcG9ydF9uYW1l
X3QgcHVibGlzaGVkU2VydmljZTsKICAgICAgICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFz
a19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmcHVibGlzaGVkU2VydmljZSk7CiAg
ICAgICAgIG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFjaF90YXNrX3NlbGYoKSwgcHVibGlzaGVk
U2VydmljZSwgcHVibGlzaGVkU2VydmljZSwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOwpAQCAt
MTU4LDcgKzE1Miw2IEBAIGludCBXZWJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYgY29t
bWFuZExpbmUpCiAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICB9CiAg
ICAgfQotI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAog
CiAgICAgU3RyaW5nIGxvY2FsaXphdGlvbiA9IGNvbW1hbmRMaW5lWyJsb2NhbGl6YXRpb24iXTsK
ICAgICBpZiAoIWxvY2FsaXphdGlvbi5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3NTZXJ2aWNlL1dlYlByb2Nlc3NTZXJ2aWNlTWFpbi5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3NTZXJ2aWNlL1dlYlByb2Nlc3NTZXJ2aWNlTWFpbi5tbQppbmRl
eCA3OGNlOTljZmFiZjI4ZTE4NmNkYzVhYjcyYWUzNTQzZDU3YThlYjg4Li45ODQ4ZWUzYWZlNzZm
ZmFlZDdiZmQ4YmFiNjRkNjgzOGU4MzQwZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzU2VydmljZS9XZWJQcm9jZXNzU2VydmljZU1haW4ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzc1NlcnZpY2UvV2ViUHJvY2Vzc1NlcnZpY2VNYWluLm1tCkBAIC0yMywy
MiArMjMsOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
bXBvcnQgPEF2YWlsYWJpbGl0eU1hY3Jvcy5oPgotCi0jaWYgTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA3MAotCiAjaW1wb3J0ICJXZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRz
LmgiCiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAgICByZXR1cm4gd2Vi
UHJvY2Vzc1NlcnZpY2VNYWluKGFyZ2MsIGFyZ3YpOwogfQotCi0jZWxzZQotCi1pbnQgbWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzc1NlcnZpY2VGb3JXZWJLaXREZXZlbG9w
bWVudC9XZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50TWFpbi5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3NTZXJ2aWNlRm9yV2ViS2l0RGV2ZWxvcG1lbnQvV2ViUHJvY2Vz
c1NlcnZpY2VGb3JXZWJLaXREZXZlbG9wbWVudE1haW4ubW0KaW5kZXggZDNmZmJiZmQ2YTNhNGY4
ZDg1ZDZjMDA5MDNkYjQ5M2U3MmY2NjhmYi4uNmEzYWRkYTA4ZGZmMjMyZWNkYjUwY2Q4ZDBiMDcy
ZjYzMjk1NDE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzc1NlcnZpY2VG
b3JXZWJLaXREZXZlbG9wbWVudC9XZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50
TWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERl
dmVsb3BtZW50L1dlYlByb2Nlc3NTZXJ2aWNlRm9yV2ViS2l0RGV2ZWxvcG1lbnRNYWluLm1tCkBA
IC0yNSw4ICsyNSw2IEBACiAKICNpbXBvcnQgPEF2YWlsYWJpbGl0eU1hY3Jvcy5oPgogCi0jaWYg
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAotCiAjaW1wb3J0IDxjcnRfZXh0
ZXJucy5oPgogI2ltcG9ydCA8ZGxmY24uaD4KICNpbXBvcnQgPG1hY2gtby9keWxkLmg+CkBAIC03
MywxMSArNzEsOSBAQCBzdGF0aWMgdm9pZCBXZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVs
b3BtZW50RXZlbnRIYW5kbGVyKHhwY19jb25uZWN0aW9uX3QgcAogICAgICAgICAgICAgICAgIHNp
emVfdCBvdXRDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldGJp
bnByZWZfbnAoJmF0dHIsIDEsIGNwdVR5cGVzLCAmb3V0Q291bnQpOwogCi0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgICAgICAgICAgICAgc3RhdGljIGNv
bnN0IGludCBhbGxvd0V4ZWN1dGFibGVIZWFwRmxhZyA9IDB4MjAwMDsKICAgICAgICAgICAgICAg
ICBpZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woZXZlbnQsICJleGVjdXRhYmxlLWhlYXAiKSkK
ICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgfD0gYWxsb3dFeGVjdXRhYmxlSGVhcEZsYWc7Ci0j
ZW5kaWYKIAogICAgICAgICAgICAgICAgIHBvc2l4X3NwYXduYXR0cl9zZXRmbGFncygmYXR0ciwg
ZmxhZ3MpOwogCkBAIC0xNDgsMTIgKzE0NCwzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKICAgICB4cGNfbWFpbihXZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50
RXZlbnRIYW5kbGVyKTsKICAgICByZXR1cm4gMDs7CiB9Ci0KLSNlbHNlCi0KLWludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmCg==
</data>
<flag name="review"
          id="193890"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>