<?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>178818</bug_id>
          
          <creation_ts>2017-10-25 11:30:16 -0700</creation_ts>
          <short_desc>REGRESSION(r222945): &quot;It made WasmBench crash&quot; (Requested by saamyjoon on #webkit).</short_desc>
          <delta_ts>2017-11-15 12:44:34 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>177839</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>jlewis3</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1364339</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 11:30:16 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/222945 broke the build:
&quot;It made WasmBench crash&quot; (Requested by saamyjoon on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364341</commentid>
    <comment_count>1</comment_count>
      <attachid>324857</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 11:30:22 -0700</bug_when>
    <thetext>Created attachment 324857
ROLLOUT of r222945

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364342</commentid>
    <comment_count>2</comment_count>
      <attachid>324857</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 11:32:49 -0700</bug_when>
    <thetext>Comment on attachment 324857
ROLLOUT of r222945

Clearing flags on attachment: 324857

Committed r223965: &lt;https://trac.webkit.org/changeset/223965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364343</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 11:32:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364381</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-10-25 12:25:43 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #0)
&gt; https://trac.webkit.org/changeset/222945 broke the build:
&gt; &quot;It made WasmBench crash&quot; (Requested by saamyjoon on #webkit).
&gt; 
&gt; This is an automatic bug report generated by webkitbot. If this bug
&gt; report was created because of a flaky test, please file a bug for the flaky
&gt; test (if we don&apos;t already have one on file) and dup this bug against that bug
&gt; so that we can track how often these flaky tests fail.

It would be super helpful if you could post the crash trace when rolling out a patch because of a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364390</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-25 12:32:40 -0700</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #4)
&gt; (In reply to WebKit Commit Bot from comment #0)
&gt; &gt; https://trac.webkit.org/changeset/222945 broke the build:
&gt; &gt; &quot;It made WasmBench crash&quot; (Requested by saamyjoon on #webkit).
&gt; &gt; 
&gt; &gt; This is an automatic bug report generated by webkitbot. If this bug
&gt; &gt; report was created because of a flaky test, please file a bug for the flaky
&gt; &gt; test (if we don&apos;t already have one on file) and dup this bug against that bug
&gt; &gt; so that we can track how often these flaky tests fail.
&gt; 
&gt; It would be super helpful if you could post the crash trace when rolling out
&gt; a patch because of a crash.

attached it to:
https://bugs.webkit.org/show_bug.cgi?id=177839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364483</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-25 14:33:54 -0700</bug_when>
    <thetext>*** Bug 178755 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372235</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:44:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568067&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324857</attachid>
            <date>2017-10-25 11:30:22 -0700</date>
            <delta_ts>2017-10-25 11:32:49 -0700</delta_ts>
            <desc>ROLLOUT of r222945</desc>
            <filename>bug-178818-20171025143022.patch</filename>
            <type>text/plain</type>
            <size>22123</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5MDU1ZTFiNWRkOWVmYzE3MDBhYjJh
OTNhZmI4MDBhMThiMWFmMTIuLjc0N2VmMTA4MDYyYTU3OTZkMTllMWQ3OTIyODc5NzQ5ZWE1NmFl
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTAtMjUgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
MjI5NDUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Nzg4MTgKKworICAgICAgICAiSXQgbWFkZSBXYXNtQmVuY2ggY3Jhc2giIChSZXF1ZXN0ZWQgYnkg
c2FhbXlqb29uIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKwor
ICAgICAgICAiYm1hbGxvYyBtdXRleCBzaG91bGQgYmUgYWRhcHRpdmUiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc4MzkKKyAgICAgICAgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyMjk0NQorCiAyMDE3LTEwLTI1ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIFNFUlZJQ0VfV09S
S0VSIGZlYXR1cmUgYnVpbGRhYmxlIG9uIEdUSywgV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggNGNlOGYxYjk2
N2Q3ZDlmODNhMTM3MDg2ODBiNmZhOTYwYmFiYzZjYy4uMGRkZjYyOTRlYmVmYWE2MWMwNzVkOGIw
MDExNjUxZjFjMmYyN2RiMiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEwLTI1
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjIyOTQ1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4ODE4CisKKyAgICAgICAgIkl0IG1hZGUgV2FzbUJlbmNo
IGNyYXNoIiAoUmVxdWVzdGVkIGJ5IHNhYW15am9vbiBvbiAjd2Via2l0KS4KKworICAgICAgICBS
ZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgImJtYWxsb2MgbXV0ZXggc2hvdWxkIGJlIGFk
YXB0aXZlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3ODM5CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMjI5NDUK
KwogMjAxNy0xMC0yNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0xpbnV4XSBFbmFibGUgR2lnYWNhZ2UgaW4geDY0IExpbnV4IGVudmlyb25tZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtSW5saW5lcy5oIGIvU291cmNl
L1dURi93dGYvTG9ja0FsZ29yaXRobUlubGluZXMuaAppbmRleCAzMWI0MmE1ZThhZWU0Y2FjNWI3
YzJhYTY2N2I5MGU5YmZjMDY1YmEyLi4wY2JlNWZhNWZhYzgxMGQ5Y2RmMWM5MzgzN2YzMDFlMmU2
OGZjNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtSW5saW5lcy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG1JbmxpbmVzLmgKQEAgLTMzLDEwICsz
Myw2IEBACiAvLyB0aGUgbG9jayBhbGdvcml0aG0gc2xvdyBwYXRoIHdpdGhvdXQgcmVjb21waWxp
bmcgdGhlIHdvcmxkLiBSaWdodCBub3cgdGhpcyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdHdvCiAv
LyBwbGFjZXMgKExvY2suY3BwIGFuZCBKU0NlbGwuY3BwKS4KIAotLy8gTk9URTogSXQncyBhIGJ1
ZyB0byB1c2UgYW55IG1lbW9yeSBvcmRlciBvdGhlciB0aGFuIHNlcV9jc3QgaW4gdGhpcyBjb2Rl
LiBUaGUgY29zdCBvZiBzZXFfY3N0Ci0vLyBmZW5jaW5nIGlzIG5lZ2xpZ2libGUgb24gc2xvdyBw
YXRocywgc28gYW55IHVzZSBvZiBhIG1vcmUgcmVsYXhlZCBtZW1vcnkgbW9kZWwgaXMgYWxsIHJp
c2sgYW5kIG5vCi0vLyByZXdhcmQuCi0KIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBMb2NrVHlwZSwgTG9ja1R5cGUgaXNIZWxkQml0LCBMb2NrVHlwZSBoYXNQYXJrZWRCaXQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JkTG9jay5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9Xb3JkTG9jay5jcHAKaW5kZXggNzM2MWRjMGZjZTkyODY5NjAyNzc1YjE5MTNiYTg3OGI4NGU1
NWE5MS4uOWU4ZmI5YmZmMDVmNmU2YmVhZjg5MGI2ZGQxOWQxYzI5YTA4NDVmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvV29yZExvY2suY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmRM
b2NrLmNwcApAQCAtNzYsMTAgKzc2LDYgQEAgVGhyZWFkRGF0YSogbXlUaHJlYWREYXRhKCkKIAog
fSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKLS8vIE5PVEU6IEl0J3MgYSBidWcgdG8gdXNlIGFu
eSBtZW1vcnkgb3JkZXIgb3RoZXIgdGhhbiBzZXFfY3N0IGluIHRoaXMgY29kZS4gVGhlIGNvc3Qg
b2Ygc2VxX2NzdAotLy8gZmVuY2luZyBpcyBuZWdsaWdpYmxlIG9uIHNsb3cgcGF0aHMsIHNvIGFu
eSB1c2Ugb2YgYSBtb3JlIHJlbGF4ZWQgbWVtb3J5IG1vZGVsIGlzIGFsbCByaXNrIGFuZCBubwot
Ly8gcmV3YXJkLgotCiBORVZFUl9JTkxJTkUgdm9pZCBXb3JkTG9ja0Jhc2U6OmxvY2tTbG93KCkK
IHsKICAgICB1bnNpZ25lZCBzcGluQ291bnQgPSAwOwpAQCAtMjI3LDggKzIyMyw3IEBAIE5FVkVS
X0lOTElORSB2b2lkIFdvcmRMb2NrQmFzZTo6dW5sb2NrU2xvdygpCiAgICAgQVNTRVJUKGN1cnJl
bnRXb3JkVmFsdWUgJiBpc0xvY2tlZEJpdCk7CiAgICAgQVNTRVJUKGN1cnJlbnRXb3JkVmFsdWUg
JiBpc1F1ZXVlTG9ja2VkQml0KTsKICAgICBUaHJlYWREYXRhKiBxdWV1ZUhlYWQgPSBiaXR3aXNl
X2Nhc3Q8VGhyZWFkRGF0YSo+KGN1cnJlbnRXb3JkVmFsdWUgJiB+cXVldWVIZWFkTWFzayk7Ci0g
ICAgUkVMRUFTRV9BU1NFUlQocXVldWVIZWFkKTsKLSAgICBSRUxFQVNFX0FTU0VSVChxdWV1ZUhl
YWQtPnNob3VsZFBhcmspOyAvLyBUaGlzIHdvdWxkIGhhdmUgYmVlbiBzZXQgYmVmb3JlIHRoZSB0
aHJlYWQgd2FzIGVucXVldWVkLCBzbyBpdCBtdXN0IHN0aWxsIGJlIHNldCBub3cuCisgICAgQVNT
RVJUKHF1ZXVlSGVhZCk7CiAKICAgICBUaHJlYWREYXRhKiBuZXdRdWV1ZUhlYWQgPSBxdWV1ZUhl
YWQtPm5leHRJblF1ZXVlOwogICAgIC8vIEVpdGhlciB0aGlzIHdhcyB0aGUgb25seSB0aHJlYWQg
b24gdGhlIHF1ZXVlLCBpbiB3aGljaCBjYXNlIHdlIGRlbGV0ZSB0aGUgcXVldWUsIG9yIHRoZXJl
CkBAIC0yNjEsMTIgKzI1NiwxMCBAQCBORVZFUl9JTkxJTkUgdm9pZCBXb3JkTG9ja0Jhc2U6OnVu
bG9ja1Nsb3coKQogICAgIHsKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxv
Y2tlcihxdWV1ZUhlYWQtPnBhcmtpbmdMb2NrKTsKICAgICAgICAgcXVldWVIZWFkLT5zaG91bGRQ
YXJrID0gZmFsc2U7Ci0gICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhlIG5vdGlmeSB3aGlsZSBz
dGlsbCBob2xkaW5nIHRoZSBsb2NrLCBzaW5jZSBvdGhlcndpc2UsIHdlIGNvdWxkIHRyeSB0bwot
ICAgICAgICAvLyBkbyBpdCBhZnRlciB0aGUgcXVldWVIZWFkIGhhcyBkZXN0cnVjdGVkLiBJdCdz
IGltcG9zc2libGUgZm9yIHF1ZXVlSGVhZCB0byBkZXN0cnVjdAotICAgICAgICAvLyB3aGlsZSB3
ZSBob2xkIHRoZSBsb2NrLCBzaW5jZSBpdCBpcyBlaXRoZXIgY3VycmVudGx5IGluIHRoZSB3YWl0
IGxvb3Agb3IgaXQncyBiZWZvcmUgaXQKLSAgICAgICAgLy8gc28gaXQgaGFzIHRvIGdyYWIgdGhl
IGxvY2sgYmVmb3JlIGRlc3RydWN0aW5nLgotICAgICAgICBxdWV1ZUhlYWQtPnBhcmtpbmdDb25k
aXRpb24ubm90aWZ5X29uZSgpOwogICAgIH0KKyAgICAvLyBEb2Vzbid0IG1hdHRlciBpZiB3ZSBu
b3RpZnlfYWxsKCkgb3Igbm90aWZ5X29uZSgpIGhlcmUgc2luY2UgdGhlIG9ubHkgdGhyZWFkIHRo
YXQgY291bGQgYmUKKyAgICAvLyB3YWl0aW5nIGlzIHF1ZXVlSGVhZC4KKyAgICBxdWV1ZUhlYWQt
PnBhcmtpbmdDb25kaXRpb24ubm90aWZ5X29uZSgpOwogCiAgICAgLy8gVGhlIG9sZCBxdWV1ZSBo
ZWFkIGNhbiBub3cgY29udGVuZCBmb3IgdGhlIGxvY2sgYWdhaW4uIFdlJ3JlIGRvbmUhCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsZ29yaXRobS5oIGIvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9BbGdvcml0aG0uaAppbmRleCBlNjgyYjc4ZGNiOWYwYTFhZjQ0OTJlYWQ0
ZTMwNmJkOWZjMWM0MWIzLi5hOGJlMjA0YmY0ZGE4MGFkMmY1YTRhNzkyZWVkZDQ0MDIyNDU3YmRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsZ29yaXRobS5oCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxnb3JpdGhtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVk
ZSAiQkFzc2VydC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxhdG9taWM+CiAj
aW5jbHVkZSA8Y3N0ZGludD4KICNpbmNsdWRlIDxjc3RkZGVmPgogI2luY2x1ZGUgPGxpbWl0cz4K
QEAgLTE1OSwyNCArMTU4LDYgQEAgaW5saW5lIGNvbnN0ZXhwciB1bnNpZ25lZCBsb25nIGxvZzIo
dW5zaWduZWQgbG9uZyB2YWx1ZSkKICAgICByZXR1cm4gYml0Q291bnQ8dW5zaWduZWQgbG9uZz4o
KSAtIDEgLSBfX2J1aWx0aW5fY2x6bCh2YWx1ZSk7CiB9CiAKLS8vIFdlIG5lZWQgYSBDQVMgQVBJ
IHRoYXQgaXNuJ3QgdGhlIGJhZGx5IGRlc2lnbmVkIG9uZSBmcm9tIEMrKy4KLXRlbXBsYXRlPHR5
cGVuYW1lIFQ+Ci1ib29sIGNvbXBhcmVFeGNoYW5nZVdlYWsoc3RkOjphdG9taWM8VD4mIHdvcmQs
IFQgZXhwZWN0ZWQsIFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1l
bW9yeV9vcmRlcl9zZXFfY3N0KQotewotICAgIC8vIFRoZXkgY291bGQgaGF2ZSBtYWRlIGEgc2Vu
c2libGUgQ0FTIEFQSSwgYnV0IHRoZXkgZGlkbid0LiBTbmVha3kgZmFjdDogZm9yIG5vIGdvb2Qg
cmVhc29uLCB0aGUKLSAgICAvLyBDKysgQVBJIHdpbGwgbXV0YXRlIGV4cGVjdGVkLiBJIHRoaW5r
IHRoYXQgYXBvbG9naXN0cyB3aWxsIHNheSBzb21ldGhpbmcgYWJvdXQgaG93IGl0IHNhdmVzIHlv
dQotICAgIC8vIHJlbG9hZGluZyB0aGUgdmFsdWUgYXJvdW5kIHRoZSBiYWNrIG9mIHlvdXIgQ0FT
IGxvb3AsIGJ1dCB0aGF0J3Mgbm9uc2Vuc2UuIFRoZSBkZWxheSBhbG9uZyB0aGUKLSAgICAvLyBi
YWNrIGVkZ2Ugb2YgYSBDQVMgbG9vcCBoYXMgYWxtb3N0IG5vIGltcGFjdCBvbiBDQVMgbG9vcCBw
ZXJmb3JtYW5jZS4gTW9yZSBvZnRlbiB0aGFuIG5vdCwgd2UKLSAgICAvLyB3YW50IHRvICphZGQq
IGRlbGF5cyB0byB0aGUgYmFjayBlZGdlLCBub3QgcmVtb3ZlIHRoZW0uCi0gICAgcmV0dXJuIHdv
cmQuY29tcGFyZV9leGNoYW5nZV93ZWFrKGV4cGVjdGVkLCBkZXNpcmVkLCBvcmRlciwgc3RkOjpt
ZW1vcnlfb3JkZXJfcmVsYXhlZCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1ib29sIGNv
bXBhcmVFeGNoYW5nZVN0cm9uZyhzdGQ6OmF0b21pYzxUPiYgd29yZCwgVCBleHBlY3RlZCwgVCBk
ZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRlciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9j
c3QpCi17Ci0gICAgcmV0dXJuIHdvcmQuY29tcGFyZV9leGNoYW5nZV9zdHJvbmcoZXhwZWN0ZWQs
IGRlc2lyZWQsIG9yZGVyLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgYm1hbGxvYwogCiAjZW5kaWYgLy8gQWxnb3JpdGhtX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvUGVyVGhyZWFkLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L1BlclRocmVhZC5oCmluZGV4IGRmODdmMGViMmEyYjU0ZWNiYTg0YzYzMmE1NjUyYTBhZDU3MzU3
NzEuLmI4NDhmODI4ZTk1NDkwZWM2ZDVkOTkwMzIxNmQyMGI5YzY3ZGUxNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvUGVyVGhyZWFkLmgKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9QZXJUaHJlYWQuaApAQCAtNjAsMTEgKzYwLDExIEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgZGVzdHJ1Y3Rvcih2b2lkKik7CiB9OwogCisjaWYgSEFWRV9QVEhSRUFEX01BQ0hE
RVBfSAorCiBjbGFzcyBDYWNoZTsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBQZXJUaHJl
YWRTdG9yYWdlOwogCi0jaWYgSEFWRV9QVEhSRUFEX01BQ0hERVBfSAotCiAvLyBGb3Igbm93LCB3
ZSBvbmx5IHN1cHBvcnQgUGVyVGhyZWFkPFBlckhlYXBLaW5kPENhY2hlPj4uIFdlIGNhbiBleHBh
bmQgdG8gb3RoZXIgdHlwZXMgYnkKIC8vIHVzaW5nIG1vcmUga2V5cy4KIHRlbXBsYXRlPD4gc3Ry
dWN0IFBlclRocmVhZFN0b3JhZ2U8UGVySGVhcEtpbmQ8Q2FjaGU+PiB7CkBAIC04Miw3ICs4Miw3
IEBAIHRlbXBsYXRlPD4gc3RydWN0IFBlclRocmVhZFN0b3JhZ2U8UGVySGVhcEtpbmQ8Q2FjaGU+
PiB7CiAgICAgfQogfTsKIAotI2VuZGlmCisjZWxzZQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgUGVyVGhyZWFkU3RvcmFnZSB7CiAgICAgc3RhdGljIGJvb2wgc19kaWRJbml0aWFsaXpl
OwpAQCAtMTEyLDYgKzExMiw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgUGVyVGhyZWFk
U3RvcmFnZTxUPjo6c19kaWRJbml0aWFsaXplOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gcHRocmVh
ZF9rZXlfdCBQZXJUaHJlYWRTdG9yYWdlPFQ+OjpzX2tleTsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0ZDo6b25jZV9mbGFnIFBlclRocmVhZFN0b3JhZ2U8VD46OnNfb25jZUZsYWc7CiAKKyNlbmRp
ZgorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogQklOTElORSBUKiBQZXJUaHJlYWQ8VD46OmdldEZh
c3RDYXNlKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU3RhdGljTXV0
ZXguY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TdGF0aWNNdXRleC5jcHAKaW5kZXggYjQ0
NGFmMDgxZmQ0OWQ3MmRiZWQ3ODBmOWZjMGZlZGVkNzA2YmE1MS4uMWUyZTFjM2MwYzA4NGUzM2My
ZWEzMWFhYTg1NTFlYjAzMjZkZDQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9TdGF0aWNNdXRleC5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TdGF0aWNNdXRl
eC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjMsMjQ1ICsyMywzMSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2luY2x1ZGUg
IlN0YXRpY011dGV4LmgiCi0KLSNpbmNsdWRlICJQZXJUaHJlYWQuaCIKICNpbmNsdWRlICJTY29w
ZUV4aXQuaCIKLSNpbmNsdWRlIDxjb25kaXRpb25fdmFyaWFibGU+Ci0jaW5jbHVkZSA8bXV0ZXg+
CisjaW5jbHVkZSAiU3RhdGljTXV0ZXguaCIKICNpbmNsdWRlIDx0aHJlYWQ+CiAKIG5hbWVzcGFj
ZSBibWFsbG9jIHsKIAotLy8gRklYTUU6IFRoaXMgZHVwbGljYXRlcyBjb2RlIGZyb20gV1RGOjpX
b3JkTG9jay4KLS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc3
MTkKLQotbmFtZXNwYWNlIHsKLQotLy8gVGhpcyBkYXRhIHN0cnVjdHVyZSBzZXJ2ZXMgdGhyZWUg
cHVycG9zZXM6Ci0vLwotLy8gMSkgQSBwYXJraW5nIG1lY2hhbmlzbSBmb3IgdGhyZWFkcyB0aGF0
IGdvIHRvIHNsZWVwLiBUaGF0IGludm9sdmVzIGp1c3QgYSBzeXN0ZW0gbXV0ZXggYW5kCi0vLyAg
ICBjb25kaXRpb24gdmFyaWFibGUuCi0vLwotLy8gMikgQSBxdWV1ZSBub2RlIGZvciB3aGVuIGEg
dGhyZWFkIGlzIG9uIHNvbWUgbG9jaydzIHF1ZXVlLgotLy8KLS8vIDMpIFRoZSBxdWV1ZSBoZWFk
LiBUaGlzIGlzIGtpbmQgb2YgZnVua3kuIFdoZW4gYSB0aHJlYWQgaXMgdGhlIGhlYWQgb2YgYSBx
dWV1ZSwgaXQgYWxzbyBzZXJ2ZXMgYXMKLS8vICAgIHRoZSBiYXNpYyBxdWV1ZSBib29ra2VlcGlu
ZyBkYXRhIHN0cnVjdHVyZS4gV2hlbiBhIHRocmVhZCBpcyBkZXF1ZXVlZCwgdGhlIG5leHQgdGhy
ZWFkIGluIHRoZQotLy8gICAgcXVldWUgdGFrZXMgb24gdGhlIHF1ZXVlIGhlYWQgZHV0aWVzLgot
c3RydWN0IFRocmVhZERhdGEgewotICAgIC8vIFRoZSBwYXJraW5nIG1lY2hhbmlzbS4KLSAgICBi
b29sIHNob3VsZFBhcmsgeyBmYWxzZSB9OwotICAgIHN0ZDo6bXV0ZXggcGFya2luZ0xvY2s7Ci0g
ICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgcGFya2luZ0NvbmRpdGlvbjsKLQotICAgIC8vIFRo
ZSBxdWV1ZSBub2RlLgotICAgIFRocmVhZERhdGEqIG5leHRJblF1ZXVlIHsgbnVsbHB0ciB9Owot
Ci0gICAgLy8gVGhlIHF1ZXVlIGl0c2VsZi4KLSAgICBUaHJlYWREYXRhKiBxdWV1ZVRhaWwgeyBu
dWxscHRyIH07Ci19OwotCi1UaHJlYWREYXRhKiBteVRocmVhZERhdGEoKQordm9pZCBTdGF0aWNN
dXRleDo6bG9ja1Nsb3dDYXNlKCkKIHsKLSAgICByZXR1cm4gUGVyVGhyZWFkPFRocmVhZERhdGE+
OjpnZXQoKTsKLX0KLQotfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0KLS8vIE5PVEU6IEl0J3Mg
YSBidWcgdG8gdXNlIGFueSBtZW1vcnkgb3JkZXIgb3RoZXIgdGhhbiBzZXFfY3N0IGluIHRoaXMg
Y29kZS4gVGhlIGNvc3Qgb2Ygc2VxX2NzdAotLy8gZmVuY2luZyBpcyBuZWdsaWdpYmxlIG9uIHNs
b3cgcGF0aHMsIHNvIGFueSB1c2Ugb2YgYSBtb3JlIHJlbGF4ZWQgbWVtb3J5IG1vZGVsIGlzIGFs
bCByaXNrIGFuZCBubwotLy8gcmV3YXJkLgotCi1CTk9fSU5MSU5FIHZvaWQgU3RhdGljTXV0ZXg6
OmxvY2tTbG93KCkKLXsKLSAgICB1bnNpZ25lZCBzcGluQ291bnQgPSAwOwotCi0gICAgLy8gVGhp
cyBtYWdpYyBudW1iZXIgdHVybnMgb3V0IHRvIGJlIG9wdGltYWwgYmFzZWQgb24gcGFzdCBKaWtl
c1JWTSBleHBlcmltZW50cy4KLSAgICBjb25zdCB1bnNpZ25lZCBzcGluTGltaXQgPSA0MDsKKyAg
ICAvLyBUaGUgbG9uZ2VzdCBjcml0aWNhbCBzZWN0aW9uIGluIGJtYWxsb2MgaXMgbXVjaCBzaG9y
dGVyIHRoYW4gdGhlCisgICAgLy8gdGltZSBpdCB0YWtlcyB0byBtYWtlIGEgc3lzdGVtIGNhbGwg
dG8geWllbGQgdG8gdGhlIE9TIHNjaGVkdWxlci4KKyAgICAvLyBTbywgd2UgdHJ5IGFnYWluIGEg
bG90IGJlZm9yZSB3ZSB5aWVsZC4KKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGFMb3QgPSAyNTY7
CiAgICAgCi0gICAgZm9yICg7OykgewotICAgICAgICB1aW50cHRyX3QgY3VycmVudFdvcmRWYWx1
ZSA9IG1fd29yZC5sb2FkKCk7Ci0gICAgICAgIAotICAgICAgICBpZiAoIShjdXJyZW50V29yZFZh
bHVlICYgaXNMb2NrZWRCaXQpKSB7Ci0gICAgICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSBm
b3Igc29tZW9uZSB0byBob2xkIHRoZSBxdWV1ZSBsb2NrIHdoaWxlIHRoZSBsb2NrIGl0c2VsZiBp
cyBubyBsb25nZXIKLSAgICAgICAgICAgIC8vIGhlbGQsIHNpbmNlIHdlIHdpbGwgb25seSBhdHRl
bXB0IHRvIGFjcXVpcmUgdGhlIHF1ZXVlIGxvY2sgd2hlbiB0aGUgbG9jayBpcyBoZWxkIGFuZAot
ICAgICAgICAgICAgLy8gdGhlIHF1ZXVlIGxvY2sgcHJldmVudHMgdW5sb2NrLgotICAgICAgICAg
ICAgQkFTU0VSVCghKGN1cnJlbnRXb3JkVmFsdWUgJiBpc1F1ZXVlTG9ja2VkQml0KSk7Ci0gICAg
ICAgICAgICBpZiAoY29tcGFyZUV4Y2hhbmdlV2VhayhtX3dvcmQsIGN1cnJlbnRXb3JkVmFsdWUs
IGN1cnJlbnRXb3JkVmFsdWUgfCBpc0xvY2tlZEJpdCkpIHsKLSAgICAgICAgICAgICAgICAvLyBT
dWNjZXNzISBXZSBhY3F1aXJlZCB0aGUgbG9jay4KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBxdWV1
ZSBhbmQgd2UgaGF2ZW4ndCBzcHVuIHRvbyBtdWNoLCB3ZSBjYW4ganVzdCB0cnkgdG8gc3BpbiBh
cm91bmQgYWdhaW4uCi0gICAgICAgIGlmICghKGN1cnJlbnRXb3JkVmFsdWUgJiB+cXVldWVIZWFk
TWFzaykgJiYgc3BpbkNvdW50IDwgc3BpbkxpbWl0KSB7Ci0gICAgICAgICAgICBzcGluQ291bnQr
KzsKLSAgICAgICAgICAgIHNjaGVkX3lpZWxkKCk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIC8vIE5lZWQgdG8gcHV0IG91cnNlbHZlcyBvbiB0aGUgcXVldWUu
IENyZWF0ZSB0aGUgcXVldWUgaWYgb25lIGRvZXMgbm90IGV4aXN0LiBUaGlzIHJlcXVyaWVzCi0g
ICAgICAgIC8vIG93bmluZyB0aGUgcXVldWUgZm9yIGEgbGl0dGxlIGJpdC4gVGhlIGxvY2sgdGhh
dCBjb250cm9scyB0aGUgcXVldWUgaXMgaXRzZWxmIGEgc3BpbmxvY2suCi0gICAgICAgIC8vIEJ1
dCBiZWZvcmUgd2UgYWNxdWlyZSB0aGUgcXVldWUgc3BpbmxvY2ssIHdlIG1ha2Ugc3VyZSB0aGF0
IHdlIGhhdmUgYSBUaHJlYWREYXRhIGZvciB0aGlzCi0gICAgICAgIC8vIHRocmVhZC4KLSAgICAg
ICAgVGhyZWFkRGF0YSogbWUgPSBteVRocmVhZERhdGEoKTsKLSAgICAgICAgQkFTU0VSVCghbWUt
PnNob3VsZFBhcmspOwotICAgICAgICBCQVNTRVJUKCFtZS0+bmV4dEluUXVldWUpOwotICAgICAg
ICBCQVNTRVJUKCFtZS0+cXVldWVUYWlsKTsKLQotICAgICAgICAvLyBSZWxvYWQgdGhlIGN1cnJl
bnQgd29yZCB2YWx1ZSwgc2luY2Ugc29tZSB0aW1lIG1heSBoYXZlIHBhc3NlZC4KLSAgICAgICAg
Y3VycmVudFdvcmRWYWx1ZSA9IG1fd29yZC5sb2FkKCk7Ci0KLSAgICAgICAgLy8gV2UgcHJvY2Vl
ZCBvbmx5IGlmIHRoZSBxdWV1ZSBsb2NrIGlzIG5vdCBoZWxkLCB0aGUgbG9jayBpcyBoZWxkLCBh
bmQgd2Ugc3VjY2VlZCBpbgotICAgICAgICAvLyBhY3F1aXJpbmcgdGhlIHF1ZXVlIGxvY2suCi0g
ICAgICAgIGlmICgoY3VycmVudFdvcmRWYWx1ZSAmIGlzUXVldWVMb2NrZWRCaXQpCi0gICAgICAg
ICAgICB8fCAhKGN1cnJlbnRXb3JkVmFsdWUgJiBpc0xvY2tlZEJpdCkKLSAgICAgICAgICAgIHx8
ICFjb21wYXJlRXhjaGFuZ2VXZWFrKG1fd29yZCwgY3VycmVudFdvcmRWYWx1ZSwgY3VycmVudFdv
cmRWYWx1ZSB8IGlzUXVldWVMb2NrZWRCaXQpKSB7Ci0gICAgICAgICAgICBzY2hlZF95aWVsZCgp
OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIG1l
LT5zaG91bGRQYXJrID0gdHJ1ZTsKLQotICAgICAgICAvLyBXZSBvd24gdGhlIHF1ZXVlLiBOb2Jv
ZHkgY2FuIGVucXVldWUgb3IgZGVxdWV1ZSB1bnRpbCB3ZSdyZSBkb25lLiBBbHNvLCBpdCdzIG5v
dCBwb3NzaWJsZQotICAgICAgICAvLyB0byByZWxlYXNlIHRoZSBsb2NrIHdoaWxlIHdlIGhvbGQg
dGhlIHF1ZXVlIGxvY2suCi0gICAgICAgIFRocmVhZERhdGEqIHF1ZXVlSGVhZCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8VGhyZWFkRGF0YSo+KGN1cnJlbnRXb3JkVmFsdWUgJiB+cXVldWVIZWFkTWFzayk7
Ci0gICAgICAgIGlmIChxdWV1ZUhlYWQpIHsKLSAgICAgICAgICAgIC8vIFB1dCB0aGlzIHRocmVh
ZCBhdCB0aGUgZW5kIG9mIHRoZSBxdWV1ZS4KLSAgICAgICAgICAgIHF1ZXVlSGVhZC0+cXVldWVU
YWlsLT5uZXh0SW5RdWV1ZSA9IG1lOwotICAgICAgICAgICAgcXVldWVIZWFkLT5xdWV1ZVRhaWwg
PSBtZTsKKyAgICBpZiAoIW1faXNTcGlubmluZy50ZXN0X2FuZF9zZXQoKSkgeworICAgICAgICBh
dXRvIGNsZWFyID0gbWFrZVNjb3BlRXhpdChbJl0geyBtX2lzU3Bpbm5pbmcuY2xlYXIoKTsgfSk7
CiAKLSAgICAgICAgICAgIC8vIFJlbGVhc2UgdGhlIHF1ZXVlIGxvY2suCi0gICAgICAgICAgICBj
dXJyZW50V29yZFZhbHVlID0gbV93b3JkLmxvYWQoKTsKLSAgICAgICAgICAgIEJBU1NFUlQoY3Vy
cmVudFdvcmRWYWx1ZSAmIH5xdWV1ZUhlYWRNYXNrKTsKLSAgICAgICAgICAgIEJBU1NFUlQoY3Vy
cmVudFdvcmRWYWx1ZSAmIGlzUXVldWVMb2NrZWRCaXQpOwotICAgICAgICAgICAgQkFTU0VSVChj
dXJyZW50V29yZFZhbHVlICYgaXNMb2NrZWRCaXQpOwotICAgICAgICAgICAgbV93b3JkLnN0b3Jl
KGN1cnJlbnRXb3JkVmFsdWUgJiB+aXNRdWV1ZUxvY2tlZEJpdCk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAvLyBNYWtlIHRoaXMgdGhyZWFkIGJlIHRoZSBxdWV1ZS1oZWFkLgotICAg
ICAgICAgICAgcXVldWVIZWFkID0gbWU7Ci0gICAgICAgICAgICBtZS0+cXVldWVUYWlsID0gbWU7
Ci0KLSAgICAgICAgICAgIC8vIFJlbGVhc2UgdGhlIHF1ZXVlIGxvY2sgYW5kIGluc3RhbGwgb3Vy
c2VsdmVzIGFzIHRoZSBoZWFkLiBObyBuZWVkIGZvciBhIENBUyBsb29wLCBzaW5jZQotICAgICAg
ICAgICAgLy8gd2Ugb3duIHRoZSBxdWV1ZSBsb2NrLgotICAgICAgICAgICAgY3VycmVudFdvcmRW
YWx1ZSA9IG1fd29yZC5sb2FkKCk7Ci0gICAgICAgICAgICBCQVNTRVJUKH4oY3VycmVudFdvcmRW
YWx1ZSAmIH5xdWV1ZUhlYWRNYXNrKSk7Ci0gICAgICAgICAgICBCQVNTRVJUKGN1cnJlbnRXb3Jk
VmFsdWUgJiBpc1F1ZXVlTG9ja2VkQml0KTsKLSAgICAgICAgICAgIEJBU1NFUlQoY3VycmVudFdv
cmRWYWx1ZSAmIGlzTG9ja2VkQml0KTsKLSAgICAgICAgICAgIHVpbnRwdHJfdCBuZXdXb3JkVmFs
dWUgPSBjdXJyZW50V29yZFZhbHVlOwotICAgICAgICAgICAgbmV3V29yZFZhbHVlIHw9IHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihxdWV1ZUhlYWQpOwotICAgICAgICAgICAgbmV3V29yZFZh
bHVlICY9IH5pc1F1ZXVlTG9ja2VkQml0OwotICAgICAgICAgICAgbV93b3JkLnN0b3JlKG5ld1dv
cmRWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGV2ZXJ5b25l
IHdobyBhY3F1aXJlcyB0aGUgcXVldWUgbG9jayB3aWxsIHNlZSBtZSBvbiB0aGUgcXVldWUsIGFu
ZCBhbnlvbmUgd2hvCi0gICAgICAgIC8vIGFjcXVpcmVzIG1lJ3MgbG9jayB3aWxsIHNlZSB0aGF0
IG1lIHdhbnRzIHRvIHBhcmsuIE5vdGUgdGhhdCBzaG91bGRQYXJrIG1heSBoYXZlIGJlZW4KLSAg
ICAgICAgLy8gY2xlYXJlZCBhcyBzb29uIGFzIHRoZSBxdWV1ZSBsb2NrIHdhcyByZWxlYXNlZCBh
Ym92ZSwgYnV0IGl0IHdpbGwgaGFwcGVuIHdoaWxlIHRoZQotICAgICAgICAvLyByZWxlYXNpbmcg
dGhyZWFkIGhvbGRzIG1lJ3MgcGFya2luZ0xvY2suCi0KLSAgICAgICAgewotICAgICAgICAgICAg
c3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsKLSAg
ICAgICAgICAgIHdoaWxlIChtZS0+c2hvdWxkUGFyaykKLSAgICAgICAgICAgICAgICBtZS0+cGFy
a2luZ0NvbmRpdGlvbi53YWl0KGxvY2tlcik7Ci0gICAgICAgIH0KLQotICAgICAgICBCQVNTRVJU
KCFtZS0+c2hvdWxkUGFyayk7Ci0gICAgICAgIEJBU1NFUlQoIW1lLT5uZXh0SW5RdWV1ZSk7Ci0g
ICAgICAgIEJBU1NFUlQoIW1lLT5xdWV1ZVRhaWwpOwotICAgICAgICAKLSAgICAgICAgLy8gTm93
IHdlIGNhbiBsb29wIGFyb3VuZCBhbmQgdHJ5IHRvIGFjcXVpcmUgdGhlIGxvY2sgYWdhaW4uCi0g
ICAgfQotfQotCi1CTk9fSU5MSU5FIHZvaWQgU3RhdGljTXV0ZXg6OnVubG9ja1Nsb3coKQotewot
ICAgIC8vIFRoZSBmYXN0IHBhdGggY2FuIGZhaWwgZWl0aGVyIGJlY2F1c2Ugb2Ygc3B1cmlvdXMg
d2VhayBDQVMgZmFpbHVyZSwgb3IgYmVjYXVzZSBzb21lb25lIHB1dCBhCi0gICAgLy8gdGhyZWFk
IG9uIHRoZSBxdWV1ZSwgb3IgdGhlIHF1ZXVlIGxvY2sgaXMgaGVsZC4gSWYgdGhlIHF1ZXVlIGxv
Y2sgaXMgaGVsZCwgaXQgY2FuIG9ubHkgYmUKLSAgICAvLyBiZWNhdXNlIHNvbWVvbmUgKndpbGwq
IGVucXVldWUgYSB0aHJlYWQgb250byB0aGUgcXVldWUuCi0KLSAgICAvLyBBY3F1aXJlIHRoZSBx
dWV1ZSBsb2NrLCBvciByZWxlYXNlIHRoZSBsb2NrLiBUaGlzIGxvb3AgaGFuZGxlcyBib3RoIGxv
Y2sgcmVsZWFzZSBpbiBjYXNlIHRoZQotICAgIC8vIGZhc3QgcGF0aCdzIHdlYWsgQ0FTIHNwdXJp
b3VzbHkgZmFpbGVkIGFuZCBpdCBoYW5kbGVzIHF1ZXVlIGxvY2sgYWNxdWlzaXRpb24gaWYgdGhl
cmUgaXMKLSAgICAvLyBhY3R1YWxseSBzb21ldGhpbmcgaW50ZXJlc3Rpbmcgb24gdGhlIHF1ZXVl
LgotICAgIGZvciAoOzspIHsKLSAgICAgICAgdWludHB0cl90IGN1cnJlbnRXb3JkVmFsdWUgPSBt
X3dvcmQubG9hZCgpOwotCi0gICAgICAgIEJBU1NFUlQoY3VycmVudFdvcmRWYWx1ZSAmIGlzTG9j
a2VkQml0KTsKLSAgICAgICAgCi0gICAgICAgIGlmIChjdXJyZW50V29yZFZhbHVlID09IGlzTG9j
a2VkQml0KSB7Ci0gICAgICAgICAgICBpZiAoY29tcGFyZUV4Y2hhbmdlV2VhayhtX3dvcmQsIGlz
TG9ja2VkQml0LCBjbGVhcikpIHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgZmFzdCBwYXRoJ3Mg
d2VhayBDQVMgaGFkIHNwdXJpb3VzbHkgZmFpbGVkLCBhbmQgbm93IHdlIHN1Y2NlZWRlZC4gVGhl
IGxvY2sgaXMKLSAgICAgICAgICAgICAgICAvLyB1bmxvY2tlZCBhbmQgd2UncmUgZG9uZSEKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhTG90OyArK2kpIHsKKyAgICAgICAgICAgIGlm
ICh0cnlfbG9jaygpKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIC8vIExvb3AgYXJvdW5kIGFuZCB0cnkgYWdhaW4uCi0gICAgICAgICAgICBzY2hl
ZF95aWVsZCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGlmIChjdXJyZW50V29yZFZhbHVlICYgaXNRdWV1ZUxvY2tlZEJpdCkgewotICAgICAg
ICAgICAgc2NoZWRfeWllbGQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0K
LSAgICAgICAgLy8gSWYgaXQgd2Fzbid0IGp1c3QgYSBzcHVyaW91cyB3ZWFrIENBUyBmYWlsdXJl
IGFuZCBpZiB0aGUgcXVldWUgbG9jayBpcyBub3QgaGVsZCwgdGhlbiB0aGVyZQotICAgICAgICAv
LyBtdXN0IGJlIGFuIGVudHJ5IG9uIHRoZSBxdWV1ZS4KLSAgICAgICAgQkFTU0VSVChjdXJyZW50
V29yZFZhbHVlICYgfnF1ZXVlSGVhZE1hc2spOwotCi0gICAgICAgIGlmIChjb21wYXJlRXhjaGFu
Z2VXZWFrKG1fd29yZCwgY3VycmVudFdvcmRWYWx1ZSwgY3VycmVudFdvcmRWYWx1ZSB8IGlzUXVl
dWVMb2NrZWRCaXQpKQotICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgdWludHB0cl90
IGN1cnJlbnRXb3JkVmFsdWUgPSBtX3dvcmQubG9hZCgpOwotICAgICAgICAKLSAgICAvLyBBZnRl
ciB3ZSBhY3F1aXJlIHRoZSBxdWV1ZSBsb2NrLCB0aGUgbG9jayBtdXN0IHN0aWxsIGJlIGhlbGQg
YW5kIHRoZSBxdWV1ZSBtdXN0IGJlCi0gICAgLy8gbm9uLWVtcHR5LiBUaGUgcXVldWUgbXVzdCBi
ZSBub24tZW1wdHkgc2luY2Ugb25seSB0aGUgbG9ja1Nsb3coKSBtZXRob2QgY291bGQgaGF2ZSBo
ZWxkIHRoZQotICAgIC8vIHF1ZXVlIGxvY2sgYW5kIGlmIGl0IGRpZCB0aGVuIGl0IG9ubHkgcmVs
ZWFzZXMgaXQgYWZ0ZXIgcHV0dGluZyBzb21ldGhpbmcgb24gdGhlIHF1ZXVlLgotICAgIEJBU1NF
UlQoY3VycmVudFdvcmRWYWx1ZSAmIGlzTG9ja2VkQml0KTsKLSAgICBCQVNTRVJUKGN1cnJlbnRX
b3JkVmFsdWUgJiBpc1F1ZXVlTG9ja2VkQml0KTsKLSAgICBUaHJlYWREYXRhKiBxdWV1ZUhlYWQg
PSByZWludGVycHJldF9jYXN0PFRocmVhZERhdGEqPihjdXJyZW50V29yZFZhbHVlICYgfnF1ZXVl
SGVhZE1hc2spOwotICAgIFJFTEVBU0VfQkFTU0VSVChxdWV1ZUhlYWQpOwotICAgIFJFTEVBU0Vf
QkFTU0VSVChxdWV1ZUhlYWQtPnNob3VsZFBhcmspOwotCi0gICAgVGhyZWFkRGF0YSogbmV3UXVl
dWVIZWFkID0gcXVldWVIZWFkLT5uZXh0SW5RdWV1ZTsKLSAgICAvLyBFaXRoZXIgdGhpcyB3YXMg
dGhlIG9ubHkgdGhyZWFkIG9uIHRoZSBxdWV1ZSwgaW4gd2hpY2ggY2FzZSB3ZSBkZWxldGUgdGhl
IHF1ZXVlLCBvciB0aGVyZQotICAgIC8vIGFyZSBzdGlsbCBtb3JlIHRocmVhZHMgb24gdGhlIHF1
ZXVlLCBpbiB3aGljaCBjYXNlIHdlIGNyZWF0ZSBhIG5ldyBxdWV1ZSBoZWFkLgotICAgIGlmIChu
ZXdRdWV1ZUhlYWQpCi0gICAgICAgIG5ld1F1ZXVlSGVhZC0+cXVldWVUYWlsID0gcXVldWVIZWFk
LT5xdWV1ZVRhaWw7Ci0KLSAgICAvLyBDaGFuZ2UgdGhlIHF1ZXVlIGhlYWQsIHBvc3NpYmx5IHJl
bW92aW5nIGl0IGlmIG5ld1F1ZXVlSGVhZCBpcyBudWxsLiBObyBuZWVkIGZvciBhIENBUyBsb29w
LAotICAgIC8vIHNpbmNlIHdlIGhvbGQgdGhlIHF1ZXVlIGxvY2sgYW5kIHRoZSBsb2NrIGl0c2Vs
ZiBzbyBub3RoaW5nIGFib3V0IHRoZSBsb2NrIGNhbiBjaGFuZ2UgcmlnaHQKLSAgICAvLyBub3cu
Ci0gICAgY3VycmVudFdvcmRWYWx1ZSA9IG1fd29yZC5sb2FkKCk7Ci0gICAgQkFTU0VSVChjdXJy
ZW50V29yZFZhbHVlICYgaXNMb2NrZWRCaXQpOwotICAgIEJBU1NFUlQoY3VycmVudFdvcmRWYWx1
ZSAmIGlzUXVldWVMb2NrZWRCaXQpOwotICAgIEJBU1NFUlQoKGN1cnJlbnRXb3JkVmFsdWUgJiB+
cXVldWVIZWFkTWFzaykgPT0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHF1ZXVlSGVhZCkp
OwotICAgIHVpbnRwdHJfdCBuZXdXb3JkVmFsdWUgPSBjdXJyZW50V29yZFZhbHVlOwotICAgIG5l
d1dvcmRWYWx1ZSAmPSB+aXNMb2NrZWRCaXQ7IC8vIFJlbGVhc2UgdGhlIGxvY2suCi0gICAgbmV3
V29yZFZhbHVlICY9IH5pc1F1ZXVlTG9ja2VkQml0OyAvLyBSZWxlYXNlIHRoZSBxdWV1ZSBsb2Nr
LgotICAgIG5ld1dvcmRWYWx1ZSAmPSBxdWV1ZUhlYWRNYXNrOyAvLyBDbGVhciBvdXQgdGhlIG9s
ZCBxdWV1ZSBoZWFkLgotICAgIG5ld1dvcmRWYWx1ZSB8PSByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4obmV3UXVldWVIZWFkKTsgLy8gSW5zdGFsbCBuZXcgcXVldWUgaGVhZC4KLSAgICBtX3dv
cmQuc3RvcmUobmV3V29yZFZhbHVlKTsKLQotICAgIC8vIE5vdyB0aGUgbG9jayBpcyBhdmFpbGFi
bGUgZm9yIGFjcXVpc2l0aW9uLiBCdXQgd2UganVzdCBoYXZlIHRvIHdha2UgdXAgdGhlIG9sZCBx
dWV1ZSBoZWFkLgotICAgIC8vIEFmdGVyIHRoYXQsIHdlJ3JlIGRvbmUhCi0KLSAgICBxdWV1ZUhl
YWQtPm5leHRJblF1ZXVlID0gbnVsbHB0cjsKLSAgICBxdWV1ZUhlYWQtPnF1ZXVlVGFpbCA9IG51
bGxwdHI7Ci0KLSAgICAvLyBXZSBkbyB0aGlzIGNhcmVmdWxseSBiZWNhdXNlIHRoaXMgbWF5IHJ1
biBlaXRoZXIgYmVmb3JlIG9yIGR1cmluZyB0aGUgcGFya2luZ0xvY2sgY3JpdGljYWwKLSAgICAv
LyBzZWN0aW9uIGluIGxvY2tTbG93KCkuCi0gICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
c3RkOjptdXRleD4gbG9ja2VyKHF1ZXVlSGVhZC0+cGFya2luZ0xvY2spOwotICAgICAgICBSRUxF
QVNFX0JBU1NFUlQocXVldWVIZWFkLT5zaG91bGRQYXJrKTsKLSAgICAgICAgcXVldWVIZWFkLT5z
aG91bGRQYXJrID0gZmFsc2U7Ci0gICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhlIG5vdGlmeSB3
aGlsZSBzdGlsbCBob2xkaW5nIHRoZSBsb2NrLCBzaW5jZSBvdGhlcndpc2UsIHdlIGNvdWxkIHRy
eSB0bwotICAgICAgICAvLyBkbyBpdCBhZnRlciB0aGUgcXVldWVIZWFkIGhhcyBkZXN0cnVjdGVk
LiBJdCdzIGltcG9zc2libGUgZm9yIHF1ZXVlSGVhZCB0byBkZXN0cnVjdAotICAgICAgICAvLyB3
aGlsZSB3ZSBob2xkIHRoZSBsb2NrLCBzaW5jZSBpdCBpcyBlaXRoZXIgY3VycmVudGx5IGluIHRo
ZSB3YWl0IGxvb3Agb3IgaXQncyBiZWZvcmUgaXQKLSAgICAgICAgLy8gc28gaXQgaGFzIHRvIGdy
YWIgdGhlIGxvY2sgYmVmb3JlIGRlc3RydWN0aW5nLgotICAgICAgICBxdWV1ZUhlYWQtPnBhcmtp
bmdDb25kaXRpb24ubm90aWZ5X29uZSgpOwotICAgIH0KLSAgICAKLSAgICAvLyBUaGUgb2xkIHF1
ZXVlIGhlYWQgY2FuIG5vdyBjb250ZW5kIGZvciB0aGUgbG9jayBhZ2Fpbi4gV2UncmUgZG9uZSEK
KyAgICAvLyBBdm9pZCBzcGlubmluZyBwYXRob2xvZ2ljYWxseS4KKyAgICB3aGlsZSAoIXRyeV9s
b2NrKCkpCisgICAgICAgIHNjaGVkX3lpZWxkKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIGJtYWxs
b2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU3RhdGljTXV0ZXguaCBiL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvU3RhdGljTXV0ZXguaAppbmRleCAyMzY2NzMzZmNhMWZhMzAz
MTk2Y2I0ZGU2MjNlYTc2ZWQ2ZWM1M2U3Li45ZTEzNjE3NDlkOTU4NzU2OGM2ZDhhZDEyYzI5Mzkx
N2FlY2VjYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1N0YXRpY011dGV4
LmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TdGF0aWNNdXRleC5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDcg
QEAKICNpZm5kZWYgU3RhdGljTXV0ZXhfaAogI2RlZmluZSBTdGF0aWNNdXRleF9oCiAKLSNpbmNs
dWRlICJBbGdvcml0aG0uaCIKICNpbmNsdWRlICJCQXNzZXJ0LmgiCi0jaW5jbHVkZSAiQkV4cG9y
dC5oIgogI2luY2x1ZGUgPGF0b21pYz4KICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx0aHJl
YWQ+CkBAIC0zOCwxNiArMzYsNiBAQAogLy8gVXNlIFN0YXRpY011dGV4IGluIHN0YXRpYyBzdG9y
YWdlLCB3aGVyZSBnbG9iYWwgY29uc3RydWN0b3JzIGFuZCBleGl0LXRpbWUKIC8vIGRlc3RydWN0
b3JzIGFyZSBwcm9oaWJpdGVkLCBidXQgYWxsIG1lbW9yeSBpcyB6ZXJvLWluaXRpYWxpemVkIGF1
dG9tYXRpY2FsbHkuCiAKLS8vIFRoaXMgdXNlcyB0aGUgY29kZSBmcm9tIHdoYXQgV1RGIHVzZWQg
dG8gY2FsbCBXb3JkTG9jay4gSXQncyBhIGZ1bGx5IGFkYXB0aXZlIG11dGV4IHRoYXQgdXNlcwot
Ly8gc2l6ZW9mKHZvaWQqKSBzdG9yYWdlLiBJdCBoYXMgYSBmYXN0IHBhdGggdGhhdCBpcyBzaW1p
bGFyIHRvIGEgc3BpbmxvY2ssIGFuZCBhIHNsb3cgcGF0aCB0aGF0IGlzCi0vLyBzaW1pbGFyIHRv
IHN0ZDo6bXV0ZXguCi0KLS8vIE5PVEU6IEluIGdlbmVyYWwsIHRoaXMgaXMgYSBncmVhdCBsb2Nr
IHRvIHVzZSBpZiB5b3UgYXJlIHZlcnkgbG93IGluIHRoZSBzdGFjay4gV1RGIGNvbnRpbnVlcyB0
bwotLy8gaGF2ZSBhIGNvcHkgb2YgdGhpcyBjb2RlLgotCi0vLyBGSVhNRTogRWl0aGVyIGZvbGQg
Ym1hbGxvYyBpbnRvIFdURiBvciBmaW5kIGEgYmV0dGVyIHdheSB0byBzaGFyZSBjb2RlIGJldHdl
ZW4gdGhlbS4KLS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc3
MTkKLQogbmFtZXNwYWNlIGJtYWxsb2MgewogCiBjbGFzcyBTdGF0aWNNdXRleCB7CkBAIC01Nyw0
OSArNDUsNTcgQEAgcHJvdGVjdGVkOgogCiBwdWJsaWM6CiAgICAgdm9pZCBsb2NrKCk7Ci0gICAg
Ym9vbCB0cnlMb2NrKCk7Ci0gICAgYm9vbCB0cnlfbG9jaygpIHsgcmV0dXJuIHRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKTsKICAgICB2b2lkIHVubG9jaygpOwotICAgIAotICAgIGJv
b2wgaXNIZWxkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0IHsgcmV0dXJuIGlz
SGVsZCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgQkVYUE9SVCB2b2lkIGxvY2tTbG93KCk7Ci0gICAg
QkVYUE9SVCB2b2lkIHVubG9ja1Nsb3coKTsKLQotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3Qg
Y2xlYXIgPSAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgaXNMb2NrZWRCaXQgPSAxOwot
ICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgaXNRdWV1ZUxvY2tlZEJpdCA9IDI7Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnRwdHJfdCBxdWV1ZUhlYWRNYXNrID0gMzsKKyAgICB2b2lkIGxvY2tTbG93
Q2FzZSgpOwogCi0gICAgc3RkOjphdG9taWM8dWludHB0cl90PiBtX3dvcmQ7CisgICAgc3RkOjph
dG9taWNfZmxhZyBtX2ZsYWc7CisgICAgc3RkOjphdG9taWNfZmxhZyBtX2lzU3Bpbm5pbmc7CiB9
OwogCitzdGF0aWMgaW5saW5lIHZvaWQgc2xlZXAoCisgICAgc3RkOjp1bmlxdWVfbG9jazxTdGF0
aWNNdXRleD4mIGxvY2ssIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZHVyYXRpb24pCit7Cisg
ICAgaWYgKGR1cmF0aW9uID09IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBsb2NrLnVubG9jaygpOworICAgIHN0ZDo6dGhpc190aHJlYWQ6
OnNsZWVwX2ZvcihkdXJhdGlvbik7CisgICAgbG9jay5sb2NrKCk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgdm9pZCB3YWl0VW50aWxGYWxzZSgKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4
PiYgbG9jaywgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBzbGVlcER1cmF0aW9uLAorICAgIGJv
b2wmIGNvbmRpdGlvbikKK3sKKyAgICB3aGlsZSAoY29uZGl0aW9uKSB7CisgICAgICAgIGNvbmRp
dGlvbiA9IGZhbHNlOworICAgICAgICBzbGVlcChsb2NrLCBzbGVlcER1cmF0aW9uKTsKKyAgICB9
Cit9CisKIGlubGluZSB2b2lkIFN0YXRpY011dGV4Ojppbml0KCkKIHsKLSAgICBtX3dvcmQuc3Rv
cmUoMCwgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAgbV9mbGFnLmNsZWFyKCk7Cisg
ICAgbV9pc1NwaW5uaW5nLmNsZWFyKCk7CiB9CiAKLWlubGluZSBib29sIFN0YXRpY011dGV4Ojp0
cnlMb2NrKCkKK2lubGluZSBib29sIFN0YXRpY011dGV4Ojp0cnlfbG9jaygpCiB7Ci0gICAgcmV0
dXJuIG1fd29yZC5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpICYgaXNMb2NrZWRCaXQ7
CisgICAgcmV0dXJuICFtX2ZsYWcudGVzdF9hbmRfc2V0KHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVp
cmUpOwogfQogCiBpbmxpbmUgdm9pZCBTdGF0aWNNdXRleDo6bG9jaygpCiB7Ci0gICAgaWYgKGNv
bXBhcmVFeGNoYW5nZVdlYWsobV93b3JkLCBjbGVhciwgaXNMb2NrZWRCaXQsIHN0ZDo6bWVtb3J5
X29yZGVyX2FjcXVpcmUpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbG9ja1Nsb3coKTsK
KyAgICBpZiAoIXRyeV9sb2NrKCkpCisgICAgICAgIGxvY2tTbG93Q2FzZSgpOwogfQogCiBpbmxp
bmUgdm9pZCBTdGF0aWNNdXRleDo6dW5sb2NrKCkKIHsKLSAgICBpZiAoY29tcGFyZUV4Y2hhbmdl
V2VhayhtX3dvcmQsIGlzTG9ja2VkQml0LCBjbGVhciwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFz
ZSkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICB1bmxvY2tTbG93KCk7CisgICAgbV9mbGFn
LmNsZWFyKHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVhc2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBi
bWFsbG9jCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>