<?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>200107</bug_id>
          
          <creation_ts>2019-07-24 19:37:53 -0700</creation_ts>
          <short_desc>Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts</short_desc>
          <delta_ts>2019-07-25 09:11:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>200126</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1555649</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-24 19:37:53 -0700</bug_when>
    <thetext>Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555650</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-24 19:38:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/53034592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555659</commentid>
    <comment_count>2</comment_count>
      <attachid>374853</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-24 19:55:55 -0700</bug_when>
    <thetext>Created attachment 374853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555662</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-24 19:59:30 -0700</bug_when>
    <thetext>Attachment 374853 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:384:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555666</commentid>
    <comment_count>4</comment_count>
      <attachid>374857</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-24 20:12:17 -0700</bug_when>
    <thetext>Created attachment 374857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555669</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-24 20:13:52 -0700</bug_when>
    <thetext>Attachment 374857 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:384:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555674</commentid>
    <comment_count>6</comment_count>
      <attachid>374859</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-24 20:33:41 -0700</bug_when>
    <thetext>Created attachment 374859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555677</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-24 20:36:12 -0700</bug_when>
    <thetext>Attachment 374859 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:384:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555706</commentid>
    <comment_count>8</comment_count>
      <attachid>374859</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-07-24 21:39:41 -0700</bug_when>
    <thetext>Comment on attachment 374859
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555713</commentid>
    <comment_count>9</comment_count>
      <attachid>374859</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-24 21:52:58 -0700</bug_when>
    <thetext>Comment on attachment 374859
Patch

Rejecting attachment 374859 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 374859, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

/Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: https://webkit-queues.webkit.org/results/12807209</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555792</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-25 08:42:18 -0700</bug_when>
    <thetext>Committed r247822: &lt;https://trac.webkit.org/changeset/247822&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374853</attachid>
            <date>2019-07-24 19:55:55 -0700</date>
            <delta_ts>2019-07-24 19:59:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200107-20190724195554.patch</filename>
            <type>text/plain</type>
            <size>29907</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkMGM3NzU2OThmNmVj
NjVlNmVjNDFhZjAyNDM1ZjU3ZTg5NDJhYi4uZjQzODdjMjNkNDI4YWM1ZDZlOWIxMTc4MDg2Zjli
MDg4N2E0OWYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA3LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgVUkgUHJvY2VzcyBo
YW5ncyB3aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc2hvd2luZyBKUyBwcm9tcHRzIC8g
YWxlcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDAxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzMDM0NTkyPgorCisgICAgICAgIEFkZCB0
ZXN0aW5nIGluZnJhc3RydWN0dXJlIGZvciBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuCisKKyAgICAgICAgVGVzdDogZmFz
dC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseS5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxOS0wNy0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBgY29uc29sZS5zY3JlZW5zaG90YCB3aXRoIElt
YWdlRGF0YSBhbmQgSW1hZ2VCaXRtYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGMxOWViY2Y0MzA4MWYzMTNlOWU2
Y2U5MThlMTgzYjg1YjI0ZDFmZS4uYjcyYzdjNDA2YzU0Yjc3NTNiY2YyY2YwMTg2Y2ZiYzA5MjVj
MzM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0wNy0yNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFVJIFByb2Nlc3MgaGFuZ3Mgd2hl
biB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIHNob3dpbmcgSlMgcHJvbXB0cyAvIGFsZXJ0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMTA3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MzAzNDU5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6aW5jcmVtZW50UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCk6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OmRlY3JlbWVudFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQpOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdN
ZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgbmV3IFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSBmbGFnCisgICAgICAgIHRvIGFsbG93IHByb2Nlc3NpbmcgaW5jb21p
bmcgc3luYyBtZXNzYWdlcyB3aGlsZSBzZW5kaW5nIGEgcGFydGljdWxhciBzeW5jIElQQy4gVGhp
cyBpcyB0aGUKKyAgICAgICAgZGVmYXVsdCBiZWhhdmlvciBpbiBhbGwgcHJvY2Vzc2VzIGV4Y2Vw
dCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB3aGVyZSB3ZSB0cnkgdG8gYXZvaWQKKyAgICAg
ICAgcmUtZW50ZXJpbmcgdG8gcHJldmVudCBidWdzLiBUaGlzIGZsYWcgYWxsb3dzIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MgdG8gY2hhbmdlIGl0cyBkZWZhdWx0CisgICAgICAgIGJlaGF2aW9yIGZv
ciBzb21lIHNwZWNpZmljIElQQ3MsIHdoZXJlIHdlIGtub3cgaXQgaXMgc2FmZSB0byByZS1lbnRl
ciBhbmQgd2hlcmUgaXQgYmVuZWZpdHMKKyAgICAgICAgcGVyZm9ybWFuY2UgdG8gcmUtcmVudGVy
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0
ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseQorICAgICAgICBBZGQgdGVz
dGluZyBpbmZyYXN0cnVjdHVyZSBmb3IgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5CisgICAgICAgIGZsYWcuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAg
ICAgIFVzZSBuZXcgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5IGZsYWcgd2hlbiBzZW5kaW5nCisgICAgICAgIHRoZSBzeW5j
aHJvbm91cyBJUEMgZm9yIEpTIGFsZXJ0cyAvIHByb21wdCAvIGNvbmZpcm0uIFRoaXMgYWxsb3dz
IHRoZSBXZWJQcm9jZXNzIHRvIHByb2Nlc3MKKyAgICAgICAgaW5jb21pbmcgc3luY2hyb25vdXMg
SVBDIGZvciBvdGhlciBwcm9jZXNzZXMgKGluIHBhcnRpY3VsYXIgdGhlIFVJUHJvY2Vzcykgd2hp
bGUgaXQgaXMgYmxvY2tlZAorICAgICAgICBvbiB0aG9zZSBzeW5jaHJvbm91cyBJUENzLiBJdCBp
cyBzYWZlIHRvIHJlLWVudGVyIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgb24gdGhlc2Ugc3luYyBJ
UENzCisgICAgICAgIHNpbmNlIHRoZXkgYXJlIHRyaWdnZXJlZCBieSBKUyBhbmQgd2UgcmV0dXJu
IHRvIEpTIHJpZ2h0IGFmdGVyLiBUaGlzIHNob3VsZCBhdm9pZCBVSVByb2Nlc3MKKyAgICAgICAg
aGFuZ3Mgd2hlbiB0aGUgVUlQcm9jZXNzIGlzIHNlbmRpbmcgYSBzeW5jIElQQyB0byB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzLCB3aGljaCBpcyBpdHNlbGYKKyAgICAgICAgc3R1Y2sgb24gdGhlIHN5
bmMgSVBDIHRvIHNob3cgYSBKUyBhbGVydC4KKwogMjAxOS0wNy0yNCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBzcGVjdWxhdGl2ZSBsb2FkaW5n
IGlmIGNhY2hlIGlzIG5vdCB0byBiZSB1c2VkIGZvciB0aGUgbG9hZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggMTY5ODE1YTA5ZGU1M2ZmMjNkYjNmMThlMjYxN2U4OTNmZWIzNTc1
Mi4uOWRlMWU5MWU1NmNjMGViYTFiZDEyZWU1NjZlZGFiZjhlMTQ3OGM5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zODEsNiArMzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhc3Npc3RpdmVUZWNobm9sb2d5TWFrZUZpcnN0UmVzcG9uZGVyKCkgeyB9CiAjZW5k
aWYKIAorICAgIHZpcnR1YWwgYm9vbCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSB7IHJldHVybiB0cnVlOyB9CisKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIC8vIEZJWE1FOiBDb21lIHVwIHdpdGggYSBtb3JlIGRlc2NyaXB0aXZl
IG5hbWUgZm9yIHRoaXMgZnVuY3Rpb24gYW5kIG1ha2UgaXQgcGxhdGZvcm0gaW5kZXBlbmRlbnQg
KGlmIHBvc3NpYmxlKS4KICAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGluZygpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0NzhhYmNiYmUzZWIxOWMyMzdhNmRhNmUy
MmM5NTAxYzVhYzQ5MWQxLi43MTVjNmY5MDIwMjZhMjI4YjI4NGNkMmQyODE1N2U2MDYyOGE0Njgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yMjczLDYgKzIyNzMsMTMg
QEAgdm9pZCBJbnRlcm5hbHM6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICNlbmRpZgogfQogCitib29sIEludGVybmFsczo6dGVzdFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkKK3sKKyAgICBBU1NFUlQoY29u
dGV4dERvY3VtZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpKTsK
KyAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCk7
Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxl
ZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4
dERvY3VtZW50KCktPmZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAy
ZDk4YTllMmY4NzMyNGMyMDAwYTk2NmZiNjQzNWU4YmQ3ZDJjNzdlLi5lN2QzNGY2ODYxNDAwNGFm
MzJhYTlhNWFjYTY3ZTEwYjE3MDBiMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTMzMCw2ICszMzAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc092ZXJ3cml0ZU1vZGVFbmFi
bGVkKCk7CiAgICAgdm9pZCB0b2dnbGVPdmVyd3JpdGVNb2RlRW5hYmxlZCgpOwogCisgICAgYm9v
bCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KTsKKwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxSYW5nZT4+IHJhbmdlT2ZTdHJpbmcoY29uc3Qg
U3RyaW5nJiwgUmVmUHRyPFJhbmdlPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmluZE9wdGlv
bnMpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaW5kT3B0aW9ucywgY29uc3QgU3RyaW5n
JiBtYXJrTWF0Y2hlcyk7CiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IGNvdW50RmluZE1hdGNo
ZXMoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbmRPcHRpb25zKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2YjRhYTU2OTU5MDRiM2MzNzY0ZjE5
MjNjODE3MzM4YThjZGJiM2QwLi45OTc4N2UzOTk5ZmQ4Y2M4NmNmZTZkNTY0Y2MwNjk1MmQ3Yjg3
Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zODIsNiArMzgyLDgg
QEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhcmVTVkdBbmltYXRpb25zUGF1c2VkOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gZG91YmxlIHN2Z0FuaW1hdGlvbnNJbnRlcnZhbChTVkdTVkdFbGVtZW50
IGVsZW1lbnQpOwogCisgICAgYm9vbGVhbiB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKTsKKwogICAgIC8vIEZsYWdzIGZvciBsYXllclRyZWVB
c1RleHQuCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJ
QkxFX1JFQ1RTID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMQVlFUl9UUkVFX0lOQ0xV
REVTX1RJTEVfQ0FDSEVTID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmQ1
MGUyZjQzZGJlNzhhNmU5ZDY4YzQ4NDZiNzAxYzhlZDU1ZjQyMi4uZjU1NjViOWI4ZWI5ODFiNDZl
NjAzMmE5OWVmOWRkM2M5Y2ViZGZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UlRDUHJvdmlkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENTb2NrZXRNZXNzYWdl
cy5oIgpAQCAtNDExLDYgKzQxMiwxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpwZXJmb3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYQogICAgIGxv
YWRlci0+c3RhcnQoKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGJvb2wgaGFuZGxl
ZCA9IGZhbHNlOworICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9j
ZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSh3ZWJQYWdlSUQp
LCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5kbGVkKSwgMCkpCisgICAg
ICAgIHJldHVybiByZXBseShmYWxzZSk7CisgICAgcmVwbHkoaGFuZGxlZCk7Cit9CisKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmNvcHlSZWYoKSwgaWRlbnRpZmllciA9
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXJdIChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAppbmRleCAxOWU3NjcyMzc4MWJmZWI0NzBmYjI2MjJiOTNlY2E3NGU5YWVlZThjLi5kN2IyZjFi
NjNiYzdiMDRmZTAzMGUwMzY1ZTIxMzZmNzVhYjQ4Y2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNv
dXJjZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBwZXJm
b3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9h
ZDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYpOwogICAg
IHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9p
ZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50
NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA3
NzA5ZTJmNjVjMTY0ODhjNjhmYjFlNzIzNTJiMWEyNDljNWQ5NGQ0Li5mYTJjMzFhNDEzYWY2MjE5
NDkzY2Q0Y2VhMmJjN2M0YWZhOTIwNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTI0LDYgKzI0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJj
ZUxvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzKQogICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
VmVjdG9yPGNoYXI+IGRhdGEpIFN5bmNocm9ub3VzCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAgICBMb2FkUGluZyhX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRl
cnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRp
ZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDAx
OWZiYzg2OGYxMWIxNzNlNTlmZGZmZTJiYzg1MzZkMGQ2NmYxNGQuLjZjYmViYTlmMDQyZjJiNGQ0
YjA1YTBjZGRhZjRkMGJiOGQ3YjVlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoKICAgICAvLyBmcm9tIHRoYXQg
Y29ubmVjdGlvbiBhbmQgcHV0IHRoZSBvdGhlciBtZXNzYWdlcyBiYWNrIGluIHRoZSBxdWV1ZS4K
ICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZXMoQ29ubmVjdGlvbiogYWxsb3dlZENvbm5lY3Rpb24p
OwogCisgICAgdm9pZCBpbmNyZW1lbnRQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseUNvdW50KCkgeyArK21fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudDsgfQorICAgIHZvaWQgZGVjcmVtZW50UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpIHsgLS1t
X3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQ7
IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1
bGVEaXNwYXRjaE1lc3NhZ2VzRm9yQ29ubmVjdGlvbihDb25uZWN0aW9uJik7CiAKQEAgLTExNCw2
ICsxMTcsOCBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVz
c2FnZTsKICAgICB9OwogICAgIFZlY3RvcjxDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlPiBt
X21lc3NhZ2VzVG9EaXNwYXRjaFdoaWxlV2FpdGluZ0ZvclN5bmNSZXBseTsKKworICAgIHN0ZDo6
YXRvbWljPHVuc2lnbmVkPiBtX3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5Q291bnQgeyAwIH07CiB9OwogCiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0
YXRlJiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpzaW5nbGV0b24oKQpAQCAtMTM0LDcg
KzEzOSwxNiBAQCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpTeW5jTWVzc2FnZVN0YXRl
KCkKIAogYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdN
ZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYg
bWVzc2FnZSkKIHsKLSAgICBpZiAoIW1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KCkpCisgICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSA9IG1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KCk7CisKKyAgICAvLyBXZSBkaXNwYXRjaCBzeW5jaHJvbm91cyBt
ZXNzYWdlcyBldmVuIGlmIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5IHJldHVybnMgZmFsc2UgaWYgdGhlCisgICAgLy8gc2VuZFN5bmMoKSB1c2VkIFNlbmRTeW5j
T3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eS4gVGhpcyBpcyB1c2VkIGZvciBzb21lIG1lc3NhZ2VzCisgICAgLy8gaW4gdGhlIFdlYkNvbnRl
bnQgcHJvY2VzcyAod2hpY2ggbm9ybWFsbHkgZG9lcyBub3QgZGlzcGF0Y2ggbWVzc2FnZXMgd2hl
biB3YWl0aW5nIGZvciBhIHN5bmMgcmVwbHkpLCB0byBhdm9pZAorICAgIC8vIGhhbmdzLgorICAg
IGlmICghc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgJiYgbWVz
c2FnZS0+aXNTeW5jTWVzc2FnZSgpICYmIG1fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudC5sb2FkKCkpCisgICAgICAgIHNob3VsZERpc3BhdGNo
TWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5ID0gdHJ1ZTsKKworICAgIGlmICghc2hvdWxk
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIENvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UgY29ubmVjdGlvbkFuZElu
Y29taW5nTWVzc2FnZSB7IGNvbm5lY3Rpb24sIFdURk1vdmUobWVzc2FnZSkgfTsKQEAgLTU2NSwx
MSArNTc5LDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3lu
Y01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkCiAgICAgLy8gRmlyc3Qgc2VuZCB0
aGUgbWVzc2FnZS4KICAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBJUEM6OlNlbmRP
cHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKKyAg
ICBpZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCisgICAgICAgIFN5bmNN
ZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmluY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKKwogICAgIC8vIFRoZW4gd2FpdCBm
b3IgYSByZXBseS4gV2FpdGluZyBmb3IgYSByZXBseSBjb3VsZCBpbnZvbHZlIGRpc3BhdGNoaW5n
IGluY29taW5nIHN5bmMgbWVzc2FnZXMsIHNvCiAgICAgLy8ga2VlcCBhbiBleHRyYSByZWZlcmVu
Y2UgdG8gdGhlIGNvbm5lY3Rpb24gaGVyZSBpbiBjYXNlIGl0J3MgaW52YWxpZGF0ZWQuCiAgICAg
UmVmPENvbm5lY3Rpb24+IHByb3RlY3QoKnRoaXMpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNv
ZGVyPiByZXBseSA9IHdhaXRGb3JTeW5jUmVwbHkoc3luY1JlcXVlc3RJRCwgdGltZW91dCwgc2Vu
ZFN5bmNPcHRpb25zKTsKIAorICAgIGlmIChzZW5kU3luY09wdGlvbnMuY29udGFpbnMoU2VuZFN5
bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KSkKKyAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuZGVjcmVtZW50UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpOwor
CiAgICAgLS1tX2luU2VuZFN5bmNDb3VudDsKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVu
ZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCmluZGV4IDQyZjgzNmQ3MzAyMmUzZWJhYzMwMjM4Mzk1N2M5MTJlYjk1NTI4MmQu
LmE0OTA3ZDE3MTUwYjUxYTg4ZDY3MTVlYjU5NTA5ODVhMTc1NDczNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSBjbGFzcyBT
ZW5kU3luY09wdGlvbiB7CiAgICAgLy8gVXNlIHRoaXMgdG8gaW5mb3JtIHRoYXQgdGhpcyBzeW5j
IGNhbGwgd2lsbCBzdXNwZW5kIHRoaXMgcHJvY2VzcyB1bnRpbCB0aGUgdXNlciByZXNwb25kcyB3
aXRoIGlucHV0LgogICAgIEluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kID0gMSA8PCAw
LAogICAgIFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyA9IDEgPDwgMSwKKyAgICBQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IDEgPDwg
MiwKIH07CiAKIGVudW0gY2xhc3MgV2FpdEZvck9wdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAz
NDZhYzY3MjBhNjU4ODFmZDA5OGI1YzM0ZjFiZDhhZGQ5Y2NlMDllLi5hOWRjMzI3ODAxM2Q2MzA1
OTRlOWNkYjc3ZjliM2JjZmQ3ZjIxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJT
dG9yYWdlQWNjZXNzU3RhdHVzLmgiCiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgpAQCAtMjY4LDcgKzI2OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiAg
ICAgaWYgKGRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ZGlkUmVjZWl2ZVN5bmNOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpCkBAIC0xMjAzLDYgKzEyMDQsMTggQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpjbGVhclVwbG9hZEFzc2VydGlvbigpCiAgICAgbV91cGxvYWRBc3NlcnRp
b24gPSBudWxscHRyOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGF1dG8qIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6Ondl
YlBhZ2Uod2ViUGFnZUlEKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiByZXBseShm
YWxzZSk7CisKKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKKyAgICBpZiAoIXBhZ2UtPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCkp
KQorICAgICAgICByZXR1cm4gcmVwbHkoZmFsc2UpOworICAgIHJlcGx5KGhhbmRsZWQpOworfQor
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmNyZWF0ZVN5bUxpbmtGb3JGaWxlVXBncmFkZShjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFz
ZURpcmVjdG9yeSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggOTcwODhlOWE0ZWVkYzkwNzQ1OTg3Zjc3YzM0
MzgzNDg1NDA1Yjk5MC4uMmQwYmU1MWExOGZhN2NhMjIyY2EyNTg1MGE3M2Q0MTg0N2NhNDFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKQEAgLTE2Myw2ICsxNjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jQWxs
Q29va2llcygpOwogICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKIAorICAgIHZvaWQgdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVk
UmVwbHkmJik7CisKICAgICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBt
X3Rocm90dGxlcjsgfQogICAgIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCgpIHsgcmV0dXJu
IG1fcHJvY2Vzc1Bvb2w7IH0KIApAQCAtMjAzLDYgKzIwNSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwNDdkZmU4ODc4MWJiY2I2ODIwMTY1MDkx
Yjg2NmQxMzM2Zjg4Y2JhLi4xMWQ4YzVkZWUxZGJhODFmOGY2M2Y3ZDk0OGVmNjYxNjE5ODFkMTM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw4IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgRGlkU3lu
Y0FsbENvb2tpZXMoKQogCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkgLT4g
KGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKKwogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgp
CiAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBhNjU2NmQyMDZiOGJiNzJmZTM5OGM0M2M5MWZj
MmM2ZGYxODk4ZjViLi5kNDQ3ODMwNDJjNzUzZjFiYmRjY2YwZThjM2UxNDY4ZjA1M2FhMmNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCisjaW5jbHVkZSAi
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKICNpbmNsdWRl
ICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgpAQCAtMzAzLDYgKzMw
NSwxNCBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogICAgIHJldHVybiB3ZWJQcm9jZXNzLndl
YlBhZ2UoKm5ld1BhZ2VJRCktPmNvcmVQYWdlKCk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KQoreworICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOworICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KG1fcGFnZS5wYWdl
SUQoKSksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5k
bGVkKSwgMCwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGhhbmRsZWQ7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzaG93KCkKIHsKICAgICBtX3BhZ2Uuc2hvdygpOwpAQCAtNDU4LDcgKzQ2OCw3IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25z
dCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0
ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCkpOworICAg
IG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNv
bWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAogYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQpAQCAtNDc1LDcgKzQ4NSw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
ICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCiAgICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIW1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVk
UmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm0od2ViRnJh
bWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVz
c2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBs
eShyZXN1bHQpKSkKKyAgICBpZiAoIW1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm0od2ViRnJhbWUtPmZyYW1l
SUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQp
LCBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtNDk0LDcgKzUwNCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0
UHJvbXB0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjCiAKICAgICBIYW5n
RGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCi0gICAgaWYgKCFtX3Bh
Z2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0KSkpCisgICAgaWYgKCFt
X3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1
bkphdmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRh
Ojpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0KSwgU2VuZFN5bmNP
cHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZmEyNDY1NzFkNjhjNDlhZjkzMDY3Nzk1ZWYzZmUwZWY2
NDFhNmE4Yi4uODY2ODAzMTI3MzIwMzJkYjE0OGY5YmNiNTk5NzUyMTQ2YTNhZGQxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMjIyLDYgKzIyMiw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNv
bnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpDb250
ZW50UnVsZUxpc3RSZXN1bHRzJikgZmluYWw7CiAKKyAgICBib29sIHRlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGZpbmFsOworCiAjaWYgUExB
VEZPUk0oV0lOKQogICAgIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpIGZp
bmFsIHsgfQogICAgIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2YWRjNzYyODgyYTcy
ODg3NDg1YWQ4MmRiNDIxZTdhMTBiOTIzMWNhLi44MDA2N2NlOWM1NDFiZDI0NTAwNWFlMTkxNTlk
OTVkNzc2ZDgyZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNTg4NSw2ICs1ODg1LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVtb3ZlTWVu
dUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1lbnQmIGVsZW1lbnQpCiAjZW5kaWYKIH0KIAor
dm9pZCBXZWJQYWdlOjp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit7Cisg
ICAgcmVwbHkodHJ1ZSk7Cit9CisKICNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVH
SU5fSEVVUklTVElDKQogc3RhdGljIGNvbnN0IGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5T
ZWFyY2hMaW1pdCA9IDMwMDA7CiBzdGF0aWMgY29uc3QgZmxvYXQgcHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luU2VhcmNoQnVja2V0U2l6ZSA9IDEuMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5NTQwOWU5YjA0Y2VlNmUxN2VkMTk1YzFiM2YwNTQ2NTU4
YTBkNmI2Li41MzEzOWRlNTBmNGFmMDQ4MzQ5YTM1Y2Y0M2FjOTdmMDAzYjI2OTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00OSw2ICs0OSw3IEBA
CiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNs
dWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJVbmRv
U3RlcElELmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCkBAIC0xMTY2
LDEwICsxMTY3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+Ci0gICAgYm9vbCBzZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoVCYmIG1lc3NhZ2UsIHR5
cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHkpCisgICAgYm9vbCBzZW5kU3luY1dpdGhEZWxheWVkUmVw
bHkoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHksIE9wdGlvblNldDxTZW5k
U3luY09wdGlvbj4gc2VuZFN5bmNPcHRpb25zID0geyB9KQogICAgIHsKICAgICAgICAgY2FuY2Vs
R2VzdHVyZXNCbG9ja2VkT25TeW5jaHJvbm91c1JlcGxpZXMoKTsKLSAgICAgICAgcmV0dXJuIHNl
bmRTeW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBTZWNvbmRzOjppbmZpbml0
eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVu
ZCk7CisgICAgICAgIHNlbmRTeW5jT3B0aW9ucyB8PSBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZv
cm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZDsKKyAgICAgICAgcmV0dXJuIHNlbmRTeW5jKFdU
Rk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBzeW5j
U3luY09wdGlvbnMpOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7
CkBAIC0xMjkxLDYgKzEyOTMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgZXhlY3V0ZUtleXByZXNz
Q29tbWFuZHNJbnRlcm5hbChjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYs
IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICNlbmRpZgogCisgICAgdm9pZCB0ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlBhZ2U6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseTo6RGVsYXllZFJlcGx5JiYpOworCiAgICAgdm9pZCB1cGRhdGVEcmF3aW5nQXJlYUxheWVy
VHJlZUZyZWV6ZVN0YXRlKCk7CiAgICAgYm9vbCBtYXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlhdGVs
eUlmUG9zc2libGUoKTsKICAgICB2b2lkIGxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IGMxMWI0OWRhMDEyY2E4YjgyNDcwMTY5YTEwMjc1YzdiNWM1ODhkMzMuLjI4YmY3
MTdmOGEyMWE0ZTE5MjU3MjNkZjM4MzRiYjExYzEzOTZmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzEsNiAr
MzEsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZW5kQ1NQ
VmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKICAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKIAorICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5j
TWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNo
cm9ub3VzCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRUb3BDb250ZW50SW5zZXRGZW5j
ZWQoZmxvYXQgY29udGVudEluc2V0LCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogI2VuZGlm
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOGRhOWNmYmNmMDc3ZmU5ZjMxMjMyZTBjNWRkMjkwNTViZjFhY2FhYS4uZmQxMTVh
NWQ3ZWVkMTU0ZTFmM2RjYzY5ODM0ODg1MmUyYjU3MWQ3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE5LTA3LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QXZvaWQgVUkgUHJvY2VzcyBoYW5ncyB3aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc2hv
d2luZyBKUyBwcm9tcHRzIC8gYWxlcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDAxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzMDM0NTky
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBs
YXlvdXQgdGVzdCBjb3ZlcmFnZSBmb3IgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LgorICAgICAgICBXaXRob3V0IHRoZSBm
bGFnIG9uIHRoZSBzZW5kU3luYyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgb2YgdGhlCisg
ICAgICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgSVBDLCB0aGUKKyAgICAgICAgdGVz
dCB3b3VsZCBoYW5nLiBUaGlzIGlzIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBzZW5k
cyBhIHN5bmMgSVBDIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MsCisgICAgICAgIHdoaWNoIGluIHR1
cm5zIHNlbmRzIG9uZSB0byB0aGUgVUlQcm9jZXNzLCB3aGljaCBpdHNlbGYgc2VuZHMgb25lIGJh
Y2sgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKyAgICAgICAgVGhpcyB3b3VsZCBhdHRlbXB0
IHRvIHJlLWVudGVyIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgd2hpY2ggaXMgY3VycmVudGx5IHNl
bmRpbmcgYSBzeW5jIElQQywgd2hpY2gKKyAgICAgICAgaXMgbm90IGFsbG93ZWQgYnkgZGVmYXVs
dC4KKworICAgICAgICAqIGZhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTA3LTI0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGBjb25zb2xlLnNj
cmVlbnNob3RgIHdpdGggSW1hZ2VEYXRhIGFuZCBJbWFnZUJpdG1hcApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMGM4YzI1OGU2OGI4YzhmOGJiYjU0Y2YzNzQxZGUyOGY1Zjlj
YzgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgdGhlIFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBzZW5kU3luYyBmbGFnCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFscy50ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rl
c3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI2NDNlYmI2NDZhNDlkMGY5ODY1NWNkOGI1YTA2YTc2NTBhOTNhNGUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwKQEAgLTAsMCArMSwxMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVz
dCBmb3IgdGhlIFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSBzZW5kU3luYyBmbGFnIik7CisKK3Nob3VsZEJlVHJ1ZSgiaW50
ZXJuYWxzLnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSgpIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374857</attachid>
            <date>2019-07-24 20:12:17 -0700</date>
            <delta_ts>2019-07-24 20:16:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200107-20190724201216.patch</filename>
            <type>text/plain</type>
            <size>29900</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkMGM3NzU2OThmNmVj
NjVlNmVjNDFhZjAyNDM1ZjU3ZTg5NDJhYi4uZjQzODdjMjNkNDI4YWM1ZDZlOWIxMTc4MDg2Zjli
MDg4N2E0OWYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA3LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgVUkgUHJvY2VzcyBo
YW5ncyB3aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc2hvd2luZyBKUyBwcm9tcHRzIC8g
YWxlcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDAxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzMDM0NTkyPgorCisgICAgICAgIEFkZCB0
ZXN0aW5nIGluZnJhc3RydWN0dXJlIGZvciBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuCisKKyAgICAgICAgVGVzdDogZmFz
dC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseS5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxOS0wNy0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBgY29uc29sZS5zY3JlZW5zaG90YCB3aXRoIElt
YWdlRGF0YSBhbmQgSW1hZ2VCaXRtYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGMxOWViY2Y0MzA4MWYzMTNlOWU2
Y2U5MThlMTgzYjg1YjI0ZDFmZS4uYjcyYzdjNDA2YzU0Yjc3NTNiY2YyY2YwMTg2Y2ZiYzA5MjVj
MzM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0wNy0yNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFVJIFByb2Nlc3MgaGFuZ3Mgd2hl
biB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIHNob3dpbmcgSlMgcHJvbXB0cyAvIGFsZXJ0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMTA3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MzAzNDU5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6aW5jcmVtZW50UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCk6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OmRlY3JlbWVudFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQpOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdN
ZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgbmV3IFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSBmbGFnCisgICAgICAgIHRvIGFsbG93IHByb2Nlc3NpbmcgaW5jb21p
bmcgc3luYyBtZXNzYWdlcyB3aGlsZSBzZW5kaW5nIGEgcGFydGljdWxhciBzeW5jIElQQy4gVGhp
cyBpcyB0aGUKKyAgICAgICAgZGVmYXVsdCBiZWhhdmlvciBpbiBhbGwgcHJvY2Vzc2VzIGV4Y2Vw
dCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB3aGVyZSB3ZSB0cnkgdG8gYXZvaWQKKyAgICAg
ICAgcmUtZW50ZXJpbmcgdG8gcHJldmVudCBidWdzLiBUaGlzIGZsYWcgYWxsb3dzIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MgdG8gY2hhbmdlIGl0cyBkZWZhdWx0CisgICAgICAgIGJlaGF2aW9yIGZv
ciBzb21lIHNwZWNpZmljIElQQ3MsIHdoZXJlIHdlIGtub3cgaXQgaXMgc2FmZSB0byByZS1lbnRl
ciBhbmQgd2hlcmUgaXQgYmVuZWZpdHMKKyAgICAgICAgcGVyZm9ybWFuY2UgdG8gcmUtcmVudGVy
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0
ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseQorICAgICAgICBBZGQgdGVz
dGluZyBpbmZyYXN0cnVjdHVyZSBmb3IgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5CisgICAgICAgIGZsYWcuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAg
ICAgIFVzZSBuZXcgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5IGZsYWcgd2hlbiBzZW5kaW5nCisgICAgICAgIHRoZSBzeW5j
aHJvbm91cyBJUEMgZm9yIEpTIGFsZXJ0cyAvIHByb21wdCAvIGNvbmZpcm0uIFRoaXMgYWxsb3dz
IHRoZSBXZWJQcm9jZXNzIHRvIHByb2Nlc3MKKyAgICAgICAgaW5jb21pbmcgc3luY2hyb25vdXMg
SVBDIGZvciBvdGhlciBwcm9jZXNzZXMgKGluIHBhcnRpY3VsYXIgdGhlIFVJUHJvY2Vzcykgd2hp
bGUgaXQgaXMgYmxvY2tlZAorICAgICAgICBvbiB0aG9zZSBzeW5jaHJvbm91cyBJUENzLiBJdCBp
cyBzYWZlIHRvIHJlLWVudGVyIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgb24gdGhlc2Ugc3luYyBJ
UENzCisgICAgICAgIHNpbmNlIHRoZXkgYXJlIHRyaWdnZXJlZCBieSBKUyBhbmQgd2UgcmV0dXJu
IHRvIEpTIHJpZ2h0IGFmdGVyLiBUaGlzIHNob3VsZCBhdm9pZCBVSVByb2Nlc3MKKyAgICAgICAg
aGFuZ3Mgd2hlbiB0aGUgVUlQcm9jZXNzIGlzIHNlbmRpbmcgYSBzeW5jIElQQyB0byB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzLCB3aGljaCBpcyBpdHNlbGYKKyAgICAgICAgc3R1Y2sgb24gdGhlIHN5
bmMgSVBDIHRvIHNob3cgYSBKUyBhbGVydC4KKwogMjAxOS0wNy0yNCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBzcGVjdWxhdGl2ZSBsb2FkaW5n
IGlmIGNhY2hlIGlzIG5vdCB0byBiZSB1c2VkIGZvciB0aGUgbG9hZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggMTY5ODE1YTA5ZGU1M2ZmMjNkYjNmMThlMjYxN2U4OTNmZWIzNTc1
Mi4uOWRlMWU5MWU1NmNjMGViYTFiZDEyZWU1NjZlZGFiZjhlMTQ3OGM5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zODEsNiArMzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhc3Npc3RpdmVUZWNobm9sb2d5TWFrZUZpcnN0UmVzcG9uZGVyKCkgeyB9CiAjZW5k
aWYKIAorICAgIHZpcnR1YWwgYm9vbCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSB7IHJldHVybiB0cnVlOyB9CisKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIC8vIEZJWE1FOiBDb21lIHVwIHdpdGggYSBtb3JlIGRlc2NyaXB0aXZl
IG5hbWUgZm9yIHRoaXMgZnVuY3Rpb24gYW5kIG1ha2UgaXQgcGxhdGZvcm0gaW5kZXBlbmRlbnQg
KGlmIHBvc3NpYmxlKS4KICAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGluZygpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0NzhhYmNiYmUzZWIxOWMyMzdhNmRhNmUy
MmM5NTAxYzVhYzQ5MWQxLi43MTVjNmY5MDIwMjZhMjI4YjI4NGNkMmQyODE1N2U2MDYyOGE0Njgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yMjczLDYgKzIyNzMsMTMg
QEAgdm9pZCBJbnRlcm5hbHM6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICNlbmRpZgogfQogCitib29sIEludGVybmFsczo6dGVzdFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkKK3sKKyAgICBBU1NFUlQoY29u
dGV4dERvY3VtZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpKTsK
KyAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCk7
Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxl
ZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4
dERvY3VtZW50KCktPmZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAy
ZDk4YTllMmY4NzMyNGMyMDAwYTk2NmZiNjQzNWU4YmQ3ZDJjNzdlLi5lN2QzNGY2ODYxNDAwNGFm
MzJhYTlhNWFjYTY3ZTEwYjE3MDBiMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTMzMCw2ICszMzAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc092ZXJ3cml0ZU1vZGVFbmFi
bGVkKCk7CiAgICAgdm9pZCB0b2dnbGVPdmVyd3JpdGVNb2RlRW5hYmxlZCgpOwogCisgICAgYm9v
bCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KTsKKwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxSYW5nZT4+IHJhbmdlT2ZTdHJpbmcoY29uc3Qg
U3RyaW5nJiwgUmVmUHRyPFJhbmdlPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmluZE9wdGlv
bnMpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaW5kT3B0aW9ucywgY29uc3QgU3RyaW5n
JiBtYXJrTWF0Y2hlcyk7CiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IGNvdW50RmluZE1hdGNo
ZXMoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbmRPcHRpb25zKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2YjRhYTU2OTU5MDRiM2MzNzY0ZjE5
MjNjODE3MzM4YThjZGJiM2QwLi45OTc4N2UzOTk5ZmQ4Y2M4NmNmZTZkNTY0Y2MwNjk1MmQ3Yjg3
Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zODIsNiArMzgyLDgg
QEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhcmVTVkdBbmltYXRpb25zUGF1c2VkOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gZG91YmxlIHN2Z0FuaW1hdGlvbnNJbnRlcnZhbChTVkdTVkdFbGVtZW50
IGVsZW1lbnQpOwogCisgICAgYm9vbGVhbiB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKTsKKwogICAgIC8vIEZsYWdzIGZvciBsYXllclRyZWVB
c1RleHQuCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJ
QkxFX1JFQ1RTID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMQVlFUl9UUkVFX0lOQ0xV
REVTX1RJTEVfQ0FDSEVTID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmQ1
MGUyZjQzZGJlNzhhNmU5ZDY4YzQ4NDZiNzAxYzhlZDU1ZjQyMi4uZjU1NjViOWI4ZWI5ODFiNDZl
NjAzMmE5OWVmOWRkM2M5Y2ViZGZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UlRDUHJvdmlkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENTb2NrZXRNZXNzYWdl
cy5oIgpAQCAtNDExLDYgKzQxMiwxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpwZXJmb3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYQogICAgIGxv
YWRlci0+c3RhcnQoKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGJvb2wgaGFuZGxl
ZCA9IGZhbHNlOworICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9j
ZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSh3ZWJQYWdlSUQp
LCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5kbGVkKSwgMCkpCisgICAg
ICAgIHJldHVybiByZXBseShmYWxzZSk7CisgICAgcmVwbHkoaGFuZGxlZCk7Cit9CisKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmNvcHlSZWYoKSwgaWRlbnRpZmllciA9
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXJdIChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAppbmRleCAxOWU3NjcyMzc4MWJmZWI0NzBmYjI2MjJiOTNlY2E3NGU5YWVlZThjLi5kN2IyZjFi
NjNiYzdiMDRmZTAzMGUwMzY1ZTIxMzZmNzVhYjQ4Y2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNv
dXJjZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBwZXJm
b3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9h
ZDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYpOwogICAg
IHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9p
ZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50
NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA3
NzA5ZTJmNjVjMTY0ODhjNjhmYjFlNzIzNTJiMWEyNDljNWQ5NGQ0Li5mYTJjMzFhNDEzYWY2MjE5
NDkzY2Q0Y2VhMmJjN2M0YWZhOTIwNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTI0LDYgKzI0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJj
ZUxvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzKQogICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
VmVjdG9yPGNoYXI+IGRhdGEpIFN5bmNocm9ub3VzCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAgICBMb2FkUGluZyhX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRl
cnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRp
ZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDAx
OWZiYzg2OGYxMWIxNzNlNTlmZGZmZTJiYzg1MzZkMGQ2NmYxNGQuLjZjYmViYTlmMDQyZjJiNGQ0
YjA1YTBjZGRhZjRkMGJiOGQ3YjVlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoKICAgICAvLyBmcm9tIHRoYXQg
Y29ubmVjdGlvbiBhbmQgcHV0IHRoZSBvdGhlciBtZXNzYWdlcyBiYWNrIGluIHRoZSBxdWV1ZS4K
ICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZXMoQ29ubmVjdGlvbiogYWxsb3dlZENvbm5lY3Rpb24p
OwogCisgICAgdm9pZCBpbmNyZW1lbnRQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseUNvdW50KCkgeyArK21fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudDsgfQorICAgIHZvaWQgZGVjcmVtZW50UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpIHsgLS1t
X3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQ7
IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1
bGVEaXNwYXRjaE1lc3NhZ2VzRm9yQ29ubmVjdGlvbihDb25uZWN0aW9uJik7CiAKQEAgLTExNCw2
ICsxMTcsOCBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVz
c2FnZTsKICAgICB9OwogICAgIFZlY3RvcjxDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlPiBt
X21lc3NhZ2VzVG9EaXNwYXRjaFdoaWxlV2FpdGluZ0ZvclN5bmNSZXBseTsKKworICAgIHN0ZDo6
YXRvbWljPHVuc2lnbmVkPiBtX3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5Q291bnQgeyAwIH07CiB9OwogCiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0
YXRlJiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpzaW5nbGV0b24oKQpAQCAtMTM0LDcg
KzEzOSwxNiBAQCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpTeW5jTWVzc2FnZVN0YXRl
KCkKIAogYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdN
ZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYg
bWVzc2FnZSkKIHsKLSAgICBpZiAoIW1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KCkpCisgICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSA9IG1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KCk7CisKKyAgICAvLyBXZSBkaXNwYXRjaCBzeW5jaHJvbm91cyBt
ZXNzYWdlcyBldmVuIGlmIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5IHJldHVybnMgZmFsc2UgaWYgdGhlCisgICAgLy8gc2VuZFN5bmMoKSB1c2VkIFNlbmRTeW5j
T3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eS4gVGhpcyBpcyB1c2VkIGZvciBzb21lIG1lc3NhZ2VzCisgICAgLy8gaW4gdGhlIFdlYkNvbnRl
bnQgcHJvY2VzcyAod2hpY2ggbm9ybWFsbHkgZG9lcyBub3QgZGlzcGF0Y2ggbWVzc2FnZXMgd2hl
biB3YWl0aW5nIGZvciBhIHN5bmMgcmVwbHkpLCB0byBhdm9pZAorICAgIC8vIGhhbmdzLgorICAg
IGlmICghc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgJiYgbWVz
c2FnZS0+aXNTeW5jTWVzc2FnZSgpICYmIG1fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudC5sb2FkKCkpCisgICAgICAgIHNob3VsZERpc3BhdGNo
TWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5ID0gdHJ1ZTsKKworICAgIGlmICghc2hvdWxk
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIENvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UgY29ubmVjdGlvbkFuZElu
Y29taW5nTWVzc2FnZSB7IGNvbm5lY3Rpb24sIFdURk1vdmUobWVzc2FnZSkgfTsKQEAgLTU2NSwx
MSArNTc5LDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3lu
Y01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkCiAgICAgLy8gRmlyc3Qgc2VuZCB0
aGUgbWVzc2FnZS4KICAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBJUEM6OlNlbmRP
cHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKKyAg
ICBpZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCisgICAgICAgIFN5bmNN
ZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmluY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKKwogICAgIC8vIFRoZW4gd2FpdCBm
b3IgYSByZXBseS4gV2FpdGluZyBmb3IgYSByZXBseSBjb3VsZCBpbnZvbHZlIGRpc3BhdGNoaW5n
IGluY29taW5nIHN5bmMgbWVzc2FnZXMsIHNvCiAgICAgLy8ga2VlcCBhbiBleHRyYSByZWZlcmVu
Y2UgdG8gdGhlIGNvbm5lY3Rpb24gaGVyZSBpbiBjYXNlIGl0J3MgaW52YWxpZGF0ZWQuCiAgICAg
UmVmPENvbm5lY3Rpb24+IHByb3RlY3QoKnRoaXMpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNv
ZGVyPiByZXBseSA9IHdhaXRGb3JTeW5jUmVwbHkoc3luY1JlcXVlc3RJRCwgdGltZW91dCwgc2Vu
ZFN5bmNPcHRpb25zKTsKIAorICAgIGlmIChzZW5kU3luY09wdGlvbnMuY29udGFpbnMoU2VuZFN5
bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KSkKKyAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuZGVjcmVtZW50UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpOwor
CiAgICAgLS1tX2luU2VuZFN5bmNDb3VudDsKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVu
ZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCmluZGV4IDQyZjgzNmQ3MzAyMmUzZWJhYzMwMjM4Mzk1N2M5MTJlYjk1NTI4MmQu
LmE0OTA3ZDE3MTUwYjUxYTg4ZDY3MTVlYjU5NTA5ODVhMTc1NDczNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSBjbGFzcyBT
ZW5kU3luY09wdGlvbiB7CiAgICAgLy8gVXNlIHRoaXMgdG8gaW5mb3JtIHRoYXQgdGhpcyBzeW5j
IGNhbGwgd2lsbCBzdXNwZW5kIHRoaXMgcHJvY2VzcyB1bnRpbCB0aGUgdXNlciByZXNwb25kcyB3
aXRoIGlucHV0LgogICAgIEluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kID0gMSA8PCAw
LAogICAgIFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyA9IDEgPDwgMSwKKyAgICBQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IDEgPDwg
MiwKIH07CiAKIGVudW0gY2xhc3MgV2FpdEZvck9wdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAz
NDZhYzY3MjBhNjU4ODFmZDA5OGI1YzM0ZjFiZDhhZGQ5Y2NlMDllLi5hOWRjMzI3ODAxM2Q2MzA1
OTRlOWNkYjc3ZjliM2JjZmQ3ZjIxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJT
dG9yYWdlQWNjZXNzU3RhdHVzLmgiCiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgpAQCAtMjY4LDcgKzI2OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiAg
ICAgaWYgKGRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ZGlkUmVjZWl2ZVN5bmNOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpCkBAIC0xMjAzLDYgKzEyMDQsMTggQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpjbGVhclVwbG9hZEFzc2VydGlvbigpCiAgICAgbV91cGxvYWRBc3NlcnRp
b24gPSBudWxscHRyOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGF1dG8qIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6Ondl
YlBhZ2Uod2ViUGFnZUlEKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiByZXBseShm
YWxzZSk7CisKKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKKyAgICBpZiAoIXBhZ2UtPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCkp
KQorICAgICAgICByZXR1cm4gcmVwbHkoZmFsc2UpOworICAgIHJlcGx5KGhhbmRsZWQpOworfQor
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmNyZWF0ZVN5bUxpbmtGb3JGaWxlVXBncmFkZShjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFz
ZURpcmVjdG9yeSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggOTcwODhlOWE0ZWVkYzkwNzQ1OTg3Zjc3YzM0
MzgzNDg1NDA1Yjk5MC4uMmQwYmU1MWExOGZhN2NhMjIyY2EyNTg1MGE3M2Q0MTg0N2NhNDFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKQEAgLTE2Myw2ICsxNjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jQWxs
Q29va2llcygpOwogICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKIAorICAgIHZvaWQgdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVk
UmVwbHkmJik7CisKICAgICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBt
X3Rocm90dGxlcjsgfQogICAgIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCgpIHsgcmV0dXJu
IG1fcHJvY2Vzc1Bvb2w7IH0KIApAQCAtMjAzLDYgKzIwNSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwNDdkZmU4ODc4MWJiY2I2ODIwMTY1MDkx
Yjg2NmQxMzM2Zjg4Y2JhLi4xMWQ4YzVkZWUxZGJhODFmOGY2M2Y3ZDk0OGVmNjYxNjE5ODFkMTM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw4IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgRGlkU3lu
Y0FsbENvb2tpZXMoKQogCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkgLT4g
KGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKKwogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgp
CiAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBhNjU2NmQyMDZiOGJiNzJmZTM5OGM0M2M5MWZj
MmM2ZGYxODk4ZjViLi45OTIxZGZiMGQ0YmExYWI2NGQ1MGZlOTBmNjI2ODU2ZTM3YjMxZjhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCisjaW5jbHVkZSAi
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKICNpbmNsdWRl
ICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgpAQCAtMzAzLDYgKzMw
NSwxNCBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogICAgIHJldHVybiB3ZWJQcm9jZXNzLndl
YlBhZ2UoKm5ld1BhZ2VJRCktPmNvcmVQYWdlKCk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KQoreworICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOworICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KG1fcGFnZS5wYWdl
SUQoKSksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5k
bGVkKSwgMCwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGhhbmRsZWQ7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzaG93KCkKIHsKICAgICBtX3BhZ2Uuc2hvdygpOwpAQCAtNDU4LDcgKzQ2OCw3IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25z
dCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0
ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCkpOworICAg
IG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQogCiBib29s
IFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC00NzUsNyArNDg1LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAK
ICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERl
bGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3
ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUp
LCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06
OlJlcGx5KHJlc3VsdCkpKQorICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBs
eShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+
ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdl
KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5KHJl
c3VsdCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0
dXJuIHJlc3VsdDsKQEAgLTQ5NCw3ICs1MDQsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgYwog
CiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAg
IGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCkpKQor
ICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCks
IElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFy
ZXN1bHQuaXNOdWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZmEyNDY1NzFkNjhjNDlhZjkz
MDY3Nzk1ZWYzZmUwZWY2NDFhNmE4Yi4uODY2ODAzMTI3MzIwMzJkYjE0OGY5YmNiNTk5NzUyMTQ2
YTNhZGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjIyLDYgKzIyMiw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihjb25zdCBVUkwmLCBjb25z
dCBXZWJDb3JlOjpDb250ZW50UnVsZUxpc3RSZXN1bHRzJikgZmluYWw7CiAKKyAgICBib29sIHRl
c3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGZp
bmFsOworCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3Vy
cmVudEN1cnNvcigpIGZpbmFsIHsgfQogICAgIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIGZpbmFs
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA2YWRjNzYyODgyYTcyODg3NDg1YWQ4MmRiNDIxZTdhMTBiOTIzMWNhLi44MDA2N2NlOWM1NDFi
ZDI0NTAwNWFlMTkxNTlkOTVkNzc2ZDgyZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTg4NSw2ICs1ODg1LDExIEBAIHZvaWQgV2ViUGFn
ZTo6ZGlkUmVtb3ZlTWVudUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1lbnQmIGVsZW1lbnQp
CiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlOjp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5
JiYgcmVwbHkpCit7CisgICAgcmVwbHkodHJ1ZSk7Cit9CisKICNpZiBFTkFCTEUoUFJJTUFSWV9T
TkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQogc3RhdGljIGNvbnN0IGludCBwcmltYXJ5U25h
cHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCA9IDMwMDA7CiBzdGF0aWMgY29uc3QgZmxvYXQgcHJp
bWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSA9IDEuMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5NTQwOWU5YjA0Y2VlNmUxN2Vk
MTk1YzFiM2YwNTQ2NTU4YTBkNmI2Li5jNWJjOGNjOWE0NDMyNDhhMTRmMWZlM2FmMWFmYTUwMTQ5
OTY5YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiVXNl
ckRhdGEuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXIuaCIKICNp
bmNsdWRlICJXZWJVbmRvU3RlcElELmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyLmgiCkBAIC0xMTY2LDEwICsxMTY3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgYm9vbCBzZW5kU3luY1dpdGhEZWxheWVkUmVwbHko
VCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHkpCisgICAgYm9vbCBzZW5kU3lu
Y1dpdGhEZWxheWVkUmVwbHkoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHks
IE9wdGlvblNldDxJUEM6OlNlbmRTeW5jT3B0aW9uPiBzZW5kU3luY09wdGlvbnMgPSB7IH0pCiAg
ICAgewogICAgICAgICBjYW5jZWxHZXN0dXJlc0Jsb2NrZWRPblN5bmNocm9ub3VzUmVwbGllcygp
OwotICAgICAgICByZXR1cm4gc2VuZFN5bmMoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShyZXBs
eSksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKKyAgICAgICAgcmV0dXJuIHNlbmRTeW5jKFdURk1vdmUo
bWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBzZW5kU3luY09w
dGlvbnMgfCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3Vz
cGVuZCk7CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKQEAgLTEy
OTEsNiArMTI5Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBleGVjdXRlS2V5cHJlc3NDb21tYW5k
c0ludGVybmFsKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCiAKKyAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6
VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpE
ZWxheWVkUmVwbHkmJik7CisKICAgICB2b2lkIHVwZGF0ZURyYXdpbmdBcmVhTGF5ZXJUcmVlRnJl
ZXplU3RhdGUoKTsKICAgICBib29sIG1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3Nz
aWJsZSgpOwogICAgIHZvaWQgbGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggYzExYjQ5ZGEwMTJjYThiODI0NzAxNjlhMTAyNzVjN2I1YzU4OGQzMy4uMjhiZjcxN2Y4YTIx
YTRlMTkyNTcyM2RmMzgzNGJiMTFjMTM5NmZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlbmRDU1BWaW9sYXRp
b25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgVVJMIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSByZXBvcnREYXRhKQogICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQgZXZlbnRJbml0KQogCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMK
KwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNldFRvcENvbnRlbnRJbnNldEZlbmNlZChmbG9h
dCBjb250ZW50SW5zZXQsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA4ZGE5Y2ZiY2YwNzdmZTlmMzEyMzJlMGM1ZGQyOTA1NWJmMWFjYWFhLi5mZDExNWE1ZDdlZWQx
NTRlMWYzZGNjNjk4MzQ4ODUyZTJiNTcxZDczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTkt
MDctMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCBV
SSBQcm9jZXNzIGhhbmdzIHdoZW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBzaG93aW5nIEpT
IHByb21wdHMgLyBhbGVydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTMwMzQ1OTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0
ZXN0IGNvdmVyYWdlIGZvciBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuCisgICAgICAgIFdpdGhvdXQgdGhlIGZsYWcgb24g
dGhlIHNlbmRTeW5jIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBvZiB0aGUKKyAgICAgICAg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBJUEMsIHRoZQorICAgICAgICB0ZXN0IHdvdWxk
IGhhbmcuIFRoaXMgaXMgYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHNlbmRzIGEgc3lu
YyBJUEMgdG8gdGhlIG5ldHdvcmsgcHJvY2VzcywKKyAgICAgICAgd2hpY2ggaW4gdHVybnMgc2Vu
ZHMgb25lIHRvIHRoZSBVSVByb2Nlc3MsIHdoaWNoIGl0c2VsZiBzZW5kcyBvbmUgYmFjayB0byB0
aGUgV2ViQ29udGVudCBwcm9jZXNzLgorICAgICAgICBUaGlzIHdvdWxkIGF0dGVtcHQgdG8gcmUt
ZW50ZXIgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGljaCBpcyBjdXJyZW50bHkgc2VuZGluZyBh
IHN5bmMgSVBDLCB3aGljaAorICAgICAgICBpcyBub3QgYWxsb3dlZCBieSBkZWZhdWx0LgorCisg
ICAgICAgICogZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWlz
Yy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHku
aHRtbDogQWRkZWQuCisKIDIwMTktMDctMjQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHN1cHBvcnQgYGNvbnNvbGUuc2NyZWVuc2hv
dGAgd2l0aCBJbWFnZURhdGEgYW5kIEltYWdlQml0bWFwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMwYzhjMjU4ZTY4YjhjOGY4YmJiNTRjZjM3NDFkZTI4ZjVmOWNjODAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWcKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLnRlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjY0M2ViYjY0NmE0OWQwZjk4NjU1Y2Q4YjVhMDZhNzY1MGE5M2E0ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0
aGUgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWciKTsKKworc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMu
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCki
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374859</attachid>
            <date>2019-07-24 20:33:41 -0700</date>
            <delta_ts>2019-07-24 21:52:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200107-20190724203340.patch</filename>
            <type>text/plain</type>
            <size>29900</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkMGM3NzU2OThmNmVj
NjVlNmVjNDFhZjAyNDM1ZjU3ZTg5NDJhYi4uZjQzODdjMjNkNDI4YWM1ZDZlOWIxMTc4MDg2Zjli
MDg4N2E0OWYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA3LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgVUkgUHJvY2VzcyBo
YW5ncyB3aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc2hvd2luZyBKUyBwcm9tcHRzIC8g
YWxlcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDAxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzMDM0NTkyPgorCisgICAgICAgIEFkZCB0
ZXN0aW5nIGluZnJhc3RydWN0dXJlIGZvciBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuCisKKyAgICAgICAgVGVzdDogZmFz
dC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseS5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxOS0wNy0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBgY29uc29sZS5zY3JlZW5zaG90YCB3aXRoIElt
YWdlRGF0YSBhbmQgSW1hZ2VCaXRtYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGMxOWViY2Y0MzA4MWYzMTNlOWU2
Y2U5MThlMTgzYjg1YjI0ZDFmZS4uYjcyYzdjNDA2YzU0Yjc3NTNiY2YyY2YwMTg2Y2ZiYzA5MjVj
MzM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxOS0wNy0yNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIFVJIFByb2Nlc3MgaGFuZ3Mgd2hl
biB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIHNob3dpbmcgSlMgcHJvbXB0cyAvIGFsZXJ0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMTA3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MzAzNDU5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6aW5jcmVtZW50UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCk6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OmRlY3JlbWVudFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQpOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdN
ZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKToKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgbmV3IFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSBmbGFnCisgICAgICAgIHRvIGFsbG93IHByb2Nlc3NpbmcgaW5jb21p
bmcgc3luYyBtZXNzYWdlcyB3aGlsZSBzZW5kaW5nIGEgcGFydGljdWxhciBzeW5jIElQQy4gVGhp
cyBpcyB0aGUKKyAgICAgICAgZGVmYXVsdCBiZWhhdmlvciBpbiBhbGwgcHJvY2Vzc2VzIGV4Y2Vw
dCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB3aGVyZSB3ZSB0cnkgdG8gYXZvaWQKKyAgICAg
ICAgcmUtZW50ZXJpbmcgdG8gcHJldmVudCBidWdzLiBUaGlzIGZsYWcgYWxsb3dzIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MgdG8gY2hhbmdlIGl0cyBkZWZhdWx0CisgICAgICAgIGJlaGF2aW9yIGZv
ciBzb21lIHNwZWNpZmljIElQQ3MsIHdoZXJlIHdlIGtub3cgaXQgaXMgc2FmZSB0byByZS1lbnRl
ciBhbmQgd2hlcmUgaXQgYmVuZWZpdHMKKyAgICAgICAgcGVyZm9ybWFuY2UgdG8gcmUtcmVudGVy
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0
ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseQorICAgICAgICBBZGQgdGVz
dGluZyBpbmZyYXN0cnVjdHVyZSBmb3IgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5CisgICAgICAgIGZsYWcuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAg
ICAgIFVzZSBuZXcgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5IGZsYWcgd2hlbiBzZW5kaW5nCisgICAgICAgIHRoZSBzeW5j
aHJvbm91cyBJUEMgZm9yIEpTIGFsZXJ0cyAvIHByb21wdCAvIGNvbmZpcm0uIFRoaXMgYWxsb3dz
IHRoZSBXZWJQcm9jZXNzIHRvIHByb2Nlc3MKKyAgICAgICAgaW5jb21pbmcgc3luY2hyb25vdXMg
SVBDIGZvciBvdGhlciBwcm9jZXNzZXMgKGluIHBhcnRpY3VsYXIgdGhlIFVJUHJvY2Vzcykgd2hp
bGUgaXQgaXMgYmxvY2tlZAorICAgICAgICBvbiB0aG9zZSBzeW5jaHJvbm91cyBJUENzLiBJdCBp
cyBzYWZlIHRvIHJlLWVudGVyIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgb24gdGhlc2Ugc3luYyBJ
UENzCisgICAgICAgIHNpbmNlIHRoZXkgYXJlIHRyaWdnZXJlZCBieSBKUyBhbmQgd2UgcmV0dXJu
IHRvIEpTIHJpZ2h0IGFmdGVyLiBUaGlzIHNob3VsZCBhdm9pZCBVSVByb2Nlc3MKKyAgICAgICAg
aGFuZ3Mgd2hlbiB0aGUgVUlQcm9jZXNzIGlzIHNlbmRpbmcgYSBzeW5jIElQQyB0byB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzLCB3aGljaCBpcyBpdHNlbGYKKyAgICAgICAgc3R1Y2sgb24gdGhlIHN5
bmMgSVBDIHRvIHNob3cgYSBKUyBhbGVydC4KKwogMjAxOS0wNy0yNCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBzcGVjdWxhdGl2ZSBsb2FkaW5n
IGlmIGNhY2hlIGlzIG5vdCB0byBiZSB1c2VkIGZvciB0aGUgbG9hZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggMTY5ODE1YTA5ZGU1M2ZmMjNkYjNmMThlMjYxN2U4OTNmZWIzNTc1
Mi4uOWRlMWU5MWU1NmNjMGViYTFiZDEyZWU1NjZlZGFiZjhlMTQ3OGM5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zODEsNiArMzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhc3Npc3RpdmVUZWNobm9sb2d5TWFrZUZpcnN0UmVzcG9uZGVyKCkgeyB9CiAjZW5k
aWYKIAorICAgIHZpcnR1YWwgYm9vbCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSB7IHJldHVybiB0cnVlOyB9CisKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIC8vIEZJWE1FOiBDb21lIHVwIHdpdGggYSBtb3JlIGRlc2NyaXB0aXZl
IG5hbWUgZm9yIHRoaXMgZnVuY3Rpb24gYW5kIG1ha2UgaXQgcGxhdGZvcm0gaW5kZXBlbmRlbnQg
KGlmIHBvc3NpYmxlKS4KICAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGluZygpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0NzhhYmNiYmUzZWIxOWMyMzdhNmRhNmUy
MmM5NTAxYzVhYzQ5MWQxLi43MTVjNmY5MDIwMjZhMjI4YjI4NGNkMmQyODE1N2U2MDYyOGE0Njgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yMjczLDYgKzIyNzMsMTMg
QEAgdm9pZCBJbnRlcm5hbHM6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICNlbmRpZgogfQogCitib29sIEludGVybmFsczo6dGVzdFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkKK3sKKyAgICBBU1NFUlQoY29u
dGV4dERvY3VtZW50KCkpOworICAgIEFTU0VSVChjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpKTsK
KyAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCk7
Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxl
ZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4
dERvY3VtZW50KCktPmZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAy
ZDk4YTllMmY4NzMyNGMyMDAwYTk2NmZiNjQzNWU4YmQ3ZDJjNzdlLi5lN2QzNGY2ODYxNDAwNGFm
MzJhYTlhNWFjYTY3ZTEwYjE3MDBiMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTMzMCw2ICszMzAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc092ZXJ3cml0ZU1vZGVFbmFi
bGVkKCk7CiAgICAgdm9pZCB0b2dnbGVPdmVyd3JpdGVNb2RlRW5hYmxlZCgpOwogCisgICAgYm9v
bCB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KTsKKwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxSYW5nZT4+IHJhbmdlT2ZTdHJpbmcoY29uc3Qg
U3RyaW5nJiwgUmVmUHRyPFJhbmdlPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmluZE9wdGlv
bnMpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkPiBjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaW5kT3B0aW9ucywgY29uc3QgU3RyaW5n
JiBtYXJrTWF0Y2hlcyk7CiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQ+IGNvdW50RmluZE1hdGNo
ZXMoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbmRPcHRpb25zKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2YjRhYTU2OTU5MDRiM2MzNzY0ZjE5
MjNjODE3MzM4YThjZGJiM2QwLi45OTc4N2UzOTk5ZmQ4Y2M4NmNmZTZkNTY0Y2MwNjk1MmQ3Yjg3
Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zODIsNiArMzgyLDgg
QEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhcmVTVkdBbmltYXRpb25zUGF1c2VkOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gZG91YmxlIHN2Z0FuaW1hdGlvbnNJbnRlcnZhbChTVkdTVkdFbGVtZW50
IGVsZW1lbnQpOwogCisgICAgYm9vbGVhbiB0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKTsKKwogICAgIC8vIEZsYWdzIGZvciBsYXllclRyZWVB
c1RleHQuCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9JTkNMVURFU19WSVNJ
QkxFX1JFQ1RTID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMQVlFUl9UUkVFX0lOQ0xV
REVTX1RJTEVfQ0FDSEVTID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmQ1
MGUyZjQzZGJlNzhhNmU5ZDY4YzQ4NDZiNzAxYzhlZDU1ZjQyMi4uZjU1NjViOWI4ZWI5ODFiNDZl
NjAzMmE5OWVmOWRkM2M5Y2ViZGZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UlRDUHJvdmlkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENTb2NrZXRNZXNzYWdl
cy5oIgpAQCAtNDExLDYgKzQxMiwxNCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpwZXJmb3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYQogICAgIGxv
YWRlci0+c3RhcnQoKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGJvb2wgaGFuZGxl
ZCA9IGZhbHNlOworICAgIGlmICghbV9uZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9j
ZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSh3ZWJQYWdlSUQp
LCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5kbGVkKSwgMCkpCisgICAg
ICAgIHJldHVybiByZXBseShmYWxzZSk7CisgICAgcmVwbHkoaGFuZGxlZCk7Cit9CisKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmNvcHlSZWYoKSwgaWRlbnRpZmllciA9
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXJdIChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAppbmRleCAxOWU3NjcyMzc4MWJmZWI0NzBmYjI2MjJiOTNlY2E3NGU5YWVlZThjLi5kN2IyZjFi
NjNiYzdiMDRmZTAzMGUwMzY1ZTIxMzZmNzVhYjQ4Y2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVSZXNv
dXJjZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBwZXJm
b3JtU3luY2hyb25vdXNMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9h
ZDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYpOwogICAg
IHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9p
ZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50
NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA3
NzA5ZTJmNjVjMTY0ODhjNjhmYjFlNzIzNTJiMWEyNDljNWQ5NGQ0Li5mYTJjMzFhNDEzYWY2MjE5
NDkzY2Q0Y2VhMmJjN2M0YWZhOTIwNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTI0LDYgKzI0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2NoZWR1bGVSZXNvdXJj
ZUxvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzKQogICAgIFBlcmZvcm1TeW5jaHJvbm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
VmVjdG9yPGNoYXI+IGRhdGEpIFN5bmNocm9ub3VzCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAgICBMb2FkUGluZyhX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRl
cnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRp
ZmllcikKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDAx
OWZiYzg2OGYxMWIxNzNlNTlmZGZmZTJiYzg1MzZkMGQ2NmYxNGQuLjZjYmViYTlmMDQyZjJiNGQ0
YjA1YTBjZGRhZjRkMGJiOGQ3YjVlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoKICAgICAvLyBmcm9tIHRoYXQg
Y29ubmVjdGlvbiBhbmQgcHV0IHRoZSBvdGhlciBtZXNzYWdlcyBiYWNrIGluIHRoZSBxdWV1ZS4K
ICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZXMoQ29ubmVjdGlvbiogYWxsb3dlZENvbm5lY3Rpb24p
OwogCisgICAgdm9pZCBpbmNyZW1lbnRQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseUNvdW50KCkgeyArK21fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudDsgfQorICAgIHZvaWQgZGVjcmVtZW50UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpIHsgLS1t
X3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQ7
IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1
bGVEaXNwYXRjaE1lc3NhZ2VzRm9yQ29ubmVjdGlvbihDb25uZWN0aW9uJik7CiAKQEAgLTExNCw2
ICsxMTcsOCBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVz
c2FnZTsKICAgICB9OwogICAgIFZlY3RvcjxDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlPiBt
X21lc3NhZ2VzVG9EaXNwYXRjaFdoaWxlV2FpdGluZ0ZvclN5bmNSZXBseTsKKworICAgIHN0ZDo6
YXRvbWljPHVuc2lnbmVkPiBtX3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5Q291bnQgeyAwIH07CiB9OwogCiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0
YXRlJiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpzaW5nbGV0b24oKQpAQCAtMTM0LDcg
KzEzOSwxNiBAQCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpTeW5jTWVzc2FnZVN0YXRl
KCkKIAogYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdN
ZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYg
bWVzc2FnZSkKIHsKLSAgICBpZiAoIW1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KCkpCisgICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSA9IG1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KCk7CisKKyAgICAvLyBXZSBkaXNwYXRjaCBzeW5jaHJvbm91cyBt
ZXNzYWdlcyBldmVuIGlmIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5IHJldHVybnMgZmFsc2UgaWYgdGhlCisgICAgLy8gc2VuZFN5bmMoKSB1c2VkIFNlbmRTeW5j
T3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eS4gVGhpcyBpcyB1c2VkIGZvciBzb21lIG1lc3NhZ2VzCisgICAgLy8gaW4gdGhlIFdlYkNvbnRl
bnQgcHJvY2VzcyAod2hpY2ggbm9ybWFsbHkgZG9lcyBub3QgZGlzcGF0Y2ggbWVzc2FnZXMgd2hl
biB3YWl0aW5nIGZvciBhIHN5bmMgcmVwbHkpLCB0byBhdm9pZAorICAgIC8vIGhhbmdzLgorICAg
IGlmICghc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgJiYgbWVz
c2FnZS0+aXNTeW5jTWVzc2FnZSgpICYmIG1fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudC5sb2FkKCkpCisgICAgICAgIHNob3VsZERpc3BhdGNo
TWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5ID0gdHJ1ZTsKKworICAgIGlmICghc2hvdWxk
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIENvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UgY29ubmVjdGlvbkFuZElu
Y29taW5nTWVzc2FnZSB7IGNvbm5lY3Rpb24sIFdURk1vdmUobWVzc2FnZSkgfTsKQEAgLTU2NSwx
MSArNTc5LDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3lu
Y01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkCiAgICAgLy8gRmlyc3Qgc2VuZCB0
aGUgbWVzc2FnZS4KICAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBJUEM6OlNlbmRP
cHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKKyAg
ICBpZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCisgICAgICAgIFN5bmNN
ZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmluY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKKwogICAgIC8vIFRoZW4gd2FpdCBm
b3IgYSByZXBseS4gV2FpdGluZyBmb3IgYSByZXBseSBjb3VsZCBpbnZvbHZlIGRpc3BhdGNoaW5n
IGluY29taW5nIHN5bmMgbWVzc2FnZXMsIHNvCiAgICAgLy8ga2VlcCBhbiBleHRyYSByZWZlcmVu
Y2UgdG8gdGhlIGNvbm5lY3Rpb24gaGVyZSBpbiBjYXNlIGl0J3MgaW52YWxpZGF0ZWQuCiAgICAg
UmVmPENvbm5lY3Rpb24+IHByb3RlY3QoKnRoaXMpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNv
ZGVyPiByZXBseSA9IHdhaXRGb3JTeW5jUmVwbHkoc3luY1JlcXVlc3RJRCwgdGltZW91dCwgc2Vu
ZFN5bmNPcHRpb25zKTsKIAorICAgIGlmIChzZW5kU3luY09wdGlvbnMuY29udGFpbnMoU2VuZFN5
bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KSkKKyAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuZGVjcmVtZW50UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpOwor
CiAgICAgLS1tX2luU2VuZFN5bmNDb3VudDsKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVu
ZGluZyBzeW5jIHJlcGx5IGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCmluZGV4IDQyZjgzNmQ3MzAyMmUzZWJhYzMwMjM4Mzk1N2M5MTJlYjk1NTI4MmQu
LmE0OTA3ZDE3MTUwYjUxYTg4ZDY3MTVlYjU5NTA5ODVhMTc1NDczNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSBjbGFzcyBT
ZW5kU3luY09wdGlvbiB7CiAgICAgLy8gVXNlIHRoaXMgdG8gaW5mb3JtIHRoYXQgdGhpcyBzeW5j
IGNhbGwgd2lsbCBzdXNwZW5kIHRoaXMgcHJvY2VzcyB1bnRpbCB0aGUgdXNlciByZXNwb25kcyB3
aXRoIGlucHV0LgogICAgIEluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kID0gMSA8PCAw
LAogICAgIFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyA9IDEgPDwgMSwKKyAgICBQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IDEgPDwg
MiwKIH07CiAKIGVudW0gY2xhc3MgV2FpdEZvck9wdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAz
NDZhYzY3MjBhNjU4ODFmZDA5OGI1YzM0ZjFiZDhhZGQ5Y2NlMDllLi5hOWRjMzI3ODAxM2Q2MzA1
OTRlOWNkYjc3ZjliM2JjZmQ3ZjIxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJT
dG9yYWdlQWNjZXNzU3RhdHVzLmgiCiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgpAQCAtMjY4LDcgKzI2OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiAg
ICAgaWYgKGRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ZGlkUmVjZWl2ZVN5bmNOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpCkBAIC0xMjAzLDYgKzEyMDQsMTggQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpjbGVhclVwbG9hZEFzc2VydGlvbigpCiAgICAgbV91cGxvYWRBc3NlcnRp
b24gPSBudWxscHRyOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQoreworICAgIGF1dG8qIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6Ondl
YlBhZ2Uod2ViUGFnZUlEKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiByZXBseShm
YWxzZSk7CisKKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKKyAgICBpZiAoIXBhZ2UtPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCkp
KQorICAgICAgICByZXR1cm4gcmVwbHkoZmFsc2UpOworICAgIHJlcGx5KGhhbmRsZWQpOworfQor
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmNyZWF0ZVN5bUxpbmtGb3JGaWxlVXBncmFkZShjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFz
ZURpcmVjdG9yeSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggOTcwODhlOWE0ZWVkYzkwNzQ1OTg3Zjc3YzM0
MzgzNDg1NDA1Yjk5MC4uMmQwYmU1MWExOGZhN2NhMjIyY2EyNTg1MGE3M2Q0MTg0N2NhNDFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKQEAgLTE2Myw2ICsxNjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jQWxs
Q29va2llcygpOwogICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKIAorICAgIHZvaWQgdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVk
UmVwbHkmJik7CisKICAgICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBt
X3Rocm90dGxlcjsgfQogICAgIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCgpIHsgcmV0dXJu
IG1fcHJvY2Vzc1Bvb2w7IH0KIApAQCAtMjAzLDYgKzIwNSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwNDdkZmU4ODc4MWJiY2I2ODIwMTY1MDkx
Yjg2NmQxMzM2Zjg4Y2JhLi4xMWQ4YzVkZWUxZGJhODFmOGY2M2Y3ZDk0OGVmNjYxNjE5ODFkMTM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw4IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgRGlkU3lu
Y0FsbENvb2tpZXMoKQogCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkgLT4g
KGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKKwogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgp
CiAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBhNjU2NmQyMDZiOGJiNzJmZTM5OGM0M2M5MWZj
MmM2ZGYxODk4ZjViLi45OTIxZGZiMGQ0YmExYWI2NGQ1MGZlOTBmNjI2ODU2ZTM3YjMxZjhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCisjaW5jbHVkZSAi
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKICNpbmNsdWRl
ICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgpAQCAtMzAzLDYgKzMw
NSwxNCBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogICAgIHJldHVybiB3ZWJQcm9jZXNzLndl
YlBhZ2UoKm5ld1BhZ2VJRCktPmNvcmVQYWdlKCk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KQoreworICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOworICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KG1fcGFnZS5wYWdl
SUQoKSksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5k
bGVkKSwgMCwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGhhbmRsZWQ7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzaG93KCkKIHsKICAgICBtX3BhZ2Uuc2hvdygpOwpAQCAtNDU4LDcgKzQ2OCw3IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25z
dCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0
ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCkpOworICAg
IG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQogCiBib29s
IFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC00NzUsNyArNDg1LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAK
ICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERl
bGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3
ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUp
LCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06
OlJlcGx5KHJlc3VsdCkpKQorICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBs
eShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+
ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdl
KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5KHJl
c3VsdCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0
dXJuIHJlc3VsdDsKQEAgLTQ5NCw3ICs1MDQsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgYwog
CiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAg
IGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCkpKQor
ICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCks
IElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFy
ZXN1bHQuaXNOdWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZmEyNDY1NzFkNjhjNDlhZjkz
MDY3Nzk1ZWYzZmUwZWY2NDFhNmE4Yi4uODY2ODAzMTI3MzIwMzJkYjE0OGY5YmNiNTk5NzUyMTQ2
YTNhZGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjIyLDYgKzIyMiw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihjb25zdCBVUkwmLCBjb25z
dCBXZWJDb3JlOjpDb250ZW50UnVsZUxpc3RSZXN1bHRzJikgZmluYWw7CiAKKyAgICBib29sIHRl
c3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGZp
bmFsOworCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3Vy
cmVudEN1cnNvcigpIGZpbmFsIHsgfQogICAgIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIGZpbmFs
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA2YWRjNzYyODgyYTcyODg3NDg1YWQ4MmRiNDIxZTdhMTBiOTIzMWNhLi44MDA2N2NlOWM1NDFi
ZDI0NTAwNWFlMTkxNTlkOTVkNzc2ZDgyZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTg4NSw2ICs1ODg1LDExIEBAIHZvaWQgV2ViUGFn
ZTo6ZGlkUmVtb3ZlTWVudUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1lbnQmIGVsZW1lbnQp
CiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlOjp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5
JiYgcmVwbHkpCit7CisgICAgcmVwbHkodHJ1ZSk7Cit9CisKICNpZiBFTkFCTEUoUFJJTUFSWV9T
TkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQogc3RhdGljIGNvbnN0IGludCBwcmltYXJ5U25h
cHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCA9IDMwMDA7CiBzdGF0aWMgY29uc3QgZmxvYXQgcHJp
bWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSA9IDEuMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5NTQwOWU5YjA0Y2VlNmUxN2Vk
MTk1YzFiM2YwNTQ2NTU4YTBkNmI2Li5jNWJjOGNjOWE0NDMyNDhhMTRmMWZlM2FmMWFmYTUwMTQ5
OTY5YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiVXNl
ckRhdGEuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXIuaCIKICNp
bmNsdWRlICJXZWJVbmRvU3RlcElELmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyLmgiCkBAIC0xMTY2LDEwICsxMTY3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgYm9vbCBzZW5kU3luY1dpdGhEZWxheWVkUmVwbHko
VCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHkpCisgICAgYm9vbCBzZW5kU3lu
Y1dpdGhEZWxheWVkUmVwbHkoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHks
IE9wdGlvblNldDxJUEM6OlNlbmRTeW5jT3B0aW9uPiBzZW5kU3luY09wdGlvbnMgPSB7IH0pCiAg
ICAgewogICAgICAgICBjYW5jZWxHZXN0dXJlc0Jsb2NrZWRPblN5bmNocm9ub3VzUmVwbGllcygp
OwotICAgICAgICByZXR1cm4gc2VuZFN5bmMoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShyZXBs
eSksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKKyAgICAgICAgcmV0dXJuIHNlbmRTeW5jKFdURk1vdmUo
bWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBzZW5kU3luY09w
dGlvbnMgfCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3Vz
cGVuZCk7CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKQEAgLTEy
OTEsNiArMTI5Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBleGVjdXRlS2V5cHJlc3NDb21tYW5k
c0ludGVybmFsKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCiAKKyAgICB2b2lkIHRlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6
VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpE
ZWxheWVkUmVwbHkmJik7CisKICAgICB2b2lkIHVwZGF0ZURyYXdpbmdBcmVhTGF5ZXJUcmVlRnJl
ZXplU3RhdGUoKTsKICAgICBib29sIG1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3Nz
aWJsZSgpOwogICAgIHZvaWQgbGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggYzExYjQ5ZGEwMTJjYThiODI0NzAxNjlhMTAyNzVjN2I1YzU4OGQzMy4uMjhiZjcxN2Y4YTIx
YTRlMTkyNTcyM2RmMzgzNGJiMTFjMTM5NmZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlbmRDU1BWaW9sYXRp
b25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgVVJMIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSByZXBvcnREYXRhKQogICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQgZXZlbnRJbml0KQogCisgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMK
KwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNldFRvcENvbnRlbnRJbnNldEZlbmNlZChmbG9h
dCBjb250ZW50SW5zZXQsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA4ZGE5Y2ZiY2YwNzdmZTlmMzEyMzJlMGM1ZGQyOTA1NWJmMWFjYWFhLi5mZDExNWE1ZDdlZWQx
NTRlMWYzZGNjNjk4MzQ4ODUyZTJiNTcxZDczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTkt
MDctMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCBV
SSBQcm9jZXNzIGhhbmdzIHdoZW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBzaG93aW5nIEpT
IHByb21wdHMgLyBhbGVydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTMwMzQ1OTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0
ZXN0IGNvdmVyYWdlIGZvciBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuCisgICAgICAgIFdpdGhvdXQgdGhlIGZsYWcgb24g
dGhlIHNlbmRTeW5jIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBvZiB0aGUKKyAgICAgICAg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBJUEMsIHRoZQorICAgICAgICB0ZXN0IHdvdWxk
IGhhbmcuIFRoaXMgaXMgYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHNlbmRzIGEgc3lu
YyBJUEMgdG8gdGhlIG5ldHdvcmsgcHJvY2VzcywKKyAgICAgICAgd2hpY2ggaW4gdHVybnMgc2Vu
ZHMgb25lIHRvIHRoZSBVSVByb2Nlc3MsIHdoaWNoIGl0c2VsZiBzZW5kcyBvbmUgYmFjayB0byB0
aGUgV2ViQ29udGVudCBwcm9jZXNzLgorICAgICAgICBUaGlzIHdvdWxkIGF0dGVtcHQgdG8gcmUt
ZW50ZXIgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGljaCBpcyBjdXJyZW50bHkgc2VuZGluZyBh
IHN5bmMgSVBDLCB3aGljaAorICAgICAgICBpcyBub3QgYWxsb3dlZCBieSBkZWZhdWx0LgorCisg
ICAgICAgICogZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWlz
Yy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHku
aHRtbDogQWRkZWQuCisKIDIwMTktMDctMjQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHN1cHBvcnQgYGNvbnNvbGUuc2NyZWVuc2hv
dGAgd2l0aCBJbWFnZURhdGEgYW5kIEltYWdlQml0bWFwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMwYzhjMjU4ZTY4YjhjOGY4YmJiNTRjZjM3NDFkZTI4ZjVmOWNjODAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWcKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLnRlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjY0M2ViYjY0NmE0OWQwZjk4NjU1Y2Q4YjVhMDZhNzY1MGE5M2E0ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0
aGUgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWciKTsKKworc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMu
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCki
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="390646"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="390651"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>