<?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>160768</bug_id>
          
          <creation_ts>2016-08-11 10:30:37 -0700</creation_ts>
          <short_desc>Rename LOG_ALWAYS</short_desc>
          <delta_ts>2016-08-15 12:01:35 -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>Web Template Framework</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219334</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-11 10:30:37 -0700</bug_when>
    <thetext>LOG_ALWAYS and friends should be renamed, given that the first parameter to it is a boolean expression that determines whether or not logging should be performed.

The macros are changed as follows:

LOG_ALWAYS(bool, format, ...) -&gt; LOG_IF(bool, format, ...)
LOG_ALWAYS_ERROR(bool, format, ...) -&gt; LOG_ERROR_IF(bool, format, ...)

The following macros are added:

LOG_ALWAYS(format, ...)
LOG_ERROR_ALWAYS(format, ...)

The sites calling these macros are also updated. Macros like:

#define DOWNLOAD_LOG_ALWAYS(...) LOG_ALWAYS(isAlwaysOnLoggingAllowed(), __VA_ARGS__)
#define DOWNLOAD_LOG_ALWAYS_ERROR(...) LOG_ALWAYS_ERROR(isAlwaysOnLoggingAllowed(), __VA_ARGS__)

are changed to:

#define LOG_IF_ALLOWED(...) LOG_IF(isAlwaysOnLoggingAllowed(), __VA_ARGS__)
#define LOG_ERROR_IF_ALLOWED(...) LOG_ERROR_IF(isAlwaysOnLoggingAllowed(), __VA_ARGS__)

Thus, instead of having file-specific macros for conditional logging, we have uniformly named macros. This relieves the developer from trying to remember while macros to be used for the specific file they&apos;re working in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219445</commentid>
    <comment_count>1</comment_count>
      <attachid>285865</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-11 16:30:58 -0700</bug_when>
    <thetext>Created attachment 285865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219793</commentid>
    <comment_count>2</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-12 16:51:16 -0700</bug_when>
    <thetext>Gavin suggests macro names following the pattern RELEASE_LOG_*. Updating my changes accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219808</commentid>
    <comment_count>3</comment_count>
      <attachid>285985</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-12 17:44:09 -0700</bug_when>
    <thetext>Created attachment 285985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220101</commentid>
    <comment_count>4</comment_count>
      <attachid>285985</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-15 12:01:31 -0700</bug_when>
    <thetext>Comment on attachment 285985
Patch

Clearing flags on attachment: 285985

Committed r204472: &lt;http://trac.webkit.org/changeset/204472&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220102</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-15 12:01:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285865</attachid>
            <date>2016-08-11 16:30:58 -0700</date>
            <delta_ts>2016-08-12 17:44:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160768-20160811162920.patch</filename>
            <type>text/plain</type>
            <size>60277</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU2YWY3ZTA3YjBjNzRhZWExN2I1N2Zj
YTI0OThhOWU5MjVkNmUyOTUuLjJmNDk5ZTY5YjgzZmRhYTRlNzVjN2NlZjBkYjI0ZWFjOTkxNjcz
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDgtMTEgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBMT0dfQUxXQVlTCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3NjgKKworICAgICAgICBSZW5h
bWUgTE9HX0FMV0FZUyBhbmQgZnJpZW5kcywgZ2l2ZW4gdGhhdCB0aGUgZmlyc3QgcGFyYW1ldGVy
IHRvIGl0IGlzCisgICAgICAgIGEgYm9vbGVhbiBleHByZXNzaW9uIHRoYXQgZGV0ZXJtaW5lcyB3
aGV0aGVyIG9yIG5vdCBsb2dnaW5nIHNob3VsZCBiZQorICAgICAgICBwZXJmb3JtZWQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0
aW9ucy5oOgorCiAyMDE2LTA4LTEwICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIFRpbnlQdHJTZXQ6OmRlbGV0ZUxpc3RJZk5lY2Vzc2FyeSgp
IG5vIGxvbmdlciBuZWVkcyB0byB0ZXN0IGZvciByZXNlcnZlZFZhbHVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODI2YjM1OTI1YzM4MTE1ZGMwMjJiNDJhYWEwNDE4NjVhOGY1OWU3Yi4uMTBmOGI2OWJkODZiMmQ2
OWE3MGZmNGFhYjk2YjVkZGE3MjMzYzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDE2LTA4LTExICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgTE9HX0FMV0FZUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYwNzY4CisKKyAgICAgICAgUmVuYW1lIExPR19BTFdBWVMgYW5kIGZyaWVuZHMs
IGdpdmVuIHRoYXQgdGhlIGZpcnN0IHBhcmFtZXRlciB0byBpdCBpcworICAgICAgICBhIGJvb2xl
YW4gZXhwcmVzc2lvbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBvciBub3QgbG9nZ2luZyBzaG91
bGQgYmUKKyAgICAgICAgcGVyZm9ybWVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpIC0tIG5vIG5ldyBmdW5jdGlv
bmFsaXR5IGlzIGFkZGVkLiBPbmx5IHNvbWUgbWFjcm8KKyAgICAgICAgbmFtZXMgaGF2ZSBiZWVu
IGNoYW5nZWQuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OnByZXBhcmVGb3JMb2FkU3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OmxvZ01lbW9yeVVzYWdlQ2hh
bmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6CisKIDIwMTYtMDgtMTAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRpbWl6YXRpb24gaW4g
Tm9kZS5pbnNlcnRCZWZvcmUoKSBpcyBub3Qgc3BlYy1jb21wbGlhbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5
OTBmMzBhMTAxYjYwZjhjN2RhNGMzY2I3YTdmNjljYjYzODk3NDI5Li5jMDZhM2YxMmRkNjAxZDQ0
OTFhNDk5NTM1NGYyZjVjYjdhODQ2Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIw
MTYtMDgtMTEgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJl
bmFtZSBMT0dfQUxXQVlTCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjA3NjgKKworICAgICAgICBSZW5hbWUgTE9HX0FMV0FZUyBhbmQgZnJpZW5kcywg
Z2l2ZW4gdGhhdCB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvIGl0IGlzCisgICAgICAgIGEgYm9vbGVh
biBleHByZXNzaW9uIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBsb2dnaW5nIHNob3Vs
ZCBiZQorICAgICAgICBwZXJmb3JtZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpkaWRGYWls
KToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZENhbmNlbCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c3RhcnROZXR3b3JrTG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OndhaXRGb3JT
eW5jUmVwbHkpOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlv
blN0YXRlOjpkaWRDaGFuZ2VJc0xvYWRpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3cpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZUFjdGl2
aXR5VG9rZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxl
cyk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAg
ICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgX3VwZGF0ZUJh
Y2tncm91bmRUYXNrXSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nl
c3NBc3NlcnRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJj
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsYXllclZvbGF0aWxpdHlUaW1lckZpcmVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6Y2FuY2VsTWFya0xheWVyc1ZvbGF0aWxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJl
VG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNw
ZW5kSW1taW5lbnRseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1
c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNw
ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6CisKIDIw
MTYtMDgtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBGaXggY3Jhc2ggd2hlbiBjaGFuZ2luZyBjb29raWUgYWNjZXB0IHBvbGljeSBhZnRl
ciByMjA0MzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggMGIzYjcxMjcxOGE5MmFmN2E5Yzg3YWNhZDhm
YzY2NWZiNzM5NjUzOC4uNjYwZDBlZDBiZWRjOTQxNDJlMTZmODZjNGYzZDYxNmE3ZDlmY2E1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0Fzc2VydGlvbnMuaApAQCAtMzg0LDEzICszODQsMTUgQEAgV1RGX0VYUE9SVF9QUklWQVRF
IE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBXVEZDcmFzaFdpdGhTZWN1cml0eUltcGxpY2F0
aW9uKCkKIAogI2RlZmluZSBXVEZfTE9HR0lOR19QUkVGSVggIiNXSzogIgogI2lmIExPR19BTFdB
WVNfRElTQUJMRUQKLSNkZWZpbmUgTE9HX0FMV0FZUyhpc0FsbG93ZWQsIGZvcm1hdCwgLi4uKSAg
ICAgICAoKHZvaWQpMCkKLSNkZWZpbmUgTE9HX0FMV0FZU19FUlJPUihpc0FsbG93ZWQsIGZvcm1h
dCwgLi4uKSBXVEZSZXBvcnRFcnJvcihfX0ZJTEVfXywgX19MSU5FX18sIFdURl9QUkVUVFlfRlVO
Q1RJT04sIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9HX0FMV0FZUyhmb3JtYXQs
IC4uLikgICAgICAgKCh2b2lkKTApCisjZGVmaW5lIExPR19FUlJPUl9BTFdBWVMoZm9ybWF0LCAu
Li4pIFdURlJlcG9ydEVycm9yKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BSRVRUWV9GVU5DVElP
TiwgZm9ybWF0LCAjI19fVkFfQVJHU19fKQogI2Vsc2UKICNkZWZpbmUgV1RGX0xPR19ERUZBVUxU
IE9TX0xPR19ERUZBVUxUCi0jZGVmaW5lIExPR19BTFdBWVMoaXNBbGxvd2VkLCBmb3JtYXQsIC4u
LikgICAgICAgZG8geyBpZiAoaXNBbGxvd2VkKSBvc19sb2coV1RGX0xPR19ERUZBVUxULCBXVEZf
TE9HR0lOR19QUkVGSVggZm9ybWF0LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKLSNkZWZp
bmUgTE9HX0FMV0FZU19FUlJPUihpc0FsbG93ZWQsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0Fs
bG93ZWQpIG9zX2xvZ19lcnJvcihXVEZfTE9HX0RFRkFVTFQsIFdURl9MT0dHSU5HX1BSRUZJWCBm
b3JtYXQsICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBMT0dfQUxXQVlTKGZv
cm1hdCwgLi4uKSAgICAgICBvc19sb2coV1RGX0xPR19ERUZBVUxULCBXVEZfTE9HR0lOR19QUkVG
SVggZm9ybWF0LCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBMT0dfRVJST1JfQUxXQVlTKGZvcm1h
dCwgLi4uKSBvc19sb2dfZXJyb3IoV1RGX0xPR19ERUZBVUxULCBXVEZfTE9HR0lOR19QUkVGSVgg
Zm9ybWF0LCAjI19fVkFfQVJHU19fKQogI2VuZGlmCisjZGVmaW5lIExPR19JRihpc0FsbG93ZWQs
IGZvcm1hdCwgLi4uKSAgICAgICBkbyB7IGlmIChpc0FsbG93ZWQpIExPR19BTFdBWVMoZm9ybWF0
LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgTE9HX0VSUk9SX0lGKGlzQWxs
b3dlZCwgZm9ybWF0LCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgTE9HX0VSUk9SX0FMV0FZUyhm
b3JtYXQsICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQogCiAvKiBSRUxFQVNFX0FTU0VSVCAq
LwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBlZmIwMWIwNjc4ODkw
ZjljNWM3MjFlMDlkNTZiYTQ0OWZhODgxODgxLi5jYmI0ZDg1ODA1YWIwNTFhMDQ5ZGFkYTAyMDNl
OWViM2ZjODZkMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE0
Miw3ICsxNDIsNyBAQAogI2luY2x1ZGUgIldLQ29udGVudE9ic2VydmF0aW9uLmgiCiAjZW5kaWYK
IAotI2RlZmluZSBGUkFNRUxPQURFUl9MT0dfQUxXQVlTKC4uLikgTE9HX0FMV0FZUyhpc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIExPR19JRl9BTExPV0VE
KC4uLikgTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDk5LDcgKzEwOTksNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpzdGFydGVkKCkKIAogdm9pZCBGcmFtZUxvYWRlcjo6cHJlcGFyZUZvckxvYWRTdGFydCgp
CiB7Ci0gICAgRlJBTUVMT0FERVJfTE9HX0FMV0FZUygiU3RhcnRpbmcgZnJhbWUgbG9hZCwgZnJh
bWUgPSAlcCwgbWFpbiA9ICVkIiwgJm1fZnJhbWUsIG1fZnJhbWUuaXNNYWluRnJhbWUoKSk7Cisg
ICAgTE9HX0lGX0FMTE9XRUQoIlN0YXJ0aW5nIGZyYW1lIGxvYWQsIGZyYW1lID0gJXAsIG1haW4g
PSAlZCIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpOwogCiAgICAgbV9wcm9ncmVz
c1RyYWNrZXItPnByb2dyZXNzU3RhcnRlZCgpOwogICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkU3Rh
cnRQcm92aXNpb25hbExvYWQoKTsKQEAgLTIzMDQsMTEgKzIzMDQsMTEgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUoKQogCiAgICAgICAgICAgICBBWE9i
amVjdENhY2hlOjpBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQ7CiAgICAgICAgICAgICBpZiAo
IWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICAgICAgRlJBTUVMT0FERVJfTE9HX0FMV0FZ
UygiRmluaXNoZWQgZnJhbWUgbG9hZCB3aXRoIGVycm9yLCBmcmFtZSA9ICVwLCBtYWluID0gJWQs
IGlzVGltZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBlcnJvckNvZGUgPSAlZCIsICZt
X2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCksIGVycm9yLmlzVGltZW91dCgpLCBlcnJvci5p
c0NhbmNlbGxhdGlvbigpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICAgICAgTE9H
X0lGX0FMTE9XRUQoIkZpbmlzaGVkIGZyYW1lIGxvYWQgd2l0aCBlcnJvciwgZnJhbWUgPSAlcCwg
bWFpbiA9ICVkLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyb3JDb2Rl
ID0gJWQiLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpLCBlcnJvci5pc1RpbWVvdXQo
KSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogICAgICAgICAg
ICAgICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkRmFpbExvYWQoZXJyb3IpOwogICAgICAgICAgICAg
ICAgIGxvYWRpbmdFdmVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ0ZhaWxlZDsKICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgRlJBTUVMT0FERVJfTE9HX0FMV0FZUygi
RmluaXNoZWQgZnJhbWUgbG9hZCB3aXRob3V0IGVycm9yLCBmcmFtZSA9ICVwLCBtYWluID0gJWQi
LCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpKTsKKyAgICAgICAgICAgICAgICBMT0df
SUZfQUxMT1dFRCgiRmluaXNoZWQgZnJhbWUgbG9hZCB3aXRob3V0IGVycm9yLCBmcmFtZSA9ICVw
LCBtYWluID0gJWQiLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpKTsKICNpZiBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pCiAgICAgICAgICAgICAgICAgYXV0byogZG9jdW1lbnQgPSBtX2Zy
YW1lLmRvY3VtZW50KCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUuc2V0dGluZ3MoKS5k
YXRhRGV0ZWN0b3JUeXBlcygpICE9IERhdGFEZXRlY3RvclR5cGVOb25lICYmIGRvY3VtZW50KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAppbmRleCBkNWI0ODk0NmEyMmU0Y2JjYmZhZmQ4ZDNiMDkwMDBjNmMzNjFlNTAwLi5jZmEzNDJj
YjBmNGFmZDBmMjdmOGRlOGVkMGZkNzQ1MGU5ZjQyZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTIyMCw3ICsyMjAsNyBA
QCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpsb2dNZW1vcnlVc2Fn
ZUNoYW5nZSgpCiB7CiAjaWYgIUxPR19BTFdBWVNfRElTQUJMRUQKICNkZWZpbmUgU1RSSU5HX1NQ
RUNJRklDQVRJT04gIiV7cHVibGljfXMiCi0jZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4p
IExPR19BTFdBWVModHJ1ZSwgX19WQV9BUkdTX18pCisjZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xP
RyguLi4pIExPR19BTFdBWVMoX19WQV9BUkdTX18pCiAjZWxzZQogI2RlZmluZSBTVFJJTkdfU1BF
Q0lGSUNBVElPTiAiJXMiCiAjZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4pIFdURkxvZ0Fs
d2F5cyhfX1ZBX0FSR1NfXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCAxYjRiNjY4MTM4MWYzOGQ0OWQ5ZmIyMTJmMGE1
NGU4YzE0MDEzOWJhLi5hYTU1MDg4Y2IwNDA3NTMyN2FhMWRhODA1N2Q4NmI3YmNhYzYzMTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tCkBAIC0yMTEsNyArMjExLDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2Uo
SW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYKICAgICBp
ZiAoc3VjY2VzcykKICAgICAgICAgbV90b3RhbEJ5dGVzID0gSU9TdXJmYWNlR2V0QWxsb2NTaXpl
KG1fc3VyZmFjZS5nZXQoKSk7CiAgICAgZWxzZQotICAgICAgICBMT0dfQUxXQVlTX0VSUk9SKHRy
dWUsICJTdXJmYWNlIGNyZWF0aW9uIGZhaWxlZCBmb3Igc2l6ZTogKCVkICVkKSBhbmQgZm9ybWF0
OiAoJWQpIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBmb3JtYXQpOworICAgICAgICBM
T0dfRVJST1JfQUxXQVlTKCJTdXJmYWNlIGNyZWF0aW9uIGZhaWxlZCBmb3Igc2l6ZTogKCVkICVk
KSBhbmQgZm9ybWF0OiAoJWQpIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBmb3JtYXQp
OwogfQogCiBXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJT1N1cmZhY2VSZWYgc3VyZmFj
ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAppbmRleCAwN2I3ZDU3ZTA4MjIy
Y2I4YTk0NDBjMTQ1NTYyMjg5NjQyZjBiOGM4Li4wMDEzOTZmNDMyNWU5OTA5ZmI0YjdlYzZmMGI5
NmIwZGRlNWM2YmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTM3LDggKzM3LDggQEAKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgRE9XTkxPQURfTE9HX0FMV0FZUyguLi4pIExPR19BTFdB
WVMoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBET1dO
TE9BRF9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9HX0FMV0FZU19FUlJPUihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIExPR19JRl9BTExPV0VEKC4uLikg
TE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
TE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBMT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtODUsNyAr
ODUsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmCiAKIHZvaWQgRG93bmxvYWQ6OmRpZFJlY2Vp
dmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBET1dO
TE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0YXNrICglbGx1KSBjcmVhdGVkIiwgZG93bmxvYWRJ
RCgpLmRvd25sb2FkSUQoKSk7CisgICAgTE9HX0lGX0FMTE9XRUQoIkRvd25sb2FkIHRhc2sgKCVs
bHUpIGNyZWF0ZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKIAogICAgIHNlbmQoTWVz
c2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSkpOwogfQpA
QCAtOTQsNyArOTQsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlRGF0
YSh1aW50NjRfdCBsZW5ndGgpCiB7CiAgICAgaWYgKCFtX2hhc1JlY2VpdmVkRGF0YSkgewotICAg
ICAgICBET1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0YXNrICglbGx1KSBzdGFydGVkIHJl
Y2VpdmluZyBkYXRhIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CisgICAgICAgIExPR19J
Rl9BTExPV0VEKCJEb3dubG9hZCB0YXNrICglbGx1KSBzdGFydGVkIHJlY2VpdmluZyBkYXRhIiwg
ZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiAgICAgICAgIG1faGFzUmVjZWl2ZWREYXRhID0g
dHJ1ZTsKICAgICB9CiAKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRDcmVh
dGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIHBhdGgpCiAKIHZvaWQgRG93bmxvYWQ6OmRpZEZp
bmlzaCgpCiB7Ci0gICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkg
ZmluaXNoZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKKyAgICBMT0dfSUZfQUxMT1dF
RCgiRG93bmxvYWQgdGFzayAoJWxsdSkgZmluaXNoZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJ
RCgpKTsKIAogICAgIHBsYXRmb3JtRGlkRmluaXNoKCk7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCB2
b2lkIERvd25sb2FkOjpkaWRGaW5pc2goKQogCiB2b2lkIERvd25sb2FkOjpkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURh
dGEpCiB7Ci0gICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkgZmFp
bGVkLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyQ29kZSA9ICVkIiwK
KyAgICBMT0dfSUZfQUxMT1dFRCgiRG93bmxvYWQgdGFzayAoJWxsdSkgZmFpbGVkLCBpc1RpbWVv
dXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyQ29kZSA9ICVkIiwKICAgICAgICAgZG93
bmxvYWRJRCgpLmRvd25sb2FkSUQoKSwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2Vs
bGF0aW9uKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OkRvd25s
b2FkUHJveHk6OkRpZEZhaWwoZXJyb3IsIHJlc3VtZURhdGEpKTsKQEAgLTE2Myw3ICsxNjMsNyBA
QCB2b2lkIERvd25sb2FkOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlcwogCiB2b2lkIERvd25sb2FkOjpkaWRDYW5jZWwoY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhKQogewotICAgIERPV05MT0FEX0xPR19B
TFdBWVMoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGNhbmNlbGVkIiwgZG93bmxvYWRJRCgpLmRvd25s
b2FkSUQoKSk7CisgICAgTE9HX0lGX0FMTE9XRUQoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGNhbmNl
bGVkIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpE
b3dubG9hZFByb3h5OjpEaWRDYW5jZWwocmVzdW1lRGF0YSkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZThkYjlmMWYwMDQx
OTVlYmE2MDg4Zjg5YjZjY2NmNTRiMGZjN2ZlYi4uZTRjM2IyYTk1YTNkYjgzMGY0Mzg4ZDU2OTAw
OGU5M2ZhMjlmMmQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcApAQCAtNjI0LDEwICs2MjQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShib29sJiBoYW5kbGVkKQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkKIHsKLSAgICBMT0dfQUxXQVlTKHRydWUs
ICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKKyAgICBM
T0dfQUxXQVlTKCIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlz
KTsKICAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCi0gICAgTE9HX0FMV0FZ
Uyh0cnVlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcg
UHJvY2Vzc1JlYWR5VG9TdXNwZW5kIElQQyBtZXNzYWdlIiwgdGhpcyk7CisgICAgTE9HX0FMV0FZ
UygiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgUHJvY2Vz
c1JlYWR5VG9TdXNwZW5kIElQQyBtZXNzYWdlIiwgdGhpcyk7CiAgICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1Jl
YWR5VG9TdXNwZW5kKCksIDApOwogfQogCkBAIC02MzcsMTIgKzYzNywxMiBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKICAgICAvLyB3ZSBkbyBub3QgYmVj
YXVzZSBwcmVwYXJlVG9TdXNwZW5kKCkgYWxyZWFkeSByZXBsaWVkIHdpdGggYSBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQKICAgICAvLyBtZXNzYWdlLiBBbmQgTmV0
d29ya1Byb2Nlc3NQcm94eSBleHBlY3RzIHRvIHJlY2VpdmUgZWl0aGVyIGEgTmV0d29ya1Byb2Nl
c3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kLQogICAgIC8vIG9yIE5ldHdvcmtQcm9jZXNz
UHJveHk6OkRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uLSBtZXNzYWdlLCBidXQgbm90IGJvdGgu
Ci0gICAgTE9HX0FMV0FZUyh0cnVlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6Y2FuY2VsUHJlcGFy
ZVRvU3VzcGVuZCgpIiwgdGhpcyk7CisgICAgTE9HX0FMV0FZUygiJXAgLSBOZXR3b3JrUHJvY2Vz
czo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQogewotICAgIExPR19BTFdBWVModHJ1ZSwgIiVwIC0g
TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOworICAgIExPR19BTFdB
WVMoIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOwogfQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggMzk1MTA5YWEyMjZkNTQzMjA3ZDkxOTc3ZDY5OGFiNDU5YjU4
MThjNS4uNmY4ODhmYmVmMzUwMjcwZTMyOTgxNTJkOTQ1M2Y5ODcxYTFhMmQwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC00OSw4ICs0OSw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0j
ZGVmaW5lIE5FVFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKC4uLikgTE9HX0FMV0FZUyhp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIE5FVFdPUktS
RVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9HX0FMV0FZU19FUlJPUihpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIExPR19JRl9BTExP
V0VEKC4uLikgTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykK
KyNkZWZpbmUgTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBMT0dfRVJST1JfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdv
cmtMb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgbV9idWZmZXJl
ZERhdGFGb3JDYWNoZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAjZW5kaWYKIAotICAgIE5F
VFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKCJTdGFydGluZyBuZXR3b3JrIHJlc291cmNl
IGxvYWQ6IGxvYWRlciA9ICVwLCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNNYWlu
UmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkIiwgdGhpcywgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGlzTWFpblJlc291cmNlKCksIGlzU3lu
Y2hyb25vdXMoKSk7CisgICAgTE9HX0lGX0FMTE9XRUQoIlN0YXJ0aW5nIG5ldHdvcmsgcmVzb3Vy
Y2UgbG9hZDogbG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCBpc01h
aW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKIAogICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzID0g
bV9wYXJhbWV0ZXJzOwogICAgIHBhcmFtZXRlcnMuZGVmZXJzTG9hZGluZyA9IG1fZGVmZXJzTG9h
ZGluZzsKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJv
cnQoKQogCiBhdXRvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbnNlKSAtPiBTaG91bGRDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZQogewotICAgIE5FVFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKCJS
ZWNlaXZlZCBuZXR3b3JrIHJlc291cmNlIHJlc3BvbnNlOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0g
JWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMg
PSAlZCwgaHR0cFN0YXR1c0NvZGUgPSAlZCIsIHRoaXMsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQs
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3Vz
KCksIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgTE9HX0lGX0FMTE9X
RUQoIlJlY2VpdmVkIG5ldHdvcmsgcmVzb3VyY2UgcmVzcG9uc2U6IGxvYWRlciA9ICVwLCBwYWdl
SUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJv
bm91cyA9ICVkLCBodHRwU3RhdHVzQ29kZSA9ICVkIiwgdGhpcywgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hy
b25vdXMoKSwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKIAogICAgIG1fcmVz
cG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVkUmVzcG9uc2UpOwogCkBAIC0zMjIsOSArMzIyLDkgQEAg
YXV0byBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJl
c3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICAgICAgaWYgKGlzU3luY2hyb25vdXMoKSkKICAg
ICAgICAgICAgIG1fc3luY2hyb25vdXNMb2FkRGF0YS0+cmVzcG9uc2UgPSBtX3Jlc3BvbnNlOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIE5FVFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxX
QVlTKCJTZW5kaW5nIGRpZFJlY2VpdmVSZXNwb25zZSBtZXNzYWdlIHRvIHRoZSBXZWJDb250ZW50
IHByb2Nlc3M6IGxvYWRlciA9ICVwLCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPihtX3BhcmFtZXRlcnMud2ViUGFnZUlEKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPihtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCksIGlzTWFpblJlc291
cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgICAgICBMT0dfSUZfQUxMT1dFRCgiU2Vu
ZGluZyBkaWRSZWNlaXZlUmVzcG9uc2UgbWVzc2FnZSB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNz
OiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVk
IGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCksIHN0YXRpY19jYXN0PHVuc2lnbmVk
IGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQpLCBpc01haW5SZXNvdXJjZSgpLCBp
c1N5bmNocm9ub3VzKCkpOwogICAgICAgICAgICAgaWYgKCFzZW5kQWJvcnRpbmdPbkZhaWx1cmUo
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlUmVzcG9uc2UobV9yZXNwb25z
ZSwgc2hvdWxkV2FpdENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKSkpIHsKLSAgICAgICAgICAg
ICAgICBORVRXT1JLUkVTT1VSQ0VMT0FERVJfTE9HX0FMV0FZU19FUlJPUigiRmFpbGVkIHRvIHNl
bmQgdGhlIGRpZFJlY2VpdmVSZXNwb25zZSBJUEMgbWVzc2FnZSB0byB0aGUgV2ViQ29udGVudCBw
cm9jZXNzOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFp
blJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PHVu
c2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCksIHN0YXRpY19jYXN0PHVu
c2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQpLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICAgICAgICAgIExPR19FUlJPUl9JRl9BTExP
V0VEKCJGYWlsZWQgdG8gc2VuZCB0aGUgZGlkUmVjZWl2ZVJlc3BvbnNlIElQQyBtZXNzYWdlIHRv
IHRoZSBXZWJDb250ZW50IHByb2Nlc3M6IGxvYWRlciA9ICVwLCBwYWdlSUQgPSAlbGx1LCBmcmFt
ZUlEID0gJWxsdSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkIiwgdGhp
cywgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3BhcmFtZXRlcnMud2ViUGFnZUlE
KSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCksIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIFNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOjpObzsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtMzM3LDExICszMzcsMTEgQEAgYXV0byBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNw
b24KICNlbmRpZgogCiAgICAgaWYgKHNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKSB7
Ci0gICAgICAgIE5FVFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKCJTaG91bGQgd2FpdCBm
b3IgbWVzc2FnZSBmcm9tIFdlYkNvbnRlbnQgcHJvY2VzcyBiZWZvcmUgY29udGludWluZyByZXNv
dXJjZSBsb2FkOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCIsIHRoaXMsIHN0YXRpY19jYXN0
PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCksIHN0YXRpY19jYXN0
PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQpLCBpc01haW5SZXNv
dXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBMT0dfSUZfQUxMT1dFRCgiU2hvdWxk
IHdhaXQgZm9yIG1lc3NhZ2UgZnJvbSBXZWJDb250ZW50IHByb2Nlc3MgYmVmb3JlIGNvbnRpbnVp
bmcgcmVzb3VyY2UgbG9hZDogbG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAl
bGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgaXNN
YWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgcmV0dXJuIFNob3VsZENv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOjpZZXM7CiAgICAgfQogCi0gICAgTkVUV09SS1JFU09V
UkNFTE9BREVSX0xPR19BTFdBWVMoIlNob3VsZCBub3Qgd2FpdCBmb3IgbWVzc2FnZSBmcm9tIFdl
YkNvbnRlbnQgcHJvY2VzcyBiZWZvcmUgY29udGludWluZyByZXNvdXJjZSBsb2FkOiBsb2FkZXIg
PSAlcCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9u
Zz4obV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9u
Zz4obV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQpLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9u
b3VzKCkpOworICAgIExPR19JRl9BTExPV0VEKCJTaG91bGQgbm90IHdhaXQgZm9yIG1lc3NhZ2Ug
ZnJvbSBXZWJDb250ZW50IHByb2Nlc3MgYmVmb3JlIGNvbnRpbnVpbmcgcmVzb3VyY2UgbG9hZDog
bG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCBpc01haW5SZXNvdXJj
ZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICByZXR1cm4gU2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2U6Ok5vOwogfQogCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAK
IAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZp
bmlzaFRpbWUpCiB7Ci0gICAgTkVUV09SS1JFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIkZpbmlz
aGVkIGxvYWRpbmcgbmV0d29yayByZXNvdXJjZTogbG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUs
IGZyYW1lSUQgPSAlbGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQi
LCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlEKSwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICBMT0dfSUZf
QUxMT1dFRCgiRmluaXNoZWQgbG9hZGluZyBuZXR3b3JrIHJlc291cmNlOiBsb2FkZXIgPSAlcCwg
cGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3lu
Y2hyb25vdXMgPSAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRCksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQpLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkp
OwogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKG1fY2FjaGVFbnRyeUZvclZh
bGlkYXRpb24pIHsKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkKIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQog
ewotICAgIE5FVFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKCJGYWlsZWQgbG9hZGluZyBu
ZXR3b3JrIHJlc291cmNlOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVs
bHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgaXNUaW1lb3V0ID0g
JWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVyckNvZGUgPSAlZCIsIHRoaXMsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBpc01haW5SZXNvdXJjZSgpLCBp
c1N5bmNocm9ub3VzKCksIGVycm9yLmlzVGltZW91dCgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigp
LCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgTE9HX0lGX0FMTE9XRUQoIkZhaWxlZCBsb2FkaW5n
IG5ldHdvcmsgcmVzb3VyY2U6IGxvYWRlciA9ICVwLCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0g
JWxsdSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBpc1RpbWVvdXQg
PSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyQ29kZSA9ICVkIiwgdGhpcywgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGlzTWFpblJlc291cmNlKCks
IGlzU3luY2hyb25vdXMoKSwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9u
KCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIEFTU0VSVCghZXJyb3IuaXNOdWxsKCkpOwog
CkBAIC00NTMsNyArNDUzLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKIAogdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYmIG5ld1JlcXVlc3QpCiB7Ci0gICAgTkVUV09SS1JFU09VUkNFTE9BREVSX0xPR19BTFdBWVMo
IkZvbGxvd2luZyByZWRpcmVjdCBvZiBuZXR3b3JrIHJlc291cmNlOiBsb2FkZXIgPSAlcCwgcGFn
ZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRCksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQpLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwor
ICAgIExPR19JRl9BTExPV0VEKCJGb2xsb3dpbmcgcmVkaXJlY3Qgb2YgbmV0d29yayByZXNvdXJj
ZTogbG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCBpc01haW5SZXNv
dXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgaXNNYWluUmVzb3VyY2UoKSwg
aXNTeW5jaHJvbm91cygpKTsKIAogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGlmICht
X2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCAyNjJkNWI3MzRm
Y2E3NGNlZjg5MjA0Y2Q1MTRhODVlMWE2NzEwZmQwLi41NTA4ZWEyZGUwOGU0MDFhMzcxYWJjODhj
MmJjMjUyNzdiZmIwYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCkBAIC0zNCw4ICszNCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKLSNkZWZpbmUgQ09O
TkVDVElPTl9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9HX0FMV0FZU19FUlJPUih0cnVlLCBfX1ZB
X0FSR1NfXykKLQogbmFtZXNwYWNlIElQQyB7CiAKIHN0cnVjdCBXYWl0Rm9yTWVzc2FnZVN0YXRl
IHsKQEAgLTU4NSw3ICs1ODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENv
bm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1JlcXVlcwogICAgICAgICAv
LyBJZiB0aGF0IGhhcHBlbnMsIHdlIG5lZWQgdG8gc3RvcCB3YWl0aW5nLCBvciB3ZSdsbCBoYW5n
IHNpbmNlIHdlIHdvbid0IGdldAogICAgICAgICAvLyBhbnkgbW9yZSBpbmNvbWluZyBtZXNzYWdl
cy4KICAgICAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIENPTk5FQ1RJT05fTE9H
X0FMV0FZU19FUlJPUigiQ29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseTogQ29ubmVjdGlvbiBu
byBsb25nZXIgdmFsaWQsIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVzdElEKTsKKyAgICAgICAg
ICAgIExPR19FUlJPUl9BTFdBWVMoIkNvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHk6IENvbm5l
Y3Rpb24gbm8gbG9uZ2VyIHZhbGlkLCBpZCA9ICUiIFBSSXU2NCwgc3luY1JlcXVlc3RJRCk7CiAg
ICAgICAgICAgICBkaWRSZWNlaXZlU3luY1JlcGx5KHN5bmNTZW5kRmxhZ3MpOwogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KQEAgLTU5Niw3ICs1OTQsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWlu
dDY0X3Qgc3luY1JlcXVlcwogICAgICAgICB0aW1lZE91dCA9ICFTeW5jTWVzc2FnZVN0YXRlOjpz
aW5nbGV0b24oKS53YWl0KGFic29sdXRlVGltZSk7CiAgICAgfQogCi0gICAgQ09OTkVDVElPTl9M
T0dfQUxXQVlTX0VSUk9SKCJDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBUaW1lZC1vdXQg
d2hpbGUgd2FpdGluZyBmb3IgcmVwbHksIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVzdElEKTsK
KyAgICBMT0dfRVJST1JfQUxXQVlTKCJDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBUaW1l
ZC1vdXQgd2hpbGUgd2FpdGluZyBmb3IgcmVwbHksIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVz
dElEKTsKICAgICBkaWRSZWNlaXZlU3luY1JlcGx5KHN5bmNTZW5kRmxhZ3MpOwogCiAgICAgcmV0
dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IGRh
M2JkMDJiMDU4NzA2YTA5ZDRlMDc1ODUxMzkyZDg0ZTkzZjc0MGYuLjJkMGJlYmE0ODEwMWZjMjdm
OWVlOTc3OTYwMjM3M2JjOWVkMDU3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3MuY3BwCkBAIC0yOSw4ICsyOSw2IEBACiAjaW5jbHVkZSAiU2FuZGJveEluaXRpYWxpemF0aW9u
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCi0jZGVmaW5lIENISUxEUFJPQ0VT
U19MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9HX0FMV0FZU19FUlJPUih0cnVlLCBfX1ZBX0FSR1Nf
XykKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIENoaWxkUHJvY2Vzczo6Q2hpbGRQcm9jZXNzKCkK
QEAgLTU1LDcgKzUzLDcgQEAgc3RhdGljIHZvaWQgZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWUoSVBDOjpDb25uZWN0aW9uKikKICAgICAgICAgLy8gV2UgdXNlIF9leGl0IGhlcmUgc2luY2Ug
dGhlIHdhdGNoZG9nIGNhbGxiYWNrIGlzIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkIGFuZCB3
ZSBkb24ndCB3YW50CiAgICAgICAgIC8vIGdsb2JhbCBkZXN0cnVjdG9ycyBvciBhdGV4aXQgaGFu
ZGxlcnMgdG8gYmUgY2FsbGVkIGZyb20gdGhpcyB0aHJlYWQgd2hpbGUgdGhlIG1haW4gdGhyZWFk
IGlzIGJ1c3kKICAgICAgICAgLy8gZG9pbmcgaXRzIHRoaW5nLgotICAgICAgICBDSElMRFBST0NF
U1NfTE9HX0FMV0FZU19FUlJPUigiRXhpdGluZyBwcm9jZXNzIGVhcmx5IGR1ZSB0byB1bmFja25v
d2xlZGdlZCBjbG9zZWQtY29ubmVjdGlvbiIpOworICAgICAgICBMT0dfRVJST1JfQUxXQVlTKCJF
eGl0aW5nIHByb2Nlc3MgZWFybHkgZHVlIHRvIHVuYWNrbm93bGVkZ2VkIGNsb3NlZC1jb25uZWN0
aW9uIik7CiAgICAgICAgIF9leGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgfSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA4
OWEzNGM3MjNiZWI0YjIzMWMzN2Y2NmIyZjEyNjMzOTU3YzNiNGJiLi5hN2UwMmU0OTNkZWFhZDhj
YTlmYzgzOGQ4NDNjYzM4N2UwYzlmYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTgyMywxMCArODIzLDEwIEBAIHZvaWQg
TmF2aWdhdGlvblN0YXRlOjpkaWRDaGFuZ2VJc0xvYWRpbmcoKQogewogI2lmIFBMQVRGT1JNKElP
UykKICAgICBpZiAobV93ZWJWaWV3LT5fcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygp
KSB7Ci0gICAgICAgIExPR19BTFdBWVMobV93ZWJWaWV3LT5fcGFnZS0+aXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCksICJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSBhIHBhZ2UgbG9hZCBzdGFydGVkIik7CisgICAgICAgIExPR19JRihtX3dlYlZpZXct
Pl9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIlVJUHJvY2VzcyBpcyB0YWtpbmcg
YSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIGEgcGFnZSBsb2FkIHN0YXJ0ZWQiKTsKICAg
ICAgICAgbV9hY3Rpdml0eVRva2VuID0gbV93ZWJWaWV3LT5fcGFnZS0+cHJvY2VzcygpLnRocm90
dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
TE9HX0FMV0FZUyhtX3dlYlZpZXctPl9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
IlVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIGEg
cGFnZSBsb2FkIGNvbXBsZXRlZCIpOworICAgICAgICBMT0dfSUYobV93ZWJWaWV3LT5fcGFnZS0+
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFj
a2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBhIHBhZ2UgbG9hZCBjb21wbGV0ZWQiKTsKICAgICAg
ICAgbV9hY3Rpdml0eVRva2VuID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKaW5kZXggMDNiY2I2MWJjNTk4NDM1YjdmYzk1M2Q4MDgwYmY5MDkzZWNiNjUxMC4uNTk4NWFi
NDA2YmVjMzY2NzdiM2M4ODFmNjllN2RhZDQ1YWYzYzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAg
LTEyNiwxMSArMTI2LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRl
RGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0CiAKICAgICB1aW50NjRf
dCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRo
cm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgTE9HX0FMV0FZUyhzZXNz
aW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJv
eHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBw
cm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgIExPR19JRihzZXNz
aW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJv
eHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBw
cm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwogCiAgICAgbV9wZW5kaW5n
RmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgW3RoaXMsIHRva2VuLCBj
b21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXShXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkgewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHdlYnNpdGVEYXRhKSk7Ci0gICAgICAg
IExPR19BTFdBWVMoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBO
ZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIs
IHRoaXMpOworICAgICAgICBMT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGZldGNoaW5nIFdl
YnNpdGUgZGF0YSIsIHRoaXMpOwogICAgIH0pOwogCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIGZldGNoT3B0
aW9ucywgY2FsbGJhY2tJRCksIDApOwpAQCAtMTQwLDExICsxNDAsMTEgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb24KIHsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQo
KTsKICAgICBhdXRvIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4o
KTsKLSAgICBMT0dfQUxXQVlTKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
IiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlv
biBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwg
dGhpcyk7CisgICAgTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
IiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlv
biBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwg
dGhpcyk7CiAKICAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2Fs
bGJhY2tJRCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIExPR19BTFdBWVMoc2Vzc2lvbklE
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlz
IHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJv
Y2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAgICBMT0df
SUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJv
Y2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhl
IE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwog
ICAgIH0pOwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZWxldGVXZWJzaXRl
RGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCksIDAp
OwogfQpAQCAtMTU1LDExICsxNTUsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW8KIAogICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAgICBhdXRvIHRv
a2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAgICBMT0dfQUxX
QVlTKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1By
b2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBO
ZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdp
bnMiLCB0aGlzKTsKKyAgICBMT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNz
ZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRh
dGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOwogCiAgICAgbV9wZW5kaW5nRGVsZXRlV2Vi
c2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lELCBbdGhpcywgdG9rZW4s
IGNvbXBsZXRpb25IYW5kbGVyLCBzZXNzaW9uSURdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICAgICAgTE9HX0FMV0FZUyhzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3Vu
ZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRvbmUgZGVsZXRpbmcg
V2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsKKyAgICAgICAgTE9HX0lG
KHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nl
c3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBO
ZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwg
b3JpZ2lucyIsIHRoaXMpOwogICAgIH0pOwogCiAgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
YT4gb3JpZ2luRGF0YTsKQEAgLTQwMiwxMiArNDAyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUpCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2Vk
RmlsZXMpCiB7CiAgICAgaWYgKCFpc0hvbGRpbmdMb2NrZWRGaWxlcykgewotICAgICAgICBMT0df
QUxXQVlTKHRydWUsICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRp
b24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xkaW5nIGxvY2tl
ZCBmaWxlcyIpOworICAgICAgICBMT0dfQUxXQVlTKCJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEg
YmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIG5vIGxv
bmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwogICAgICAgICBtX3Rva2VuRm9ySG9sZGluZ0xv
Y2tlZEZpbGVzID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoIW1f
dG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMpIHsKLSAgICAgICAgTE9HX0FMV0FZUyh0cnVlLCAi
VUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5l
dHdvcmsgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOworICAgICAgICBMT0dfQUxX
QVlTKCJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0
aGUgTmV0d29yayBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CiAgICAgICAgIG1f
dG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbigpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNz
VGhyb3R0bGVyLmNwcAppbmRleCA4NGY3NDJjNDBiNjI1YTJkZGY5OTBiNzAzZjc0ZDg2MTU1NjNk
ZTk1Li41MTdhM2FiZWJkYjRjYTdiZGQ5Nzc5YWJhY2JlZGVhMTM5NTY4NDg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkKICAgICBtX3N1
c3BlbmRUaW1lci5zdG9wKCk7CiAgICAgaWYgKG1fYXNzZXJ0aW9uKSB7CiAgICAgICAgIGlmICht
X2Fzc2VydGlvbi0+c3RhdGUoKSAhPSBhc3NlcnRpb25TdGF0ZSgpKQotICAgICAgICAgICAgTE9H
X0FMV0FZUyh0cnVlLCAiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3co
KSB1cGRhdGluZyBwcm9jZXNzIGFzc2VydGlvbiBzdGF0ZSB0byAldSAoZm9yZWdyb3VuZEFjdGl2
aXRpZXM6ICVsdSwgYmFja2dyb3VuZEFjdGl2aXRpZXM6ICVsdSkiLCB0aGlzLCBhc3NlcnRpb25T
dGF0ZSgpLCBtX2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCksIG1fYmFja2dyb3VuZENvdW50ZXIu
dmFsdWUoKSk7CisgICAgICAgICAgICBMT0dfQUxXQVlTKCIlcCAtIFByb2Nlc3NUaHJvdHRsZXI6
OnVwZGF0ZUFzc2VydGlvbk5vdygpIHVwZGF0aW5nIHByb2Nlc3MgYXNzZXJ0aW9uIHN0YXRlIHRv
ICV1IChmb3JlZ3JvdW5kQWN0aXZpdGllczogJWx1LCBiYWNrZ3JvdW5kQWN0aXZpdGllczogJWx1
KSIsIHRoaXMsIGFzc2VydGlvblN0YXRlKCksIG1fZm9yZWdyb3VuZENvdW50ZXIudmFsdWUoKSwg
bV9iYWNrZ3JvdW5kQ291bnRlci52YWx1ZSgpKTsKICAgICAgICAgbV9hc3NlcnRpb24tPnNldFN0
YXRlKGFzc2VydGlvblN0YXRlKCkpOwogICAgICAgICBtX3Byb2Nlc3MuZGlkU2V0QXNzZXJ0aW9u
U3RhdGUoYXNzZXJ0aW9uU3RhdGUoKSk7CiAgICAgfQpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFBy
b2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbigpCiAgICAgLy8gaW4gdGhlIGJhY2tncm91
bmQgZm9yIHRvbyBsb25nLgogICAgIGlmIChtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+c3Rh
dGUoKSAhPSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkICYmICFtX2ZvcmVncm91bmRDb3VudGVy
LnZhbHVlKCkgJiYgIW1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKSkgewogICAgICAgICArK21f
c3VzcGVuZE1lc3NhZ2VDb3VudDsKLSAgICAgICAgTE9HX0FMV0FZUyh0cnVlLCAiJXAgLSBQcm9j
ZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24oKSBzZW5kaW5nIFByZXBhcmVUb1N1c3BlbmQg
SVBDIiwgdGhpcyk7CisgICAgICAgIExPR19BTFdBWVMoIiVwIC0gUHJvY2Vzc1Rocm90dGxlcjo6
dXBkYXRlQXNzZXJ0aW9uKCkgc2VuZGluZyBQcmVwYXJlVG9TdXNwZW5kIElQQyIsIHRoaXMpOwog
ICAgICAgICBtX3Byb2Nlc3Muc2VuZFByZXBhcmVUb1N1c3BlbmQoKTsKICAgICAgICAgbV9zdXNw
ZW5kVGltZXIuc3RhcnRPbmVTaG90KHByb2Nlc3NTdXNwZW5zaW9uVGltZW91dCk7CiAgICAgICAg
IG1fYXNzZXJ0aW9uLT5zZXRTdGF0ZShBc3NlcnRpb25TdGF0ZTo6QmFja2dyb3VuZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhkZWZmMTJmODhkNGM2
ZTNmMDY1MGZkYjFlYWJiZThiYTg4MDA2N2UuLjZiMjMxZDNlM2E2N2M0NGMzZjRmYzQ2OTE0MTZk
OGFlNGUxNDM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xNzksNyArMTc5LDcgQEAKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1F
U1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpKQogI2Rl
ZmluZSBNRVNTQUdFX0NIRUNLX1VSTCh1cmwpIE1FU1NBR0VfQ0hFQ0tfQkFTRShtX3Byb2Nlc3Mt
PmNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyh1cmwpLCBtX3Byb2Nlc3MtPmNvbm5lY3Rp
b24oKSkKIAotI2RlZmluZSBXRUJQQUdFUFJPWFlfTE9HX0FMV0FZUyguLi4pIExPR19BTFdBWVMo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBMT0dfSUZf
QUxMT1dFRCguLi4pIExPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdT
X18pCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNTc3LDE0ICsxNTc3LDE0IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVRva2VuKCkKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgJiYgIW1fYWx3YXlzUnVuc0F0Rm9yZWdyb3Vu
ZFByaW9yaXR5KSB7CiAgICAgICAgIGlmIChtX2FjdGl2aXR5VG9rZW4pIHsKLSAgICAgICAgICAg
IFdFQlBBR0VQUk9YWV9MT0dfQUxXQVlTKCIlcCAtIFVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBm
b3JlZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSB2aWV3IGlzIG5vIGxvbmdlciB2aXNpYmxl
IiwgdGhpcyk7CisgICAgICAgICAgICBMT0dfSUZfQUxMT1dFRCgiJXAgLSBVSVByb2Nlc3MgaXMg
cmVsZWFzaW5nIGEgZm9yZWdyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgdmlldyBpcyBubyBs
b25nZXIgdmlzaWJsZSIsIHRoaXMpOwogICAgICAgICAgICAgbV9hY3Rpdml0eVRva2VuID0gbnVs
bHB0cjsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoIW1fYWN0aXZpdHlUb2tlbikgewogICAg
ICAgICBpZiAoaXNWaWV3VmlzaWJsZSgpKQotICAgICAgICAgICAgV0VCUEFHRVBST1hZX0xPR19B
TFdBWVMoIiVwIC0gVUlQcm9jZXNzIGlzIHRha2luZyBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIHZpZXcgaXMgdmlzaWJsZSIsIHRoaXMpOworICAgICAgICAgICAgTE9HX0lGX0FM
TE9XRUQoIiVwIC0gVUlQcm9jZXNzIGlzIHRha2luZyBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIHZpZXcgaXMgdmlzaWJsZSIsIHRoaXMpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBXRUJQQUdFUFJPWFlfTE9HX0FMV0FZUygiJXAgLSBVSVByb2Nlc3MgaXMgdGFraW5nIGEg
Zm9yZWdyb3VuZCBhc3NlcnRpb24gZXZlbiB0aG91Z2ggdGhlIHZpZXcgaXMgbm90IHZpc2libGUg
YmVjYXVzZSBtX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSBpcyB0cnVlIiwgdGhpcyk7
CisgICAgICAgICAgICBMT0dfSUZfQUxMT1dFRCgiJXAgLSBVSVByb2Nlc3MgaXMgdGFraW5nIGEg
Zm9yZWdyb3VuZCBhc3NlcnRpb24gZXZlbiB0aG91Z2ggdGhlIHZpZXcgaXMgbm90IHZpc2libGUg
YmVjYXVzZSBtX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSBpcyB0cnVlIiwgdGhpcyk7
CiAgICAgICAgIG1fYWN0aXZpdHlUb2tlbiA9IG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuZm9yZWdy
b3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYjFjMGY4YjNhNWU2MGFhM2FhNjU2Yjdj
NzRlNDU3NGIzMzQ3MmRhZC4uYTkyOTY2MzkyYWEwOTU5MmEyZTdkZTkxYjRkMGU0ODc4NzM1YjI2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTc1MiwxMSArNzUyLDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRh
KFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0CiAKICAgICB1aW50NjRf
dCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRo
cm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgTE9HX0FMV0FZUyhzZXNz
aW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBp
cyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBp
cyBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICBMT0dfSUYoc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgdGFraW5n
IGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZmV0Y2hp
bmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CiAKICAgICBtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRh
Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lELCBbdGhpcywgdG9rZW4sIGNvbXBsZXRpb25IYW5kbGVy
LCBzZXNzaW9uSURdKFdlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUod2Vic2l0ZURhdGEpKTsKLSAgICAgICAgTE9HX0FMV0FZUyhzZXNz
aW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBp
cyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2Vz
cyBpcyBkb25lIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAgICBMT0dfSUYo
c2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHBy
b2Nlc3MgaXMgZG9uZSBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKIAog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vzc2lvbklE
LCBkYXRhVHlwZXMsIGNhbGxiYWNrSUQpLCAwKTsKQEAgLTc2OCwxMSArNzY4LDExIEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhCiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVD
YWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rp
dml0eVRva2VuKCk7Ci0gICAgTE9HX0FMV0FZUyhzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEi
LCB0aGlzKTsKKyAgICBMT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7
CiAKICAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJ
RCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXSB7CiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIExPR19BTFdBWVMoc2Vzc2lvbklELmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5n
IGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBk
ZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICAgICAgTE9HX0lGKHNlc3Npb25JRC5p
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHJlbGVh
c2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRv
bmUgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CiAgICAgfSk7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMs
IG1vZGlmaWVkU2luY2UsIGNhbGxiYWNrSUQpLCAwKTsKIH0KQEAgLTc4MywxMSArNzgzLDExIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lv
bklEIHNlc3Npb25JRCwgT3B0aW9uU2V0CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gZ2Vu
ZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91
bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgTE9HX0FMV0FZUyhzZXNzaW9uSUQuaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3Jv
dW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRl
IGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOworICAgIExPR19JRihzZXNzaW9uSUQu
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtp
bmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkZWxl
dGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOwogCiAgICAgbV9w
ZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lE
LCBbdGhpcywgdG9rZW4sIGNvbXBsZXRpb25IYW5kbGVyLCBzZXNzaW9uSURdIHsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgTE9HX0FMV0FZUyhzZXNzaW9uSUQuaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcg
YSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkb25lIGRl
bGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CisgICAgICAg
IExPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlBy
b2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRo
ZSBXZWIgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBv
cmlnaW5zIiwgdGhpcyk7CiAgICAgfSk7CiAKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRh
PiBvcmlnaW5EYXRhOwpAQCAtOTg3LDcgKzk4Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRTZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSBzdGF0ZSkKIAogICAgIHN3aXRjaCAo
c3RhdGUpIHsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQ6Ci0gICAgICAgIExP
R19BTFdBWVModHJ1ZSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0
ZShTdXNwZW5kZWQpIHJlbGVhc2UgYWxsIGFzc2VydGlvbnMgZm9yIG5ldHdvcmsgcHJvY2VzcyIs
IHRoaXMpOworICAgICAgICBMT0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0
QXNzZXJ0aW9uU3RhdGUoU3VzcGVuZGVkKSByZWxlYXNlIGFsbCBhc3NlcnRpb25zIGZvciBuZXR3
b3JrIHByb2Nlc3MiLCB0aGlzKTsKICAgICAgICAgbV9mb3JlZ3JvdW5kVG9rZW5Gb3JOZXR3b3Jr
UHJvY2VzcyA9IG51bGxwdHI7CiAgICAgICAgIG1fYmFja2dyb3VuZFRva2VuRm9yTmV0d29ya1By
b2Nlc3MgPSBudWxscHRyOwogICAgICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFs
dWVzKCkpCkBAIC05OTUsMTMgKzk5NSwxMyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0
QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUgc3RhdGUpCiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6QmFja2dyb3VuZDoKLSAgICAgICAgTE9HX0FMV0FZUyh0
cnVlLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEJhY2tncm91
bmQpIHRha2luZyBiYWNrZ3JvdW5kIGFzc2VydGlvbiBmb3IgbmV0d29yayBwcm9jZXNzIiwgdGhp
cyk7CisgICAgICAgIExPR19BTFdBWVMoIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3Nl
cnRpb25TdGF0ZShCYWNrZ3JvdW5kKSB0YWtpbmcgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9yIG5l
dHdvcmsgcHJvY2VzcyIsIHRoaXMpOwogICAgICAgICBtX2JhY2tncm91bmRUb2tlbkZvck5ldHdv
cmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2woKS5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLnRocm90dGxl
cigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2Vu
Rm9yTmV0d29ya1Byb2Nlc3MgPSBudWxscHRyOwogICAgICAgICBicmVhazsKICAgICAKICAgICBj
YXNlIEFzc2VydGlvblN0YXRlOjpGb3JlZ3JvdW5kOgotICAgICAgICBMT0dfQUxXQVlTKHRydWUs
ICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoRm9yZWdyb3VuZCkg
dGFraW5nIGZvcmVncm91bmQgYXNzZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsK
KyAgICAgICAgTE9HX0FMV0FZUygiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlv
blN0YXRlKEZvcmVncm91bmQpIHRha2luZyBmb3JlZ3JvdW5kIGFzc2VydGlvbiBmb3IgbmV0d29y
ayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0d29ya1By
b2Nlc3MgPSBwcm9jZXNzUG9vbCgpLmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGhyb3R0bGVyKCku
Zm9yZWdyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICAgICAgbV9iYWNrZ3JvdW5kVG9rZW5Gb3JO
ZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiAgICAgICAgIGZvciAoYXV0byYgcGFnZSA6IG1fcGFn
ZU1hcC52YWx1ZXMoKSkKQEAgLTEwMTgsMTIgKzEwMTgsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlIHN0YXRlKQogdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2Vk
RmlsZXMpCiB7CiAgICAgaWYgKCFpc0hvbGRpbmdMb2NrZWRGaWxlcykgewotICAgICAgICBMT0df
QUxXQVlTKHRydWUsICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRp
b24gYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xkaW5nIGxv
Y2tlZCBmaWxlcyIpOworICAgICAgICBMT0dfQUxXQVlTKCJVSVByb2Nlc3MgaXMgcmVsZWFzaW5n
IGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlz
IG5vIGxvbmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwogICAgICAgICBtX3Rva2VuRm9ySG9s
ZGluZ0xvY2tlZEZpbGVzID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBp
ZiAoIW1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMpIHsKLSAgICAgICAgTE9HX0FMV0FZUyh0
cnVlLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ug
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOworICAgICAg
ICBMT0dfQUxXQVlTKCJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7
CiAgICAgICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBtX3Rocm90dGxlci5iYWNr
Z3JvdW5kQWN0aXZpdHlUb2tlbigpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCAzMzM2MDFiMTA1NTAx
ZWE2OTVmMzAxYTJjZGE2MDNiYmJjNTIzMmE0Li40NTFhODk3YWM0YWNhOGZhMWNiOThiMmIzMGZi
Mjg1ODE2ODg5OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1By
b2Nlc3NBc3NlcnRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBAIC0xMDUsNyArMTA1LDcgQEAgLSAodm9pZClfdXBkYXRl
QmFja2dyb3VuZFRhc2sKIHsKICAgICBpZiAoX25lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudCAm
JiBfYmFja2dyb3VuZFRhc2sgPT0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQpIHsKICAgICAgICAg
X2JhY2tncm91bmRUYXNrID0gW1tVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBiZWdp
bkJhY2tncm91bmRUYXNrV2l0aE5hbWU6QCJjb20uYXBwbGUuV2ViS2l0LlByb2Nlc3NBc3NlcnRp
b24iIGV4cGlyYXRpb25IYW5kbGVyOl57Ci0gICAgICAgICAgICBMT0dfQUxXQVlTX0VSUk9SKHRy
dWUsICJCYWNrZ3JvdW5kIHRhc2sgZXhwaXJlZCB3aGlsZSBob2xkaW5nIFdlYktpdCBQcm9jZXNz
QXNzZXJ0aW9uIChpc01haW5UaHJlYWQ/ICVkKS4iLCBSdW5Mb29wOjppc01haW4oKSk7CisgICAg
ICAgICAgICBMT0dfRVJST1JfQUxXQVlTKCJCYWNrZ3JvdW5kIHRhc2sgZXhwaXJlZCB3aGlsZSBo
b2xkaW5nIFdlYktpdCBQcm9jZXNzQXNzZXJ0aW9uIChpc01haW5UaHJlYWQ/ICVkKS4iLCBSdW5M
b29wOjppc01haW4oKSk7CiAgICAgICAgICAgICAvLyBUaGUgZXhwaXJhdGlvbiBoYW5kbGVyIGdl
dHMgY2FsbGVkIG9uIGEgbm9uLW1haW4gdGhyZWFkIHdoZW4gdGhlIHVuZGVybHlpbmcgYXNzZXJ0
aW9uIGNvdWxkIG5vdCBiZSB0YWtlbiAocmRhcjovL3Byb2JsZW0vMjcyNzg0MTkpLgogICAgICAg
ICAgICAgaWYgKFJ1bkxvb3A6OmlzTWFpbigpKQogICAgICAgICAgICAgICAgIFtzZWxmIF9ub3Rp
ZnlDbGllbnRzT2ZJbW1pbmVudFN1c3BlbnNpb25dOwpAQCAtMTY1LDcgKzE2NSw3IEBAIFByb2Nl
c3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBBc3NlcnRpb25TdGF0ZSBh
c3NlcnRpb25TdGF0ZSwgRnVuCiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsK
ICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5kbGVyIGhhbmRsZXIgPSBeKEJP
T0wgYWNxdWlyZWQpIHsKICAgICAgICAgaWYgKCFhY3F1aXJlZCkgewotICAgICAgICAgICAgTE9H
X0FMV0FZU19FUlJPUih0cnVlLCAiVW5hYmxlIHRvIGFjcXVpcmUgYXNzZXJ0aW9uIGZvciBwcm9j
ZXNzICVkIiwgcGlkKTsKKyAgICAgICAgICAgIExPR19FUlJPUl9BTFdBWVMoIlVuYWJsZSB0byBh
Y3F1aXJlIGFzc2VydGlvbiBmb3IgcHJvY2VzcyAlZCIsIHBpZCk7CiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKaW5kZXggMzkzYjhjZWRlMzM0NWJmZmJhNTJhOGZhNTFiNzg3NWJjYmI5OGFlZi4uMWYz
YjA0MWIzYjFiZjY4ZmZmZWQxZDBkMTZjOTc5MzYwNDUwYTNiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBA
IC01Nyw4ICs1Nyw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jZGVmaW5lIFdF
QkxPQURFUlNUUkFURUdZX0xPR19BTFdBWVMoLi4uKSBMT0dfQUxXQVlTKGxvYWRQYXJhbWV0ZXJz
LnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCi0jZGVm
aW5lIFdFQkxPQURFUlNUUkFURUdZX0xPR19BTFdBWVNfRVJST1IoLi4uKSBMT0dfQUxXQVlTX0VS
Uk9SKGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
X19WQV9BUkdTX18pCisjZGVmaW5lIExPR19JRl9BTExPV0VEKC4uLikgTE9HX0lGKGxvYWRQYXJh
bWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18p
CisjZGVmaW5lIExPR19FUlJPUl9JRl9BTExPV0VEKC4uLikgTE9HX0VSUk9SX0lGKGxvYWRQYXJh
bWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18p
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwg
Q2FjaGVkUmVzb3UKICAgICBBU1NFUlQoKGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCAmJiBsb2Fk
UGFyYW1ldGVycy53ZWJGcmFtZUlEKSB8fCBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFs
UG9saWN5ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRl
bnRpYWxzKTsKIAogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OlNjaGVkdWxlUmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKLSAg
ICAgICAgV0VCTE9BREVSU1RSQVRFR1lfTE9HX0FMV0FZU19FUlJPUigiV2ViTG9hZGVyU3RyYXRl
Z3k6OnNjaGVkdWxlTG9hZDogVW5hYmxlIHRvIHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5l
dHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9
ICVsbHUiLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0
eSgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihsb2FkUGFyYW1ldGVycy53ZWJQ
YWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KGxvYWRQYXJhbWV0ZXJzLndl
YkZyYW1lSUQpKTsKKyAgICAgICAgTE9HX0VSUk9SX0lGX0FMTE9XRUQoIldlYkxvYWRlclN0cmF0
ZWd5OjpzY2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBO
ZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQg
PSAlbGx1Iiwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3Jp
dHkoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obG9hZFBhcmFtZXRlcnMud2Vi
UGFnZUlEKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihsb2FkUGFyYW1ldGVycy53
ZWJGcmFtZUlEKSk7CiAgICAgICAgIC8vIFdlIHByb2JhYmx5IGZhaWxlZCB0byBzY2hlZHVsZSB0
aGlzIGxvYWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgYmVjYXVzZSBpdCBoYWQgY3Jhc2hlZC4K
ICAgICAgICAgLy8gVGhpcyBsb2FkIHdpbGwgbmV2ZXIgc3VjY2VlZCBzbyB3ZSB3aWxsIHNjaGVk
dWxlIGl0IHRvIGZhaWwgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIHNjaGVkdWxlSW50ZXJuYWxs
eUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2Fk
ZXIsIENhY2hlZFJlc291CiAgICAgfQogCiAgICAgYXV0byB3ZWJSZXNvdXJjZUxvYWRlciA9IFdl
YlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIpOwotICAgIFdFQkxPQURFUlNU
UkFURUdZX0xPR19BTFdBWVMoIldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQ6IFJlc291
cmNlIHdpbGwgYmUgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3Jp
dHkgPSAlZCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIFdlYlJlc291cmNlTG9hZGVy
ID0gJXAiLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0
eSgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihsb2FkUGFyYW1ldGVycy53ZWJQ
YWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KGxvYWRQYXJhbWV0ZXJzLndl
YkZyYW1lSUQpLCB3ZWJSZXNvdXJjZUxvYWRlci5wdHIoKSk7CisgICAgTE9HX0lGX0FMTE9XRUQo
IldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQ6IFJlc291cmNlIHdpbGwgYmUgc2NoZWR1
bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0g
JWxsdSwgZnJhbWVJRCA9ICVsbHUsIFdlYlJlc291cmNlTG9hZGVyID0gJXAiLCBzdGF0aWNfY2Fz
dDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPihsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBsb25nIGxvbmc+KGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQpLCB3ZWJSZXNv
dXJjZUxvYWRlci5wdHIoKSk7CiAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50aWZp
ZXIsIFdURk1vdmUod2ViUmVzb3VyY2VMb2FkZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
NzhiMGE5ODkxODgxODVlZGMxYWE3NzI0Nzg0ZDQ3ZjQwYWZiMmRiNy4uOWVhYmRhN2Q5OTNhZWFj
OTA0NDI0NzA1YTA1MDg5N2UwMzU2MjJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00Miw3ICs0Miw3
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jZGVmaW5lIFdFQlJFU09VUkNFTE9B
REVSX0xPR19BTFdBWVMoLi4uKSBMT0dfQUxXQVlTKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9HX0lGX0FMTE9XRUQoLi4uKSBMT0dfSUYoaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkZXRhY2hGcm9tQ29y
ZUxvYWRlcigpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiYgcHJvcG9zZWRSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxv
YWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHRvICclcyciLCBwcm9wb3NlZFJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBXRUJSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlT
KCJXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0LCBXZWJSZXNvdXJjZUxvYWRlciA9
ICVwIiwgdGhpcyk7CisgICAgTE9HX0lGX0FMTE9XRUQoIldlYlJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QsIFdlYlJlc291cmNlTG9hZGVyID0gJXAiLCB0aGlzKTsKIAogICAgIFJlZlB0
cjxXZWJSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKIApAQCAtMTAxLDcgKzEw
MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVz
U2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wg
bmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdv
cmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSBm
b3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4x
KCkuZGF0YSgpLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBXRUJSRVNPVVJDRUxP
QURFUl9MT0dfQUxXQVlTKCJXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlLCBX
ZWJSZXNvdXJjZUxvYWRlciA9ICVwLCBzdGF0dXMgPSAlZC4iLCB0aGlzLCByZXNwb25zZS5odHRw
U3RhdHVzQ29kZSgpKTsKKyAgICBMT0dfSUZfQUxMT1dFRCgiV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZSwgV2ViUmVzb3VyY2VMb2FkZXIgPSAlcCwgc3RhdHVzID0gJWQuIiwg
dGhpcywgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKICAgICBSZWY8V2ViUmVzb3VyY2VM
b2FkZXI+IHByb3RlY3QoKnRoaXMpOwogCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBib28KIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsK
ICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEgb2Ygc2l6ZSAlbHUgZm9yICclcyciLCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVy
LT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFdFQlJFU09VUkNFTE9BREVS
X0xPR19BTFdBWVMoIldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSwgV2ViUmVzb3Vy
Y2VMb2FkZXIgPSAlcCwgc2l6ZSA9ICVsdSIsIHRoaXMsIGRhdGEuc2l6ZSgpKTsKKyAgICBMT0df
SUZfQUxMT1dFRCgiV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhLCBXZWJSZXNvdXJj
ZUxvYWRlciA9ICVwLCBzaXplID0gJWx1IiwgdGhpcywgZGF0YS5zaXplKCkpOwogCiAjaWYgVVNF
KFFVSUNLX0xPT0spCiAgICAgaWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlID0g
bV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKSkgewpAQCAt
MTQ3LDcgKzE0Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiB2b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAg
TE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJl
c291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4x
KCkuZGF0YSgpKTsKLSAgICBXRUJSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKCJXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkLCBXZWJSZXNvdXJjZUxvYWRlciA9ICVwIiwg
dGhpcyk7CisgICAgTE9HX0lGX0FMTE9XRUQoIldlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hS
ZXNvdXJjZUxvYWQsIFdlYlJlc291cmNlTG9hZGVyID0gJXAiLCB0aGlzKTsKIAogI2lmIFVTRShR
VUlDS19MT09LKQogICAgIGlmIChRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSA9IG1f
Y29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+cXVpY2tMb29rSGFuZGxlKCkpIHsKQEAgLTE2
MSw3ICsxNjEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxv
YWQoZG91YmxlIGZpbmlzaFRpbWUpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVz
b3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIExPRyhOZXR3b3Jr
LCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkIGZv
ciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwot
ICAgIFdFQlJFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIldlYlJlc291cmNlTG9hZGVyOjpkaWRG
YWlsUmVzb3VyY2VMb2FkLCBXZWJSZXNvdXJjZUxvYWRlciA9ICVwIiwgdGhpcyk7CisgICAgTE9H
X0lGX0FMTE9XRUQoIldlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkLCBXZWJS
ZXNvdXJjZUxvYWRlciA9ICVwIiwgdGhpcyk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBp
ZiAoUXVpY2tMb29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUgPSBtX2NvcmVMb2FkZXItPmRvY3Vt
ZW50TG9hZGVyKCktPnF1aWNrTG9va0hhbmRsZSgpKQpAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29u
c3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBkb3VibGUgZmluaXNoVGltZSkK
IHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZVJlc291cmNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5s
YXRpbjEoKS5kYXRhKCkpOwotICAgIFdFQlJFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIldlYlJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UsIFdlYlJlc291cmNlTG9hZGVyID0gJXAi
LCB0aGlzKTsKKyAgICBMT0dfSUZfQUxMT1dFRCgiV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVSZXNvdXJjZSwgV2ViUmVzb3VyY2VMb2FkZXIgPSAlcCIsIHRoaXMpOwogCiAgICAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gaGFuZGxlLnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NTI3MDU4NmE0OTJjMDk3NDA1YmJmZmVkZGY5OTVkNDU3ZDZiMTNlMi4uZDk2NjA5YzI4NTdlOTQ2
Y2I4NTI2ZDlkNzhkM2E5OGI4MDk4NWQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjU2LDggKzI1Niw4IEBAIHN0YXRpYyBjb25zdCBk
b3VibGUgcGFnZVNjcm9sbEh5c3RlcmVzaXNTZWNvbmRzID0gMC4zOwogc3RhdGljIGNvbnN0IHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW5pdGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2
YWwgeyAyMCB9Owogc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjpzZWNvbmRzIG1heGltdW1MYXll
clZvbGF0aWxpdHlUaW1lckludGVydmFsIHsgMiB9OwogCi0jZGVmaW5lIFdFQlBBR0VfTE9HX0FM
V0FZUyguLi4pIExPR19BTFdBWVMoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJH
U19fKQotI2RlZmluZSBXRUJQQUdFX0xPR19BTFdBWVNfRVJST1IoLi4uKSBMT0dfQUxXQVlTX0VS
Uk9SKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9H
X0lGX0FMTE9XRUQoLi4uKSBMT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFf
QVJHU19fKQorI2RlZmluZSBMT0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIExPR19FUlJPUl9JRihp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCiAKIGNsYXNzIFNlbmRTdG9w
UmVzcG9uc2l2ZW5lc3NUaW1lciB7CiBwdWJsaWM6CkBAIC0yMDY1LDEyICsyMDY1LDEyIEBAIHZv
aWQgV2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpCiAgICAgYm9vbCBkaWRTdWNj
ZWVkID0gbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCk7CiAgICAgaWYg
KGRpZFN1Y2NlZWQgfHwgbmV3SW50ZXJ2YWwgPiBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJ
bnRlcnZhbCkgewogICAgICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKLSAgICAg
ICAgV0VCUEFHRV9MT0dfQUxXQVlTKCIlcCAtIFdlYlBhZ2UgLSBBdHRlbXB0ZWQgdG8gbWFyayBz
dXJmYWNlcyBhcyB2b2xhdGlsZSwgc3VjY2Vzcz8gJWQiLCB0aGlzLCBkaWRTdWNjZWVkKTsKKyAg
ICAgICAgTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFnZSAtIEF0dGVtcHRlZCB0byBtYXJrIHN1
cmZhY2VzIGFzIHZvbGF0aWxlLCBzdWNjZXNzPyAlZCIsIHRoaXMsIGRpZFN1Y2NlZWQpOwogICAg
ICAgICBjYWxsVm9sYXRpbGl0eUNvbXBsZXRpb25IYW5kbGVycygpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgV0VCUEFHRV9MT0dfQUxXQVlTX0VSUk9SKCIlcCAtIFdlYlBhZ2UgLSBG
YWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVsbGQg
bXMiLCB0aGlzLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KG5ld0ludGVydmFsLmNvdW50KCkpKTsK
KyAgICBMT0dfRVJST1JfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gRmFpbGVkIHRvIG1hcmsg
YWxsIGxheWVycyBhcyB2b2xhdGlsZSwgd2lsbCByZXRyeSBpbiAlbGxkIG1zIiwgdGhpcywgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihuZXdJbnRlcnZhbC5jb3VudCgpKSk7CiAgICAgbV9sYXllclZv
bGF0aWxpdHlUaW1lci5zdGFydFJlcGVhdGluZyhuZXdJbnRlcnZhbCk7CiB9CiAKQEAgLTIwODEs
NyArMjA4MSw3IEBAIGJvb2wgV2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJ
ZlBvc3NpYmxlKCkKIAogdm9pZCBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUoc3RkOjpmdW5j
dGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXRUJQQUdFX0xPR19BTFdB
WVMoIiVwIC0gV2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxlKCkiLCB0aGlzKTsKKyAgICBMT0df
SUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUoKSIsIHRoaXMpOwog
CiAgICAgaWYgKG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9s
YXllclZvbGF0aWxpdHlUaW1lci5zdG9wKCk7CkBAIC0yMDkyLDIyICsyMDkyLDIyIEBAIHZvaWQg
V2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxlKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxl
dGlvbkhhbmRsZXIpCiAgICAgYm9vbCBkaWRTdWNjZWVkID0gbWFya0xheWVyc1ZvbGF0aWxlSW1t
ZWRpYXRlbHlJZlBvc3NpYmxlKCk7CiAgICAgaWYgKGRpZFN1Y2NlZWQgfHwgbV9pc1N1c3BlbmRl
ZFVuZGVyTG9jaykgewogICAgICAgICBpZiAoZGlkU3VjY2VlZCkKLSAgICAgICAgICAgIFdFQlBB
R0VfTE9HX0FMV0FZUygiJXAgLSBXZWJQYWdlIC0gU3VjY2Vzc2Z1bGx5IG1hcmtlZCBsYXllcnMg
YXMgdm9sYXRpbGUiLCB0aGlzKTsKKyAgICAgICAgICAgIExPR19JRl9BTExPV0VEKCIlcCAtIFdl
YlBhZ2UgLSBTdWNjZXNzZnVsbHkgbWFya2VkIGxheWVycyBhcyB2b2xhdGlsZSIsIHRoaXMpOwog
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdlIGdldCBzdXNwZW5kZWQgd2hlbiBs
b2NraW5nIHRoZSBzY3JlZW4sIGl0IGlzIGV4cGVjdGVkIHRoYXQgc29tZSBJT1N1cmZhY2VzIGNh
bm5vdCBiZSBtYXJrZWQgYXMgcHVyZ2VhYmxlIHNvIHdlIGRvIG5vdCBrZWVwIHJldHJ5aW5nLgot
ICAgICAgICAgICAgV0VCUEFHRV9MT0dfQUxXQVlTKCIlcCAtIFdlYlBhZ2UgLSBEaWQgd2hhdCB3
ZSBjb3VsZCB0byBtYXJrIElPU3VyZmFjZXMgYXMgcHVyZ2VhYmxlIGFmdGVyIGxvY2tpbmcgdGhl
IHNjcmVlbiIsIHRoaXMpOworICAgICAgICAgICAgTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFn
ZSAtIERpZCB3aGF0IHdlIGNvdWxkIHRvIG1hcmsgSU9TdXJmYWNlcyBhcyBwdXJnZWFibGUgYWZ0
ZXIgbG9ja2luZyB0aGUgc2NyZWVuIiwgdGhpcyk7CiAgICAgICAgIH0KICAgICAgICAgY2FsbFZv
bGF0aWxpdHlDb21wbGV0aW9uSGFuZGxlcnMoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFdFQlBBR0VfTE9HX0FMV0FZUygiJXAgLSBGYWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFz
IHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVsbGQgbXMiLCB0aGlzLCBpbml0aWFsTGF5ZXJWb2xh
dGlsaXR5VGltZXJJbnRlcnZhbC5jb3VudCgpKTsKKyAgICBMT0dfSUZfQUxMT1dFRCgiJXAgLSBG
YWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVsbGQg
bXMiLCB0aGlzLCBpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbC5jb3VudCgpKTsK
ICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0YXJ0UmVwZWF0aW5nKGluaXRpYWxMYXllclZv
bGF0aWxpdHlUaW1lckludGVydmFsKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpjYW5jZWxNYXJrTGF5
ZXJzVm9sYXRpbGUoKQogewotICAgIFdFQlBBR0VfTE9HX0FMV0FZUygiJXAgLSBXZWJQYWdlOjpj
YW5jZWxNYXJrTGF5ZXJzVm9sYXRpbGUoKSIsIHRoaXMpOworICAgIExPR19JRl9BTExPV0VEKCIl
cCAtIFdlYlBhZ2U6OmNhbmNlbE1hcmtMYXllcnNWb2xhdGlsZSgpIiwgdGhpcyk7CiAgICAgbV9s
YXllclZvbGF0aWxpdHlUaW1lci5zdG9wKCk7CiAgICAgbV9tYXJrTGF5ZXJzQXNWb2xhdGlsZUNv
bXBsZXRpb25IYW5kbGVycy5jbGVhcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggNjU4MGZkYjM0ZjdlMGIzNGRhODJkNjFjNTNlNjZhMDU0MTU1MmM5
MS4uNThkNzhlMDk4MGVjOTBmOTI3N2MwZWIyYzcwZmQ4MTM4ZDU3N2RjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDUsOCArMTQ1LDYgQEAgc3RhdGlj
IGNvbnN0IGRvdWJsZSBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVVwZGF0ZVRocmVzaG9s
ZCA9IDI5ICogMjQgKiA2MAogLy8gVGhpcyBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRpbGVSZXZh
bGlkYXRpb25UaW1lb3V0IGluIFRpbGVDb250cm9sbGVyLgogc3RhdGljIGNvbnN0IGRvdWJsZSBu
b25WaXNpYmxlUHJvY2Vzc0NsZWFudXBEZWxheSA9IDEwOwogCi0jZGVmaW5lIFdFQlBST0NFU1Nf
TE9HX0FMV0FZUyguLi4pIExPR19BTFdBWVModHJ1ZSwgX19WQV9BUkdTX18pCi0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJQcm9jZXNzJiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKQpAQCAtMTI3
NSwxMCArMTI3MywxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQo
U2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQgc2hvdQogICAgIHNldEFsbExheWVy
VHJlZVN0YXRlc0Zyb3plbih0cnVlKTsKIAogICAgIG1hcmtBbGxMYXllcnNWb2xhdGlsZShbdGhp
cywgc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmRdIHsKLSAgICAgICAgV0VCUFJP
Q0VTU19MT0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgp
IFN1Y2Nlc3NmdWx5IG1hcmtlZCBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlIiwgdGhpcyk7CisgICAg
ICAgIExPR19BTFdBWVMoIiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCkg
U3VjY2Vzc2Z1bHkgbWFya2VkIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUiLCB0aGlzKTsKIAogICAg
ICAgICBpZiAoc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQgPT0gU2hvdWxkQWNr
bm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQ6OlllcykgewotICAgICAgICAgICAgV0VCUFJPQ0VT
U19MT0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoKSBT
ZW5kaW5nIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRoaXMpOworICAgICAg
ICAgICAgTE9HX0FMV0FZUygiJXAgLSBXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5k
KCkgU2VuZGluZyBQcm9jZXNzUmVhZHlUb1N1c3BlbmQgSVBDIG1lc3NhZ2UiLCB0aGlzKTsKICAg
ICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCksIDApOwogICAgICAgICB9CiAgICAg
fSk7CkBAIC0xMjk0LDcgKzEyOTIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnByb2Nlc3NXaWxsU3Vz
cGVuZEltbWluZW50bHkoYm9vbCYgaGFuZGxlZCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFdFQlBST0NFU1NfTE9HX0FMV0FZUygiJXAgLSBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1
c3BlbmRJbW1pbmVudGx5KCkiLCB0aGlzKTsKKyAgICBMT0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nl
c3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSIsIHRoaXMpOwogICAgIERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVyeUJlaGF2aW9y
OjpJbnRlcnJ1cHQpOwogICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVk
Z2VXaGVuUmVhZHlUb1N1c3BlbmQ6Ok5vKTsKICAgICBoYW5kbGVkID0gdHJ1ZTsKQEAgLTEzMDIs
MTMgKzEzMDAsMTMgQEAgdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVu
dGx5KGJvb2wmIGhhbmRsZWQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgp
CiB7Ci0gICAgV0VCUFJPQ0VTU19MT0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoKSIsIHRoaXMpOworICAgIExPR19BTFdBWVMoIiVwIC0gV2ViUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CiAgICAgYWN0dWFsUHJlcGFyZVRvU3VzcGVuZChTaG91
bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZDo6WWVzKTsKIH0KIAogdm9pZCBXZWJQcm9j
ZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKIHsKLSAgICBXRUJQUk9DRVNTX0xPR19BTFdB
WVMoIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7Cisg
ICAgTE9HX0FMV0FZUygiJXAgLSBXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCki
LCB0aGlzKTsKICAgICBzZXRBbGxMYXllclRyZWVTdGF0ZXNGcm96ZW4oZmFsc2UpOwogCiAgICAg
Ly8gSWYgd2UndmUgYWxyZWFkeSBmaW5pc2hlZCBjbGVhbmluZyB1cCBhbmQgc2VudCBQcm9jZXNz
UmVhZHlUb1N1c3BlbmQsIHdlCkBAIC0xMzE4LDEzICsxMzE2LDEzIEBAIHZvaWQgV2ViUHJvY2Vz
czo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiAKICAgICBjYW5jZWxNYXJrQWxsTGF5ZXJzVm9s
YXRpbGUoKTsKIAotICAgIFdFQlBST0NFU1NfTE9HX0FMV0FZUygiJXAgLSBXZWJQcm9jZXNzOjpj
YW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkgU2VuZGluZyBEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lv
biBJUEMgbWVzc2FnZSIsIHRoaXMpOworICAgIExPR19BTFdBWVMoIiVwIC0gV2ViUHJvY2Vzczo6
Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNp
b24gSVBDIG1lc3NhZ2UiLCB0aGlzKTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9u
KCksIDApOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZShzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV0VCUFJPQ0VTU19M
T0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIiwgdGhp
cyk7CisgICAgTE9HX0FMV0FZUygiJXAgLSBXZWJQcm9jZXNzOjptYXJrQWxsTGF5ZXJzVm9sYXRp
bGUoKSIsIHRoaXMpOwogICAgIG1fcGFnZXNNYXJraW5nTGF5ZXJzQXNWb2xhdGlsZSA9IG1fcGFn
ZU1hcC5zaXplKCk7CiAgICAgaWYgKCFtX3BhZ2VzTWFya2luZ0xheWVyc0FzVm9sYXRpbGUpIHsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTEzNTcsNyArMTM1NSw3IEBAIHZvaWQg
V2ViUHJvY2Vzczo6c2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKGJvb2wgZnJvemVuKQogICAg
IAogdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkKIHsKLSAgICBXRUJQUk9DRVNT
X0xPR19BTFdBWVMoIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7
CisgICAgTE9HX0FMV0FZUygiJXAgLSBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0
aGlzKTsKIAogICAgIGNhbmNlbE1hcmtBbGxMYXllcnNWb2xhdGlsZSgpOwogICAgIHNldEFsbExh
eWVyVHJlZVN0YXRlc0Zyb3plbihmYWxzZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285985</attachid>
            <date>2016-08-12 17:44:09 -0700</date>
            <delta_ts>2016-08-15 12:01:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160768-20160812174229.patch</filename>
            <type>text/plain</type>
            <size>62319</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU2YWY3ZTA3YjBjNzRhZWExN2I1N2Zj
YTI0OThhOWU5MjVkNmUyOTUuLjJmNDk5ZTY5YjgzZmRhYTRlNzVjN2NlZjBkYjI0ZWFjOTkxNjcz
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDgtMTEgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBMT0dfQUxXQVlTCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3NjgKKworICAgICAgICBSZW5h
bWUgTE9HX0FMV0FZUyBhbmQgZnJpZW5kcywgZ2l2ZW4gdGhhdCB0aGUgZmlyc3QgcGFyYW1ldGVy
IHRvIGl0IGlzCisgICAgICAgIGEgYm9vbGVhbiBleHByZXNzaW9uIHRoYXQgZGV0ZXJtaW5lcyB3
aGV0aGVyIG9yIG5vdCBsb2dnaW5nIHNob3VsZCBiZQorICAgICAgICBwZXJmb3JtZWQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0
aW9ucy5oOgorCiAyMDE2LTA4LTEwICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIFRpbnlQdHJTZXQ6OmRlbGV0ZUxpc3RJZk5lY2Vzc2FyeSgp
IG5vIGxvbmdlciBuZWVkcyB0byB0ZXN0IGZvciByZXNlcnZlZFZhbHVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODI2YjM1OTI1YzM4MTE1ZGMwMjJiNDJhYWEwNDE4NjVhOGY1OWU3Yi4uNTc5MWYzNmE4YmNkY2Jh
M2I0MjRkODUyNzNiZTNlNmJjNjI1ZTYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDE2LTA4LTExICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgTE9HX0FMV0FZUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYwNzY4CisKKyAgICAgICAgUmVuYW1lIExPR19BTFdBWVMgYW5kIGZyaWVuZHMs
IGdpdmVuIHRoYXQgdGhlIGZpcnN0IHBhcmFtZXRlciB0byBpdCBpcworICAgICAgICBhIGJvb2xl
YW4gZXhwcmVzc2lvbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBvciBub3QgbG9nZ2luZyBzaG91
bGQgYmUKKyAgICAgICAgcGVyZm9ybWVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gbmV3IGZ1bmN0aW9uYWxpdHkgaXMg
YWRkZWQuIE9ubHkgc29tZSBtYWNybyBuYW1lcworICAgICAgICBoYXZlIGJlZW4gY2hhbmdlZC4K
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6cHJlcGFyZUZvckxvYWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6bG9nTWVtb3J5VXNhZ2VDaGFuZ2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKToKKwogMjAxNi0wOC0xMCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXphdGlvbiBpbiBOb2RlLmluc2Vy
dEJlZm9yZSgpIGlzIG5vdCBzcGVjLWNvbXBsaWFudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk5MGYzMGExMDFi
NjBmOGM3ZGE0YzNjYjdhN2Y2OWNiNjM4OTc0MjkuLmMwNmEzZjEyZGQ2MDFkNDQ5MWE0OTk1MzU0
ZjJmNWNiN2E4NDZjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAxNi0wOC0xMSAg
S2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIExPR19B
TFdBWVMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MDc2OAorCisgICAgICAgIFJlbmFtZSBMT0dfQUxXQVlTIGFuZCBmcmllbmRzLCBnaXZlbiB0aGF0
IHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8gaXQgaXMKKyAgICAgICAgYSBib29sZWFuIGV4cHJlc3Np
b24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IGxvZ2dpbmcgc2hvdWxkIGJlCisgICAg
ICAgIHBlcmZvcm1lZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6
ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAg
ICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkQ2FuY2VsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNhbmNl
bFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFy
dE5ldHdvcmtMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSk6
CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRp
ZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OmRp
ZENoYW5nZUlzTG9hZGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmZl
dGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpk
ZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRs
ZXI6OnVwZGF0ZUFzc2VydGlvbk5vdyk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRs
ZXI6OnVwZGF0ZUFzc2VydGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlQWN0aXZpdHlUb2tlbik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dL
UHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRh
c2tdKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5j
ZWxNYXJrTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVu
dGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjptYXJrQWxsTGF5ZXJzVm9sYXRpbGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKwogMjAxNi0wOC0xMCAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZp
eCBjcmFzaCB3aGVuIGNoYW5naW5nIGNvb2tpZSBhY2NlcHQgcG9saWN5IGFmdGVyIHIyMDQzMjcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuaAppbmRleCAwYjNiNzEyNzE4YTkyYWY3YTljODdhY2FkOGZjNjY1ZmI3Mzk2
NTM4Li44NmNiNDI1ZmY2ZDM3ZTY4MzYyOGNiMWFiZGU1MDc2MThlYmMwMjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0
aW9ucy5oCkBAIC04NCw4ICs4NCw4IEBACiAjZGVmaW5lIExPR19ESVNBQkxFRCBBU1NFUlRJT05T
X0RJU0FCTEVEX0RFRkFVTFQKICNlbmRpZgogCi0jaWZuZGVmIExPR19BTFdBWVNfRElTQUJMRUQK
LSNkZWZpbmUgTE9HX0FMV0FZU19ESVNBQkxFRCAhKFVTRShPU19MT0cpKQorI2lmbmRlZiBSRUxF
QVNFX0xPR19ESVNBQkxFRAorI2RlZmluZSBSRUxFQVNFX0xPR19ESVNBQkxFRCAhKFVTRShPU19M
T0cpKQogI2VuZGlmCiAKICNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCkBAIC0zODAsMTcgKzM4
MCwxOSBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIFdU
RkNyYXNoV2l0aFNlY3VyaXR5SW1wbGljYXRpb24oKQogI2RlZmluZSBMT0dfVkVSQk9TRShjaGFu
bmVsLCAuLi4pIFdURkxvZ1ZlcmJvc2UoX19GSUxFX18sIF9fTElORV9fLCBXVEZfUFJFVFRZX0ZV
TkNUSU9OLCAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgs
IGNoYW5uZWwpLCBfX1ZBX0FSR1NfXykKICNlbmRpZgogCi0vKiBMT0dfQUxXQVlTICovCisvKiBS
RUxFQVNFX0xPRyAqLwogCiAjZGVmaW5lIFdURl9MT0dHSU5HX1BSRUZJWCAiI1dLOiAiCi0jaWYg
TE9HX0FMV0FZU19ESVNBQkxFRAotI2RlZmluZSBMT0dfQUxXQVlTKGlzQWxsb3dlZCwgZm9ybWF0
LCAuLi4pICAgICAgICgodm9pZCkwKQotI2RlZmluZSBMT0dfQUxXQVlTX0VSUk9SKGlzQWxsb3dl
ZCwgZm9ybWF0LCAuLi4pIFdURlJlcG9ydEVycm9yKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BS
RVRUWV9GVU5DVElPTiwgZm9ybWF0LCAjI19fVkFfQVJHU19fKQorI2lmIFJFTEVBU0VfTE9HX0RJ
U0FCTEVECisjZGVmaW5lIFJFTEVBU0VfTE9HKGZvcm1hdCwgLi4uKSAgICAgICAoKHZvaWQpMCkK
KyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoZm9ybWF0LCAuLi4pIFdURlJlcG9ydEVycm9yKF9f
RklMRV9fLCBfX0xJTkVfXywgV1RGX1BSRVRUWV9GVU5DVElPTiwgZm9ybWF0LCAjI19fVkFfQVJH
U19fKQogI2Vsc2UKICNkZWZpbmUgV1RGX0xPR19ERUZBVUxUIE9TX0xPR19ERUZBVUxUCi0jZGVm
aW5lIExPR19BTFdBWVMoaXNBbGxvd2VkLCBmb3JtYXQsIC4uLikgICAgICAgZG8geyBpZiAoaXNB
bGxvd2VkKSBvc19sb2coV1RGX0xPR19ERUZBVUxULCBXVEZfTE9HR0lOR19QUkVGSVggZm9ybWF0
LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgTE9HX0FMV0FZU19FUlJPUihp
c0FsbG93ZWQsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIG9zX2xvZ19lcnJvcihX
VEZfTE9HX0RFRkFVTFQsIFdURl9MT0dHSU5HX1BSRUZJWCBmb3JtYXQsICMjX19WQV9BUkdTX18p
OyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPRyhmb3JtYXQsIC4uLikgICAgICAgb3Nf
bG9nKFdURl9MT0dfREVGQVVMVCwgV1RGX0xPR0dJTkdfUFJFRklYIGZvcm1hdCwgIyNfX1ZBX0FS
R1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoZm9ybWF0LCAuLi4pIG9zX2xvZ19lcnJv
cihXVEZfTE9HX0RFRkFVTFQsIFdURl9MT0dHSU5HX1BSRUZJWCBmb3JtYXQsICMjX19WQV9BUkdT
X18pCiAjZW5kaWYKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoaXNBbGxvd2VkLCBmb3JtYXQsIC4u
LikgICAgICAgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyhmb3JtYXQsICMjX19WQV9B
UkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0FsbG93
ZWQsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VSUk9SKGZv
cm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCiAKIC8qIFJFTEVBU0VfQVNTRVJUICov
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGVmYjAxYjA2Nzg4OTBm
OWM1YzcyMWUwOWQ1NmJhNDQ5ZmE4ODE4ODEuLjI3NzlmMzkzNDU1ZjFhYTM3YmI1YWU2NGQxNDBi
MzE3ODM2MWNiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTQy
LDcgKzE0Miw3IEBACiAjaW5jbHVkZSAiV0tDb250ZW50T2JzZXJ2YXRpb24uaCIKICNlbmRpZgog
Ci0jZGVmaW5lIEZSQU1FTE9BREVSX0xPR19BTFdBWVMoLi4uKSBMT0dfQUxXQVlTKGlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBf
X1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDk5LDcgKzEwOTksNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpzdGFydGVkKCkKIAogdm9pZCBGcmFtZUxvYWRlcjo6cHJlcGFy
ZUZvckxvYWRTdGFydCgpCiB7Ci0gICAgRlJBTUVMT0FERVJfTE9HX0FMV0FZUygiU3RhcnRpbmcg
ZnJhbWUgbG9hZCwgZnJhbWUgPSAlcCwgbWFpbiA9ICVkIiwgJm1fZnJhbWUsIG1fZnJhbWUuaXNN
YWluRnJhbWUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiU3RhcnRpbmcgZnJhbWUg
bG9hZCwgZnJhbWUgPSAlcCwgbWFpbiA9ICVkIiwgJm1fZnJhbWUsIG1fZnJhbWUuaXNNYWluRnJh
bWUoKSk7CiAKICAgICBtX3Byb2dyZXNzVHJhY2tlci0+cHJvZ3Jlc3NTdGFydGVkKCk7CiAgICAg
bV9jbGllbnQuZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpOwpAQCAtMjMwNCwxMSAr
MjMwNCwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFt
ZSgpCiAKICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ0V2ZW50IGxvYWRpbmdF
dmVudDsKICAgICAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgICAg
ICBGUkFNRUxPQURFUl9MT0dfQUxXQVlTKCJGaW5pc2hlZCBmcmFtZSBsb2FkIHdpdGggZXJyb3Is
IGZyYW1lID0gJXAsIG1haW4gPSAlZCwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0g
JWQsIGVycm9yQ29kZSA9ICVkIiwgJm1fZnJhbWUsIG1fZnJhbWUuaXNNYWluRnJhbWUoKSwgZXJy
b3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVycm9yLmVycm9yQ29kZSgp
KTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJGaW5pc2hlZCBmcmFt
ZSBsb2FkIHdpdGggZXJyb3IsIGZyYW1lID0gJXAsIG1haW4gPSAlZCwgaXNUaW1lb3V0ID0gJWQs
IGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVycm9yQ29kZSA9ICVkIiwgJm1fZnJhbWUsIG1fZnJhbWUu
aXNNYWluRnJhbWUoKSwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRjaERp
ZEZhaWxMb2FkKGVycm9yKTsKICAgICAgICAgICAgICAgICBsb2FkaW5nRXZlbnQgPSBBWE9iamVj
dENhY2hlOjpBWExvYWRpbmdGYWlsZWQ7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIEZSQU1FTE9BREVSX0xPR19BTFdBWVMoIkZpbmlzaGVkIGZyYW1lIGxvYWQgd2l0aG91
dCBlcnJvciwgZnJhbWUgPSAlcCwgbWFpbiA9ICVkIiwgJm1fZnJhbWUsIG1fZnJhbWUuaXNNYWlu
RnJhbWUoKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiRmluaXNo
ZWQgZnJhbWUgbG9hZCB3aXRob3V0IGVycm9yLCBmcmFtZSA9ICVwLCBtYWluID0gJWQiLCAmbV9m
cmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpKTsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04p
CiAgICAgICAgICAgICAgICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCk7CiAg
ICAgICAgICAgICAgICAgaWYgKG1fZnJhbWUuc2V0dGluZ3MoKS5kYXRhRGV0ZWN0b3JUeXBlcygp
ICE9IERhdGFEZXRlY3RvclR5cGVOb25lICYmIGRvY3VtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAppbmRleCBkNWI0ODk0NmEy
MmU0Y2JjYmZhZmQ4ZDNiMDkwMDBjNmMzNjFlNTAwLi43YWJlYjRiNDc2ZmQ0MzA0ODJiOTA1ZTFh
NmJmOGUwZmUxNjFiMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1v
cnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9y
eVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTIxOCw5ICsyMTgsOSBAQCB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMg
c3luY2hybwogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpsb2dN
ZW1vcnlVc2FnZUNoYW5nZSgpCiB7Ci0jaWYgIUxPR19BTFdBWVNfRElTQUJMRUQKKyNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICNkZWZpbmUgU1RSSU5HX1NQRUNJRklDQVRJT04gIiV7cHVibGlj
fXMiCi0jZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4pIExPR19BTFdBWVModHJ1ZSwgX19W
QV9BUkdTX18pCisjZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4pIFJFTEVBU0VfTE9HKF9f
VkFfQVJHU19fKQogI2Vsc2UKICNkZWZpbmUgU1RSSU5HX1NQRUNJRklDQVRJT04gIiVzIgogI2Rl
ZmluZSBNRU1PUllQUkVTU1VSRV9MT0coLi4uKSBXVEZMb2dBbHdheXMoX19WQV9BUkdTX18pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCmluZGV4
IGExOTJiYTJkMzBjOTMzYTVmOGY3YzZhNDQyZjk3MWI2ZWI5MWZlOGEuLjY0NjA4ZGU2ZjI1MDdj
MGQ5OGNkMjExYjZiODc3ZTM3MmUwYTYwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAg
ICBwdWJsaWM6CiAgICAgICAgIGV4cGxpY2l0IFJlbGllZkxvZ2dlcihjb25zdCBjaGFyICpsb2cp
CiAgICAgICAgICAgICA6IG1fbG9nU3RyaW5nKGxvZykKLSNpZiAhTE9HX0FMV0FZU19ESVNBQkxF
RAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICAgICAgLCBtX2luaXRpYWxNZW1v
cnkocGxhdGZvcm1NZW1vcnlVc2FnZSgpKQogI2Vsc2UKICAgICAgICAgICAgICwgbV9pbml0aWFs
TWVtb3J5KHNfbG9nZ2luZ0VuYWJsZWQgPyBwbGF0Zm9ybU1lbW9yeVVzYWdlKCkgOiAwKQpAQCAt
MTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAgICAgICB+UmVsaWVmTG9nZ2VyKCkKICAgICAg
ICAgewotI2lmICFMT0dfQUxXQVlTX0RJU0FCTEVECisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgICAgICAgICBsb2dNZW1vcnlVc2FnZUNoYW5nZSgpOwogI2Vsc2UKICAgICAgICAgICAg
IGlmIChzX2xvZ2dpbmdFbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IDFiNGI2NjgxMzgxZjM4ZDQ5ZDlmYjIx
MmYwYTU0ZThjMTQwMTM5YmEuLmI1ZDVlOWIzMmVlN2IyZmMxZTgyNmVkOThkYjU0ZDJiMWYxZGYy
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9J
T1N1cmZhY2UubW0KQEAgLTIxMSw3ICsyMTEsNyBAQCBXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3Vy
ZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZgog
ICAgIGlmIChzdWNjZXNzKQogICAgICAgICBtX3RvdGFsQnl0ZXMgPSBJT1N1cmZhY2VHZXRBbGxv
Y1NpemUobV9zdXJmYWNlLmdldCgpKTsKICAgICBlbHNlCi0gICAgICAgIExPR19BTFdBWVNfRVJS
T1IodHJ1ZSwgIlN1cmZhY2UgY3JlYXRpb24gZmFpbGVkIGZvciBzaXplOiAoJWQgJWQpIGFuZCBm
b3JtYXQ6ICglZCkiLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIGZvcm1hdCk7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJTdXJmYWNlIGNyZWF0aW9uIGZhaWxlZCBmb3Igc2l6ZTog
KCVkICVkKSBhbmQgZm9ybWF0OiAoJWQpIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBm
b3JtYXQpOwogfQogCiBXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJT1N1cmZhY2VSZWYg
c3VyZmFjZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAppbmRleCAwN2I3ZDU3
ZTA4MjIyY2I4YTk0NDBjMTQ1NTYyMjg5NjQyZjBiOGM4Li41ZDBlZDgyOGE3NWI0MWU3MDgzMDQ0
YTU2M2JhYTkxM2IxZWIzZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTM3LDggKzM3LDggQEAKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgRE9XTkxPQURfTE9HX0FMV0FZUyguLi4pIExP
R19BTFdBWVMoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQotI2RlZmlu
ZSBET1dOTE9BRF9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9HX0FMV0FZU19FUlJPUihpc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
X19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBS
RUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdT
X18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgRG93bmxv
YWQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYKIAogdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIERPV05MT0FEX0xPR19BTFdBWVMoIkRv
d25sb2FkIHRhc2sgKCVsbHUpIGNyZWF0ZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsK
KyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJEb3dubG9hZCB0YXNrICglbGx1KSBjcmVhdGVk
IiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpEb3du
bG9hZFByb3h5OjpEaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpKTsKIH0KQEAgLTk0LDcgKzk0
LDcgQEAgdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEodWludDY0X3Qg
bGVuZ3RoKQogewogICAgIGlmICghbV9oYXNSZWNlaXZlZERhdGEpIHsKLSAgICAgICAgRE9XTkxP
QURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkgc3RhcnRlZCByZWNlaXZpbmcgZGF0
YSIsIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJEb3dubG9hZCB0YXNrICglbGx1KSBzdGFydGVkIHJlY2VpdmluZyBkYXRhIiwgZG93
bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiAgICAgICAgIG1faGFzUmVjZWl2ZWREYXRhID0gdHJ1
ZTsKICAgICB9CiAKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRDcmVhdGVE
ZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIHBhdGgpCiAKIHZvaWQgRG93bmxvYWQ6OmRpZEZpbmlz
aCgpCiB7Ci0gICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkgZmlu
aXNoZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJEb3dubG9hZCB0YXNrICglbGx1KSBmaW5pc2hlZCIsIGRvd25sb2FkSUQoKS5kb3du
bG9hZElEKCkpOwogCiAgICAgcGxhdGZvcm1EaWRGaW5pc2goKTsKIApAQCAtMTQ5LDcgKzE0OSw3
IEBAIHZvaWQgRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiAKIHZvaWQgRG93bmxvYWQ6OmRpZEZhaWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVz
dW1lRGF0YSkKIHsKLSAgICBET1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0YXNrICglbGx1
KSBmYWlsZWQsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBlcnJDb2RlID0g
JWQiLAorICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGZh
aWxlZCwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVyckNvZGUgPSAlZCIs
CiAgICAgICAgIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCksIGVycm9yLmlzVGltZW91dCgpLCBl
cnJvci5pc0NhbmNlbGxhdGlvbigpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAgICBzZW5kKE1l
c3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRGYWlsKGVycm9yLCByZXN1bWVEYXRhKSk7CkBAIC0x
NjMsNyArMTYzLDcgQEAgdm9pZCBEb3dubG9hZDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXMKIAogdm9pZCBEb3dubG9hZDo6
ZGlkQ2FuY2VsKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSkKIHsKLSAgICBE
T1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0YXNrICglbGx1KSBjYW5jZWxlZCIsIGRvd25s
b2FkSUQoKS5kb3dubG9hZElEKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIkRvd25s
b2FkIHRhc2sgKCVsbHUpIGNhbmNlbGVkIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiAK
ICAgICBzZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRDYW5jZWwocmVzdW1lRGF0YSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKaW5kZXggZThkYjlmMWYwMDQxOTVlYmE2MDg4Zjg5YjZjY2NmNTRiMGZjN2ZlYi4uZjc1OTdk
MDUxMTU2ZjEzMTRhOGI2MTE5YTZmZWIyZGYxZWFmNGM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNjI0LDEwICs2MjQsMTAg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShib29s
JiBoYW5kbGVkKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkKIHsK
LSAgICBMT0dfQUxXQVlTKHRydWUsICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNw
ZW5kKCkiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRygiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6
WWVzKTsKIAotICAgIExPR19BTFdBWVModHJ1ZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBh
cmVUb1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIs
IHRoaXMpOworICAgIFJFTEVBU0VfTE9HKCIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9T
dXNwZW5kKCkgU2VuZGluZyBQcm9jZXNzUmVhZHlUb1N1c3BlbmQgSVBDIG1lc3NhZ2UiLCB0aGlz
KTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKSwgMCk7CiB9CiAKQEAgLTYzNywx
MiArNjM3LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQo
KQogICAgIC8vIHdlIGRvIG5vdCBiZWNhdXNlIHByZXBhcmVUb1N1c3BlbmQoKSBhbHJlYWR5IHJl
cGxpZWQgd2l0aCBhIE5ldHdvcmtQcm9jZXNzUHJveHk6OlByb2Nlc3NSZWFkeVRvU3VzcGVuZAog
ICAgIC8vIG1lc3NhZ2UuIEFuZCBOZXR3b3JrUHJvY2Vzc1Byb3h5IGV4cGVjdHMgdG8gcmVjZWl2
ZSBlaXRoZXIgYSBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQtCiAg
ICAgLy8gb3IgTmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24t
IG1lc3NhZ2UsIGJ1dCBub3QgYm90aC4KLSAgICBMT0dfQUxXQVlTKHRydWUsICIlcCAtIE5ldHdv
cmtQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKKyAgICBSRUxFQVNF
X0xPRygiJXAgLSBOZXR3b3JrUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhp
cyk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQogewotICAg
IExPR19BTFdBWVModHJ1ZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUo
KSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKCIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNz
RGlkUmVzdW1lKCkiLCB0aGlzKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlZmV0Y2hE
TlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDM5NTEwOWFhMjI2
ZDU0MzIwN2Q5MTk3N2Q2OThhYjQ1OWI1ODE4YzUuLjU4OGU3MTg4MzFmOTg2MmYxYTEyYmVhMTJi
NTEyNjg1YWQ5ZmYwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDksOCArNDksOCBAQAogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2RlZmluZSBORVRXT1JLUkVTT1VSQ0VMT0FERVJfTE9H
X0FMV0FZUyguLi4pIExPR19BTFdBWVMoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFf
QVJHU19fKQotI2RlZmluZSBORVRXT1JLUkVTT1VSQ0VMT0FERVJfTE9HX0FMV0FZU19FUlJPUigu
Li4pIExPR19BTFdBWVNfRVJST1IoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJH
U19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdv
cmtMb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgbV9idWZmZXJl
ZERhdGFGb3JDYWNoZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAjZW5kaWYKIAotICAgIE5F
VFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKCJTdGFydGluZyBuZXR3b3JrIHJlc291cmNl
IGxvYWQ6IGxvYWRlciA9ICVwLCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNNYWlu
UmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkIiwgdGhpcywgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGlzTWFpblJlc291cmNlKCksIGlzU3lu
Y2hyb25vdXMoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiU3RhcnRpbmcgbmV0d29y
ayByZXNvdXJjZSBsb2FkOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVs
bHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCIsIHRoaXMsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogCiAgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnMgPSBtX3BhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5kZWZlcnNMb2FkaW5nID0gbV9k
ZWZlcnNMb2FkaW5nOwpAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjphYm9ydCgpCiAKIGF1dG8gTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uc2UpIC0+IFNob3VsZENvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlCiB7Ci0gICAgTkVUV09SS1JFU09VUkNFTE9BREVSX0xPR19B
TFdBWVMoIlJlY2VpdmVkIG5ldHdvcmsgcmVzb3VyY2UgcmVzcG9uc2U6IGxvYWRlciA9ICVwLCBw
YWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkLCBodHRwU3RhdHVzQ29kZSA9ICVkIiwgdGhpcywgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGlzTWFpblJlc291cmNlKCksIGlzU3lu
Y2hyb25vdXMoKSwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJSZWNlaXZlZCBuZXR3b3JrIHJlc291cmNlIHJlc3BvbnNlOiBs
b2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgaHR0cFN0YXR1c0NvZGUgPSAlZCIsIHRoaXMsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBpc01haW5SZXNv
dXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUo
KSk7CiAKICAgICBtX3Jlc3BvbnNlID0gV1RGTW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKIApAQCAt
MzIyLDkgKzMyMiw5IEBAIGF1dG8gTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uCiAgICAgICAgIGlmIChpc1N5
bmNocm9ub3VzKCkpCiAgICAgICAgICAgICBtX3N5bmNocm9ub3VzTG9hZERhdGEtPnJlc3BvbnNl
ID0gbV9yZXNwb25zZTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBORVRXT1JLUkVTT1VS
Q0VMT0FERVJfTE9HX0FMV0FZUygiU2VuZGluZyBkaWRSZWNlaXZlUmVzcG9uc2UgbWVzc2FnZSB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJh
bWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCIsIHRo
aXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RCksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQpLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiU2VuZGluZyBkaWRSZWNlaXZlUmVzcG9uc2UgbWVzc2FnZSB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJh
bWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCIsIHRo
aXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RCksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQpLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICAgICAgaWYg
KCFzZW5kQWJvcnRpbmdPbkZhaWx1cmUoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVyOjpEaWRS
ZWNlaXZlUmVzcG9uc2UobV9yZXNwb25zZSwgc2hvdWxkV2FpdENvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKSkpIHsKLSAgICAgICAgICAgICAgICBORVRXT1JLUkVTT1VSQ0VMT0FERVJfTE9HX0FM
V0FZU19FUlJPUigiRmFpbGVkIHRvIHNlbmQgdGhlIGRpZFJlY2VpdmVSZXNwb25zZSBJUEMgbWVz
c2FnZSB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxs
dSwgZnJhbWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRCksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQpLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoIkZhaWxlZCB0byBzZW5kIHRoZSBk
aWRSZWNlaXZlUmVzcG9uc2UgSVBDIG1lc3NhZ2UgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzczog
bG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCBpc01haW5SZXNvdXJj
ZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gU2hvdWxkQ29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2U6Ok5vOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zMzcsMTEg
KzMzNywxMSBAQCBhdXRvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbgogI2VuZGlmCiAKICAgICBpZiAoc2hv
dWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UpIHsKLSAgICAgICAgTkVUV09SS1JFU09VUkNF
TE9BREVSX0xPR19BTFdBWVMoIlNob3VsZCB3YWl0IGZvciBtZXNzYWdlIGZyb20gV2ViQ29udGVu
dCBwcm9jZXNzIGJlZm9yZSBjb250aW51aW5nIHJlc291cmNlIGxvYWQ6IGxvYWRlciA9ICVwLCBw
YWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3Bh
cmFtZXRlcnMud2ViUGFnZUlEKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRCksIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIlNob3VsZCB3YWl0IGZvciBtZXNzYWdl
IGZyb20gV2ViQ29udGVudCBwcm9jZXNzIGJlZm9yZSBjb250aW51aW5nIHJlc291cmNlIGxvYWQ6
IGxvYWRlciA9ICVwLCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNNYWluUmVzb3Vy
Y2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZyBsb25nPihtX3BhcmFtZXRlcnMud2ViUGFnZUlEKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZyBsb25nPihtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCksIGlzTWFpblJlc291cmNlKCksIGlz
U3luY2hyb25vdXMoKSk7CiAgICAgICAgIHJldHVybiBTaG91bGRDb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZTo6WWVzOwogICAgIH0KIAotICAgIE5FVFdPUktSRVNPVVJDRUxPQURFUl9MT0dfQUxX
QVlTKCJTaG91bGQgbm90IHdhaXQgZm9yIG1lc3NhZ2UgZnJvbSBXZWJDb250ZW50IHByb2Nlc3Mg
YmVmb3JlIGNvbnRpbnVpbmcgcmVzb3VyY2UgbG9hZDogbG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVs
bHUsIGZyYW1lSUQgPSAlbGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0g
JWQiLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlEKSwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJTaG91bGQgbm90IHdhaXQgZm9yIG1lc3NhZ2UgZnJvbSBXZWJD
b250ZW50IHByb2Nlc3MgYmVmb3JlIGNvbnRpbnVpbmcgcmVzb3VyY2UgbG9hZDogbG9hZGVyID0g
JXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+
KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+
KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91
cygpKTsKICAgICByZXR1cm4gU2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2U6Ok5vOwog
fQogCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAKIAogdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUp
CiB7Ci0gICAgTkVUV09SS1JFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIkZpbmlzaGVkIGxvYWRp
bmcgbmV0d29yayByZXNvdXJjZTogbG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQg
PSAlbGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJGaW5pc2hlZCBsb2FkaW5nIG5ldHdvcmsgcmVzb3VyY2U6IGxvYWRlciA9ICVwLCBw
YWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3Bh
cmFtZXRlcnMud2ViUGFnZUlEKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRCksIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CiAKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAobV9jYWNoZUVudHJ5Rm9yVmFs
aWRhdGlvbikgewpAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKQogCiB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7
Ci0gICAgTkVUV09SS1JFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIkZhaWxlZCBsb2FkaW5nIG5l
dHdvcmsgcmVzb3VyY2U6IGxvYWRlciA9ICVwLCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxs
dSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBpc1RpbWVvdXQgPSAl
ZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyQ29kZSA9ICVkIiwgdGhpcywgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGlzTWFpblJlc291cmNlKCksIGlz
U3luY2hyb25vdXMoKSwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJGYWlsZWQg
bG9hZGluZyBuZXR3b3JrIHJlc291cmNlOiBsb2FkZXIgPSAlcCwgcGFnZUlEID0gJWxsdSwgZnJh
bWVJRCA9ICVsbHUsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgaXNU
aW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVyckNvZGUgPSAlZCIsIHRoaXMsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBpc01haW5SZXNv
dXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIGVycm9yLmlzVGltZW91dCgpLCBlcnJvci5pc0NhbmNl
bGxhdGlvbigpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAgICBBU1NFUlQoIWVycm9yLmlzTnVs
bCgpKTsKIApAQCAtNDUzLDcgKzQ1Myw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3
aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAKIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiBuZXdSZXF1ZXN0KQogewotICAgIE5FVFdPUktSRVNPVVJDRUxPQURFUl9MT0df
QUxXQVlTKCJGb2xsb3dpbmcgcmVkaXJlY3Qgb2YgbmV0d29yayByZXNvdXJjZTogbG9hZGVyID0g
JXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+
KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+
KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91
cygpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJGb2xsb3dpbmcgcmVkaXJlY3Qgb2Yg
bmV0d29yayByZXNvdXJjZTogbG9hZGVyID0gJXAsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAl
bGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQiLCB0aGlzLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgaXNN
YWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKIAogI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFKQogICAgIGlmIChtX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVk
UmVkaXJlY3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApp
bmRleCAyNjJkNWI3MzRmY2E3NGNlZjg5MjA0Y2Q1MTRhODVlMWE2NzEwZmQwLi41NThmYTk1N2Nj
ZmFkMjdhZDYxMzMzN2MyYTEwM2I5ODgwMDQxOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0zNCw4ICszNCw2IEBACiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+
CiAKLSNkZWZpbmUgQ09OTkVDVElPTl9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9HX0FMV0FZU19F
UlJPUih0cnVlLCBfX1ZBX0FSR1NfXykKLQogbmFtZXNwYWNlIElQQyB7CiAKIHN0cnVjdCBXYWl0
Rm9yTWVzc2FnZVN0YXRlIHsKQEAgLTU4NSw3ICs1ODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZURlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1Jl
cXVlcwogICAgICAgICAvLyBJZiB0aGF0IGhhcHBlbnMsIHdlIG5lZWQgdG8gc3RvcCB3YWl0aW5n
LCBvciB3ZSdsbCBoYW5nIHNpbmNlIHdlIHdvbid0IGdldAogICAgICAgICAvLyBhbnkgbW9yZSBp
bmNvbWluZyBtZXNzYWdlcy4KICAgICAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgICAg
IENPTk5FQ1RJT05fTE9HX0FMV0FZU19FUlJPUigiQ29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBs
eTogQ29ubmVjdGlvbiBubyBsb25nZXIgdmFsaWQsIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVz
dElEKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJDb25uZWN0aW9uOjp3YWl0Rm9y
U3luY1JlcGx5OiBDb25uZWN0aW9uIG5vIGxvbmdlciB2YWxpZCwgaWQgPSAlIiBQUkl1NjQsIHN5
bmNSZXF1ZXN0SUQpOwogICAgICAgICAgICAgZGlkUmVjZWl2ZVN5bmNSZXBseShzeW5jU2VuZEZs
YWdzKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CkBAIC01OTYsNyAr
NTk0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0
Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXMKICAgICAgICAgdGltZWRPdXQgPSAhU3lu
Y01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkud2FpdChhYnNvbHV0ZVRpbWUpOwogICAgIH0KIAot
ICAgIENPTk5FQ1RJT05fTE9HX0FMV0FZU19FUlJPUigiQ29ubmVjdGlvbjo6d2FpdEZvclN5bmNS
ZXBseTogVGltZWQtb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHJlcGx5LCBpZCA9ICUiIFBSSXU2NCwg
c3luY1JlcXVlc3RJRCk7CisgICAgUkVMRUFTRV9MT0dfRVJST1IoIkNvbm5lY3Rpb246OndhaXRG
b3JTeW5jUmVwbHk6IFRpbWVkLW91dCB3aGlsZSB3YWl0aW5nIGZvciByZXBseSwgaWQgPSAlIiBQ
Ukl1NjQsIHN5bmNSZXF1ZXN0SUQpOwogICAgIGRpZFJlY2VpdmVTeW5jUmVwbHkoc3luY1NlbmRG
bGFncyk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5jcHAKaW5kZXggZGEzYmQwMmIwNTg3MDZhMDlkNGUwNzU4NTEzOTJkODRlOTNmNzQwZi4u
N2IxYzM0YWNiMmRhMTZmYjcxMzM3YTE5M2I4MDhiYzViZjgwOWUyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTI5LDggKzI5LDYgQEAKICNpbmNsdWRlICJTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKLSNk
ZWZpbmUgQ0hJTERQUk9DRVNTX0xPR19BTFdBWVNfRVJST1IoLi4uKSBMT0dfQUxXQVlTX0VSUk9S
KHRydWUsIF9fVkFfQVJHU19fKQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQ2hpbGRQcm9jZXNz
OjpDaGlsZFByb2Nlc3MoKQpAQCAtNTUsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBkaWRDbG9zZU9u
Q29ubmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5lY3Rpb24qKQogICAgICAgICAvLyBXZSB1c2Ug
X2V4aXQgaGVyZSBzaW5jZSB0aGUgd2F0Y2hkb2cgY2FsbGJhY2sgaXMgY2FsbGVkIGZyb20gYW5v
dGhlciB0aHJlYWQgYW5kIHdlIGRvbid0IHdhbnQKICAgICAgICAgLy8gZ2xvYmFsIGRlc3RydWN0
b3JzIG9yIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBjYWxsZWQgZnJvbSB0aGlzIHRocmVhZCB3aGls
ZSB0aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQogICAgICAgICAvLyBkb2luZyBpdHMgdGhpbmcuCi0g
ICAgICAgIENISUxEUFJPQ0VTU19MT0dfQUxXQVlTX0VSUk9SKCJFeGl0aW5nIHByb2Nlc3MgZWFy
bHkgZHVlIHRvIHVuYWNrbm93bGVkZ2VkIGNsb3NlZC1jb25uZWN0aW9uIik7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKCJFeGl0aW5nIHByb2Nlc3MgZWFybHkgZHVlIHRvIHVuYWNrbm93bGVk
Z2VkIGNsb3NlZC1jb25uZWN0aW9uIik7CiAgICAgICAgIF9leGl0KEVYSVRfRkFJTFVSRSk7CiAg
ICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbQppbmRleCA4OWEzNGM3MjNiZWI0YjIzMWMzN2Y2NmIyZjEyNjMzOTU3YzNiNGJi
Li45Y2NjZDBjZjBlZmZjZjE0YTIxMTFhNzE3ODUyMDc4MzdkNzNhNDNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTgyMywx
MCArODIzLDEwIEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpkaWRDaGFuZ2VJc0xvYWRpbmcoKQog
ewogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAobV93ZWJWaWV3LT5fcGFnZS0+cGFnZUxvYWRT
dGF0ZSgpLmlzTG9hZGluZygpKSB7Ci0gICAgICAgIExPR19BTFdBWVMobV93ZWJWaWV3LT5fcGFn
ZS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFj
a2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBhIHBhZ2UgbG9hZCBzdGFydGVkIik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ug
YSBwYWdlIGxvYWQgc3RhcnRlZCIpOwogICAgICAgICBtX2FjdGl2aXR5VG9rZW4gPSBtX3dlYlZp
ZXctPl9wYWdlLT5wcm9jZXNzKCkudGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4o
KTsKICAgICB9IGVsc2UgewotICAgICAgICBMT0dfQUxXQVlTKG1fd2ViVmlldy0+X3BhZ2UtPmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tn
cm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSBwYWdlIGxvYWQgY29tcGxldGVkIik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1
c2UgYSBwYWdlIGxvYWQgY29tcGxldGVkIik7CiAgICAgICAgIG1fYWN0aXZpdHlUb2tlbiA9IG51
bGxwdHI7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDAzYmNiNjFiYzU5ODQz
NWI3ZmM5NTNkODA4MGJmOTA5M2VjYjY1MTAuLjdkMDk0ZTU4ZDI0M2RmNDQ5ZDQ1N2FlMGFiYzhm
NjY1NDg2NmE1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMjYsMTEgKzEyNiwxMSBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYnNpdAogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRl
Q2FsbGJhY2tJRCgpOwogICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbigpOwotICAgIExPR19BTFdBWVMoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91
bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBmZXRjaGluZyBXZWJz
aXRlIGRhdGEiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEg
YmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGZldGNo
aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwogCiAgICAgbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0
YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxl
ciwgc2Vzc2lvbklEXShXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkgewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHdlYnNpdGVEYXRhKSk7Ci0gICAgICAgIExPR19BTFdBWVMoc2Vz
c2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1By
b3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdv
cmsgcHJvY2VzcyBpcyBkb25lIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAg
ICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIl
cCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRp
b24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0ZSBk
YXRhIiwgdGhpcyk7CiAgICAgfSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6RmV0Y2hXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgZmV0Y2hPcHRpb25zLCBj
YWxsYmFja0lEKSwgMCk7CkBAIC0xNDAsMTEgKzE0MCwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvbgogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwogICAg
IGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwotICAg
IExPR19BTFdBWVMoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBO
ZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1
c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsK
KyAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
ICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRp
b24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIs
IHRoaXMpOwogCiAgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNh
bGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0gewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBMT0dfQUxXQVlTKHNlc3Npb25J
RC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBp
cyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHBy
b2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICAgICAgUkVM
RUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBO
ZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIs
IHRoaXMpOwogICAgIH0pOwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZWxl
dGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJh
Y2tJRCksIDApOwogfQpAQCAtMTU1LDExICsxNTUsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW8KIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAg
ICBhdXRvIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAg
ICBMT0dfQUxXQVlTKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0g
TmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNh
dXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZl
cmFsIG9yaWdpbnMiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5n
IGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRl
bGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CiAKICAgICBt
X3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuYWRkKGNhbGxiYWNr
SUQsIFt0aGlzLCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0gewogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBMT0dfQUxXQVlTKHNlc3Npb25JRC5pc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxl
YXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3Mg
aXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMp
OworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3Vu
ZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRvbmUgZGVsZXRpbmcg
V2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsKICAgICB9KTsKIAogICAg
IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbkRhdGE7CkBAIC00MDIsMTIgKzQwMiwx
MiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEFzc2Vy
dGlvblN0YXRlKQogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRG
aWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogewogICAgIGlmICghaXNIb2xkaW5nTG9j
a2VkRmlsZXMpIHsKLSAgICAgICAgTE9HX0FMV0FZUyh0cnVlLCAiVUlQcm9jZXNzIGlzIHJlbGVh
c2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBp
cyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKKyAgICAgICAgUkVMRUFTRV9MT0co
IlVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRo
ZSBOZXR3b3JrIHByb2Nlc3MgaXMgbm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CiAg
ICAgICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICghbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcykgewot
ICAgICAgICBMT0dfQUxXQVlTKHRydWUsICJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3Vu
ZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2Vk
IGZpbGVzIik7CisgICAgICAgIFJFTEVBU0VfTE9HKCJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFj
a2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGhvbGRpbmcg
bG9ja2VkIGZpbGVzIik7CiAgICAgICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBt
X3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCA4NGY3NDJjNDBi
NjI1YTJkZGY5OTBiNzAzZjc0ZDg2MTU1NjNkZTk1Li41N2JmYzYyNzEwNTgwZGNhZTMyZGNhZTEw
OGIyYjViZjNkNjI0NDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBk
YXRlQXNzZXJ0aW9uTm93KCkKICAgICBtX3N1c3BlbmRUaW1lci5zdG9wKCk7CiAgICAgaWYgKG1f
YXNzZXJ0aW9uKSB7CiAgICAgICAgIGlmIChtX2Fzc2VydGlvbi0+c3RhdGUoKSAhPSBhc3NlcnRp
b25TdGF0ZSgpKQotICAgICAgICAgICAgTE9HX0FMV0FZUyh0cnVlLCAiJXAgLSBQcm9jZXNzVGhy
b3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3coKSB1cGRhdGluZyBwcm9jZXNzIGFzc2VydGlvbiBz
dGF0ZSB0byAldSAoZm9yZWdyb3VuZEFjdGl2aXRpZXM6ICVsdSwgYmFja2dyb3VuZEFjdGl2aXRp
ZXM6ICVsdSkiLCB0aGlzLCBhc3NlcnRpb25TdGF0ZSgpLCBtX2ZvcmVncm91bmRDb3VudGVyLnZh
bHVlKCksIG1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKSk7CisgICAgICAgICAgICBSRUxFQVNF
X0xPRygiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3coKSB1cGRhdGlu
ZyBwcm9jZXNzIGFzc2VydGlvbiBzdGF0ZSB0byAldSAoZm9yZWdyb3VuZEFjdGl2aXRpZXM6ICVs
dSwgYmFja2dyb3VuZEFjdGl2aXRpZXM6ICVsdSkiLCB0aGlzLCBhc3NlcnRpb25TdGF0ZSgpLCBt
X2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCksIG1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKSk7
CiAgICAgICAgIG1fYXNzZXJ0aW9uLT5zZXRTdGF0ZShhc3NlcnRpb25TdGF0ZSgpKTsKICAgICAg
ICAgbV9wcm9jZXNzLmRpZFNldEFzc2VydGlvblN0YXRlKGFzc2VydGlvblN0YXRlKCkpOwogICAg
IH0KQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRp
b24oKQogICAgIC8vIGluIHRoZSBiYWNrZ3JvdW5kIGZvciB0b28gbG9uZy4KICAgICBpZiAobV9h
c3NlcnRpb24gJiYgbV9hc3NlcnRpb24tPnN0YXRlKCkgIT0gQXNzZXJ0aW9uU3RhdGU6OlN1c3Bl
bmRlZCAmJiAhbV9mb3JlZ3JvdW5kQ291bnRlci52YWx1ZSgpICYmICFtX2JhY2tncm91bmRDb3Vu
dGVyLnZhbHVlKCkpIHsKICAgICAgICAgKyttX3N1c3BlbmRNZXNzYWdlQ291bnQ7Ci0gICAgICAg
IExPR19BTFdBWVModHJ1ZSwgIiVwIC0gUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9u
KCkgc2VuZGluZyBQcmVwYXJlVG9TdXNwZW5kIElQQyIsIHRoaXMpOworICAgICAgICBSRUxFQVNF
X0xPRygiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24oKSBzZW5kaW5nIFBy
ZXBhcmVUb1N1c3BlbmQgSVBDIiwgdGhpcyk7CiAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJlcGFy
ZVRvU3VzcGVuZCgpOwogICAgICAgICBtX3N1c3BlbmRUaW1lci5zdGFydE9uZVNob3QocHJvY2Vz
c1N1c3BlbnNpb25UaW1lb3V0KTsKICAgICAgICAgbV9hc3NlcnRpb24tPnNldFN0YXRlKEFzc2Vy
dGlvblN0YXRlOjpCYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggOGRlZmYxMmY4OGQ0YzZlM2YwNjUwZmRiMWVhYmJlOGJhODgwMDY3ZS4u
MGJlYzg5ZDU2YTUxYjQzYTcxZmUzMmQxMjQ3YmUyNzZjOWVlYmVmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE3OSw3ICsxNzksNyBAQAogI2RlZmlu
ZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwg
bV9wcm9jZXNzLT5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfVVJMKHVybCkg
TUVTU0FHRV9DSEVDS19CQVNFKG1fcHJvY2Vzcy0+Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9j
ZXNzKHVybCksIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpKQogCi0jZGVmaW5lIFdFQlBBR0VQUk9Y
WV9MT0dfQUxXQVlTKC4uLikgTE9HX0FMV0FZUyhpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
X19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNF
X0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNTc3LDE0ICsxNTc3LDE0IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojp1cGRhdGVBY3Rpdml0eVRva2VuKCkKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYg
KCFpc1ZpZXdWaXNpYmxlKCkgJiYgIW1fYWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5KSB7
CiAgICAgICAgIGlmIChtX2FjdGl2aXR5VG9rZW4pIHsKLSAgICAgICAgICAgIFdFQlBBR0VQUk9Y
WV9MT0dfQUxXQVlTKCIlcCAtIFVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBmb3JlZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSB2aWV3IGlzIG5vIGxvbmdlciB2aXNpYmxlIiwgdGhpcyk7Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtIFVJUHJvY2VzcyBpcyByZWxl
YXNpbmcgYSBmb3JlZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSB2aWV3IGlzIG5vIGxvbmdl
ciB2aXNpYmxlIiwgdGhpcyk7CiAgICAgICAgICAgICBtX2FjdGl2aXR5VG9rZW4gPSBudWxscHRy
OwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghbV9hY3Rpdml0eVRva2VuKSB7CiAgICAgICAg
IGlmIChpc1ZpZXdWaXNpYmxlKCkpCi0gICAgICAgICAgICBXRUJQQUdFUFJPWFlfTE9HX0FMV0FZ
UygiJXAgLSBVSVByb2Nlc3MgaXMgdGFraW5nIGEgZm9yZWdyb3VuZCBhc3NlcnRpb24gYmVjYXVz
ZSB0aGUgdmlldyBpcyB2aXNpYmxlIiwgdGhpcyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCIlcCAtIFVJUHJvY2VzcyBpcyB0YWtpbmcgYSBmb3JlZ3JvdW5kIGFzc2VydGlv
biBiZWNhdXNlIHRoZSB2aWV3IGlzIHZpc2libGUiLCB0aGlzKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgV0VCUEFHRVBST1hZX0xPR19BTFdBWVMoIiVwIC0gVUlQcm9jZXNzIGlzIHRha2lu
ZyBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGV2ZW4gdGhvdWdoIHRoZSB2aWV3IGlzIG5vdCB2aXNp
YmxlIGJlY2F1c2UgbV9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkgaXMgdHJ1ZSIsIHRo
aXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBVSVByb2Nlc3Mg
aXMgdGFraW5nIGEgZm9yZWdyb3VuZCBhc3NlcnRpb24gZXZlbiB0aG91Z2ggdGhlIHZpZXcgaXMg
bm90IHZpc2libGUgYmVjYXVzZSBtX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSBpcyB0
cnVlIiwgdGhpcyk7CiAgICAgICAgIG1fYWN0aXZpdHlUb2tlbiA9IG1fcHJvY2Vzcy0+dGhyb3R0
bGVyKCkuZm9yZWdyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYjFjMGY4YjNhNWU2
MGFhM2FhNjU2YjdjNzRlNDU3NGIzMzQ3MmRhZC4uMzY5NzYxMmM5MGVjNDk5YjIwNzFiNWI0NjM1
YjYwODdiMDhjNzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTc1MiwxMSArNzUyLDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmZXRj
aFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0CiAK
ICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0
byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgTE9H
X0FMV0FZUyhzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlBy
b2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBX
ZWIgcHJvY2VzcyBpcyBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICBSRUxFQVNF
X0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlBy
b2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBX
ZWIgcHJvY2VzcyBpcyBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIG1fcGVu
ZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tl
biwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEp
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwotICAg
ICAgICBMT0dfQUxXQVlTKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVw
IC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0ZSBkYXRhIiwgdGhp
cyk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0
ZSBkYXRhIiwgdGhpcyk7CiAgICAgfSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpGZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBjYWxsYmFja0lEKSwgMCk7
CkBAIC03NjgsMTEgKzc2OCwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0
ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYQogCiAgICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwogICAgIGF1dG8gdG9rZW4g
PSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwotICAgIExPR19BTFdBWVMo
c2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nl
c3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYo
c2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nl
c3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CiAKICAgICBtX3BlbmRpbmdEZWxl
dGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgW3RoaXMsIHRva2VuLCBjb21w
bGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgICAgIExPR19BTFdBWVMoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRp
b24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEi
LCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBX
ZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpEZWxldGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5j
ZSwgY2FsbGJhY2tJRCksIDApOwogfQpAQCAtNzgzLDExICs3ODMsMTEgQEAgdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQKIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNr
SUQoKTsKICAgICBhdXRvIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9r
ZW4oKTsKLSAgICBMT0dfQUxXQVlTKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9u
IGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2
ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEg
YmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZGVsZXRpbmcg
V2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsKIAogICAgIG1fcGVuZGlu
Z0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgW3Ro
aXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXSB7CiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIExPR19BTFdBWVMoc2Vzc2lvbklELmlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFj
a2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGlu
ZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOworICAgICAgICBSRUxF
QVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdl
YlByb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNl
IHRoZSBXZWIgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJh
bCBvcmlnaW5zIiwgdGhpcyk7CiAgICAgfSk7CiAKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiBvcmlnaW5EYXRhOwpAQCAtOTg3LDcgKzk4Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSBzdGF0ZSkKIAogICAgIHN3aXRj
aCAoc3RhdGUpIHsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQ6Ci0gICAgICAg
IExPR19BTFdBWVModHJ1ZSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25T
dGF0ZShTdXNwZW5kZWQpIHJlbGVhc2UgYWxsIGFzc2VydGlvbnMgZm9yIG5ldHdvcmsgcHJvY2Vz
cyIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRp
ZFNldEFzc2VydGlvblN0YXRlKFN1c3BlbmRlZCkgcmVsZWFzZSBhbGwgYXNzZXJ0aW9ucyBmb3Ig
bmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0
d29ya1Byb2Nlc3MgPSBudWxscHRyOwogICAgICAgICBtX2JhY2tncm91bmRUb2tlbkZvck5ldHdv
cmtQcm9jZXNzID0gbnVsbHB0cjsKICAgICAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFw
LnZhbHVlcygpKQpAQCAtOTk1LDEzICs5OTUsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRp
ZFNldEFzc2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlIHN0YXRlKQogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkJhY2tncm91bmQ6Ci0gICAgICAgIExPR19BTFdB
WVModHJ1ZSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShCYWNr
Z3JvdW5kKSB0YWtpbmcgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2VzcyIs
IHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNl
dEFzc2VydGlvblN0YXRlKEJhY2tncm91bmQpIHRha2luZyBiYWNrZ3JvdW5kIGFzc2VydGlvbiBm
b3IgbmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fYmFja2dyb3VuZFRva2VuRm9y
TmV0d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbCgpLmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGhy
b3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICAgICAgbV9mb3JlZ3JvdW5k
VG9rZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIAog
ICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQ6Ci0gICAgICAgIExPR19BTFdBWVMo
dHJ1ZSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShGb3JlZ3Jv
dW5kKSB0YWtpbmcgZm9yZWdyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2VzcyIsIHRo
aXMpOworICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFz
c2VydGlvblN0YXRlKEZvcmVncm91bmQpIHRha2luZyBmb3JlZ3JvdW5kIGFzc2VydGlvbiBmb3Ig
bmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0
d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbCgpLmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGhyb3R0
bGVyKCkuZm9yZWdyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICAgICAgbV9iYWNrZ3JvdW5kVG9r
ZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiAgICAgICAgIGZvciAoYXV0byYgcGFnZSA6
IG1fcGFnZU1hcC52YWx1ZXMoKSkKQEAgLTEwMTgsMTIgKzEwMTgsMTIgQEAgdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlIHN0YXRlKQogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5n
TG9ja2VkRmlsZXMpCiB7CiAgICAgaWYgKCFpc0hvbGRpbmdMb2NrZWRGaWxlcykgewotICAgICAg
ICBMT0dfQUxXQVlTKHRydWUsICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBh
c3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xk
aW5nIGxvY2tlZCBmaWxlcyIpOworICAgICAgICBSRUxFQVNFX0xPRygiVUlQcm9jZXNzIGlzIHJl
bGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJv
Y2VzcyBpcyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKICAgICAgICAgbV90b2tl
bkZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgaWYgKCFtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIExPR19B
TFdBWVModHJ1ZSwgIlVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBi
ZWNhdXNlIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsK
KyAgICAgICAgUkVMRUFTRV9MT0coIlVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQg
ZmlsZXMiKTsKICAgICAgICAgbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG1fdGhyb3R0
bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IDMzMzYw
MWIxMDU1MDFlYTY5NWYzMDFhMmNkYTYwM2JiYmM1MjMyYTQuLjg4MjQ1NWYzN2NiNTYxNmU3NDA1
ODNjYzMwMzE5NDM3NGQ4ZmNiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KQEAgLTEwNSw3ICsxMDUsNyBAQCAtICh2b2lk
KV91cGRhdGVCYWNrZ3JvdW5kVGFzawogewogICAgIGlmIChfbmVlZHNUb1J1bkluQmFja2dyb3Vu
ZENvdW50ICYmIF9iYWNrZ3JvdW5kVGFzayA9PSBVSUJhY2tncm91bmRUYXNrSW52YWxpZCkgewog
ICAgICAgICBfYmFja2dyb3VuZFRhc2sgPSBbW1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRp
b25dIGJlZ2luQmFja2dyb3VuZFRhc2tXaXRoTmFtZTpAImNvbS5hcHBsZS5XZWJLaXQuUHJvY2Vz
c0Fzc2VydGlvbiIgZXhwaXJhdGlvbkhhbmRsZXI6XnsKLSAgICAgICAgICAgIExPR19BTFdBWVNf
RVJST1IodHJ1ZSwgIkJhY2tncm91bmQgdGFzayBleHBpcmVkIHdoaWxlIGhvbGRpbmcgV2ViS2l0
IFByb2Nlc3NBc3NlcnRpb24gKGlzTWFpblRocmVhZD8gJWQpLiIsIFJ1bkxvb3A6OmlzTWFpbigp
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJCYWNrZ3JvdW5kIHRhc2sgZXhwaXJl
ZCB3aGlsZSBob2xkaW5nIFdlYktpdCBQcm9jZXNzQXNzZXJ0aW9uIChpc01haW5UaHJlYWQ/ICVk
KS4iLCBSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgICAgICAvLyBUaGUgZXhwaXJhdGlvbiBo
YW5kbGVyIGdldHMgY2FsbGVkIG9uIGEgbm9uLW1haW4gdGhyZWFkIHdoZW4gdGhlIHVuZGVybHlp
bmcgYXNzZXJ0aW9uIGNvdWxkIG5vdCBiZSB0YWtlbiAocmRhcjovL3Byb2JsZW0vMjcyNzg0MTkp
LgogICAgICAgICAgICAgaWYgKFJ1bkxvb3A6OmlzTWFpbigpKQogICAgICAgICAgICAgICAgIFtz
ZWxmIF9ub3RpZnlDbGllbnRzT2ZJbW1pbmVudFN1c3BlbnNpb25dOwpAQCAtMTY1LDcgKzE2NSw3
IEBAIFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBBc3NlcnRp
b25TdGF0ZSBhc3NlcnRpb25TdGF0ZSwgRnVuCiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdl
YWtQdHIoKTsKICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5kbGVyIGhhbmRs
ZXIgPSBeKEJPT0wgYWNxdWlyZWQpIHsKICAgICAgICAgaWYgKCFhY3F1aXJlZCkgewotICAgICAg
ICAgICAgTE9HX0FMV0FZU19FUlJPUih0cnVlLCAiVW5hYmxlIHRvIGFjcXVpcmUgYXNzZXJ0aW9u
IGZvciBwcm9jZXNzICVkIiwgcGlkKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJV
bmFibGUgdG8gYWNxdWlyZSBhc3NlcnRpb24gZm9yIHByb2Nlc3MgJWQiLCBwaWQpOwogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhp
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDM5M2I4Y2VkZTMzNDViZmZiYTUyYThmYTUxYjc4NzViY2Ji
OThhZWYuLmFmY2NkMWU0ZDcxMDA2NjI3MzMyYmY1MzhjYmQzNjQ0Mzg4OTFkYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcApAQCAtNTcsOCArNTcsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
I2RlZmluZSBXRUJMT0FERVJTVFJBVEVHWV9MT0dfQUxXQVlTKC4uLikgTE9HX0FMV0FZUyhsb2Fk
UGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJH
U19fKQotI2RlZmluZSBXRUJMT0FERVJTVFJBVEVHWV9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9H
X0FMV0FZU19FUlJPUihsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4u
LikgUkVMRUFTRV9MT0dfSUYobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25J
RC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2No
ZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAg
ICBBU1NFUlQoKGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCAmJiBsb2FkUGFyYW1ldGVycy53ZWJG
cmFtZUlEKSB8fCBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5ID09IENsaWVu
dENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzKTsKIAogICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVk
dWxlUmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKLSAgICAgICAgV0VCTE9BREVS
U1RSQVRFR1lfTE9HX0FMV0FZU19FUlJPUigiV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZDogVW5hYmxlIHRvIHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdp
dGggcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQgbG9uZyBsb25nPihsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiV2ViTG9hZGVyU3RyYXRlZ3k6OnNj
aGVkdWxlTG9hZDogVW5hYmxlIHRvIHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQ
cm9jZXNzIHdpdGggcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUi
LCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQp
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1l
SUQpKTsKICAgICAgICAgLy8gV2UgcHJvYmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9h
ZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAg
ICAvLyBUaGlzIGxvYWQgd2lsbCBuZXZlciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQg
dG8gZmFpbCBhc3luY2hyb25vdXNseS4KICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVk
TG9hZChyZXNvdXJjZUxvYWRlcik7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBXZWJMb2FkZXJT
dHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2Fj
aGVkUmVzb3UKICAgICB9CiAKICAgICBhdXRvIHdlYlJlc291cmNlTG9hZGVyID0gV2ViUmVzb3Vy
Y2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZUxvYWRlcik7Ci0gICAgV0VCTE9BREVSU1RSQVRFR1lf
TE9HX0FMV0FZUygiV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZDogUmVzb3VyY2Ugd2ls
bCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSA9ICVk
LCBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgV2ViUmVzb3VyY2VMb2FkZXIgPSAlcCIs
IHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCks
IHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJ
RCksIHdlYlJlc291cmNlTG9hZGVyLnB0cigpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkOiBSZXNvdXJjZSB3aWxsIGJlIHNjaGVk
dWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9
ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCBXZWJSZXNvdXJjZUxvYWRlciA9ICVwIiwgc3RhdGljX2Nh
c3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIHN0YXRpY19jYXN0
PHVuc2lnbmVkIGxvbmcgbG9uZz4obG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEKSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQgbG9uZyBsb25nPihsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEKSwgd2ViUmVz
b3VyY2VMb2FkZXIucHRyKCkpOwogICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlm
aWVyLCBXVEZNb3ZlKHdlYlJlc291cmNlTG9hZGVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDc4YjBhOTg5MTg4MTg1ZWRjMWFhNzcyNDc4NGQ0N2Y0MGFmYjJkYjcuLjljMDA5NDM4Y2E5NTMy
MjMyODgyMzc4OTFhY2RmMjc3NzMxZDdjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNDIsNyArNDIs
NyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2RlZmluZSBXRUJSRVNPVVJDRUxP
QURFUl9MT0dfQUxXQVlTKC4uLikgTE9HX0FMV0FZUyhpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxF
QVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
ZXI6OmRldGFjaEZyb21Db3JlTG9hZGVyKCkKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBwcm9wb3NlZFJlcXVlc3QsIFJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nl
c3MpIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QgdG8gJyVzJyIsIHByb3Bvc2Vk
UmVxdWVzdC51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFdFQlJFU09VUkNF
TE9BREVSX0xPR19BTFdBWVMoIldlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QsIFdl
YlJlc291cmNlTG9hZGVyID0gJXAiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0LCBXZWJSZXNvdXJjZUxvYWRlciA9
ICVwIiwgdGhpcyk7CiAKICAgICBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRo
aXModGhpcyk7CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlUwog
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VN
ZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UgZm9yICclcycuIFN0YXR1cyAlZC4iLCBtX2NvcmVMb2Fk
ZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSk7Ci0gICAgV0VCUkVTT1VSQ0VMT0FERVJfTE9HX0FMV0FZUygiV2ViUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZSwgV2ViUmVzb3VyY2VMb2FkZXIgPSAlcCwgc3RhdHVzID0g
JWQuIiwgdGhpcywgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSwgV2ViUmVz
b3VyY2VMb2FkZXIgPSAlcCwgc3RhdHVzID0gJWQuIiwgdGhpcywgcmVzcG9uc2UuaHR0cFN0YXR1
c0NvZGUoKSk7CiAKICAgICBSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QoKnRoaXMpOwog
CkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib28KIHZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQ
cm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEgb2Ygc2l6ZSAlbHUgZm9y
ICclcyciLCBkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEo
KS5kYXRhKCkpOwotICAgIFdFQlJFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIldlYlJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YSwgV2ViUmVzb3VyY2VMb2FkZXIgPSAlcCwgc2l6ZSA9ICVs
dSIsIHRoaXMsIGRhdGEuc2l6ZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEsIFdlYlJlc291cmNlTG9hZGVyID0gJXAsIHNp
emUgPSAlbHUiLCB0aGlzLCBkYXRhLnNpemUoKSk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAg
ICBpZiAoUXVpY2tMb29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUgPSBtX2NvcmVMb2FkZXItPmRv
Y3VtZW50TG9hZGVyKCktPnF1aWNrTG9va0hhbmRsZSgpKSB7CkBAIC0xNDcsNyArMTQ3LDcgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlz
aFJlc291cmNlTG9hZChkb3VibGUgZmluaXNoVGltZSkKIHsKICAgICBMT0coTmV0d29yaywgIihX
ZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAn
JXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAg
IFdFQlJFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIldlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5p
c2hSZXNvdXJjZUxvYWQsIFdlYlJlc291cmNlTG9hZGVyID0gJXAiLCB0aGlzKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VM
b2FkLCBXZWJSZXNvdXJjZUxvYWRlciA9ICVwIiwgdGhpcyk7CiAKICNpZiBVU0UoUVVJQ0tfTE9P
SykKICAgICBpZiAoUXVpY2tMb29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUgPSBtX2NvcmVMb2Fk
ZXItPmRvY3VtZW50TG9hZGVyKCktPnF1aWNrTG9va0hhbmRsZSgpKSB7CkBAIC0xNjEsNyArMTYx
LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJs
ZSBmaW5pc2hUaW1lKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9h
ZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQ
cm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIs
IG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBXRUJS
RVNPVVJDRUxPQURFUl9MT0dfQUxXQVlTKCJXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291
cmNlTG9hZCwgV2ViUmVzb3VyY2VMb2FkZXIgPSAlcCIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoIldlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkLCBXZWJS
ZXNvdXJjZUxvYWRlciA9ICVwIiwgdGhpcyk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBp
ZiAoUXVpY2tMb29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUgPSBtX2NvcmVMb2FkZXItPmRvY3Vt
ZW50TG9hZGVyKCktPnF1aWNrTG9va0hhbmRsZSgpKQpAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29u
c3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBkb3VibGUgZmluaXNoVGltZSkK
IHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZVJlc291cmNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5s
YXRpbjEoKS5kYXRhKCkpOwotICAgIFdFQlJFU09VUkNFTE9BREVSX0xPR19BTFdBWVMoIldlYlJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UsIFdlYlJlc291cmNlTG9hZGVyID0gJXAi
LCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc291cmNlLCBXZWJSZXNvdXJjZUxvYWRlciA9ICVwIiwgdGhpcyk7CiAKICAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYW5kbGUudHJ5V3JhcEluU2hhcmVkQnVm
ZmVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCA1MjcwNTg2YTQ5MmMwOTc0MDViYmZmZWRkZjk5NWQ0NTdkNmIxM2UyLi43NWIxMjBm
MzQwMTE3OTVhMzM2ZmQyMjZlYzljYjg4NmJlYmZlM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yNTYsOCArMjU2LDggQEAgc3RhdGlj
IGNvbnN0IGRvdWJsZSBwYWdlU2Nyb2xsSHlzdGVyZXNpc1NlY29uZHMgPSAwLjM7CiBzdGF0aWMg
Y29uc3Qgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGlt
ZXJJbnRlcnZhbCB7IDIwIH07CiBzdGF0aWMgY29uc3Qgc3RkOjpjaHJvbm86OnNlY29uZHMgbWF4
aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwgeyAyIH07CiAKLSNkZWZpbmUgV0VCUEFH
RV9MT0dfQUxXQVlTKC4uLikgTE9HX0FMV0FZUyhpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
X19WQV9BUkdTX18pCi0jZGVmaW5lIFdFQlBBR0VfTE9HX0FMV0FZU19FUlJPUiguLi4pIExPR19B
TFdBWVNfRVJST1IoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2Rl
ZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIF9fVkFfQVJHU19fKQogCiBjbGFzcyBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGlt
ZXIgewogcHVibGljOgpAQCAtMjA2NSwxMiArMjA2NSwxMiBAQCB2b2lkIFdlYlBhZ2U6OmxheWVy
Vm9sYXRpbGl0eVRpbWVyRmlyZWQoKQogICAgIGJvb2wgZGlkU3VjY2VlZCA9IG1hcmtMYXllcnNW
b2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwogICAgIGlmIChkaWRTdWNjZWVkIHx8IG5l
d0ludGVydmFsID4gbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwpIHsKICAgICAg
ICAgbV9sYXllclZvbGF0aWxpdHlUaW1lci5zdG9wKCk7Ci0gICAgICAgIFdFQlBBR0VfTE9HX0FM
V0FZUygiJXAgLSBXZWJQYWdlIC0gQXR0ZW1wdGVkIHRvIG1hcmsgc3VyZmFjZXMgYXMgdm9sYXRp
bGUsIHN1Y2Nlc3M/ICVkIiwgdGhpcywgZGlkU3VjY2VlZCk7CisgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFnZSAtIEF0dGVtcHRlZCB0byBtYXJrIHN1cmZhY2VzIGFz
IHZvbGF0aWxlLCBzdWNjZXNzPyAlZCIsIHRoaXMsIGRpZFN1Y2NlZWQpOwogICAgICAgICBjYWxs
Vm9sYXRpbGl0eUNvbXBsZXRpb25IYW5kbGVycygpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgV0VCUEFHRV9MT0dfQUxXQVlTX0VSUk9SKCIlcCAtIFdlYlBhZ2UgLSBGYWlsZWQgdG8g
bWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVsbGQgbXMiLCB0aGlz
LCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KG5ld0ludGVydmFsLmNvdW50KCkpKTsKKyAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCIlcCAtIFdlYlBhZ2UgLSBGYWlsZWQgdG8gbWFyayBh
bGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVsbGQgbXMiLCB0aGlzLCBzdGF0
aWNfY2FzdDxsb25nIGxvbmc+KG5ld0ludGVydmFsLmNvdW50KCkpKTsKICAgICBtX2xheWVyVm9s
YXRpbGl0eVRpbWVyLnN0YXJ0UmVwZWF0aW5nKG5ld0ludGVydmFsKTsKIH0KIApAQCAtMjA4MSw3
ICsyMDgxLDcgQEAgYm9vbCBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlhdGVseUlm
UG9zc2libGUoKQogCiB2b2lkIFdlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZShzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFdFQlBBR0VfTE9HX0FMV0FZ
UygiJXAgLSBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUoKSIsIHRoaXMpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxlKCkiLCB0
aGlzKTsKIAogICAgIGlmIChtX2xheWVyVm9sYXRpbGl0eVRpbWVyLmlzQWN0aXZlKCkpCiAgICAg
ICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIuc3RvcCgpOwpAQCAtMjA5MiwyMiArMjA5MiwyMiBA
QCB2b2lkIFdlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZShzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+
IGNvbXBsZXRpb25IYW5kbGVyKQogICAgIGJvb2wgZGlkU3VjY2VlZCA9IG1hcmtMYXllcnNWb2xh
dGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwogICAgIGlmIChkaWRTdWNjZWVkIHx8IG1faXNT
dXNwZW5kZWRVbmRlckxvY2spIHsKICAgICAgICAgaWYgKGRpZFN1Y2NlZWQpCi0gICAgICAgICAg
ICBXRUJQQUdFX0xPR19BTFdBWVMoIiVwIC0gV2ViUGFnZSAtIFN1Y2Nlc3NmdWxseSBtYXJrZWQg
bGF5ZXJzIGFzIHZvbGF0aWxlIiwgdGhpcyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCIlcCAtIFdlYlBhZ2UgLSBTdWNjZXNzZnVsbHkgbWFya2VkIGxheWVycyBhcyB2b2xh
dGlsZSIsIHRoaXMpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdlIGdldCBz
dXNwZW5kZWQgd2hlbiBsb2NraW5nIHRoZSBzY3JlZW4sIGl0IGlzIGV4cGVjdGVkIHRoYXQgc29t
ZSBJT1N1cmZhY2VzIGNhbm5vdCBiZSBtYXJrZWQgYXMgcHVyZ2VhYmxlIHNvIHdlIGRvIG5vdCBr
ZWVwIHJldHJ5aW5nLgotICAgICAgICAgICAgV0VCUEFHRV9MT0dfQUxXQVlTKCIlcCAtIFdlYlBh
Z2UgLSBEaWQgd2hhdCB3ZSBjb3VsZCB0byBtYXJrIElPU3VyZmFjZXMgYXMgcHVyZ2VhYmxlIGFm
dGVyIGxvY2tpbmcgdGhlIHNjcmVlbiIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gRGlkIHdoYXQgd2UgY291bGQgdG8gbWFyayBJT1N1
cmZhY2VzIGFzIHB1cmdlYWJsZSBhZnRlciBsb2NraW5nIHRoZSBzY3JlZW4iLCB0aGlzKTsKICAg
ICAgICAgfQogICAgICAgICBjYWxsVm9sYXRpbGl0eUNvbXBsZXRpb25IYW5kbGVycygpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV0VCUEFHRV9MT0dfQUxXQVlTKCIlcCAtIEZhaWxl
ZCB0byBtYXJrIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUsIHdpbGwgcmV0cnkgaW4gJWxsZCBtcyIs
IHRoaXMsIGluaXRpYWxMYXllclZvbGF0aWxpdHlUaW1lckludGVydmFsLmNvdW50KCkpOworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gRmFpbGVkIHRvIG1hcmsgYWxsIGxheWVycyBh
cyB2b2xhdGlsZSwgd2lsbCByZXRyeSBpbiAlbGxkIG1zIiwgdGhpcywgaW5pdGlhbExheWVyVm9s
YXRpbGl0eVRpbWVySW50ZXJ2YWwuY291bnQoKSk7CiAgICAgbV9sYXllclZvbGF0aWxpdHlUaW1l
ci5zdGFydFJlcGVhdGluZyhpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6Y2FuY2VsTWFya0xheWVyc1ZvbGF0aWxlKCkKIHsKLSAgICBXRUJQ
QUdFX0xPR19BTFdBWVMoIiVwIC0gV2ViUGFnZTo6Y2FuY2VsTWFya0xheWVyc1ZvbGF0aWxlKCki
LCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtIFdlYlBhZ2U6OmNhbmNl
bE1hcmtMYXllcnNWb2xhdGlsZSgpIiwgdGhpcyk7CiAgICAgbV9sYXllclZvbGF0aWxpdHlUaW1l
ci5zdG9wKCk7CiAgICAgbV9tYXJrTGF5ZXJzQXNWb2xhdGlsZUNvbXBsZXRpb25IYW5kbGVycy5j
bGVhcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
NjU4MGZkYjM0ZjdlMGIzNGRhODJkNjFjNTNlNjZhMDU0MTU1MmM5MS4uYzY1MTIwODUzOWM3YmI4
ZjQzODk1MGFhZWMwZDU4ZWRjY2ZkN2QxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC0xNDUsOCArMTQ1LDYgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBwbHVn
SW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVVwZGF0ZVRocmVzaG9sZCA9IDI5ICogMjQgKiA2MAog
Ly8gVGhpcyBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRpbGVSZXZhbGlkYXRpb25UaW1lb3V0IGlu
IFRpbGVDb250cm9sbGVyLgogc3RhdGljIGNvbnN0IGRvdWJsZSBub25WaXNpYmxlUHJvY2Vzc0Ns
ZWFudXBEZWxheSA9IDEwOwogCi0jZGVmaW5lIFdFQlBST0NFU1NfTE9HX0FMV0FZUyguLi4pIExP
R19BTFdBWVModHJ1ZSwgX19WQV9BUkdTX18pCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJQ
cm9jZXNzJiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKQpAQCAtMTI3NSwxMCArMTI3MywxMCBAQCB2
b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VX
aGVuUmVhZHlUb1N1c3BlbmQgc2hvdQogICAgIHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbih0
cnVlKTsKIAogICAgIG1hcmtBbGxMYXllcnNWb2xhdGlsZShbdGhpcywgc2hvdWxkQWNrbm93bGVk
Z2VXaGVuUmVhZHlUb1N1c3BlbmRdIHsKLSAgICAgICAgV0VCUFJPQ0VTU19MT0dfQUxXQVlTKCIl
cCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIFN1Y2Nlc3NmdWx5IG1hcmtl
ZCBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9HKCIl
cCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIFN1Y2Nlc3NmdWx5IG1hcmtl
ZCBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlIiwgdGhpcyk7CiAKICAgICAgICAgaWYgKHNob3VsZEFj
a25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kID09IFNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5
VG9TdXNwZW5kOjpZZXMpIHsKLSAgICAgICAgICAgIFdFQlBST0NFU1NfTE9HX0FMV0FZUygiJXAg
LSBXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKCkgU2VuZGluZyBQcm9jZXNzUmVh
ZHlUb1N1c3BlbmQgSVBDIG1lc3NhZ2UiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
KCIlcCAtIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nl
c3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRoaXMpOwogICAgICAgICAgICAgcGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpQcm9j
ZXNzUmVhZHlUb1N1c3BlbmQoKSwgMCk7CiAgICAgICAgIH0KICAgICB9KTsKQEAgLTEyOTQsNyAr
MTI5Miw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShi
b29sJiBoYW5kbGVkKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV0VCUFJPQ0VTU19M
T0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHko
KSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NXaWxs
U3VzcGVuZEltbWluZW50bHkoKSIsIHRoaXMpOwogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVyeUJlaGF2aW9yOjpJbnRlcnJ1cHQpOwog
ICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1
c3BlbmQ6Ok5vKTsKICAgICBoYW5kbGVkID0gdHJ1ZTsKQEAgLTEzMDIsMTMgKzEzMDAsMTMgQEAg
dm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRs
ZWQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpCiB7Ci0gICAgV0VCUFJP
Q0VTU19MT0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSIsIHRo
aXMpOworICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQo
KSIsIHRoaXMpOwogICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VX
aGVuUmVhZHlUb1N1c3BlbmQ6Olllcyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6Y2FuY2VsUHJl
cGFyZVRvU3VzcGVuZCgpCiB7Ci0gICAgV0VCUFJPQ0VTU19MT0dfQUxXQVlTKCIlcCAtIFdlYlBy
b2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9H
KCIlcCAtIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwogICAg
IHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbihmYWxzZSk7CiAKICAgICAvLyBJZiB3ZSd2ZSBh
bHJlYWR5IGZpbmlzaGVkIGNsZWFuaW5nIHVwIGFuZCBzZW50IFByb2Nlc3NSZWFkeVRvU3VzcGVu
ZCwgd2UKQEAgLTEzMTgsMTMgKzEzMTYsMTMgQEAgdm9pZCBXZWJQcm9jZXNzOjpjYW5jZWxQcmVw
YXJlVG9TdXNwZW5kKCkKIAogICAgIGNhbmNlbE1hcmtBbGxMYXllcnNWb2xhdGlsZSgpOwogCi0g
ICAgV0VCUFJPQ0VTU19MT0dfQUxXQVlTKCIlcCAtIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVU
b1N1c3BlbmQoKSBTZW5kaW5nIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uIElQQyBtZXNzYWdl
IiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFy
ZVRvU3VzcGVuZCgpIFNlbmRpbmcgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24gSVBDIG1lc3Nh
Z2UiLCB0aGlzKTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCksIDApOwogfQog
CiB2b2lkIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZShzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV0VCUFJPQ0VTU19MT0dfQUxXQVlTKCIl
cCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIiwgdGhpcyk7CisgICAgUkVM
RUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCkiLCB0aGlz
KTsKICAgICBtX3BhZ2VzTWFya2luZ0xheWVyc0FzVm9sYXRpbGUgPSBtX3BhZ2VNYXAuc2l6ZSgp
OwogICAgIGlmICghbV9wYWdlc01hcmtpbmdMYXllcnNBc1ZvbGF0aWxlKSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMzU3LDcgKzEzNTUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OnNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbihib29sIGZyb3plbikKICAgICAKIHZvaWQgV2Vi
UHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCiB7Ci0gICAgV0VCUFJPQ0VTU19MT0dfQUxXQVlT
KCIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOworICAgIFJFTEVB
U0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOwogCiAg
ICAgY2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKCk7CiAgICAgc2V0QWxsTGF5ZXJUcmVlU3Rh
dGVzRnJvemVuKGZhbHNlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>