<?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>225711</bug_id>
          
          <creation_ts>2021-05-12 12:06:03 -0700</creation_ts>
          <short_desc>Simplify / Modernize Notification permission implementation</short_desc>
          <delta_ts>2021-05-12 17:32:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225701</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225712</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759342</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 12:06:03 -0700</bug_when>
    <thetext>Simplify / Modernize Notification permission implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759344</commentid>
    <comment_count>1</comment_count>
      <attachid>428400</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 12:10:17 -0700</bug_when>
    <thetext>Created attachment 428400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759345</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-05-12 12:11:10 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759359</commentid>
    <comment_count>3</comment_count>
      <attachid>428403</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 12:50:27 -0700</bug_when>
    <thetext>Created attachment 428403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759361</commentid>
    <comment_count>4</comment_count>
      <attachid>428403</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-12 12:51:56 -0700</bug_when>
    <thetext>Comment on attachment 428403
Patch

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

&gt; Source/WebKit/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:38
&gt; +void NotificationPermissionRequestManagerProxy::invalidateRequests()

Now that we&apos;re using sendWithAsyncReply, I think we might not need this any more.  We might be able to completely remove the NotificationPermissionRequestManagerProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759362</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 12:52:40 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 428403 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428403&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:38
&gt; &gt; +void NotificationPermissionRequestManagerProxy::invalidateRequests()
&gt; 
&gt; Now that we&apos;re using sendWithAsyncReply, I think we might not need this any
&gt; more.  We might be able to completely remove the
&gt; NotificationPermissionRequestManagerProxy.

Oh. I may be even to drop more code then. Let me check :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759367</commentid>
    <comment_count>6</comment_count>
      <attachid>428407</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 13:11:29 -0700</bug_when>
    <thetext>Created attachment 428407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759376</commentid>
    <comment_count>7</comment_count>
      <attachid>428409</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 13:18:21 -0700</bug_when>
    <thetext>Created attachment 428409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759377</commentid>
    <comment_count>8</comment_count>
      <attachid>428410</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 13:30:54 -0700</bug_when>
    <thetext>Created attachment 428410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759475</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-12 17:31:49 -0700</bug_when>
    <thetext>Committed r277414 (237664@main): &lt;https://commits.webkit.org/237664@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428410.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759476</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-12 17:32:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/77941877&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428400</attachid>
            <date>2021-05-12 12:10:17 -0700</date>
            <delta_ts>2021-05-12 12:50:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225711-20210512121016.patch</filename>
            <type>text/plain</type>
            <size>29246</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZDc3MmYzZTdkOWM5MmVk
ZTkzNDAxZjk3ZmRkYmMzNjgxOGNhM2IuLmU2YjQxOTcxMzUxY2IyZjI1Njk3ZmE5MDA0M2E5Njc5
NzY2ZTk0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSAvIE1vZGVybml6ZSBO
b3RpZmljYXRpb24gcGVybWlzc2lvbiBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgLyBNb2Rlcm5pemUgTm90aWZp
Y2F0aW9uIHBlcm1pc3Npb24gaW1wbGVtZW50YXRpb24uIFRoZSBtYWluIGNoYW5nZSB3YXMKKyAg
ICAgICAgYWRvcHRpbmcgc2VuZFdpdGhBc3luY1JlcGx5KCkgZm9yIHRoZSBJUEMgaW5zdGVhZCBv
ZiB1c2luZyAyIHNlcGFyYXRlIElQQyBtZXNzYWdlcworICAgICAgICBmb3IgdGhlIHJlcXVlc3Qg
YW5kIHRoZSBkZWNpc2lvbi4gQXMgYSByZXN1bHQsIHdlIGRvbid0IGhhdmUgdG8gZGVhbCB3aXRo
IHJlcXVlc3QKKyAgICAgICAgaWRlbnRpZmllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
byBiZWhhdmlvciBjaGFuZ2UgYW5kIGNvdmVyZWQgYnkgZXhpc3RpbmcgQVBJIHRlc3RzLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6On5O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpkaWRSZWNlaXZlRGVjaXNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmFkZFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlbW92
ZVBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyNzczNzYuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDUyMjI4NDc5MWQwNjhi
ZjE1OWY3ZTlkZjE3OGE3MGViNGVkNzFiOTguLjcxMWY1NDE1NjNiYjJhNGFmN2ZlZWZlMDQ0MTk5
MmNhYmM0ZmYyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CkBAIC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiwgRnVu
Y3Rpb248dm9pZChib29sKT4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KSB7IHJlcXVlc3QuZG9E
ZWZhdWx0QWN0aW9uKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIHsgcmVxdWVzdC5kZW55KCk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CisgICAg
dmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBSZWY8V2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4mJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXF1ZXN0aW5n
RG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgY3VycmVudERvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsgfQogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDU5NjM0OGQ3MjZlZGM0MmIwYzc3MDQwYjk5NWNjODg3
ZmUxZTU0YWMuLmY1MDk4ZDQxNjE1ODU3OGQyYWNiMzRkOTZkYWM5NjU2NDhjYjUzYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0zOCwxMCArMzgsMTAgQEAgV0tUeXBl
SUQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCiAKIHZvaWQgV0tO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCktPmFsbG93KCk7CisgICAgcmV0
dXJuIHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCktPmRpZFJlY2VpdmVEZWNp
c2lvbih0cnVlKTsKIH0KIAogdm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVu
eShXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KQogewotICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpLT5kZW55KCk7CisgICAgcmV0dXJuIHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCktPmRpZFJlY2VpdmVEZWNpc2lvbihmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA5OWI2NTVmYTRiNThkODQ5ZDlmNzNmMTg4NGFk
MWRmZmUzOGRiNTc1Li5mMGVjM2RmM2QwZTQwZTZlMmE2ZmM1M2VjNjU3NDEzODRjOTQyMTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE5ODgsMTIgKzE5
ODgsMTIgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbih0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFt
ZSksIHRvQVBJKCZ1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKSwgdG9BUEkoJnJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBm
aW5hbAorICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBS
ZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+JiYgcGVybWlzc2lvblJlcXVlc3QpIGZp
bmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEko
Jm9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0LnB0cigpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXF1ZXN0aW5nRG9tYWluLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCBjMDI2ZWM2
OTdkOWM5ZTVlODM1ZWRiM2NjZWU3MjU0ODMzMWRlYmM0Li45NmNiNTU0NDE3NGY5MzViYWQ1MzJh
OWEyMjBkNzQ3NWI5YzlhOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0zMDUsOSArMzA1LDkgQEAgcHJpdmF0ZToK
ICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChtX3dlYlZpZXcsIFdF
QktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LmdldCgp
KSk7CiAgICAgfQogCi0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+JiYgcGVy
bWlzc2lvblJlcXVlc3QpIGZpbmFsCiAgICAgewotICAgICAgICBHUmVmUHRyPFdlYktpdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA9
IGFkb3B0R1JlZih3ZWJraXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKS5wdHIoKSkpOworICAgICAgICBHUmVmUHRyPFdlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0PiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJr
aXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShwZXJtaXNzaW9uUmVxdWVzdC5w
dHIoKSkpOwogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2Vi
VmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5nZXQoKSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oCmluZGV4IGU5NzkxN2Y4ODkwYjUxZjNlMTNiOGI3NGIyOWI0OGQyYjczMWZiZTYu
LjAxZmM2OGM1Y2EzZTUzYThiZWNlOTU0YTdkMjQ4MzNiNjBkMDRlMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3Mg
UmVnaXN0cmFibGVEb21haW47CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKwogY2xhc3MgVUlEZWxlZ2F0ZSA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxVSURlbGVnYXRlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CkBAIC0xMTcsNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgZmxvYXQgZm9vdGVy
SGVpZ2h0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9p
ZCBkcmF3SGVhZGVyKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9h
dFJlY3QmJikgZmluYWw7CiAgICAgICAgIHZvaWQgZHJhd0Zvb3RlcihXZWJQYWdlUHJveHkmLCBX
ZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIGZpbmFsOwotICAgICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsK
KyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgUmVmPE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0PiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5JiwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
biwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBPcHRp
b25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgQVBJOjpPYmplY3QqKTsKICAgICAgICAgdm9pZCBk
aWRDbGlja0F1dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBlYWQ5
YjFiNzU2NTE5MjI2NjVhOTk0OWI4ZmM3ZmRiMzVlMTYyODVjLi5iMGUwNTEwMDNlZWM4MTQ2MjIz
MWE1YTMzYjhkZGQ1YzQ2YzMyNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIk1lZGlhVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9u
QWN0aW9uRGF0YS5oIgorI2ltcG9ydCAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIK
ICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgiCiAjaW1wb3J0ICJVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgpAQCAtOTQ2LDI0ICs5NDcsMjQgQEAgdm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6c2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdl
UHJveHkqLCBjb25zdAogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIHNhdmVEYXRhVG9GaWxl
OndyYXBwZXIoZGF0YSkgc3VnZ2VzdGVkRmlsZW5hbWU6c3VnZ2VzdGVkRmlsZW5hbWUgbWltZVR5
cGU6bWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6b3JpZ2luYXRpbmdVUkxdOwogfQogCi12b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3Vy
aXR5T3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHNlY3VyaXR5T3JpZ2luLCBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+JiYg
cGVybWlzc2lvblJlcXVlc3QpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUpCi0gICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKLSAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOwogICAgIAog
ICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CiAgICAg
aWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsK
KyAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVx
dWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRs
ZXI6KSk7Ci0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6
bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcmVxdWVzdE5vdGlmaWNhdGlvblBl
cm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjp3cmFwcGVyKHNlY3VyaXR5T3JpZ2luKSBkZWNpc2lv
bkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKEJPT0wgcmVzdWx0KSBt
dXRhYmxlIHsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSByZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRlY2lz
aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3Blcm1pc3Npb25SZXF1ZXN0ID0gV1RGTW92ZShwZXJt
aXNzaW9uUmVxdWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVu
Q2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXItPmRpZENhbGxD
b21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwor
ICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC0+ZGlkUmVjZWl2ZURlY2lzaW9uKHJlc3VsdCk7CiAg
ICAgfSkuZ2V0KCldOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmgKaW5kZXggMGI3ZWVmOTQ2MDEyOGM1NjU2OTFiMTUwYzJmZjdiZWNiNDkzNzBhOC4uZTY2MjRk
MTQzYTBjOGUzYzIzYzk2ZmM0Mjg1MTQ5NzQzNjkzYTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMjYsMzcgKzI2LDQ3IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OwogCi1jbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0PiB7CitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdD4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCisgICAgc3RhdGljIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3Jl
YXRlKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QobWFuYWdlciwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpKTsKICAgICB9Ci0gICAgCi0gICAgdm9pZCBhbGxvdygpCisKKyAgICB+
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoKQogICAgIHsKLSAgICAgICAgaWYgKGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51
bGxwdHIpKQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgICAgIGRp
ZFJlY2VpdmVEZWNpc2lvbihmYWxzZSk7CiAgICAgfQotCi0gICAgdm9pZCBkZW55KCkKKyAgICAK
KyAgICB2b2lkIGRpZFJlY2VpdmVEZWNpc2lvbihib29sIGFsbG93ZWQpCiAgICAgewotICAgICAg
ICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9u
SGFuZGxlciwgbnVsbHB0cikpCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
CisgICAgICAgIGlmICghbV9jb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGFsbG93ZWQpOworICAgICAgICBpZiAobV9t
YW5hZ2VyKQorICAgICAgICAgICAgbV9tYW5hZ2VyLT5yZW1vdmVQZW5kaW5nUmVxdWVzdCgqdGhp
cyk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgICAgIDogbV9j
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKLSAgICB7IH0KKyAg
ICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFu
YWdlcikpCisgICAgICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NvbXBsZXRpb25IYW5kbGVyKTsKKyAg
ICAgICAgbWFuYWdlci5hZGRQZW5kaW5nUmVxdWVzdCgqdGhpcyk7CisgICAgfQogICAgIAotICAg
IEZ1bmN0aW9uPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhhbmRsZXI7CisgICAgV2Vha1B0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV9tYW5hZ2VyOworICAg
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhhbmRsZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggMzYzMzhlZDIxOWM2MDM2
Y2YyZDZkYmQxZmI1ZjA0NjRjY2FmZTJmMC4uODQ5MGU3NGI4MmQxNjFhMDY1YmJiMTU2ZThmOGQ5
ZTc0MWVkZWFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTMzLDI2ICszMywyOSBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYg
cGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQorTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KCkg
PSBkZWZhdWx0OworCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlUmVxdWVzdHMoKQogeworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IHN0
ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSkpCisgICAgICAgIHJlcXVlc3QuZGlk
UmVjZWl2ZURlY2lzaW9uKGZhbHNlKTsKIH0KIAotdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK1JlZjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OmNyZWF0ZVJlcXVlc3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHJldHVybiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdDo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9
CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmFkZFBl
bmRpbmdSZXF1ZXN0KE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0JiByZXF1ZXN0KQogewot
ICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0
cywgeyB9KTsKLSAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBwZW5kaW5nUmVxdWVzdHMudmFsdWVz
KCkpCi0gICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKKyAgICBBU1NFUlQoIW1fcGVuZGluZ1JlcXVl
c3RzLmNvbnRhaW5zKHJlcXVlc3QpKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQocmVxdWVz
dCk7CiB9CiAKLVJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpyZW1vdmVQZW5kaW5nUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBhdXRvIHJlcXVlc3QgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdDo6Y3JlYXRlKFt0aGlzLCBub3RpZmljYXRpb25JRCwgcGFnZSA9IG1ha2VSZWYobV9wYWdl
KV0oYm9vbCBhbGxvd2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLnRha2Uobm90aWZp
Y2F0aW9uSUQpOwotICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2Vk
KSk7Ci0gICAgfSk7Ci0gICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKG5vdGlmaWNhdGlvbklELCBy
ZXF1ZXN0LnB0cigpKTsKLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICBBU1NFUlQobV9wZW5kaW5n
UmVxdWVzdHMuY29udGFpbnMocmVxdWVzdCkpOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92
ZShyZXF1ZXN0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggYTA2
YTE4MzY2NjIyOWE4NzcyNWZlOWRhODQ4NzMzMzNhYzk0YTU1My4uMWJjODFkMjA2NTUxMjFlZGUx
MWIzZGZlMDA1ZmQ1MTMxOTk3NjUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMjUsMjYgKzI1LDMwIEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hT
ZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAor
Y2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBXZWJQYWdlUHJveHk7
CiAKLWNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHsKK2Ns
YXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IDogcHVibGljIENh
bk1ha2VXZWFrUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAKICAg
ICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRvIGJlIHByZXNlbnRlZCB0byB0aGUgdXNlci4KLSAgICBS
ZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0ZVJlcXVlc3QodWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOworICAgIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4g
Y3JlYXRlUmVxdWVzdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpOwor
CisgICAgdm9pZCBhZGRQZW5kaW5nUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCYpOworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3QoTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QmKTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBXZWJQ
YWdlUHJveHkmIG1fcGFnZTsKKyAgICBXZWFrSGFzaFNldDxOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdD4gbV9wZW5kaW5nUmVxdWVzdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdkNmNmNDNhMDAx
MmMyOGI4ZGMyOTBlNzk5ZTlhOGM0YWE5MjA1YWQuLjE0Yzc5MzJlNjg4ZGY4MWNlMGY5MTgyYTJj
NzA1ZmM4NDQ5ZTQ0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNDgyLDcgKzQ4Miw2IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUmVmCiAgICAgLCBtX2Z1
bGxzY3JlZW5DbGllbnQobWFrZVVuaXF1ZTxBUEk6OkZ1bGxzY3JlZW5DbGllbnQ+KCkpCiAjZW5k
aWYKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCi0g
ICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9hdWRpYmxlQWN0aXZpdHlUaW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZXZWJQYWdlUHJveHk6OmNsZWFyQXVkaWJsZUFjdGl2aXR5KQogI2Vu
ZGlmCkBAIC04NDQ3LDIwICs4NDQ2LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8CiAjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRF
WFRNRU5VKQogCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlz
c2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQordm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJ
RCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5TdHJpbmcpOwotICAgIGF1dG8gcmVxdWVzdCA9
IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QocmVx
dWVzdElEKTsKLSAgICAKLSAgICBtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCgqdGhpcywgb3JpZ2luLmdldCgpLCBbcmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCldKGJvb2wgYWxsb3dlZCkgewotICAgICAgICBpZiAoYWxsb3dlZCkKLSAgICAg
ICAgICAgIHJlcXVlc3QtPmFsbG93KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlcXVl
c3QtPmRlbnkoKTsKLSAgICB9KTsKKyAgICBhdXRvIHJlcXVlc3QgPSBtX25vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCgqdGhpcywgb3JpZ2luLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpKTsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmlu
ZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlv
biBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZDUxM2FhYTNiZTI3
ZTRhNTE2MzFlYWIxM2ZmYWNhOTJhZjFjMGNjMC4uMGUwYWIwYzAwOTJkNTg3YWM5YmI0MzcxOWY1
MWU2Zjg5MzU0YmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTIxMjksNyArMjEyOSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9u
PiBsYXVuY2hQcm9jZXNzRm9yUmVsb2FkKCk7CiAKLSAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZyk7CisgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBT
dHJpbmcmIG9yaWdpblN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQp
PiYmKTsKICAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFn
LCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAgICB2
b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9p
ZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9u
SURzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA3ZDQxNjQzZmY4YWY0NTg3ZmYxODAzNWVjOGViZmZkODRhZTRhZTQ2Li5iNzYy
Yjc3ZmY0YWYwNTE4ZDQ1Njk1MWUyZTA5YmNkYWNmZTYwNGEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yODEsNyArMjgxLDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBOb3RpZmljYXRp
b24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCBy
ZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKSAtPiAoYm9vbCBhbGxvd2VkKSBB
c3luYwogICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9keSwgU3Ry
aW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIENhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBu
b3RpZmljYXRpb25JRCkKICAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9yPHVpbnQ2NF90PiBu
b3RpZmljYXRpb25JRHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA5MjlhMzNjNDg3NmUxMDM4MzcwZTRiOWIzMzJmYzBj
MmU1YzNiNmVhLi40Yzk5ZjI5MzEwNTJmYTI0MGUzYmRjYmRkODc3MTBhYjcxZWU2NjgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAKQEAgLTQzLDE0ICs0Myw2IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1zdGF0aWMgdWludDY0X3Qg
Z2VuZXJhdGVSZXF1ZXN0SUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVSZXF1ZXN0
SUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVSZXF1ZXN0SUQrKzsKLX0KLSNlbmRpZgotCiBSZWY8
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihwYWdlKSk7
CkBAIC04MiwxMSArNzQsMTUgQEAgdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OnN0YXJ0UmVxdWVzdChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEKICAgICBpZiAoIWFk
ZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47CiAKLSAgICB1aW50NjRfdCByZXF1
ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwotICAgIG1faWRUb09yaWdpbk1hcC5zZXQocmVx
dWVzdElELCBzZWN1cml0eU9yaWdpbik7CisgICAgbV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oc2Vj
dXJpdHlPcmlnaW4udG9TdHJpbmcoKSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlY3VyaXR5T3JpZ2luXShib29s
IGFsbG93ZWQpIG11dGFibGUgeworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBw
bGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRl
Y2lzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCksIGFsbG93ZWQpOwogCi0gICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIHVzZSBzZW5kV2l0aEFzeW5jUmVwbHkoKS4KLSAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
cmVxdWVzdElELCBzZWN1cml0eU9yaWdpbi50b1N0cmluZygpKSk7CisgICAgICAgIGF1dG8gY2Fs
bGJhY2tzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKHNlY3VyaXR5T3JpZ2luKTsKKyAgICAg
ICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykgeworICAgICAgICAgICAgaWYgKGNh
bGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChhbGxvd2VkID8g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkIDogTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOworICAgICAgICB9CisgICAgfSk7CiB9CiAjZW5kaWYK
IApAQCAtMTIwLDI3ICsxMTYsNCBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCkKICNlbmRpZgogfQogCi12
b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZU5vdGlm
aWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dl
ZCkKLXsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICBpZiAoIWlzUmVxdWVzdElEVmFs
aWQocmVxdWVzdElEKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBvcmlnaW4gPSBtX2lk
VG9PcmlnaW5NYXAudGFrZShyZXF1ZXN0SUQpOwotICAgIGlmIChvcmlnaW4uaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50
PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9u
KG9yaWdpbi50b1N0cmluZygpLCBhbGxvd2VkKTsKLQotICAgIGF1dG8gY2FsbGJhY2tzID0gbV9y
ZXF1ZXN0c1Blck9yaWdpbi50YWtlKG9yaWdpbik7Ci0gICAgZm9yIChhdXRvJiBjYWxsYmFjayA6
IGNhbGxiYWNrcykgewotICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFj
ay0+aGFuZGxlRXZlbnQoYWxsb3dlZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6
R3JhbnRlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICB9
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0SUQpOwotICAgIFVOVVNFRF9QQVJBTShh
bGxvd2VkKTsKLSNlbmRpZiAgICAKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IDRh
MGRmMTdiNjUxYzEyNzBlZTJkYjgzODk2ODdmNGMxMGMzYjFjMzEuLjEyMDcxYjFjNDVhYWY4ODRh
NjY0ZDE3NzUwNGE3ODcyMTBhODkwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC01NywxNCArNTcsMTEgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZywgYm9vbCBhbGxvd2VkKTsKICAgICB2b2lkIHJlbW92ZUFsbFBlcm1pc3Npb25zRm9y
VGVzdGluZygpOwogICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Np
b25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKLSAgICAK
IHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBh
Z2UqKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjaz4+PiBtX3JlcXVlc3RzUGVyT3JpZ2luOwotICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gbV9pZFRvT3JpZ2luTWFwOwogICAg
IFdlYlBhZ2UqIG1fcGFnZTsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggN2EwMjgwZjdhMWY4NTY0YTEwNzhhNDdmYzk1ODcy
MTA3NGZjZDIxZC4uMzQwMTQ1MmNmNWU2NDViOGY3MWY2OWFlZTRmMWUxNzllZjFmMjE3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2NTQs
MTEgKzQ2NTQsNiBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Np
b25EZWNpc2lvbihHZW9sb2NhdGlvbklkZW50aWZpZXIgZ2VvbAogfQogI2VuZGlmCiAKLXZvaWQg
V2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQotewotICAgIG5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2VkKTsKLX0KLQogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKIHZvaWQgV2ViUGFnZTo6dXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYmIG1lZGlhRGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBoYW5kbGUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmYzk2MjFlMzcyYzViNDA0MmI5ZWRi
Y2JjZjJlMzIzNjQzYWFlYTMxLi44Mzg0ZTFmZTM5ZDI2Zjc2MzlkOWI0ZmVkYjQ2MDc5NzAwNTBi
YzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0x
NzM2LDggKzE3MzYsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlR2VvbG9jYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24oR2VvbG9jYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGF1dGhvcml6YXRpb25Ub2tlbik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7
Ci0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2Fz
R3JhbnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1
ZGlvRGV2aWNlVUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2VVSUQsIFN0
cmluZyYmIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHVzZXJNZWRp
YUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBT
dHJpbmcmJiBpbnZhbGlkQ29uc3RyYWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAxYjNhNjgxZmNiNTFmNDEz
ZTIxYmE0MjU0NDJiOGMwYTFmZDVlMGFjLi4zZjk2MWQ0ODNkMjM0OWVlOTYwOWIzYjM0Njc5Nzkw
N2YyNmM1Y2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM5Myw5ICszOTMsNiBAQCBHZW5lcmF0ZVN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZQogICAgIFN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKICAgICBS
ZXN1bWVBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKIAotICAgICMgTm90aWZpY2F0aW9u
Ci0gICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBu
b3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQotCiAgICAgRnJlZXplTGF5ZXJUcmVlRHVlVG9T
d2lwZUFuaW1hdGlvbigpCiAgICAgVW5mcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5pbWF0aW9u
KCkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428403</attachid>
            <date>2021-05-12 12:50:27 -0700</date>
            <delta_ts>2021-05-12 13:11:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225711-20210512125027.patch</filename>
            <type>text/plain</type>
            <size>30179</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZDc3MmYzZTdkOWM5MmVk
ZTkzNDAxZjk3ZmRkYmMzNjgxOGNhM2IuLmU2YjQxOTcxMzUxY2IyZjI1Njk3ZmE5MDA0M2E5Njc5
NzY2ZTk0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSAvIE1vZGVybml6ZSBO
b3RpZmljYXRpb24gcGVybWlzc2lvbiBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgLyBNb2Rlcm5pemUgTm90aWZp
Y2F0aW9uIHBlcm1pc3Npb24gaW1wbGVtZW50YXRpb24uIFRoZSBtYWluIGNoYW5nZSB3YXMKKyAg
ICAgICAgYWRvcHRpbmcgc2VuZFdpdGhBc3luY1JlcGx5KCkgZm9yIHRoZSBJUEMgaW5zdGVhZCBv
ZiB1c2luZyAyIHNlcGFyYXRlIElQQyBtZXNzYWdlcworICAgICAgICBmb3IgdGhlIHJlcXVlc3Qg
YW5kIHRoZSBkZWNpc2lvbi4gQXMgYSByZXN1bHQsIHdlIGRvbid0IGhhdmUgdG8gZGVhbCB3aXRo
IHJlcXVlc3QKKyAgICAgICAgaWRlbnRpZmllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
byBiZWhhdmlvciBjaGFuZ2UgYW5kIGNvdmVyZWQgYnkgZXhpc3RpbmcgQVBJIHRlc3RzLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6On5O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpkaWRSZWNlaXZlRGVjaXNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmFkZFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlbW92
ZVBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyNzczNzYuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDUyMjI4NDc5MWQwNjhi
ZjE1OWY3ZTlkZjE3OGE3MGViNGVkNzFiOTguLjcxMWY1NDE1NjNiYjJhNGFmN2ZlZWZlMDQ0MTk5
MmNhYmM0ZmYyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CkBAIC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiwgRnVu
Y3Rpb248dm9pZChib29sKT4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIFNlY3VyaXR5T3JpZ2luJiwgV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KSB7IHJlcXVlc3QuZG9E
ZWZhdWx0QWN0aW9uKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIHsgcmVxdWVzdC5kZW55KCk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CisgICAg
dmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBSZWY8V2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4mJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXF1ZXN0aW5n
RG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgY3VycmVudERvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsgfQogCiAgICAgLy8gUHJpbnRpbmcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDU5NjM0OGQ3MjZlZGM0MmIwYzc3MDQwYjk5NWNjODg3
ZmUxZTU0YWMuLmY1MDk4ZDQxNjE1ODU3OGQyYWNiMzRkOTZkYWM5NjU2NDhjYjUzYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0zOCwxMCArMzgsMTAgQEAgV0tUeXBl
SUQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCiAKIHZvaWQgV0tO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCktPmFsbG93KCk7CisgICAgcmV0
dXJuIHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCktPmRpZFJlY2VpdmVEZWNp
c2lvbih0cnVlKTsKIH0KIAogdm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVu
eShXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KQogewotICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpLT5kZW55KCk7CisgICAgcmV0dXJuIHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCktPmRpZFJlY2VpdmVEZWNpc2lvbihmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA5OWI2NTVmYTRiNThkODQ5ZDlmNzNmMTg4NGFk
MWRmZmUzOGRiNTc1Li5mMGVjM2RmM2QwZTQwZTZlMmE2ZmM1M2VjNjU3NDEzODRjOTQyMTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE5ODgsMTIgKzE5
ODgsMTIgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbih0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFt
ZSksIHRvQVBJKCZ1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIHRvQVBJKCZ0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKSwgdG9BUEkoJnJlcXVlc3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBm
aW5hbAorICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBS
ZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+JiYgcGVybWlzc2lvblJlcXVlc3QpIGZp
bmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEko
Jm9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0LnB0cigpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXF1ZXN0aW5nRG9tYWluLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCAyNjI0N2VhOThkYjljNmNkMDU0N2Mx
YzgwYjAyMjA2NjljYTBiNDVkLi5mZGJmYjAzMWFiZGU3MWE1YTUzNGE1ZWJjNDQ0ZGI5ZDVhNTRl
Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlCiAgICAgaWYgKHByaXYtPm1h
ZGVEZWNpc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpdi0+cmVxdWVzdC0+YWxsb3co
KTsKKyAgICBwcml2LT5yZXF1ZXN0LT5kaWRSZWNlaXZlRGVjaXNpb24odHJ1ZSk7CiAgICAgcHJp
di0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKIH0KIApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lv
blJlcXVlc3QqIHJlcQogICAgIGlmIChwcml2LT5tYWRlRGVjaXNpb24pCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHByaXYtPnJlcXVlc3QtPmRlbnkoKTsKKyAgICBwcml2LT5yZXF1ZXN0LT5kaWRS
ZWNlaXZlRGVjaXNpb24oZmFsc2UpOwogICAgIHByaXYtPm1hZGVEZWNpc2lvbiA9IHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJ
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xp
ZW50LmNwcAppbmRleCBjMDI2ZWM2OTdkOWM5ZTVlODM1ZWRiM2NjZWU3MjU0ODMzMWRlYmM0Li45
NmNiNTU0NDE3NGY5MzViYWQ1MzJhOWEyMjBkNzQ3NWI5YzlhOWUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0zMDUs
OSArMzA1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9u
UmVxdWVzdChtX3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1QoZGV2aWNlSW5mb1Bl
cm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCi0gICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBSZWY8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q+JiYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCiAgICAgewotICAgICAg
ICBHUmVmUHRyPFdlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBub3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXROb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdENyZWF0ZShOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkpOworICAgICAgICBHUmVmUHRyPFdlYktp
dE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCA9IGFkb3B0R1JlZih3ZWJraXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENyZWF0
ZShwZXJtaXNzaW9uUmVxdWVzdC5wdHIoKSkpOwogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBl
cm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGU5NzkxN2Y4ODkwYjUxZjNlMTNi
OGI3NGIyOWI0OGQyYjczMWZiZTYuLjAxZmM2OGM1Y2EzZTUzYThiZWNlOTU0YTdkMjQ4MzNiNjBk
MDRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAg
LTQ4LDYgKzQ4LDggQEAgY2xhc3MgUmVnaXN0cmFibGVEb21haW47CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKwogY2xhc3MgVUlE
ZWxlZ2F0ZSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxVSURlbGVnYXRlPiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMTcsNyArMTE5LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgZmxvYXQgZm9vdGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkm
KSBmaW5hbDsKICAgICAgICAgdm9pZCBkcmF3SGVhZGVyKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1l
UHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgZmluYWw7CiAgICAgICAgIHZvaWQgZHJhd0Zv
b3RlcihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYp
IGZpbmFsOwotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2
b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiwgUmVmPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiYmKSBmaW5hbDsKICAgICAgICAg
dm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5JiwgV0tQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAg
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViSGl0
VGVzdFJlc3VsdERhdGEmLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgQVBJOjpPYmpl
Y3QqKTsKICAgICAgICAgdm9pZCBkaWRDbGlja0F1dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYs
IEFQSTo6T2JqZWN0KikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbQppbmRleCBlYWQ5YjFiNzU2NTE5MjI2NjVhOTk0OWI4ZmM3ZmRiMzVlMTYyODVj
Li5iMGUwNTEwMDNlZWM4MTQ2MjIzMWE1YTMzYjhkZGQ1YzQ2YzMyNmQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNp
bXBvcnQgIk1lZGlhVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2ZW50Lmgi
CiAjaW1wb3J0ICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgorI2ltcG9ydCAiTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaCIKICNpbXBvcnQgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgiCiAjaW1wb3J0ICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
IgogI2ltcG9ydCAiVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgpAQCAtOTQ2LDI0
ICs5NDcsMjQgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6c2F2ZURhdGFUb0ZpbGVJbkRv
d25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdAogICAgIFsoaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgp
LmdldCgpIHNhdmVEYXRhVG9GaWxlOndyYXBwZXIoZGF0YSkgc3VnZ2VzdGVkRmlsZW5hbWU6c3Vn
Z2VzdGVkRmlsZW5hbWUgbWltZVR5cGU6bWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6b3JpZ2luYXRp
bmdVUkxdOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBSZWY8Tm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q+JiYgcGVybWlzc2lvblJlcXVlc3QpCiB7CiAgICAgaWYgKCFtX3Vp
RGVsZWdhdGUpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlcikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1f
ZGVsZWdhdGUuZ2V0KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjaGVja2Vy
ID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBA
c2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0
eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkg
cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjp3cmFwcGVyKHNl
Y3VyaXR5T3JpZ2luKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVj
a2VyKV0gKEJPT0wgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQo
KSByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIo
c2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3Blcm1pc3Npb25S
ZXF1ZXN0ID0gV1RGTW92ZShwZXJtaXNzaW9uUmVxdWVzdCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNo
ZWNrZXIpXSAoQk9PTCByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29t
cGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihyZXN1bHQpOworICAgICAgICBwZXJtaXNzaW9uUmVxdWVzdC0+ZGlkUmVjZWl2
ZURlY2lzaW9uKHJlc3VsdCk7CiAgICAgfSkuZ2V0KCldOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggMGI3ZWVmOTQ2MDEyOGM1NjU2OTFiMTUwYzJm
ZjdiZWNiNDkzNzBhOC4uZTY2MjRkMTQzYTBjOGUzYzIzYzk2ZmM0Mjg1MTQ5NzQzNjkzYTA1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMjYsMzcgKzI2
LDQ3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OwogCi1jbGFzcyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiB7CitjbGFzcyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiwgcHVibGljIENhbk1ha2VXZWFr
UHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgc3RhdGljIFJlZjxOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiBtYW5hZ2VyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
bWFuYWdlciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICB9Ci0gICAgCi0gICAg
dm9pZCBhbGxvdygpCisKKyAgICB+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoKQogICAg
IHsKLSAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1f
Y29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIodHJ1ZSk7CisgICAgICAgIGRpZFJlY2VpdmVEZWNpc2lvbihmYWxzZSk7CiAgICAgfQotCi0g
ICAgdm9pZCBkZW55KCkKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVEZWNpc2lvbihib29sIGFs
bG93ZWQpCiAgICAgewotICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6
ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpCi0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIGlmICghbV9jb21wbGV0aW9uSGFuZGxlcikK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGFsbG93
ZWQpOworICAgICAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICAgICAgbV9tYW5hZ2VyLT5yZW1v
dmVQZW5kaW5nUmVxdWVzdCgqdGhpcyk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCi0gICAgICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkKLSAgICB7IH0KKyAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX21h
bmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgICAgICwgbV9jb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2Nv
bXBsZXRpb25IYW5kbGVyKTsKKyAgICAgICAgbWFuYWdlci5hZGRQZW5kaW5nUmVxdWVzdCgqdGhp
cyk7CisgICAgfQogICAgIAotICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhh
bmRsZXI7CisgICAgV2Vha1B0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eT4gbV9tYW5hZ2VyOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29t
cGxldGlvbkhhbmRsZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
aW5kZXggMzYzMzhlZDIxOWM2MDM2Y2YyZDZkYmQxZmI1ZjA0NjRjY2FmZTJmMC4uODQ5MGU3NGI4
MmQxNjFhMDY1YmJiMTU2ZThmOGQ5ZTc0MWVkZWFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTMzLDI2
ICszMywyOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQorTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5KCkgPSBkZWZhdWx0OworCit2b2lkIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMoKQogeworICAgIGZv
ciAoYXV0byYgcmVxdWVzdCA6IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSkp
CisgICAgICAgIHJlcXVlc3QuZGlkUmVjZWl2ZURlY2lzaW9uKGZhbHNlKTsKIH0KIAotdm9pZCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVl
c3RzKCkKK1JlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sIGFsbG93ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHJldHVy
biBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmFkZFBlbmRpbmdSZXF1ZXN0KE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNo
YW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKLSAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBw
ZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCi0gICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKKyAgICBB
U1NFUlQoIW1fcGVuZGluZ1JlcXVlc3RzLmNvbnRhaW5zKHJlcXVlc3QpKTsKKyAgICBtX3BlbmRp
bmdSZXF1ZXN0cy5hZGQocmVxdWVzdCk7CiB9CiAKLVJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0
ZVJlcXVlc3QodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit2b2lkIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZW1vdmVQZW5kaW5nUmVxdWVzdChOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBhdXRvIHJlcXVlc3QgPSBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFt0aGlzLCBub3RpZmljYXRpb25JRCwg
cGFnZSA9IG1ha2VSZWYobV9wYWdlKV0oYm9vbCBhbGxvd2VkKSB7Ci0gICAgICAgIG1fcGVuZGlu
Z1JlcXVlc3RzLnRha2Uobm90aWZpY2F0aW9uSUQpOwotICAgICAgICBwYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5v
dGlmaWNhdGlvbklELCBhbGxvd2VkKSk7Ci0gICAgfSk7Ci0gICAgbV9wZW5kaW5nUmVxdWVzdHMu
YWRkKG5vdGlmaWNhdGlvbklELCByZXF1ZXN0LnB0cigpKTsKLSAgICByZXR1cm4gcmVxdWVzdDsK
KyAgICBBU1NFUlQobV9wZW5kaW5nUmVxdWVzdHMuY29udGFpbnMocmVxdWVzdCkpOworICAgIG1f
cGVuZGluZ1JlcXVlc3RzLnJlbW92ZShyZXF1ZXN0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKaW5kZXggYTA2YTE4MzY2NjIyOWE4NzcyNWZlOWRhODQ4NzMzMzNhYzk0YTU1
My4uMWJjODFkMjA2NTUxMjFlZGUxMWIzZGZlMDA1ZmQ1MTMxOTk3NjUzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApA
QCAtMjUsMjYgKzI1LDMwIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7
CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5IHsKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5IDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5PiB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKTsKIAogICAgIHZvaWQgaW52YWxp
ZGF0ZVJlcXVlc3RzKCk7CiAKICAgICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRvIGJlIHByZXNlbnRl
ZCB0byB0aGUgdXNlci4KLSAgICBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNy
ZWF0ZVJlcXVlc3QodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIFJlZjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlUmVxdWVzdChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgYWxsb3dlZCk+JiYpOworCisgICAgdm9pZCBhZGRQZW5kaW5nUmVxdWVzdChOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCYpOworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3Qo
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QmKTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+PiBtX3BlbmRp
bmdSZXF1ZXN0czsKLSAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKyAgICBXZWFrSGFzaFNldDxO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gbV9wZW5kaW5nUmVxdWVzdHM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDdkNmNmNDNhMDAxMmMyOGI4ZGMyOTBlNzk5ZTlhOGM0YWE5MjA1YWQuLjE0Yzc5
MzJlNjg4ZGY4MWNlMGY5MTgyYTJjNzA1ZmM4NDQ5ZTQ0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDgyLDcgKzQ4Miw2IEBAIFdlYlBhZ2VQcm94eTo6
V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJv
Y2VzcywgUmVmCiAgICAgLCBtX2Z1bGxzY3JlZW5DbGllbnQobWFrZVVuaXF1ZTxBUEk6OkZ1bGxz
Y3JlZW5DbGllbnQ+KCkpCiAjZW5kaWYKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKnRoaXMpCi0gICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigqdGhpcykKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9hdWRpYmxl
QWN0aXZpdHlUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJQYWdlUHJveHk6OmNsZWFy
QXVkaWJsZUFjdGl2aXR5KQogI2VuZGlmCkBAIC04NDQ3LDIwICs4NDQ2LDExIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdl
dEZyYW1lLCBWZWN0b3I8CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wgYWxsb3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFpc1Jl
cXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGF1dG8gb3Jp
Z2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5TdHJpbmcp
OwotICAgIGF1dG8gcmVxdWVzdCA9IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNyZWF0ZVJlcXVlc3QocmVxdWVzdElEKTsKLSAgICAKLSAgICBtX3VpQ2xpZW50LT5kZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCgqdGhpcywgb3JpZ2luLmdl
dCgpLCBbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKGJvb2wgYWxsb3dlZCkgewotICAgICAg
ICBpZiAoYWxsb3dlZCkKLSAgICAgICAgICAgIHJlcXVlc3QtPmFsbG93KCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKLSAgICB9KTsKKyAgICBhdXRvIHJlcXVl
c3QgPSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX3VpQ2xpZW50LT5kZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCgqdGhpcywgb3JpZ2luLmdldCgpLCBX
VEZNb3ZlKHJlcXVlc3QpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dOb3RpZmljYXRp
b24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcm
IGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggZDUxM2FhYTNiZTI3ZTRhNTE2MzFlYWIxM2ZmYWNhOTJhZjFjMGNjMC4uMGUwYWIw
YzAwOTJkNTg3YWM5YmI0MzcxOWY1MWU2Zjg5MzU0YmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTIxMjksNyArMjEyOSw3IEBAIHByaXZhdGU6CiAKICAgICBS
ZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsYXVuY2hQcm9jZXNzRm9yUmVsb2FkKCk7CiAKLSAgICB2
b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
LCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZyk7CisgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sIGFsbG93ZWQpPiYmKTsKICAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29u
c3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25V
UkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKTsKICAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCk7CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVp
bnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3ZDQxNjQzZmY4YWY0NTg3ZmYxODAzNWVj
OGViZmZkODRhZTRhZTQ2Li5iNzYyYjc3ZmY0YWYwNTE4ZDQ1Njk1MWUyZTA5YmNkYWNmZTYwNGEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yODEsNyArMjgxLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRp
ZgogCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQor
ICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVudGlmaWVy
KSAtPiAoYm9vbCBhbGxvd2VkKSBBc3luYwogICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRp
dGxlLCBTdHJpbmcgYm9keSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5n
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5n
IG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIENhbmNlbE5v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICBDbGVhck5vdGlmaWNhdGlv
bnMoVmVjdG9yPHVpbnQ2NF90PiBub3RpZmljYXRpb25JRHMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA5MjlhMzNjNDg3
NmUxMDM4MzcwZTRiOWIzMzJmYzBjMmU1YzNiNmVhLi40Yzk5ZjI5MzEwNTJmYTI0MGUzYmRjYmRk
ODc3MTBhYjcxZWU2NjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTQzLDE0ICs0Myw2IEBACiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVSZXF1ZXN0SUQoKQotewotICAgIHN0YXRpYyB1
aW50NjRfdCB1bmlxdWVSZXF1ZXN0SUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVSZXF1ZXN0SUQr
KzsKLX0KLSNlbmRpZgotCiBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
PiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBw
YWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcihwYWdlKSk7CkBAIC04MiwxMSArNzQsMTUgQEAgdm9pZCBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEKICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47
CiAKLSAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwotICAgIG1f
aWRUb09yaWdpbk1hcC5zZXQocmVxdWVzdElELCBzZWN1cml0eU9yaWdpbik7CisgICAgbV9wYWdl
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlm
aWNhdGlvblBlcm1pc3Npb24oc2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IHNlY3VyaXR5T3JpZ2luXShib29sIGFsbG93ZWQpIG11dGFibGUgeworICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRp
ZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCksIGFs
bG93ZWQpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBzZW5kV2l0aEFzeW5jUmVw
bHkoKS4KLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24ocmVxdWVzdElELCBzZWN1cml0eU9yaWdpbi50b1N0cmluZygp
KSk7CisgICAgICAgIGF1dG8gY2FsbGJhY2tzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKHNl
Y3VyaXR5T3JpZ2luKTsKKyAgICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykg
eworICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5o
YW5kbGVFdmVudChhbGxvd2VkID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFu
dGVkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOworICAgICAgICB9
CisgICAgfSk7CiB9CiAjZW5kaWYKIApAQCAtMTIwLDI3ICsxMTYsNCBAQCB2b2lkIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0
aW5nKCkKICNlbmRpZgogfQogCi12b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBy
ZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKLXsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAg
ICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgYXV0byBvcmlnaW4gPSBtX2lkVG9PcmlnaW5NYXAudGFrZShyZXF1ZXN0SUQpOwotICAgIGlm
IChvcmlnaW4uaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRpZFVwZGF0
ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKG9yaWdpbi50b1N0cmluZygpLCBhbGxvd2VkKTsKLQotICAg
IGF1dG8gY2FsbGJhY2tzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKG9yaWdpbik7Ci0gICAg
Zm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykgewotICAgICAgICBpZiAoY2FsbGJhY2sp
Ci0gICAgICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoYWxsb3dlZCA/IE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbjo6R3JhbnRlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbjo6RGVuaWVkKTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0SUQp
OwotICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKLSNlbmRpZiAgICAKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oCmluZGV4IDRhMGRmMTdiNjUxYzEyNzBlZTJkYjgzODk2ODdmNGMxMGMzYjFj
MzEuLjEyMDcxYjFjNDVhYWY4ODRhNjY0ZDE3NzUwNGE3ODcyMTBhODkwNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC01Nywx
NCArNTcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGlu
Zyhjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2VkKTsKICAgICB2b2lkIHJl
bW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOwogICAgIAotICAgIHZvaWQgZGlkUmVjZWl2
ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwg
Ym9vbCBhbGxvd2VkKTsKLSAgICAKIHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQog
ICAgIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBWZWN0b3I8UmVmUHRyPFdl
YkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4+PiBtX3JlcXVlc3RzUGVyT3Jp
Z2luOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4g
bV9pZFRvT3JpZ2luTWFwOwogICAgIFdlYlBhZ2UqIG1fcGFnZTsKICNlbmRpZgogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggN2EwMjgwZjdh
MWY4NTY0YTEwNzhhNDdmYzk1ODcyMTA3NGZjZDIxZC4uMzQwMTQ1MmNmNWU2NDViOGY3MWY2OWFl
ZTRmMWUxNzllZjFmMjE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTQ2NTQsMTEgKzQ2NTQsNiBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbihHZW9sb2NhdGlvbklkZW50aWZpZXIgZ2Vv
bAogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQotewot
ICAgIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNlaXZlTm90
aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2VkKTsKLX0K
LQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIHZvaWQgV2ViUGFnZTo6dXNlck1lZGlhQWNj
ZXNzV2FzR3JhbnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYmIGF1ZGlvRGV2aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0
cmluZyYmIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJiBoYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBm
Yzk2MjFlMzcyYzViNDA0MmI5ZWRiY2JjZjJlMzIzNjQzYWFlYTMxLi44Mzg0ZTFmZTM5ZDI2Zjc2
MzlkOWI0ZmVkYjQ2MDc5NzAwNTBiYzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xNzM2LDggKzE3MzYsNiBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24oR2VvbG9jYXRpb25JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGF1dGhvcml6YXRpb25Ub2tlbik7CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQsIGJvb2wgYWxsb3dlZCk7Ci0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZv
aWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlVUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiYgdmlkZW9EZXZpY2VVSUQsIFN0cmluZyYmIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgcmVhc29uLCBTdHJpbmcmJiBpbnZhbGlkQ29uc3RyYWludCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCAxYjNhNjgxZmNiNTFmNDEzZTIxYmE0MjU0NDJiOGMwYTFmZDVlMGFjLi4zZjk2MWQ0ODNk
MjM0OWVlOTYwOWIzYjM0Njc5NzkwN2YyNmM1Y2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM5Myw5ICszOTMs
NiBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6
OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFN1c3BlbmRBbGxNZWRpYVBsYXliYWNr
KCkgLT4gKCkgQXN5bmMKICAgICBSZXN1bWVBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMK
IAotICAgICMgTm90aWZpY2F0aW9uCi0gICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Np
b25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQotCiAgICAg
RnJlZXplTGF5ZXJUcmVlRHVlVG9Td2lwZUFuaW1hdGlvbigpCiAgICAgVW5mcmVlemVMYXllclRy
ZWVEdWVUb1N3aXBlQW5pbWF0aW9uKCkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428407</attachid>
            <date>2021-05-12 13:11:29 -0700</date>
            <delta_ts>2021-05-12 13:18:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225711-20210512131128.patch</filename>
            <type>text/plain</type>
            <size>34259</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZDc3MmYzZTdkOWM5MmVk
ZTkzNDAxZjk3ZmRkYmMzNjgxOGNhM2IuLjc0MDAwNTRlODY3MjQyZmJiODAwNjM2MzFjNDQ3OWNi
ZjlmNDk0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSAvIE1vZGVybml6ZSBO
b3RpZmljYXRpb24gcGVybWlzc2lvbiBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgLyBNb2Rlcm5pemUgTm90aWZp
Y2F0aW9uIHBlcm1pc3Npb24gaW1wbGVtZW50YXRpb24uIFRoZSBtYWluIGNoYW5nZSB3YXMKKyAg
ICAgICAgYWRvcHRpbmcgc2VuZFdpdGhBc3luY1JlcGx5KCkgZm9yIHRoZSBJUEMgaW5zdGVhZCBv
ZiB1c2luZyAyIHNlcGFyYXRlIElQQyBtZXNzYWdlcworICAgICAgICBmb3IgdGhlIHJlcXVlc3Qg
YW5kIHRoZSBkZWNpc2lvbi4gQXMgYSByZXN1bHQsIHdlIGRvbid0IGhhdmUgdG8gZGVhbCB3aXRo
IHJlcXVlc3QKKyAgICAgICAgaWRlbnRpZmllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
byBiZWhhdmlvciBjaGFuZ2UgYW5kIGNvdmVyZWQgYnkgZXhpc3RpbmcgQVBJIHRlc3RzLgorCisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAg
IChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKHdlYmtpdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAg
ICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6fk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmRpZFJl
Y2VpdmVEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
OgorCiAyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgdG8gcjI3NzM3Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVlMjVh
NTQwNmVhMWU0NjQzN2QwZWVhNzQ2ZjEyOWRlZTBlOWEwMTMuLjI1OGY5ZDNiZjZmZmE3MjZhOTM5
MWQxNTU1MWM3NTA0YWZhZGI2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDY5LDcgKzQ2OSw2IEBAIFVJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAogVUlQ
cm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL01lZGlhL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwCiAKLVVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDUyMjI4NDc5MWQwNjhiZjE1OWY3ZTlkZjE3OGE3MGVi
NGVkNzFiOTguLjIxNzVjNTE4ODIxZWZmZmYwNjA1NzhjNDE4ZTIyNDgxNzYxMGQ2NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01NCw3ICs1NCw2IEBA
IHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7Ci1jbGFzcyBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFz
cyBXZWJGcmFtZVByb3h5OwpAQCAtMTM3LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0
eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVz
dCkgeyByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSB7IHJlcXVlc3QuZGVu
eSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZy
YW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgcmVxdWVzdGluZ0Rv
bWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGN1cnJlbnREb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIodHJ1ZSk7IH0KIAogICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcAppbmRleCA1OTYzNDhkNzI2ZWRjNDJiMGM3NzA0MGI5OTVjYzg4N2Zl
MWU1NGFjLi5mNTA5OGQ0MTYxNTg1NzhkMmFjYjM0ZDk2ZGFjOTY1NjQ4Y2I1M2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMzgsMTAgKzM4LDEwIEBAIFdLVHlwZUlE
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQogCiB2b2lkIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQogewotICAgIHJldHVybiB0
b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5hbGxvdygpOworICAgIHJldHVy
biB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5kaWRSZWNlaXZlRGVjaXNp
b24odHJ1ZSk7CiB9CiAKIHZvaWQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnko
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCkKIHsKLSAgICByZXR1cm4gdG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KS0+ZGVueSgpOworICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpLT5kaWRSZWNlaXZlRGVjaXNpb24oZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFk
ZmZlMzhkYjU3NS4uYjBiNjQ1MGI4NTg3ZThlZjQ5NGYyZTMwNzFiNTdlMjJkYmE5MmNjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xOTg4LDcgKzE5ODgs
NyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3Qg
V0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQuY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwg
dG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9BUEkoJnRvcExldmVsRG9jdW1lbnRP
cmlnaW4pLCB0b0FQSSgmcmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAg
ICAgIH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiBvcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKICAgICAgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuY3BwCmluZGV4IDI2MjQ3ZWE5OGRiOWM2Y2QwNTQ3YzFjODBiMDIyMDY2OWNhMGI0
NWQuLmZkYmZiMDMxYWJkZTcxYTVhNTM0YTVlYmM0NDRkYjlkNWE1NGVjOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAg
c3RhdGljIHZvaWQgd2Via2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdCogcmUKICAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOworICAgIHByaXYtPnJl
cXVlc3QtPmRpZFJlY2VpdmVEZWNpc2lvbih0cnVlKTsKICAgICBwcml2LT5tYWRlRGVjaXNpb24g
PSB0cnVlOwogfQogCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxCiAg
ICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpdi0+
cmVxdWVzdC0+ZGVueSgpOworICAgIHByaXYtPnJlcXVlc3QtPmRpZFJlY2VpdmVEZWNpc2lvbihm
YWxzZSk7CiAgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IGMw
MjZlYzY5N2Q5YzllNWU4MzVlZGIzY2NlZTcyNTQ4MzMxZGViYzQuLjQ5YWI4MzJmOWU3ZWE1NjZi
NDk2YWZiZTc5M2YzM2E5MGY4ODc2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTMwNSw3ICszMDUsNyBAQCBwcml2
YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmll
dywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChkZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3Qu
Z2V0KCkpKTsKICAgICB9CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5Jiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2Vk
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICB7CiAgICAgICAgIEdSZWZQdHI8V2Vi
S2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q3Jl
YXRlKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpLnB0cigpKSk7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lv
blJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKG5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKaW5kZXggZTk3OTE3Zjg4OTBiNTFmM2UxM2I4Yjc0YjI5YjQ4ZDJiNzMx
ZmJlNi4uNzg3MWVkNDczOGI1Y2ZjN2U2NDc1N2ZmNjQyY2ZiZTUxMzAzYTRlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTE3LDcgKzExNyw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGZsb2F0IGZvb3RlckhlaWdodChXZWJQYWdlUHJveHkmLCBXZWJG
cmFtZVByb3h5JikgZmluYWw7CiAgICAgICAgIHZvaWQgZHJhd0hlYWRlcihXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIGZpbmFsOwogICAgICAgICB2
b2lkIGRyYXdGb290ZXIoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OkZs
b2F0UmVjdCYmKSBmaW5hbDsKLSAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwg
RnVuY3Rpb248dm9pZChib29sKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1
cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJikgZmlu
YWw7CiAgICAgICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYlBhZ2VQ
cm94eSYsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIEFQSTo6RGljdGlvbmFyeSYpIGZp
bmFsOwogICAgICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYlBhZ2VQcm94eSYs
IGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmll
cj4sIEFQSTo6T2JqZWN0Kik7CiAgICAgICAgIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihX
ZWJQYWdlUHJveHkmLCBBUEk6Ok9iamVjdCopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggZWFkOWIxYjc1NjUxOTIyNjY1YTk5NDliOGZj
N2ZkYjM1ZTE2Mjg1Yy4uZDU3Y2NhYTc1OTZhZDdjNmU1NGJkYWE2ZWE0OTlkNTM0NDc5Zjg2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC05NDYs
NyArOTQ2LDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6c2F2ZURhdGFUb0ZpbGVJbkRv
d25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdAogICAgIFsoaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgp
LmdldCgpIHNhdmVEYXRhVG9GaWxlOndyYXBwZXIoZGF0YSkgc3VnZ2VzdGVkRmlsZW5hbWU6c3Vn
Z2VzdGVkRmlsZW5hbWUgbWltZVR5cGU6bWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6b3JpZ2luYXRp
bmdVUkxdOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFt
X3VpRGVsZWdhdGUpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggMGI3ZWVmOTQ2MDEy
OGM1NjU2OTFiMTUwYzJmZjdiZWNiNDkzNzBhOC4uZjkzMWY0YjNmMTdlZTBkMjNiYjA4ZTA1MmVj
NDBmZGFiODM1OWQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMjYsMzcgKzI2LDM1IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7Ci0KIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoRnVuY3Rpb248dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0PiBjcmVhdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAg
fQotICAgIAotICAgIHZvaWQgYWxsb3coKQorCisgICAgfk5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KCkKICAgICB7Ci0gICAgICAgIGlmIChhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gc3Rk
OjpleGNoYW5nZShtX2NvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSkKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHRydWUpOworICAgICAgICBkaWRSZWNlaXZlRGVjaXNpb24oZmFsc2Up
OwogICAgIH0KLQotICAgIHZvaWQgZGVueSgpCisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlRGVj
aXNpb24oYm9vbCBhbGxvd2VkKQogICAgIHsKLSAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbkhh
bmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKQotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICBpZiAobV9jb21wbGV0
aW9uSGFuZGxlcikKKyAgICAgICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoYWxsb3dlZCk7CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KEZ1bmN0
aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgZXhwbGljaXQgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgOiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKQotICAgIHsgfQorICAgIHsKKyAgICB9CiAgICAgCi0gICAgRnVu
Y3Rpb248dm9pZChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjMz
OGVkMjE5YzYwMzZjZjJkNmRiZDFmYjVmMDQ2NGNjYWZlMmYwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIgotCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKLSNpbmNs
dWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLU5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFn
ZSkKLXsKLX0KLQotdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKLXsKLSAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0cyA9IHN0
ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7Ci0gICAgZm9yIChhdXRvJiByZXF1
ZXN0IDogcGVuZGluZ1JlcXVlc3RzLnZhbHVlcygpKQotICAgICAgICByZXF1ZXN0LT5kZW55KCk7
Ci19Ci0KLVJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpCi17Ci0gICAgYXV0byByZXF1ZXN0ID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q6OmNyZWF0ZShbdGhpcywgbm90aWZpY2F0aW9uSUQsIHBhZ2UgPSBtYWtlUmVmKG1fcGFn
ZSldKGJvb2wgYWxsb3dlZCkgewotICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKG5vdGlm
aWNhdGlvbklEKTsKLSAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVj
ZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3dl
ZCkpOwotICAgIH0pOwotICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChub3RpZmljYXRpb25JRCwg
cmVxdWVzdC5wdHIoKSk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDZhMTgzNjY2
MjI5YTg3NzI1ZmU5ZGE4NDg3MzMzM2FjOTRhNTUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBXZWJQYWdlUHJveHk7Ci0KLWNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5IHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKLQotICAgIHZvaWQgaW52YWxp
ZGF0ZVJlcXVlc3RzKCk7Ci0KLSAgICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRvIGJlIHByZXNlbnRl
ZCB0byB0aGUgdXNlci4KLSAgICBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNy
ZWF0ZVJlcXVlc3QodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotCi1wcml2YXRlOgotICAgIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4+IG1f
cGVuZGluZ1JlcXVlc3RzOwotICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCA3ZDZjZjQzYTAwMTJjMjhiOGRjMjkwZTc5OWU5YThjNGFhOTIwNWFkLi5hNDViMDJlMTFk
M2Y0ODBmMDMxMzdhNWEwODU1MjUxYmY2YTZkZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ4Miw3ICs0ODIsNiBAQCBXZWJQYWdlUHJveHk6OldlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IFJlZgogICAgICwgbV9mdWxsc2NyZWVuQ2xpZW50KG1ha2VVbmlxdWU8QVBJOjpGdWxsc2NyZWVu
Q2xpZW50PigpKQogI2VuZGlmCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCp0aGlzKQotICAgICwgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKnRoaXMpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAsIG1fYXVkaWJsZUFjdGl2
aXR5VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUGFnZVByb3h5OjpjbGVhckF1ZGli
bGVBY3Rpdml0eSkKICNlbmRpZgpAQCAtNzYzMiw4ICs3NjMxLDYgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVhc29uKQogICAgIG1f
Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7
CiAjZW5kaWYKIAotICAgIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmlu
dmFsaWRhdGVSZXF1ZXN0cygpOwotCiAgICAgc2V0VG9vbFRpcCh7IH0pOwogCiAgICAgbV9tYWlu
RnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZmFsc2U7CkBAIC04NDQ3LDIwICs4NDQ0LDEw
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0
UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCi0gICAgICAgIHJldHVybjsKLQog
ICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhv
cmlnaW5TdHJpbmcpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fbm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QocmVxdWVzdElEKTsKLSAgICAKLSAgICBtX3Vp
Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCgqdGhp
cywgb3JpZ2luLmdldCgpLCBbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKGJvb2wgYWxsb3dl
ZCkgewotICAgICAgICBpZiAoYWxsb3dlZCkKLSAgICAgICAgICAgIHJlcXVlc3QtPmFsbG93KCk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKLSAgICB9KTsKKyAg
ICBtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCgqdGhpcywgb3JpZ2luLmdldCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUs
IGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcm
IHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24g
ZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQ1MTNhYWEzYmUyN2U0
YTUxNjMxZWFiMTNmZmFjYTkyYWYxYzBjYzAuLjFlMjM5ODFjNTdlYTJmMTY3NzI3ODdlNzdlYzg4
ODY0OTUwMWRlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00
Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlBERlBsdWdpbklkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJQYWdlTG9hZFN0YXRlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEFjY2Vzc0ludGVudC5o
IgpAQCAtMjEyOSw3ICsyMTI4LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmln
YXRpb24+IGxhdW5jaFByb2Nlc3NGb3JSZWxvYWQoKTsKIAotICAgIHZvaWQgcmVxdWVzdE5vdGlm
aWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luU3RyaW5nKTsKKyAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxs
b3dlZCk+JiYpOwogICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5n
JiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9u
LCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwog
ICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAg
ICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmlj
YXRpb25JRHMpOwpAQCAtMjYwMCw3ICsyNTk5LDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5PiBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVy
OwogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKLSAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA3ZDQxNjQzZmY4YWY0NTg3ZmYxODAzNWVjOGViZmZkODRhZTRh
ZTQ2Li5iNzYyYjc3ZmY0YWYwNTE4ZDQ1Njk1MWUyZTA5YmNkYWNmZTYwNGEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yODEs
NyArMjgxLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBO
b3RpZmljYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1
aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKSAtPiAoYm9vbCBh
bGxvd2VkKSBBc3luYwogICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcg
Ym9keSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIENhbmNlbE5vdGlmaWNhdGlvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9yPHVp
bnQ2NF90PiBub3RpZmljYXRpb25JRHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjgwMWZjNTEyMTcwY2JmOTlhNjI0OTcxMjcwMWU0
YTFmMDliMjA4Li41MTRiMWUwNmQ5NjZiZmJiODJlMjU2MDIwMTM1ZDk5ZDRjMDA1ODZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTgy
Miw3ICs4MjIsNiBAQAogCQkzMUEyRUM0OTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEy
RUM0MjE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi87IH07CiAJCTMxQTJF
QzRCMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQ0MTQ4OTk3
QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJMzFB
MkVDNEUxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0NzE0ODk5N0Mx
MDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLzsgfTsKLQkJMzFBMkVDNTIx
NDg5OTgxOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEy
RUM1MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCAqLzsgfTsKIAkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8qIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCAqLzsgfTsKIAkJMzFBMkVDNzQxNDhENTlDQTAwODEwRDcxIC8qIFdL
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzcyMTQ4RDU5QkIwMDgxMEQ3MSAvKiBXS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzFBNTA1RkExNjgwMDI1NTAwQTkzMEVCIC8qIFdlYkNvbnRl
eHRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxQTUwNUY4MTY4MDAyNTUwMEE5MzBFQiAvKiBXZWJDb250ZXh0Q2xpZW50LmggKi87IH07CkBA
IC0zNTc2LDggKzM1NzUsNiBAQAogCQkzMUEyRUM0NDE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMUEyRUM0NjE0ODk5N0MwMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUEyRUM0NzE0ODk5
N0MxMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMkVDNEYxNDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBMkVDNTExNDg5OTgxNTAwODEw
RDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTJFQzUzMTQ4OTk4MjUwMDgxMEQ3MSAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUEy
RUM3MjE0OEQ1OUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTJFQzc1MTQ4RDY1QkIwMDgxMEQ3MSAvKiBXS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzgzNyw4ICs3ODM0LDYgQEAKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCi0JCQkJMzFBMkVDNEYxNDg5OTgwNTAw
ODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAq
LywKLQkJCQkzMUEyRUM1MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKIAkJCQkzMUEyRUM0MTE0ODk5N0JFMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKIAkJCQkzMUEyRUM0MjE0ODk5N0JFMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uLmggKi8sCiAJCQkJMzFBMkVDNDMxNDg5OTdCRTAwODEwRDcxIC8q
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8sCkBAIC0xMjExMCw3ICsxMjEwNSw2
IEBACiAJCQkJNTcwREFBQUUyMzAyNkY1QzAwRThGQzA0IC8qIE5mY1NlcnZpY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxQTJFQzU2MTQ4OTlDMDkwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzMTI2MUYxNDhGRjgyQzAwQkEy
QTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMzFBMkVDNTIxNDg5OTgxOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJEODQ4QjEyN0Y2
QTQ5MDAxRUI5NjIgLyogTlBJZGVudGlmaWVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFF
NDk3NjgxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMkQ4MkE1MTI3RjRFQUIwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcAppbmRleCA5MjlhMzNjNDg3NmUxMDM4MzcwZTRiOWIzMzJmYzBjMmU1
YzNiNmVhLi40Yzk5ZjI5MzEwNTJmYTI0MGUzYmRjYmRkODc3MTBhYjcxZWU2NjgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAK
QEAgLTQzLDE0ICs0Myw2IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1zdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVSZXF1ZXN0SUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVSZXF1ZXN0SUQg
PSAxOwotICAgIHJldHVybiB1bmlxdWVSZXF1ZXN0SUQrKzsKLX0KLSNlbmRpZgotCiBSZWY8Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihwYWdlKSk7CkBA
IC04MiwxMSArNzQsMTUgQEAgdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0UmVxdWVzdChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEKICAgICBpZiAoIWFkZFJl
c3VsdC5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47CiAKLSAgICB1aW50NjRfdCByZXF1ZXN0
SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwotICAgIG1faWRUb09yaWdpbk1hcC5zZXQocmVxdWVz
dElELCBzZWN1cml0eU9yaWdpbik7CisgICAgbV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oc2VjdXJp
dHlPcmlnaW4udG9TdHJpbmcoKSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlY3VyaXR5T3JpZ2luXShib29sIGFs
bG93ZWQpIG11dGFibGUgeworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVt
ZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lz
aW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCksIGFsbG93ZWQpOwogCi0gICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSBzZW5kV2l0aEFzeW5jUmVwbHkoKS4KLSAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24ocmVx
dWVzdElELCBzZWN1cml0eU9yaWdpbi50b1N0cmluZygpKSk7CisgICAgICAgIGF1dG8gY2FsbGJh
Y2tzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKHNlY3VyaXR5T3JpZ2luKTsKKyAgICAgICAg
Zm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykgeworICAgICAgICAgICAgaWYgKGNhbGxi
YWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChhbGxvd2VkID8gTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkIDogTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uOjpEZW5pZWQpOworICAgICAgICB9CisgICAgfSk7CiB9CiAjZW5kaWYKIApA
QCAtMTIwLDI3ICsxMTYsNCBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCkKICNlbmRpZgogfQogCi12b2lk
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkK
LXsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQo
cmVxdWVzdElEKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBvcmlnaW4gPSBtX2lkVG9P
cmlnaW5NYXAudGFrZShyZXF1ZXN0SUQpOwotICAgIGlmIChvcmlnaW4uaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKG9y
aWdpbi50b1N0cmluZygpLCBhbGxvd2VkKTsKLQotICAgIGF1dG8gY2FsbGJhY2tzID0gbV9yZXF1
ZXN0c1Blck9yaWdpbi50YWtlKG9yaWdpbik7Ci0gICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNh
bGxiYWNrcykgewotICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFjay0+
aGFuZGxlRXZlbnQoYWxsb3dlZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6R3Jh
bnRlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICB9Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0SUQpOwotICAgIFVOVVNFRF9QQVJBTShhbGxv
d2VkKTsKLSNlbmRpZiAgICAKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IDRhMGRm
MTdiNjUxYzEyNzBlZTJkYjgzODk2ODdmNGMxMGMzYjFjMzEuLjEyMDcxYjFjNDVhYWY4ODRhNjY0
ZDE3NzUwNGE3ODcyMTBhODkwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC01NywxNCArNTcsMTEgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIG9yaWdpblN0
cmluZywgYm9vbCBhbGxvd2VkKTsKICAgICB2b2lkIHJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVz
dGluZygpOwogICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKLSAgICAKIHBy
aXZhdGU6CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2Uq
KTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4+PiBtX3JlcXVlc3RzUGVyT3JpZ2luOwotICAgIEhhc2hNYXA8dWludDY0
X3QsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gbV9pZFRvT3JpZ2luTWFwOwogICAgIFdl
YlBhZ2UqIG1fcGFnZTsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggN2EwMjgwZjdhMWY4NTY0YTEwNzhhNDdmYzk1ODcyMTA3
NGZjZDIxZC4uMzQwMTQ1MmNmNWU2NDViOGY3MWY2OWFlZTRmMWUxNzllZjFmMjE3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2NTQsMTEg
KzQ2NTQsNiBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25E
ZWNpc2lvbihHZW9sb2NhdGlvbklkZW50aWZpZXIgZ2VvbAogfQogI2VuZGlmCiAKLXZvaWQgV2Vi
UGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBu
b3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQotewotICAgIG5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lz
aW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2VkKTsKLX0KLQogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAKIHZvaWQgV2ViUGFnZTo6dXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYmIG1lZGlhRGV2aWNlSWRlbnRp
Zmllckhhc2hTYWx0LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBoYW5kbGUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmYzk2MjFlMzcyYzViNDA0MmI5ZWRiY2Jj
ZjJlMzIzNjQzYWFlYTMxLi44Mzg0ZTFmZTM5ZDI2Zjc2MzlkOWI0ZmVkYjQ2MDc5NzAwNTBiYzYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNzM2
LDggKzE3MzYsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb24oR2VvbG9jYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGF1
dGhvcml6YXRpb25Ub2tlbik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7Ci0K
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3Jh
bnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlv
RGV2aWNlVUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2VVSUQsIFN0cmlu
ZyYmIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHVzZXJNZWRpYUFj
Y2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJp
bmcmJiBpbnZhbGlkQ29uc3RyYWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAxYjNhNjgxZmNiNTFmNDEzZTIx
YmE0MjU0NDJiOGMwYTFmZDVlMGFjLi4zZjk2MWQ0ODNkMjM0OWVlOTYwOWIzYjM0Njc5NzkwN2Yy
NmM1Y2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM5Myw5ICszOTMsNiBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
VHlwZQogICAgIFN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKICAgICBSZXN1
bWVBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKIAotICAgICMgTm90aWZpY2F0aW9uCi0g
ICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQotCiAgICAgRnJlZXplTGF5ZXJUcmVlRHVlVG9Td2lw
ZUFuaW1hdGlvbigpCiAgICAgVW5mcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5pbWF0aW9uKCkK
IAo=
</data>
<flag name="commit-queue"
          id="449318"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428409</attachid>
            <date>2021-05-12 13:18:21 -0700</date>
            <delta_ts>2021-05-12 13:30:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225711-20210512131820.patch</filename>
            <type>text/plain</type>
            <size>34537</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZDc3MmYzZTdkOWM5MmVk
ZTkzNDAxZjk3ZmRkYmMzNjgxOGNhM2IuLjc0MDAwNTRlODY3MjQyZmJiODAwNjM2MzFjNDQ3OWNi
ZjlmNDk0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSAvIE1vZGVybml6ZSBO
b3RpZmljYXRpb24gcGVybWlzc2lvbiBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgLyBNb2Rlcm5pemUgTm90aWZp
Y2F0aW9uIHBlcm1pc3Npb24gaW1wbGVtZW50YXRpb24uIFRoZSBtYWluIGNoYW5nZSB3YXMKKyAg
ICAgICAgYWRvcHRpbmcgc2VuZFdpdGhBc3luY1JlcGx5KCkgZm9yIHRoZSBJUEMgaW5zdGVhZCBv
ZiB1c2luZyAyIHNlcGFyYXRlIElQQyBtZXNzYWdlcworICAgICAgICBmb3IgdGhlIHJlcXVlc3Qg
YW5kIHRoZSBkZWNpc2lvbi4gQXMgYSByZXN1bHQsIHdlIGRvbid0IGhhdmUgdG8gZGVhbCB3aXRo
IHJlcXVlc3QKKyAgICAgICAgaWRlbnRpZmllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
byBiZWhhdmlvciBjaGFuZ2UgYW5kIGNvdmVyZWQgYnkgZXhpc3RpbmcgQVBJIHRlc3RzLgorCisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAg
IChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKHdlYmtpdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAg
ICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6fk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmRpZFJl
Y2VpdmVEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
OgorCiAyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgdG8gcjI3NzM3Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVlMjVh
NTQwNmVhMWU0NjQzN2QwZWVhNzQ2ZjEyOWRlZTBlOWEwMTMuLjI1OGY5ZDNiZjZmZmE3MjZhOTM5
MWQxNTU1MWM3NTA0YWZhZGI2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDY5LDcgKzQ2OSw2IEBAIFVJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAogVUlQ
cm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL01lZGlhL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwCiAKLVVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDUyMjI4NDc5MWQwNjhiZjE1OWY3ZTlkZjE3OGE3MGVi
NGVkNzFiOTguLjIxNzVjNTE4ODIxZWZmZmYwNjA1NzhjNDE4ZTIyNDgxNzYxMGQ2NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01NCw3ICs1NCw2IEBA
IHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7Ci1jbGFzcyBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFz
cyBXZWJGcmFtZVByb3h5OwpAQCAtMTM3LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0
eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVz
dCkgeyByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSB7IHJlcXVlc3QuZGVu
eSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZy
YW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgcmVxdWVzdGluZ0Rv
bWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGN1cnJlbnREb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIodHJ1ZSk7IH0KIAogICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcAppbmRleCA1OTYzNDhkNzI2ZWRjNDJiMGM3NzA0MGI5OTVjYzg4N2Zl
MWU1NGFjLi5mNTA5OGQ0MTYxNTg1NzhkMmFjYjM0ZDk2ZGFjOTY1NjQ4Y2I1M2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMzgsMTAgKzM4LDEwIEBAIFdLVHlwZUlE
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQogCiB2b2lkIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQogewotICAgIHJldHVybiB0
b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5hbGxvdygpOworICAgIHJldHVy
biB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5kaWRSZWNlaXZlRGVjaXNp
b24odHJ1ZSk7CiB9CiAKIHZvaWQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnko
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCkKIHsKLSAgICByZXR1cm4gdG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KS0+ZGVueSgpOworICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpLT5kaWRSZWNlaXZlRGVjaXNpb24oZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFk
ZmZlMzhkYjU3NS4uYjBiNjQ1MGI4NTg3ZThlZjQ5NGYyZTMwNzFiNTdlMjJkYmE5MmNjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xOTg4LDcgKzE5ODgs
NyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3Qg
V0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQuY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwg
dG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9BUEkoJnRvcExldmVsRG9jdW1lbnRP
cmlnaW4pLCB0b0FQSSgmcmVxdWVzdCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAg
ICAgIH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2lu
JiBvcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKICAgICAgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuY3BwCmluZGV4IDI2MjQ3ZWE5OGRiOWM2Y2QwNTQ3YzFjODBiMDIyMDY2OWNhMGI0
NWQuLmZkYmZiMDMxYWJkZTcxYTVhNTM0YTVlYmM0NDRkYjlkNWE1NGVjOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAg
c3RhdGljIHZvaWQgd2Via2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXZWJL
aXRQZXJtaXNzaW9uUmVxdWVzdCogcmUKICAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBwcml2LT5yZXF1ZXN0LT5hbGxvdygpOworICAgIHByaXYtPnJl
cXVlc3QtPmRpZFJlY2VpdmVEZWNpc2lvbih0cnVlKTsKICAgICBwcml2LT5tYWRlRGVjaXNpb24g
PSB0cnVlOwogfQogCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxCiAg
ICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpdi0+
cmVxdWVzdC0+ZGVueSgpOworICAgIHByaXYtPnJlcXVlc3QtPmRpZFJlY2VpdmVEZWNpc2lvbihm
YWxzZSk7CiAgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IGMw
MjZlYzY5N2Q5YzllNWU4MzVlZGIzY2NlZTcyNTQ4MzMxZGViYzQuLjBhZmQ5N2JlNDY0Y2ViNjA5
ZjFjNDNhYTcyMGYzYjRjMjk3Nzc4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2lu
Y2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgorI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0
RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEZp
bGVDaG9vc2VyUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgpAQCAtMzA1LDcgKzMwNiw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJL
SVRfUEVSTUlTU0lPTl9SRVFVRVNUKGRldmljZUluZm9QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkp
OwogICAgIH0KIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QoV2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEZ1bmN0aW9uPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNl
Y3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgIHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qg
PSBhZG9wdEdSZWYod2Via2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSkucHRyKCkpKTsKICAgICAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVz
dChtX3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qobm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaAppbmRleCBlOTc5MTdmODg5MGI1MWYzZTEzYjhiNzRiMjliNDhkMmI3MzFmYmU2Li43
ODcxZWQ0NzM4YjVjZmM3ZTY0NzU3ZmY2NDJjZmJlNTEzMDNhNGViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgZmxvYXQgZm9vdGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJv
eHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkcmF3SGVhZGVyKFdlYlBhZ2VQcm94eSYsIFdlYkZy
YW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgZmluYWw7CiAgICAgICAgIHZvaWQgZHJh
d0Zvb3RlcihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0
JiYpIGZpbmFsOwotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBGdW5jdGlv
bjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYmKSBmaW5hbDsKICAg
ICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5Jiwg
V0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAg
ICAgICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViUGFnZVByb3h5JiwgY29uc3Qg
V2ViSGl0VGVzdFJlc3VsdERhdGEmLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgQVBJ
OjpPYmplY3QqKTsKICAgICAgICAgdm9pZCBkaWRDbGlja0F1dG9GaWxsQnV0dG9uKFdlYlBhZ2VQ
cm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBlYWQ5YjFiNzU2NTE5MjI2NjVhOTk0OWI4ZmM3ZmRiMzVl
MTYyODVjLi5kNTdjY2FhNzU5NmFkN2M2ZTU0YmRhYTZlYTQ5OWQ1MzQ0NzlmODZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTk0Niw3ICs5NDYs
NyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRz
Rm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0CiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkg
c2F2ZURhdGFUb0ZpbGU6d3JhcHBlcihkYXRhKSBzdWdnZXN0ZWRGaWxlbmFtZTpzdWdnZXN0ZWRG
aWxlbmFtZSBtaW1lVHlwZTptaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDpvcmlnaW5hdGluZ1VSTF07
CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fdWlEZWxl
Z2F0ZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAppbmRleCAwYjdlZWY5NDYwMTI4YzU2NTY5
MWIxNTBjMmZmN2JlY2I0OTM3MGE4Li5mOTMxZjRiM2YxN2VlMGQyM2JiMDhlMDUyZWM0MGZkYWI4
MzU5ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0y
NiwzNyArMjYsMzUgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0j
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTsKLQogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0ZShGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3Q+IGNyZWF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICB9Ci0gICAg
Ci0gICAgdm9pZCBhbGxvdygpCisKKyAgICB+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
KQogICAgIHsKLSAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hh
bmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKQotICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7CisgICAgICAgIGRpZFJlY2VpdmVEZWNpc2lvbihmYWxzZSk7CiAgICAg
fQotCi0gICAgdm9pZCBkZW55KCkKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVEZWNpc2lvbihi
b29sIGFsbG93ZWQpCiAgICAgewotICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9
IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIGlmIChtX2NvbXBsZXRpb25IYW5k
bGVyKQorICAgICAgICAgICAgbV9jb21wbGV0aW9uSGFuZGxlcihhbGxvd2VkKTsKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoRnVuY3Rpb248dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBleHBsaWNpdCBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpCi0gICAgeyB9CisgICAgeworICAgIH0KICAgICAKLSAgICBGdW5jdGlvbjx2
b2lkKGJvb2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+IG1fY29tcGxldGlvbkhhbmRsZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2MzM4ZWQyMTlj
NjAzNmNmMmQ2ZGJkMWZiNWYwNDY0Y2NhZmUyZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCi0K
LSNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgotI2luY2x1ZGUgIldl
YlBhZ2VNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQotewot
fQotCi12b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZh
bGlkYXRlUmVxdWVzdHMoKQotewotICAgIGF1dG8gcGVuZGluZ1JlcXVlc3RzID0gc3RkOjpleGNo
YW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKLSAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBw
ZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCi0gICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKLX0KLQot
UmVmPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKLXsKLSAgICBhdXRvIHJlcXVlc3QgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6
Y3JlYXRlKFt0aGlzLCBub3RpZmljYXRpb25JRCwgcGFnZSA9IG1ha2VSZWYobV9wYWdlKV0oYm9v
bCBhbGxvd2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLnRha2Uobm90aWZpY2F0aW9u
SUQpOwotICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlTm90
aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2VkKSk7Ci0g
ICAgfSk7Ci0gICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKG5vdGlmaWNhdGlvbklELCByZXF1ZXN0
LnB0cigpKTsKLSAgICByZXR1cm4gcmVxdWVzdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwNmExODM2NjYyMjlhODc3
MjVmZTlkYTg0ODczMzMzYWM5NGE1NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdl
YlBhZ2VQcm94eTsKLQotY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkgewotcHVibGljOgotICAgIGV4cGxpY2l0IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYpOwotCi0gICAgdm9pZCBpbnZhbGlkYXRlUmVx
dWVzdHMoKTsKLQotICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgcHJlc2VudGVkIHRvIHRo
ZSB1c2VyLgotICAgIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlUmVx
dWVzdCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0KLXByaXZhdGU6Ci0gICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Pj4gbV9wZW5kaW5n
UmVxdWVzdHM7Ci0gICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdk
NmNmNDNhMDAxMmMyOGI4ZGMyOTBlNzk5ZTlhOGM0YWE5MjA1YWQuLmE0NWIwMmUxMWQzZjQ4MGYw
MzEzN2E1YTA4NTUyNTFiZjZhNmRmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNDgyLDcgKzQ4Miw2IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5
KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUmVmCiAg
ICAgLCBtX2Z1bGxzY3JlZW5DbGllbnQobWFrZVVuaXF1ZTxBUEk6OkZ1bGxzY3JlZW5DbGllbnQ+
KCkpCiAjZW5kaWYKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KnRoaXMpCi0gICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhp
cykKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9hdWRpYmxlQWN0aXZpdHlUaW1l
cihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJQYWdlUHJveHk6OmNsZWFyQXVkaWJsZUFjdGl2
aXR5KQogI2VuZGlmCkBAIC03NjMyLDggKzc2MzEsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uIHJlc2V0U3RhdGVSZWFzb24pCiAgICAgbV9nZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5pbnZhbGlkYXRlUmVxdWVzdHMoKTsKICNlbmRp
ZgogCi0gICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0
ZVJlcXVlc3RzKCk7Ci0KICAgICBzZXRUb29sVGlwKHsgfSk7CiAKICAgICBtX21haW5GcmFtZUhh
c0hvcml6b250YWxTY3JvbGxiYXIgPSBmYWxzZTsKQEAgLTg0NDcsMjAgKzg0NDQsMTAgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYg
dGFyZ2V0RnJhbWUsIFZlY3RvcjwKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIAotdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAo
IWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgYXV0
byBvcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpblN0
cmluZyk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3JlYXRlUmVxdWVzdChyZXF1ZXN0SUQpOwotICAgIAotICAgIG1fdWlDbGllbnQt
PmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KCp0aGlzLCBvcmln
aW4uZ2V0KCksIFtyZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0oYm9vbCBhbGxvd2VkKSB7Ci0g
ICAgICAgIGlmIChhbGxvd2VkKQotICAgICAgICAgICAgcmVxdWVzdC0+YWxsb3coKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgcmVxdWVzdC0+ZGVueSgpOwotICAgIH0pOworICAgIG1fdWlD
bGllbnQtPmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KCp0aGlz
LCBvcmlnaW4uZ2V0KCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
U3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBj
b25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZDUxM2FhYTNiZTI3ZTRhNTE2MzFl
YWIxM2ZmYWNhOTJhZjFjMGNjMC4uMWUyMzk4MWM1N2VhMmYxNjc3Mjc4N2U3N2VjODg4NjQ5NTAx
ZGUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQyLDcgKzQy
LDYgQEAKICNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVNlbmRlci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCiAjaW5jbHVkZSAiUERGUGx1Z2luSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBh
Z2VMb2FkU3RhdGUuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmgiCkBAIC0y
MTI5LDcgKzIxMjgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
bGF1bmNoUHJvY2Vzc0ZvclJlbG9hZCgpOwogCi0gICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcpOworICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgU3Ry
aW5nJiBvcmlnaW5TdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4m
Jik7CiAgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywg
Y29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0
IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9p
ZCBjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwogICAgIHZvaWQg
Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklE
cyk7CkBAIC0yNjAwLDcgKzI1OTksNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAg
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOwotICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDdkNDE2NDNmZjhhZjQ1ODdmZjE4MDM1ZWM4ZWJmZmQ4NGFlNGFlNDYuLmI3
NjJiNzdmZjRhZjA1MThkNDU2OTUxZTJlMDliY2RhY2ZlNjA0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4MSw3ICsyODEs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIE5vdGlmaWNh
dGlvbiBtZXNzYWdlcwotICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24oU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpIC0+IChib29sIGFsbG93ZWQp
IEFzeW5jCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBT
dHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIGVudW06dWludDhfdCBXZWJD
b3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwg
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAgQ2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKQogICAgIENsZWFyTm90aWZpY2F0aW9ucyhWZWN0b3I8dWludDY0X3Q+
IG5vdGlmaWNhdGlvbklEcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQ2ODAxZmM1MTIxNzBjYmY5OWE2MjQ5NzEyNzAxZTRhMWYwOWIy
MDguLjUxNGIxZTA2ZDk2NmJmYmI4MmUyNTYwMjAxMzVkOTlkNGMwMDU4NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODIyLDcgKzgy
Miw2IEBACiAJCTMxQTJFQzQ5MTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQyMTQ4
OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCAqLzsgfTsKIAkJMzFBMkVDNEIxNDg5
OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNDQxNDg5OTdCRjAwODEw
RDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovOyB9OwogCQkzMUEyRUM0RTE0
ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQ3MTQ4OTk3QzEwMDgxMEQ3
MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovOyB9OwotCQkzMUEyRUM1MjE0ODk5ODE5
MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzUxMTQ4
OTk4MTUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oICovOyB9OwogCQkzMUEyRUM1NjE0ODk5QzA5MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxQTJFQzUzMTQ4OTk4MjUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oICovOyB9OwogCQkzMUEyRUM3NDE0OEQ1OUNBMDA4MTBENzEgLyogV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzFBMkVDNzIxNDhENTlCQjAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkzMUE1MDVGQTE2ODAwMjU1MDBBOTMwRUIgLyogV2ViQ29udGV4dENsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBNTA1
RjgxNjgwMDI1NTAwQTkzMEVCIC8qIFdlYkNvbnRleHRDbGllbnQuaCAqLzsgfTsKQEAgLTM1NzYs
OCArMzU3NSw2IEBACiAJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
QTJFQzQ2MTQ4OTk3QzAwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTJFQzQ3MTQ4OTk3QzEwMDgx
MEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkzMUEyRUM0RjE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEyRUM1MTE0ODk5ODE1MDA4MTBENzEgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTJFQzcyMTQ4
RDU5QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMkVDNzUxNDhENjVCQjAwODEwRDcxIC8qIFdLTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03ODM3LDggKzc4MzQsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKLQkJCQkzMUEyRUM0RjE0ODk5ODA1MDA4MTBENzEg
LyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovLAotCQkJ
CTMxQTJFQzUxMTQ4OTk4MTUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oICovLAogCQkJCTMxQTJFQzQxMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJO
b3RpZmljYXRpb24uY3BwICovLAogCQkJCTMxQTJFQzQyMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJO
b3RpZmljYXRpb24uaCAqLywKIAkJCQkzMUEyRUM0MzE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTEyMTEwLDcgKzEyMTA1LDYgQEAKIAkJ
CQk1NzBEQUFBRTIzMDI2RjVDMDBFOEZDMDQgLyogTmZjU2VydmljZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTMxMjYxRjE0OEZGODJDMDBCQTJBMzkgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkzMUEyRUM1MjE0ODk5ODE5MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkQ4NDhCMTI3RjZBNDkwMDFF
Qjk2MiAvKiBOUElkZW50aWZpZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU0OTc2ODEx
RkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyRDgy
QTUxMjdGNEVBQjAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwCmluZGV4IDkyOWEzM2M0ODc2ZTEwMzgzNzBlNGI5YjMzMmZjMGMyZTVjM2I2ZWEu
LjRjOTlmMjkzMTA1MmZhMjQwZTNiZGNiZGQ4NzcxMGFiNzFlZTY2ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtNDMs
MTQgKzQzLDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJl
cXVlc3RJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDE7Ci0g
ICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsrOwotfQotI2VuZGlmCi0KIFJlZjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHBhZ2UpKTsKQEAgLTgyLDEx
ICs3NCwxNSBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3Rh
cnRSZXF1ZXN0KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQogICAgIGlmICghYWRkUmVzdWx0Lmlz
TmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdl
bmVyYXRlUmVxdWVzdElEKCk7Ci0gICAgbV9pZFRvT3JpZ2luTWFwLnNldChyZXF1ZXN0SUQsIHNl
Y3VyaXR5T3JpZ2luKTsKKyAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihzZWN1cml0eU9yaWdp
bi50b1N0cmluZygpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgc2VjdXJpdHlPcmlnaW5dKGJvb2wgYWxsb3dlZCkg
bXV0YWJsZSB7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oc2Vj
dXJpdHlPcmlnaW4udG9TdHJpbmcoKSwgYWxsb3dlZCk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgdXNlIHNlbmRXaXRoQXN5bmNSZXBseSgpLgotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihyZXF1ZXN0SUQs
IHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgYXV0byBjYWxsYmFja3MgPSBt
X3JlcXVlc3RzUGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmlnaW4pOworICAgICAgICBmb3IgKGF1
dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzKSB7CisgICAgICAgICAgICBpZiAoY2FsbGJhY2spCisg
ICAgICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KGFsbG93ZWQgPyBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb246OkRlbmllZCk7CisgICAgICAgIH0KKyAgICB9KTsKIH0KICNlbmRpZgogCkBAIC0xMjAs
MjcgKzExNiw0IEBAIHZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpy
ZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKQogI2VuZGlmCiB9CiAKLXZvaWQgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBhbGxvd2VkKQotewotI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0
SUQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIG9yaWdpbiA9IG1faWRUb09yaWdpbk1h
cC50YWtlKHJlcXVlc3RJRCk7Ci0gICAgaWYgKG9yaWdpbi5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2ViTm90aWZp
Y2F0aW9uTWFuYWdlcj4oKS0+ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24ob3JpZ2luLnRv
U3RyaW5nKCksIGFsbG93ZWQpOwotCi0gICAgYXV0byBjYWxsYmFja3MgPSBtX3JlcXVlc3RzUGVy
T3JpZ2luLnRha2Uob3JpZ2luKTsKLSAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tz
KSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVF
dmVudChhbGxvd2VkID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkIDog
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwotICAgIH0KLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHJlcXVlc3RJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwot
I2VuZGlmICAgIAotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggNGEwZGYxN2I2NTFj
MTI3MGVlMmRiODM4OTY4N2Y0YzEwYzNiMWMzMS4uMTIwNzFiMWM0NWFhZjg4NGE2NjRkMTc3NTA0
YTc4NzIxMGE4OTA3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgKQEAgLTU3LDE0ICs1NywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQZXJtaXNzaW9uTGV2ZWxGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBi
b29sIGFsbG93ZWQpOwogICAgIHZvaWQgcmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCk7
CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOwotICAgIAogcHJpdmF0ZToK
ICAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSopOwogCiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNh
bGxiYWNrPj4+IG1fcmVxdWVzdHNQZXJPcmlnaW47Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBtX2lkVG9PcmlnaW5NYXA7CiAgICAgV2ViUGFnZSog
bV9wYWdlOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA3YTAyODBmN2ExZjg1NjRhMTA3OGE0N2ZjOTU4NzIxMDc0ZmNkMjFk
Li4zNDAxNDUyY2Y1ZTY0NWI4ZjcxZjY5YWVlNGYxZTE3OWVmMWYyMTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDY1NCwxMSArNDY1NCw2
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KEdlb2xvY2F0aW9uSWRlbnRpZmllciBnZW9sCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpCi17Ci0gICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90
aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwotfQotCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAog
dm9pZCBXZWJQYWdlOjp1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgU3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIGhhbmRsZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGZjOTYyMWUzNzJjNWI0MDQyYjllZGJjYmNmMmUzMjM2
NDNhYWVhMzEuLjgzODRlMWZlMzlkMjZmNzYzOWQ5YjRmZWRiNDYwNzk3MDA1MGJjNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE3MzYsOCArMTcz
Niw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Np
b25EZWNpc2lvbihHZW9sb2NhdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYXV0aG9yaXph
dGlvblRva2VuKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25E
ZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKLQogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2VV
SUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZVVJRCwgU3RyaW5nJiYgbWVk
aWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2Fz
RGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCByZWFzb24sIFN0cmluZyYmIGlu
dmFsaWRDb25zdHJhaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDFiM2E2ODFmY2I1MWY0MTNlMjFiYTQyNTQ0
MmI4YzBhMWZkNWUwYWMuLjNmOTYxZDQ4M2QyMzQ5ZWU5NjA5YjNiMzQ2Nzk3OTA3ZjI2YzVjZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgpAQCAtMzkzLDkgKzM5Myw2IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0Nv
bW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAg
ICAgU3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBBc3luYwogICAgIFJlc3VtZUFsbE1l
ZGlhUGxheWJhY2soKSAtPiAoKSBBc3luYwogCi0gICAgIyBOb3RpZmljYXRpb24KLSAgICBEaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELCBib29sIGFsbG93ZWQpCi0KICAgICBGcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5pbWF0
aW9uKCkKICAgICBVbmZyZWV6ZUxheWVyVHJlZUR1ZVRvU3dpcGVBbmltYXRpb24oKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428410</attachid>
            <date>2021-05-12 13:30:54 -0700</date>
            <delta_ts>2021-05-12 17:31:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225711-20210512133053.patch</filename>
            <type>text/plain</type>
            <size>34786</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZDc3MmYzZTdkOWM5MmVk
ZTkzNDAxZjk3ZmRkYmMzNjgxOGNhM2IuLjc0MDAwNTRlODY3MjQyZmJiODAwNjM2MzFjNDQ3OWNi
ZjlmNDk0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSAvIE1vZGVybml6ZSBO
b3RpZmljYXRpb24gcGVybWlzc2lvbiBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgLyBNb2Rlcm5pemUgTm90aWZp
Y2F0aW9uIHBlcm1pc3Npb24gaW1wbGVtZW50YXRpb24uIFRoZSBtYWluIGNoYW5nZSB3YXMKKyAg
ICAgICAgYWRvcHRpbmcgc2VuZFdpdGhBc3luY1JlcGx5KCkgZm9yIHRoZSBJUEMgaW5zdGVhZCBv
ZiB1c2luZyAyIHNlcGFyYXRlIElQQyBtZXNzYWdlcworICAgICAgICBmb3IgdGhlIHJlcXVlc3Qg
YW5kIHRoZSBkZWNpc2lvbi4gQXMgYSByZXN1bHQsIHdlIGRvbid0IGhhdmUgdG8gZGVhbCB3aXRo
IHJlcXVlc3QKKyAgICAgICAgaWRlbnRpZmllcnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
byBiZWhhdmlvciBjaGFuZ2UgYW5kIGNvdmVyZWQgYnkgZXhpc3RpbmcgQVBJIHRlc3RzLgorCisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAg
IChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKHdlYmtpdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAg
ICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6fk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmRpZFJl
Y2VpdmVEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
OgorCiAyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgdG8gcjI3NzM3Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVlMjVh
NTQwNmVhMWU0NjQzN2QwZWVhNzQ2ZjEyOWRlZTBlOWEwMTMuLjI1OGY5ZDNiZjZmZmE3MjZhOTM5
MWQxNTU1MWM3NTA0YWZhZGI2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDY5LDcgKzQ2OSw2IEBAIFVJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAogVUlQ
cm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL01lZGlhL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwCiAKLVVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDUyMjI4NDc5MWQwNjhiZjE1OWY3ZTlkZjE3OGE3MGVi
NGVkNzFiOTguLjIxNzVjNTE4ODIxZWZmZmYwNjA1NzhjNDE4ZTIyNDgxNzYxMGQ2NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01NCw3ICs1NCw2IEBA
IHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7Ci1jbGFzcyBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFz
cyBXZWJGcmFtZVByb3h5OwpAQCAtMTM3LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBTZWN1cml0
eU9yaWdpbiYsIFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVz
dCkgeyByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgU2VjdXJpdHlPcmlnaW4mLCBXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JiByZXF1ZXN0KSB7IHJlcXVlc3QuZGVu
eSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZy
YW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgcmVxdWVzdGluZ0Rv
bWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGN1cnJlbnREb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIodHJ1ZSk7IH0KIAogICAgIC8vIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcAppbmRleCA1OTYzNDhkNzI2ZWRjNDJiMGM3NzA0MGI5OTVjYzg4N2Zl
MWU1NGFjLi5mNTA5OGQ0MTYxNTg1NzhkMmFjYjM0ZDk2ZGFjOTY1NjQ4Y2I1M2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMzgsMTAgKzM4LDEwIEBAIFdLVHlwZUlE
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKQogCiB2b2lkIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQogewotICAgIHJldHVybiB0
b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5hbGxvdygpOworICAgIHJldHVy
biB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5kaWRSZWNlaXZlRGVjaXNp
b24odHJ1ZSk7CiB9CiAKIHZvaWQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnko
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCkKIHsKLSAgICByZXR1cm4gdG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KS0+ZGVueSgpOworICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpLT5kaWRSZWNlaXZlRGVjaXNpb24oZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFk
ZmZlMzhkYjU3NS4uN2MwYmEzMDE1MmFjM2JhY2NhMmI4YjY2MDZjNjQ4Njg4NjJkMGNkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC02Miw2ICs2Miw3IEBA
CiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdl
YldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgorI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9ybWF0aW9uLmgiCiAjaW5jbHVkZSAiUHJpbnRJbmZv
LmgiCkBAIC0xOTg4LDcgKzE5ODksNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1Bh
Z2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAg
ICAgICAgbV9jbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKHRvQVBJKCZw
YWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoJnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9B
UEkoJnRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCB0b0FQSSgmcmVxdWVzdCksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdl
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IDI2MjQ3ZWE5OGRiOWM2Y2Qw
NTQ3YzFjODBiMDIyMDY2OWNhMGI0NWQuLmZkYmZiMDMxYWJkZTcxYTVhNTM0YTVlYmM0NDRkYjlk
NWE1NGVjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RBbGxvdyhXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmUKICAgICBpZiAocHJp
di0+bWFkZURlY2lzaW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcml2LT5yZXF1ZXN0LT5h
bGxvdygpOworICAgIHByaXYtPnJlcXVlc3QtPmRpZFJlY2VpdmVEZWNpc2lvbih0cnVlKTsKICAg
ICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwogfQogCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShXZWJLaXRQZXJt
aXNzaW9uUmVxdWVzdCogcmVxCiAgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgcHJpdi0+cmVxdWVzdC0+ZGVueSgpOworICAgIHByaXYtPnJlcXVlc3Qt
PmRpZFJlY2VpdmVEZWNpc2lvbihmYWxzZSk7CiAgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VUlDbGllbnQuY3BwCmluZGV4IGMwMjZlYzY5N2Q5YzllNWU4MzVlZGIzY2NlZTcyNTQ4MzMxZGVi
YzQuLjBhZmQ5N2JlNDY0Y2ViNjA5ZjFjNDNhYTcyMGYzYjRjMjk3Nzc4YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWFQcm94eS5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgpAQCAtMzA1LDcg
KzMwNiw3IEBAIHByaXZhdGU6CiAgICAgICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJl
cXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKGRldmljZUluZm9QZXJt
aXNzaW9uUmVxdWVzdC5nZXQoKSkpOwogICAgIH0KIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0
eU9yaWdpbiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChX
ZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sIGFsbG93ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgIHsKICAgICAg
ICAgR1JlZlB0cjxXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gbm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RDcmVhdGUoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkucHRyKCkpKTsKICAgICAgICAgd2Via2l0V2ViVmll
d01ha2VQZXJtaXNzaW9uUmVxdWVzdChtX3dlYlZpZXcsIFdFQktJVF9QRVJNSVNTSU9OX1JFUVVF
U1Qobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBlOTc5MTdmODg5MGI1MWYzZTEzYjhi
NzRiMjliNDhkMmI3MzFmYmU2Li43ODcxZWQ0NzM4YjVjZmM3ZTY0NzU3ZmY2NDJjZmJlNTEzMDNh
NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0x
MTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgZmxvYXQgZm9vdGVySGVpZ2h0KFdlYlBh
Z2VQcm94eSYsIFdlYkZyYW1lUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkcmF3SGVhZGVy
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgZmlu
YWw7CiAgICAgICAgIHZvaWQgZHJhd0Zvb3RlcihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5
JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIGZpbmFsOwotICAgICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFs
bG93ZWQpPiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQoV2ViUGFnZVByb3h5JiwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpE
aWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBPcHRpb25TZXQ8V2Vi
RXZlbnQ6Ok1vZGlmaWVyPiwgQVBJOjpPYmplY3QqKTsKICAgICAgICAgdm9pZCBkaWRDbGlja0F1
dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBlYWQ5YjFiNzU2NTE5
MjI2NjVhOTk0OWI4ZmM3ZmRiMzVlMTYyODVjLi5kNTdjY2FhNzU5NmFkN2M2ZTU0YmRhYTZlYTQ5
OWQ1MzQ0NzlmODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KQEAgLTk0Niw3ICs5NDYsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzYXZl
RGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0CiAgICAgWyhp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5t
X3dlYlZpZXcuZ2V0KCkuZ2V0KCkgc2F2ZURhdGFUb0ZpbGU6d3JhcHBlcihkYXRhKSBzdWdnZXN0
ZWRGaWxlbmFtZTpzdWdnZXN0ZWRGaWxlbmFtZSBtaW1lVHlwZTptaW1lVHlwZSBvcmlnaW5hdGlu
Z1VSTDpvcmlnaW5hdGluZ1VSTF07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIFdURjo6RnVuY3Rp
b248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAppbmRl
eCAwYjdlZWY5NDYwMTI4YzU2NTY5MWIxNTBjMmZmN2JlY2I0OTM3MGE4Li5mOTMxZjRiM2YxN2Vl
MGQyM2JiMDhlMDUyZWM0MGZkYWI4MzU5ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5oCkBAIC0yNiwzNyArMjYsMzUgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKLQogY2xhc3MgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0ZShGdW5jdGlv
bjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpKTsKICAgICB9Ci0gICAgCi0gICAgdm9pZCBhbGxvdygpCisKKyAgICB+Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QoKQogICAgIHsKLSAgICAgICAgaWYgKGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKQot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgICAgIGRpZFJlY2VpdmVE
ZWNpc2lvbihmYWxzZSk7CiAgICAgfQotCi0gICAgdm9pZCBkZW55KCkKKyAgICAKKyAgICB2b2lk
IGRpZFJlY2VpdmVEZWNpc2lvbihib29sIGFsbG93ZWQpCiAgICAgewotICAgICAgICBpZiAoYXV0
byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwg
bnVsbHB0cikpCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAg
IGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAgbV9jb21wbGV0aW9uSGFuZGxl
cihhbGxvd2VkKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QoRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBl
eHBsaWNpdCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICA6IG1fY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCi0gICAgeyB9CisgICAgeworICAgIH0K
ICAgICAKLSAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworICAg
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhhbmRsZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM2MzM4ZWQyMTljNjAzNmNmMmQ2ZGJkMWZiNWYwNDY0Y2NhZmUyZjAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgiCi0KLSNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5oIgotI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKLSAg
ICA6IG1fcGFnZShwYWdlKQotewotfQotCi12b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMoKQotewotICAgIGF1dG8gcGVuZGlu
Z1JlcXVlc3RzID0gc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZXF1ZXN0cywgeyB9KTsKLSAgICBm
b3IgKGF1dG8mIHJlcXVlc3QgOiBwZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCi0gICAgICAgIHJl
cXVlc3QtPmRlbnkoKTsKLX0KLQotUmVmPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCh1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKLXsKLSAgICBhdXRvIHJlcXVlc3QgPSBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFt0aGlzLCBub3RpZmljYXRpb25JRCwgcGFnZSA9
IG1ha2VSZWYobV9wYWdlKV0oYm9vbCBhbGxvd2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ1JlcXVl
c3RzLnRha2Uobm90aWZpY2F0aW9uSUQpOwotICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNh
dGlvbklELCBhbGxvd2VkKSk7Ci0gICAgfSk7Ci0gICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKG5v
dGlmaWNhdGlvbklELCByZXF1ZXN0LnB0cigpKTsKLSAgICByZXR1cm4gcmVxdWVzdDsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGEwNmExODM2NjYyMjlhODc3MjVmZTlkYTg0ODczMzMzYWM5NGE1NTMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKLSNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYlBhZ2VQcm94eTsKLQotY2xhc3MgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgewotcHVibGljOgotICAgIGV4cGxpY2l0IE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYpOwotCi0g
ICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdHMoKTsKLQotICAgIC8vIENyZWF0ZSBhIHJlcXVlc3Qg
dG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2VyLgotICAgIFJlZjxOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdD4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0KLXBy
aXZhdGU6Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7Ci0gICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDdkNmNmNDNhMDAxMmMyOGI4ZGMyOTBlNzk5ZTlhOGM0YWE5MjA1
YWQuLmE0NWIwMmUxMWQzZjQ4MGYwMzEzN2E1YTA4NTUyNTFiZjZhNmRmMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDgyLDcgKzQ4Miw2IEBAIFdlYlBh
Z2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcywgUmVmCiAgICAgLCBtX2Z1bGxzY3JlZW5DbGllbnQobWFrZVVuaXF1ZTxB
UEk6OkZ1bGxzY3JlZW5DbGllbnQ+KCkpCiAjZW5kaWYKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCi0gICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwg
bV9hdWRpYmxlQWN0aXZpdHlUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJQYWdlUHJv
eHk6OmNsZWFyQXVkaWJsZUFjdGl2aXR5KQogI2VuZGlmCkBAIC03NjMyLDggKzc2MzEsNiBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uIHJlc2V0U3RhdGVS
ZWFzb24pCiAgICAgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5pbnZhbGlk
YXRlUmVxdWVzdHMoKTsKICNlbmRpZgogCi0gICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7Ci0KICAgICBzZXRUb29sVGlwKHsgfSk7
CiAKICAgICBtX21haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgPSBmYWxzZTsKQEAgLTg0
NDcsMjAgKzg0NDQsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJhbWUsIFZlY3RvcjwKICNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAK
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKLSAgICAg
ICAgcmV0dXJuOwotCiAgICAgYXV0byBvcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKG9yaWdpblN0cmluZyk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9ub3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3JlYXRlUmVxdWVzdChyZXF1ZXN0SUQpOwot
ICAgIAotICAgIG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KCp0aGlzLCBvcmlnaW4uZ2V0KCksIFtyZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0
KV0oYm9vbCBhbGxvd2VkKSB7Ci0gICAgICAgIGlmIChhbGxvd2VkKQotICAgICAgICAgICAgcmVx
dWVzdC0+YWxsb3coKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVxdWVzdC0+ZGVueSgp
OwotICAgIH0pOworICAgIG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KCp0aGlzLCBvcmlnaW4uZ2V0KCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dOb3RpZmljYXRpb24oY29uc3Qg
U3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkws
IGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkRpcmVjdGlvbiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
ZDUxM2FhYTNiZTI3ZTRhNTE2MzFlYWIxM2ZmYWNhOTJhZjFjMGNjMC4uMWUyMzk4MWM1N2VhMmYx
Njc3Mjc4N2U3N2VjODg4NjQ5NTAxZGUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0YXRl
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUERGUGx1Z2luSWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgIlBhZ2VMb2FkU3RhdGUuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJk
QWNjZXNzSW50ZW50LmgiCkBAIC0yMTI5LDcgKzIxMjgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVm
UHRyPEFQSTo6TmF2aWdhdGlvbj4gbGF1bmNoUHJvY2Vzc0ZvclJlbG9hZCgpOwogCi0gICAgdm9p
ZCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpOworICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlv
blBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCBhbGxvd2VkKT4mJik7CiAgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0
IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJM
LCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmlj
YXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCk7CiAgICAgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOwogICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7CkBAIC0yNjAwLDcgKzI1OTksNiBAQCBwcml2YXRlOgog
CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IG1fb3BlblBhbmVs
UmVzdWx0TGlzdGVuZXI7CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwotICAgIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fdXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdkNDE2NDNmZjhhZjQ1ODdmZjE4MDM1
ZWM4ZWJmZmQ4NGFlNGFlNDYuLmI3NjJiNzdmZjRhZjA1MThkNDU2OTUxZTJlMDliY2RhY2ZlNjA0
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTI4MSw3ICsyODEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2Vu
ZGlmCiAKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwotICAgIFJlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
CisgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpIC0+IChib29sIGFsbG93ZWQpIEFzeW5jCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcg
dGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxh
bmcsIGVudW06dWludDhfdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBTdHJp
bmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAgQ2FuY2Vs
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIENsZWFyTm90aWZpY2F0
aW9ucyhWZWN0b3I8dWludDY0X3Q+IG5vdGlmaWNhdGlvbklEcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ2ODAxZmM1MTIxNzBjYmY5
OWE2MjQ5NzEyNzAxZTRhMWYwOWIyMDguLjUxNGIxZTA2ZDk2NmJmYmI4MmUyNTYwMjAxMzVkOTlk
NGMwMDU4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODIyLDcgKzgyMiw2IEBACiAJCTMxQTJFQzQ5MTQ4OTk3QzIwMDgxMEQ3MSAv
KiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzQyMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCAq
LzsgfTsKIAkJMzFBMkVDNEIxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzFBMkVDNDQxNDg5OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5o
ICovOyB9OwogCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
QTJFQzQ3MTQ4OTk3QzEwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovOyB9
OwotCQkzMUEyRUM1MjE0ODk5ODE5MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzUxMTQ4OTk4MTUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OwogCQkzMUEyRUM1NjE0ODk5QzA5MDA4MTBE
NzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzUzMTQ4OTk4MjUwMDgxMEQ3MSAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovOyB9OwogCQkzMUEyRUM3NDE0OEQ1OUNB
MDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNzIxNDhENTlCQjAwODEw
RDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMUE1MDVGQTE2ODAwMjU1MDBBOTMw
RUIgLyogV2ViQ29udGV4dENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzFBNTA1RjgxNjgwMDI1NTAwQTkzMEVCIC8qIFdlYkNvbnRleHRDbGll
bnQuaCAqLzsgfTsKQEAgLTM1NzYsOCArMzU3NSw2IEBACiAJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgx
MEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxQTJFQzQ2MTQ4OTk3QzAwMDgxMEQ3MSAvKiBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxQTJFQzQ3MTQ4OTk3QzEwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEyRUM0RjE0ODk5ODA1MDA4MTBENzEg
LyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUEyRUM1
MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMkVDNTMxNDg5OTgy
NTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxQTJFQzcyMTQ4RDU5QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBMkVDNzUxNDhENjVCQjAw
ODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03ODM3LDggKzc4MzQsNiBAQAog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkzMUEyRUM1MzE0ODk5ODI1
MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKLQkJCQkzMUEy
RUM0RjE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwICovLAotCQkJCTMxQTJFQzUxMTQ4OTk4MTUwMDgxMEQ3MSAvKiBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAogCQkJCTMxQTJFQzQxMTQ4
OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovLAogCQkJCTMxQTJFQzQyMTQ4
OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCAqLywKIAkJCQkzMUEyRUM0MzE0ODk5
N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTEy
MTEwLDcgKzEyMTA1LDYgQEAKIAkJCQk1NzBEQUFBRTIzMDI2RjVDMDBFOEZDMDQgLyogTmZjU2Vy
dmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTMxMjYx
RjE0OEZGODJDMDBCQTJBMzkgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKLQkJCQkzMUEyRUM1MjE0ODk5ODE5MDA4MTBENzEgLyogTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMkQ4NDhCMTI3RjZBNDkwMDFFQjk2MiAvKiBOUElkZW50aWZpZXJEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUU0OTc2ODExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUEyRDgyQTUxMjdGNEVBQjAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDkyOWEzM2M0ODc2ZTEwMzgzNzBl
NGI5YjMzMmZjMGMyZTVjM2I2ZWEuLjRjOTlmMjkzMTA1MmZhMjQwZTNiZGNiZGQ4NzcxMGFiNzFl
ZTY2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcApAQCAtNDMsMTQgKzQzLDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXN0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZVJlcXVlc3RJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVu
aXF1ZVJlcXVlc3RJRCA9IDE7Ci0gICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsrOwotfQotI2Vu
ZGlmCi0KIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKHBhZ2UpKTsKQEAgLTgyLDExICs3NCwxNSBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQog
ICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVp
bnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7Ci0gICAgbV9pZFRvT3JpZ2lu
TWFwLnNldChyZXF1ZXN0SUQsIHNlY3VyaXR5T3JpZ2luKTsKKyAgICBtX3BhZ2UtPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbihzZWN1cml0eU9yaWdpbi50b1N0cmluZygpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgc2VjdXJpdHlP
cmlnaW5dKGJvb2wgYWxsb3dlZCkgbXV0YWJsZSB7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+ZGlkVXBkYXRlTm90
aWZpY2F0aW9uRGVjaXNpb24oc2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSwgYWxsb3dlZCk7CiAK
LSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIHNlbmRXaXRoQXN5bmNSZXBseSgpLgotICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbihyZXF1ZXN0SUQsIHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCkpKTsKKyAgICAg
ICAgYXV0byBjYWxsYmFja3MgPSBtX3JlcXVlc3RzUGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmln
aW4pOworICAgICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzKSB7CisgICAgICAg
ICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50
KGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQgOiBOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7CisgICAgICAgIH0KKyAgICB9KTsK
IH0KICNlbmRpZgogCkBAIC0xMjAsMjcgKzExNiw0IEBAIHZvaWQgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKQogI2Vu
ZGlmCiB9CiAKLXZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Ym9vbCBhbGxvd2VkKQotewotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIGlmICghaXNS
ZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIG9y
aWdpbiA9IG1faWRUb09yaWdpbk1hcC50YWtlKHJlcXVlc3RJRCk7Ci0gICAgaWYgKG9yaWdpbi5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+ZGlkVXBkYXRlTm90aWZpY2F0
aW9uRGVjaXNpb24ob3JpZ2luLnRvU3RyaW5nKCksIGFsbG93ZWQpOwotCi0gICAgYXV0byBjYWxs
YmFja3MgPSBtX3JlcXVlc3RzUGVyT3JpZ2luLnRha2Uob3JpZ2luKTsKLSAgICBmb3IgKGF1dG8m
IGNhbGxiYWNrIDogY2FsbGJhY2tzKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAg
ICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChhbGxvd2VkID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uOjpHcmFudGVkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5p
ZWQpOwotICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHJlcXVlc3RJRCk7Ci0gICAgVU5V
U0VEX1BBUkFNKGFsbG93ZWQpOwotI2VuZGlmICAgIAotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmgKaW5kZXggNGEwZGYxN2I2NTFjMTI3MGVlMmRiODM4OTY4N2Y0YzEwYzNiMWMzMS4uMTIwNzFi
MWM0NWFhZjg4NGE2NjRkMTc3NTA0YTc4NzIxMGE4OTA3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTU3LDE0ICs1NywxMSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQZXJtaXNzaW9uTGV2ZWxGb3JUZXN0aW5nKGNvbnN0IFN0
cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgcmVtb3ZlQWxsUGVy
bWlzc2lvbnNGb3JUZXN0aW5nKCk7CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93
ZWQpOwotICAgIAogcHJpdmF0ZToKICAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoV2ViUGFnZSopOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPj4+IG1fcmVxdWVzdHNQZXJPcmlnaW47Ci0gICAg
SGFzaE1hcDx1aW50NjRfdCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBtX2lkVG9Pcmln
aW5NYXA7CiAgICAgV2ViUGFnZSogbV9wYWdlOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3YTAyODBmN2ExZjg1NjRhMTA3
OGE0N2ZjOTU4NzIxMDc0ZmNkMjFkLi4zNDAxNDUyY2Y1ZTY0NWI4ZjcxZjY5YWVlNGYxZTE3OWVm
MWYyMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtNDY1NCwxMSArNDY1NCw2IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZUdlb2xvY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKEdlb2xvY2F0aW9uSWRlbnRpZmllciBnZW9sCiB9CiAjZW5k
aWYKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCi17Ci0gICAgbm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwotfQotCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIAogdm9pZCBXZWJQYWdlOjp1c2VyTWVkaWFBY2Nlc3NXYXNHcmFu
dGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgYXVkaW9E
ZXZpY2UsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgU3RyaW5nJiYgbWVk
aWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIGhh
bmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGZjOTYyMWUzNzJj
NWI0MDQyYjllZGJjYmNmMmUzMjM2NDNhYWVhMzEuLjgzODRlMWZlMzlkMjZmNzYzOWQ5YjRmZWRi
NDYwNzk3MDA1MGJjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTE3MzYsOCArMTczNiw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbihHZW9sb2NhdGlvbklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgYXV0aG9yaXphdGlvblRva2VuKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU5v
dGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9v
bCBhbGxvd2VkKTsKLQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCB1c2VyTWVk
aWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiYgYXVkaW9EZXZpY2VVSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2aWRlb0Rl
dmljZVVJRCwgU3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCByZWFzb24sIFN0cmluZyYmIGludmFsaWRDb25zdHJhaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDFiM2E2
ODFmY2I1MWY0MTNlMjFiYTQyNTQ0MmI4YzBhMWZkNWUwYWMuLjNmOTYxZDQ4M2QyMzQ5ZWU5NjA5
YjNiMzQ2Nzk3OTA3ZjI2YzVjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzkzLDkgKzM5Myw2IEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgU3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBB
c3luYwogICAgIFJlc3VtZUFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBBc3luYwogCi0gICAgIyBO
b3RpZmljYXRpb24KLSAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCi0KICAgICBGcmVlemVMYXll
clRyZWVEdWVUb1N3aXBlQW5pbWF0aW9uKCkKICAgICBVbmZyZWV6ZUxheWVyVHJlZUR1ZVRvU3dp
cGVBbmltYXRpb24oKQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>