<?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>237316</bug_id>
          
          <creation_ts>2022-03-01 03:39:08 -0800</creation_ts>
          <short_desc>Do capture video frame downsampling in GPUProcess</short_desc>
          <delta_ts>2022-03-11 07:34:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>237359</dependson>
          <blocked>237704</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846984</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-01 03:39:08 -0800</bug_when>
    <thetext>Do capture video frame downsampling in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849180</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-08 03:40:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/89959777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850007</commentid>
    <comment_count>2</comment_count>
      <attachid>454328</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-10 02:40:23 -0800</bug_when>
    <thetext>Created attachment 454328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850009</commentid>
    <comment_count>3</comment_count>
      <attachid>454330</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-10 03:16:43 -0800</bug_when>
    <thetext>Created attachment 454330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850030</commentid>
    <comment_count>4</comment_count>
      <attachid>454334</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-10 04:31:30 -0800</bug_when>
    <thetext>Created attachment 454334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850045</commentid>
    <comment_count>5</comment_count>
      <attachid>454338</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-10 05:20:56 -0800</bug_when>
    <thetext>Created attachment 454338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850125</commentid>
    <comment_count>6</comment_count>
      <attachid>454338</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-03-10 09:13:33 -0800</bug_when>
    <thetext>Comment on attachment 454338
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        Since display tracks are already cloned remotely, we can merge RemoteRealtimeDisplaySource and RemoteRealtimeVideoSource.

This is great!

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.h:265
&gt;      virtual void startProducingData() { }
&gt;      virtual void stopProducingData() { }
&gt; +    virtual void endProducingData() { stop(); }

I think it will be easy for someone that doesn&apos;t already know how these classes work to be confused about the difference between stopProducingData and endProducingData.

Conceptually these methods start, pause, and stop  (or cancel?) capture, so maybe they could be `startProducingData`, `pauseProducingData`, and `stopProducingData`. Or maybe we should change all three: `startDataProduction`, `pauseDataProduction`, and `endDataProduction`?

Renaming will touch a lot of files so it could be done in another patch

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:-4186
&gt; -		418FCBE3271049DB00F96ECA /* RemoteRealtimeDisplaySource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteRealtimeDisplaySource.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; -		418FCBE4271049DC00F96ECA /* RemoteRealtimeDisplaySource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteRealtimeDisplaySource.h; sourceTree = &quot;&lt;group&gt;&quot;; };

Can these files be deleted now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850427</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-11 02:54:33 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #6)
&gt; Comment on attachment 454338 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=454338&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        Since display tracks are already cloned remotely, we can merge RemoteRealtimeDisplaySource and RemoteRealtimeVideoSource.
&gt; 
&gt; This is great!

Glad you like it, I think it will make things simpler indeed.
Next step is to make RemoteRealtimeAudioSource and RemoteRealtimeVideoSource share most of the code in RemoteRealtimeMediaSource.

&gt; &gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.h:265
&gt; &gt;      virtual void startProducingData() { }
&gt; &gt;      virtual void stopProducingData() { }
&gt; &gt; +    virtual void endProducingData() { stop(); }
&gt; 
&gt; I think it will be easy for someone that doesn&apos;t already know how these
&gt; classes work to be confused about the difference between stopProducingData
&gt; and endProducingData.
&gt; 
&gt; Conceptually these methods start, pause, and stop  (or cancel?) capture, so
&gt; maybe they could be `startProducingData`, `pauseProducingData`, and
&gt; `stopProducingData`. Or maybe we should change all three:
&gt; `startDataProduction`, `pauseDataProduction`, and `endDataProduction`?

Agreed.
start and stop are not terminal while end is stop+cannot start again.
I guess we could use pause/resume/end?

&gt; Renaming will touch a lot of files so it could be done in another patch
&gt; 
&gt; &gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:-4186
&gt; &gt; -		418FCBE3271049DB00F96ECA /* RemoteRealtimeDisplaySource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteRealtimeDisplaySource.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; -		418FCBE4271049DC00F96ECA /* RemoteRealtimeDisplaySource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteRealtimeDisplaySource.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; 
&gt; Can these files be deleted now?

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850430</commentid>
    <comment_count>8</comment_count>
      <attachid>454466</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-11 02:57:57 -0800</bug_when>
    <thetext>Created attachment 454466
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850503</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-11 07:34:19 -0800</bug_when>
    <thetext>Committed r291167 (248327@main): &lt;https://commits.webkit.org/248327@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454466.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454328</attachid>
            <date>2022-03-10 02:40:23 -0800</date>
            <delta_ts>2022-03-10 03:24:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237316-20220310114019.patch</filename>
            <type>text/plain</type>
            <size>56751</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiOTVjYzQxNTZjN2My
ZjI5OTM1ZWRjYzNkOTYzMjlkZjk0MTc5MC4uZDBjNGRkNWE3MjA5OWI3MDBlY2M1MDVmZjgwM2Y3
ZDczM2ZiNmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAzLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEbyBjYXB0dXJlIHZpZGVv
IGZyYW1lIGRvd25zYW1wbGluZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg5OTU5Nzc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRvIHByZXZlbnQgc29tZSBmbGFraW5lc3Nlcywgd2Ugbm93IGNvbXB1dGUgdGhlIHZpZGVv
IGZyYW1lIHNpemUgZnJvbSBNZWRpYVNhbXBsZSBnaXZlbiB0byBydmZjIG1ldGFkYXRhLgorICAg
ICAgICBXZSBzdG9wIG1ha2luZyByZXF1ZXN0VG9FbmQgYXMgdmlydHVhbCBieSBpbnRyb2R1Y2lu
ZyBhIHZpcnR1YWwgZW5kUHJvZHVjaW5nRGF0YSBtZXRob2QuCisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OmVuZCBjYWxscyB0aGUgbmV3IGVuZFByb2R1Y2luZ0RhdGEgdmlydHVhbCBtZXRo
b2QsIHdoaWNoIGlzIHN0b3AgYnkgZGVmYXVsdC4KKyAgICAgICAgUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6ZW5kUHJvZHVjaW5nRGF0YSBpcyBpbXBsZW1lbnRlZCBieSBjYWxsaW5nIHJlcXVlc3RUb0Vu
ZCBvbiB0aGUgdW5kZXJseWluZyBzb3VyY2UuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB0aGF0
IGVuZGluZyBhIHNvdXJjZSB3aWxsIG5vdCBlbmQgYSByZWxhdGVkIGNsb25lZCBzb3VyY2UuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCiAyMDIyLTAzLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUmVtb3RlVmlk
ZW9TYW1wbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYzQ0MzE1ZmJjYzk0YTY4YzU0ZWEwYzY1YjcxNDE1MDIwNjA1
YjFmOS4uZGExNDczMTYyNWM3OWU0ODdhYmRkZjgzZTA2MzdlYzViNjVjZDVkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMiBAQAorMjAyMi0wMy0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgRG8gY2FwdHVyZSB2aWRlbyBmcmFtZSBkb3duc2FtcGxpbmcgaW4g
R1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3MzE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTk1OTc3Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGNsb25pbmcg
d2l0aGluIFdlYlByb2Nlc3MsIHdlIGtub3cgY2xvbmUgaW4gR1BVUHJvY2VzcyBmb3IgY2FtZXJh
IHRyYWNrcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCB1c2luZyBJT1N1cmZhY2VzIHdo
ZW4gc2V2ZXJhbCB0cmFja3MgYXJlIHVzaW5nIHRoZSBzYW1lIGRldmljZSB3aXRoIGRpZmZlcmVu
dCByZXNvbHV0aW9ucy4KKyAgICAgICAgU2luY2UgZGlzcGxheSB0cmFja3MgYXJlIGFscmVhZHkg
Y2xvbmVkIHJlbW90ZWx5LCB3ZSBjYW4gbWVyZ2UgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
IGFuZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLgorCisgICAgICAgIFdlIG5vIGxvbmdlciBu
ZWVkIHRvIHN0b3AgdGhlIHNvdXJjZSBpbiB+U291cmNlUHJveHkgZ2l2ZW4gd2UgYXJlIHJlbW92
aW5nIG91cnNlbHZlcyBmcm9tIG9ic2VydmluZyB0aGUgc291cmNlLgorICAgICAgICBXZSByZW5h
bWUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBlbmQgdG8gcmVtb3ZlICBhbmQgcmVxdWVz
dFRvRW5kIHRvIGVuZFByb2R1Y2luZ0RhdGEuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMi0wMy0wOSAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFJlbW90ZVZpZGVvU2FtcGxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDZiMjQ4NmIzODQ5ODM1MzRjNTYyOThhZmM2NWZkMGQ1
NDMxNDczMDIuLmRkNjgwYTg2YTlkNTkxNDMzN2EzNjUxMDdhNjE0MDVjZmNlZjY3M2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0yODcsNiArMjg3LDcgQEAgcHJpdmF0ZToKICAgICB1
aW50NjRfdCBtX3NhbXBsZUNvdW50IHsgMCB9OwogICAgIHVpbnQ2NF90IG1fbGFzdFZpZGVvRnJh
bWVNZXRhZGF0YVNhbXBsZUNvdW50IHsgMCB9OwogICAgIFNlY29uZHMgbV9wcmVzZW50YXRpb25U
aW1lIHsgMCB9OworICAgIEZsb2F0U2l6ZSBtX3ZpZGVvRnJhbWVTaXplOwogICAgIFZpZGVvU2Ft
cGxlTWV0YWRhdGEgbV9zYW1wbGVNZXRhZGF0YTsKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KaW5kZXggMjVmYWQ5MDkxMGFiNWU0YjNlZWYwOWRiNDdlNjlmNmUxYjgwMmUyMS4u
YTEyMjUzZmY3MDAzZWU1NmIzNGQzMGMwMWZlZjU4NTM2ZWU2OWE0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQpAQCAtMzI0LDYgKzMyNCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
CiAgICAgfQogCiAgICAgbV9wcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKKyAg
ICBtX3ZpZGVvRnJhbWVTaXplID0gc2FtcGxlLnByZXNlbnRhdGlvblNpemUoKTsKKyAgICBpZiAo
c2FtcGxlLnZpZGVvUm90YXRpb24oKSA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVm
dCB8fCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpSaWdodCkKKyAgICAgICAgbV92aWRlb0ZyYW1lU2l6ZSA9IHsgbV92aWRlb0ZyYW1lU2l6ZS5o
ZWlnaHQoKSwgbV92aWRlb0ZyYW1lU2l6ZS53aWR0aCgpIH07CiAgICAgbV9zYW1wbGVNZXRhZGF0
YSA9IG1ldGFkYXRhOwogICAgICsrbV9zYW1wbGVDb3VudDsKIApAQCAtMTEzMSw4ICsxMTM0LDgg
QEAgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmEKICAgICBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFT
YW1wbGVDb3VudCA9IG1fc2FtcGxlQ291bnQ7CiAKICAgICBWaWRlb0ZyYW1lTWV0YWRhdGEgbWV0
YWRhdGE7Ci0gICAgbWV0YWRhdGEud2lkdGggPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKTsKLSAg
ICBtZXRhZGF0YS5oZWlnaHQgPSBtX2ludHJpbnNpY1NpemUuaGVpZ2h0KCk7CisgICAgbWV0YWRh
dGEud2lkdGggPSBtX3ZpZGVvRnJhbWVTaXplLndpZHRoKCk7CisgICAgbWV0YWRhdGEuaGVpZ2h0
ID0gbV92aWRlb0ZyYW1lU2l6ZS5oZWlnaHQoKTsKICAgICBtZXRhZGF0YS5wcmVzZW50ZWRGcmFt
ZXMgPSBtX3NhbXBsZUNvdW50OwogICAgIG1ldGFkYXRhLnByZXNlbnRhdGlvblRpbWUgPSBtX3By
ZXNlbnRhdGlvblRpbWUuc2Vjb25kcygpOwogICAgIG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRp
bWUgPSBtX3ByZXNlbnRhdGlvblRpbWUuc2Vjb25kcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApp
bmRleCBmMWM5ZTYwMjgxM2EzYmY2ZmIzMTQxNzg4YjY2MDRjYTQzYjA5YjkxLi4zNGQ0NWI1YzQ0
ZWFhNWMyOGU1ZmY3MzIxMGFkOTQ5YmQ5N2M5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApA
QCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZW5kKE9ic2VydmVy
KiBjYWxsaW5nT2JzZXJ2ZXIpCiAKICAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CiAK
LSAgICBzdG9wKCk7CisgICAgZW5kUHJvZHVjaW5nRGF0YSgpOwogICAgIG1faXNFbmRlZCA9IHRy
dWU7CiAgICAgaGFzRW5kZWQoKTsKIApAQCAtMjkzLDExICsyOTMsNyBAQCB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQogICAgIEVSUk9SX0xPR19JRihtX2xvZ2dlciwg
TE9HSURFTlRJRklFUik7CiAKICAgICBtX2NhcHR1cmVEaWRGYWlsZWQgPSB0cnVlOwotCi0gICAg
c3RvcCgpOwotICAgIGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewotICAgICAg
ICBvYnNlcnZlci5zb3VyY2VTdG9wcGVkKCk7Ci0gICAgfSk7CisgICAgZW5kKCk7CiB9CiAKIGJv
b2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0
aW9uYWw8aW50Piwgc3RkOjpvcHRpb25hbDxpbnQ+LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgKaW5kZXggYzRiNDU3ZTI5NjBmMGVkYTkwOGI3MjEyOTg3MzhhZTgzZTUx
NDQyZS4uODMwMDczNGM2Nzc5YTEwZjI5OGE4MjI1OGQxNTI3OTQ4MmRlMjA4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7
CiAgICAgdm9pZCBzdG9wKCk7CiAgICAgdm9pZCBlbmRJbW1lZGlhdGx5KCkgeyBlbmQobnVsbHB0
cik7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJiBjYWxsaW5nT2Jz
ZXJ2ZXIpOworICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIp
OwogICAgIGJvb2wgaXNFbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFbmRlZDsgfQogCiAgICAg
Ym9vbCBtdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWQ7IH0KQEAgLTI2Miw2ICsyNjIsNyBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpIHsgc3RvcCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M6OkZsYWc+KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpIHsg
c3RvcCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDFkNGY5OWJmMmIxM2FhNjZhZmZj
MjQ4YmVjZTU5ODJlYjMwZDQ2NzAuLjkzYmNjMWEzMzIzMzdhMzE1OTFkZWZhYTIzODViYWEzODgz
MWJmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC03OCw2ICs3OCwxMiBAQCB2b2lkIFJl
YWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3NvdXJjZS0+c3Rv
cCgpOwogfQogCit2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmVuZFByb2R1Y2luZ0RhdGEoKQor
eworICAgIG1fc291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBt
X3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlzKTsKK30KKwogYm9vbCBSZWFsdGltZVZpZGVvU291
cmNlOjpzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBz
dGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRl
KQogewogICAgIHJldHVybiBtX3NvdXJjZS0+c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHdpZHRo
LCBoZWlnaHQsIGZyYW1lUmF0ZSk7CkBAIC0xNDgsMTEgKzE1NCw2IEBAIGJvb2wgUmVhbHRpbWVW
aWRlb1NvdXJjZTo6cHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpCiAgICAgcmV0dXJuIGhhc09i
c2VydmVyUHJldmVudGluZ1N0b3BwaW5nOwogfQogCi12b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6
OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYpCi17Ci0gICAgbV9z
b3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQogewogICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDM2ZjM4OGFhYWZhNThjZTFhNDM3Yjc4MGEwNDMy
MTAyMzZkYzQ2MDUuLmY0NzQ3M2IwYTJmMGQ2OWFhYTc5YmY3NWRkMWRjMThiNDBiNmM5N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1
cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0
aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpIGZpbmFs
OwogICAgIHZvaWQgc2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgs
IHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJh
dGUpIGZpbmFsOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOwot
ICAgIHZvaWQgcmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBjYWxs
aW5nT2JzZXJ2ZXIpIGZpbmFsOworICAgIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwog
ICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5hbDsKIAogICAgIGNvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1f
c291cmNlLT5jYXBhYmlsaXRpZXMoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDAxYmU4
ZDdkYWQ5YjYzYjdiN2I1MzcyMDVhNTljNzU1MGMyMjY2NjMuLmIwOGQxZmRkYWMwYTU5M2NhZDU0
NWE4Y2E1MzYxMjlmYTIyYTlkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYxOCw3ICs2
MTgsNiBAQCBXZWJQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvckNv
Y29hLm1tCiBXZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCi1XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWUwNjVmOWY4MmY0MTRkNTUzM2Fk
NmZlNWE2YmM3NDI1ZWFhODliNS4uOThlNjdjZTZjM2ViMWZiZjgyZjk3M2E4Yzc1YTg3MWVkZjQ0
MDUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTgzLDkgKzgzLDYgQEAgcHVi
bGljOgogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSB0
aGUgcmVuZGVyaW5nIHRocmVhZCBpcyBzdG9wcGVkIGJlZm9yZSB3ZSBwcm9jZWVkIHdpdGggdGhl
IGRlc3RydWN0aW9uLgotICAgICAgICBzdG9wKCk7Ci0KICAgICAgICAgc3dpdGNoIChtX3NvdXJj
ZS0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW86CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6U3lzdGVtQXVkaW86
CkBAIC0xMTcsMTkgKzExNCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpCiAgICAgewog
ICAgICAgICBtX3Nob3VsZFJlc2V0ID0gdHJ1ZTsKLSAgICAgICAgbV9pc0VuZGVkID0gZmFsc2U7
CisgICAgICAgIG1faXNTdG9wcGVkID0gZmFsc2U7CiAgICAgICAgIG1fc291cmNlLT5zdGFydCgp
OwogICAgIH0KIAogICAgIHZvaWQgc3RvcCgpCiAgICAgewotICAgICAgICBtX2lzRW5kZWQgPSB0
cnVlOworICAgICAgICBtX2lzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgIG1fc291cmNlLT5zdG9w
KCk7CiAgICAgfQogCi0gICAgdm9pZCByZXF1ZXN0VG9FbmQoKQorICAgIHZvaWQgZW5kKCkKICAg
ICB7Ci0gICAgICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgICAgIG1faXNTdG9wcGVkID0gdHJ1
ZTsKICAgICAgICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAgICAgfQogCkBAIC0y
NDcsNyArMjQ0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBp
bmcoKQogICAgIHsKICAgICAgICAgLy8gRG8gbm90IGFsbG93IHRoZSBzb3VyY2UgdG8gc3RvcCBp
ZiB3ZSBhcmUgc3RpbGwgdXNpbmcgaXQuCi0gICAgICAgIHJldHVybiAhbV9pc0VuZGVkOworICAg
ICAgICByZXR1cm4gIW1faXNTdG9wcGVkOwogICAgIH0KIAogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIG1faWQ7CkBAIC0yNTgsNyArMjU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwogICAgIGludDY0X3QgbV9udW1iZXJPZkZy
YW1lcyB7IDAgfTsKLSAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
U3RvcHBlZCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlUm90YXRpb25TZXNz
aW9uVlQ+IG1fcm90YXRpb25TZXNzaW9uOwogICAgIGJvb2wgbV9zaG91bGRBcHBseVJvdGF0aW9u
IHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpTZW1hcGhvcmU+IG1fY2FwdHVy
ZVNlbWFwaG9yZTsKQEAgLTQyNyw3ICs0MjQsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQog
ICAgICAgICBwcm94eS0+c3RvcCgpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmVuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVtb3ZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkKQogewogICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOwogfQpAQCAtNDY0LDEw
ICs0NjEsMTAgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAgICAgICAgbV9wcm94aWVzLmFk
ZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29u
bmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlv
blByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCksIG1fY29u
bmVjdGlvblByb3h5LT5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCgpKSk7CiB9CiAKLXZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjplbmRQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJj
ZUlEKQogewogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoc291cmNlSUQpKQot
ICAgICAgICBwcm94eS0+cmVxdWVzdFRvRW5kKCk7CisgICAgICAgIHByb3h5LT5lbmQoKTsKIH0K
IAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0
aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFw
cGx5Um90YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZDNhYjBkYWFmYTVhYTZi
MzEzY2YyOGY3N2RmY2M3MjZiZDI3OWQzNi4uMjk2OWE4ZDdlMmZhNGFmMzY1M2U5M2FhMDBkZDI0
MzM0Njk5YzAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtODcsMTEgKzg3LDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1l
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAg
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOwogICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgY2xvbmUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpOwotICAgIHZvaWQgcmVxdWVzdFRvRW5k
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGVuZFBy
b2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKIAogICAgIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZU1pY3JvcGhvbmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZWQ3ZjRkYWIxNmJlYTc5YjQyMWQ5NjYwZWUx
ZTQ5YzNmNjkwMTMzZS4uY2E4MDgxZGE3MWIwNGZlZmE4OGYzMjEyMTgzNTRmZWRlMTc3MDhhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNywxMCAr
MjcsMTAgQEAgbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBOb3RSZWZD
b3VudGVkIHsKICAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1v
dGVGcmFtZXMsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSAtPiAoYm9v
bCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRh
PiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5j
CiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkKQotICAgIEVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZCkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQpCiAgICAgQXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMgY29uc3RyYWludHMpCiAgICAgQ2xvbmUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGNsb25lSUQpCi0gICAgUmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIHNvdXJjZUlEKQorICAgIEVuZFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCiAgICAgU2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCwgYm9v
bCBzaG91bGRBcHBseVJvdGF0aW9uKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3N2E1OTliNTM0MDljYjhkNWJmNmI2OWYzNGJi
ZDE5MDIxNzhmYmZkLi4wN2QwN2Q1Mjg1NzMyNzRjNjdiODMxNmU3Y2IwNDYwMWVmMWI0Yzg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQxNDMsOCArNDE0Myw2IEBACiAJCTQxNjg0QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE2ODRDNEUyNDY0M0M4MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRG
MjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNjg0QzUwMjQ2NDUwRkQwMDFD
RThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxNkNENzQ1MjNGQjE3OEIwMDY2MUQ5OSAvKiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsg
cGF0aCA9IE5ldHdvcmsvd2VicnRjL01ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RURDMDUyNjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RURDMDYy
NjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDE4Miw4ICs0MTgwLDggQEAKIAkJNDE4OTdFRDQxRjQxNUQ4NTAwMTZGQTQyIC8q
IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5
N0VENTFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENjFGNDE1RDg2MDAxNkZBNDIgLyog
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVu
Z2luZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOEZDQkUzMjcxMDQ5REIw
MEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNB
IC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUE1RjdCOTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb25Db2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUE1
RjdCQTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VE
aXNwb3NpdGlvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE3Myw3
ICs1MTcxLDYgQEAKIAkJN0I1MEU5N0YyNzcxRjZDRTAwM0RBQUM0IC8qIElQQ1Rlc3Rlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJUENUZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QjUwRTk4MDI3NzFGNkNGMDAzREFBQzQgLyogSVBDVGVzdGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElQQ1Rlc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjVBM0RB
MDI3QTdEQzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I1QTNEQTEyN0E3REMxQTAwNkM2Rjk3IC8q
IFJlbW90ZVZpZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVWaWRlb0ZyYW1lUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZVBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNUEzREEzMjdBN0RDNkMwMDZD
NkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQTcyN0E3RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODc3
LDcgKzY4NzQsNiBAQAogCQkJCTdCNUEzREEwMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRl
b0ZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCTdCNUEzREEzMjdBN0RDNkMwMDZDNkY5NyAvKiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovLAogCQkJCTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5
NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCAqLywKLQkJCQk3QjVBM0RBMTI3QTdEQzFBMDA2
QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFERDJB
NjNBMjU1REU2RDEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcCAqLywK
IAkJCQkxREQyQTYzOTI1NURFNkQxMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZS5oICovLAogCQkJCTFERDJBNjZGMjU2MjJGMTEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLApAQCAtMTA0NTYsMTIgKzEwNDUyLDEwIEBACiAJCQkJ
NDE2ODRDNEQyNDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1l
c3NhZ2VzLmluICovLAogCQkJCTQxRTY3QThEMjVEMkNGRDAwMDdCMEE0QyAvKiBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcCAqLywKIAkJCQk0MUU2N0E4QzI1RDJDRkQwMDA3QjBBNEMgLyog
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oICovLAotCQkJCTQxOEZDQkUzMjcxMDQ5REIwMEY5
NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovLAotCQkJCTQxOEZDQkU0
MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCAqLywKIAkJ
CQk0MTYwMDhCMjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmNwcCAqLywKIAkJCQk0MTYwMDhCMTI1REE4NkI5MDBFODkyRkUgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmggKi8sCi0JCQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8q
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAotCQkJCTQxNjg0QzUxMjQ2NDUwRkQw
MDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8sCisJCQkJNDE4RkNCRTMy
NzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAorCQkJ
CTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgg
Ki8sCiAJCQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcCAqLywKIAkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaCAqLywKIAkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cAppbmRleCBiMDk4ZWZiZTdjMzNjM2RiOWVmMDc2ZTE5NmVkNGE4Zjk3ZGZmMmU3Li4zNGM0NjY0
MTk2NTI2ZTg5YTE5NzYzNTNjZjQ1NjY2MTkzYWNlNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5jcHAKQEAgLTEwMiwyMCArMTAyLDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXIKICAgICAg
ICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7CiAKICAgICAgICAgQVNT
RVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgICAgIG1fdmlk
ZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlbW90ZVZpZGVvPihXVEZNb3Zl
KHNvdXJjZSkpKTsKLSAgICB9KTsKLX0KLQotdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiYgc291cmNlKQot
ewotICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7Ci0gICAgc2V0Q29ubmVjdGlvbihz
b3VyY2UtPmNvbm5lY3Rpb24oKSk7Ci0KLSAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNvdXJjZSA9IFdURk1vdmUoc291cmNlKV0oKSBt
dXRhYmxlIHsKLSAgICAgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7
Ci0KLSAgICAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7
Ci0gICAgICAgIG1fdmlkZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlbW90
ZVZpZGVvPihXVEZNb3ZlKHNvdXJjZSkpKTsKKyAgICAgICAgbV92aWRlb1NvdXJjZXMuYWRkKGlk
ZW50aWZpZXIsIFdURk1vdmUoc291cmNlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE2OSw3ICsxNTYs
NyBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjp2aWRlb0ZyYW1lQXZhaWxhYmxl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQogICAgIH0oKTsKICAgICBhdXRvIGl0ZXJhdG9y
ID0gbV92aWRlb1NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0g
bV92aWRlb1NvdXJjZXMuZW5kKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxh
YmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHZpZGVvRnJhbWVBdmFpbGFi
bGUiLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGF1dG8gdmlkZW9GcmFtZVNpemUgPSB2aWRlb0ZyYW1lLT5zaXplKCk7CkBAIC0xODEsNyArMTY4
LDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6dmlkZW9GcmFtZUF2YWlsYWJs
ZUNWKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGkKICAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVu
TG9vcCgpKTsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV92aWRlb1NvdXJjZXMuZmluZChpZGVudGlm
aWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV92aWRlb1NvdXJjZXMuZW5kKCkpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUg
Zm9yIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNl
ICVsbHUgZm9yIHZpZGVvRnJhbWVBdmFpbGFibGVDViIsIGlkZW50aWZpZXIudG9VSW50NjQoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI1NSwyMCArMjQyLDYgQEAgdm9pZCBSZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hh
cmVkTWVtb3J5OjpIYW4KICAgICBzdGFydFRocmVhZCgpOwogfQogCi1SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OlJlbW90ZVZpZGVvKFNvdXJjZSYmIHNvdXJjZSkKLSAg
ICA6IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKLXsKLX0KLQotdm9pZCBSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OnZpZGVvRnJhbWVBdmFpbGFibGUoUmVmPE1lZGlh
U2FtcGxlPiYmIHNhbXBsZSwgSW50U2l6ZSBzaXplLCBWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFk
YXRhKQotewotICAgIHN3aXRjaE9uKG1fc291cmNlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT52aWRlb1NhbXBsZUF2YWlsYWJs
ZShzYW1wbGUuZ2V0KCksIHNpemUsIG1ldGFkYXRhKTsKLSAgICB9LCBbJl0oUmVmPFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPnJlbW90ZVZp
ZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZS5nZXQoKSwgbWV0YWRhdGEpOwotICAgIH0pOwotfQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2OTQ1Y2FkOWZmMTFhYjg4
MmNjYzdkNzY0MTBhNzVkZWI3ODJhNDUzLi5hMjRlOWNlNzJlNTI3ZGIwYTE2Y2U1YzUwMzBlZGEy
NTQ3NzZiMWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzEsNyArMzEsNiBAQAogI2lu
Y2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKQEAgLTU5LDcgKzU4LDYgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwogICAgIHZv
aWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKLSAgICB2b2lk
IGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmKTsKICAgICB2b2lk
IHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAK
ICAgICB2b2lkIGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKik7CkBA
IC0xMDUsMjQgKzEwMywxMiBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6OmF0b21pYzxib29sPiBt
X3Nob3VsZFN0b3BUaHJlYWQgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBjbGFzcyBSZW1vdGVW
aWRlbyB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAg
ICAgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4+OwotICAgICAgICBleHBs
aWNpdCBSZW1vdGVWaWRlbyhTb3VyY2UmJik7Ci0KLSAgICAgICAgdm9pZCB2aWRlb0ZyYW1lQXZh
aWxhYmxlKFJlZjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgV2Vi
Q29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTb3Vy
Y2UgbV9zb3VyY2U7Ci0gICAgfTsKLQogICAgIGJvb2wgbV9pc1JlZ2lzdGVyZWRUb1BhcmVudFBy
b2Nlc3NDb25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwog
ICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICAvLyBiYWNrZ3Jv
dW5kIHRocmVhZCBtZW1iZXIKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW8+PiBtX2F1ZGlvU291cmNl
czsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW8+PiBtX3ZpZGVvU291cmNlczsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZT4+IG1fdmlkZW9Tb3VyY2VzOwogCiAgICAgTG9jayBtX3ZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlMb2NrOwogICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5PiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkgV1RGX0dVQVJERURfQllfTE9DSyht
X3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5jcHAKaW5kZXggZTkxMGI2MTYwNTg5MDZhOTE5ZGU1MDhiNTliN2E5MjUxODJkMDBlMS4u
NjFmMWZhMzNiMTM2NzEzM2E1ZDExMGY5M2IyMTNhODZhZWQ5ODcwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTcwLDExICs3MCwyNiBAQCB2b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1
Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKK3ZvaWQgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5OjplbmRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZFByb2R1Y2lu
Z0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmlj
ZUlESGFzaFNhbHQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBDcmVh
dGVDYWxsYmFjayYmIGNhbGxiYWNrLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lKQogewogICAg
IGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25z
dHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjbG9uZSgpCit7CisgICAgcmV0dXJuIHsgUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1fZGV2aWNlLCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsICZtX2NvbnN0cmFpbnRzIH07Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVDbG9uZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlkZW50aWZpZXIpCit7CisgICAgY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9u
ZSB7IG1faWRlbnRpZmllciwgY2xvbmVJZGVudGlmaWVyIH0sIDApOworfQorCiB2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJh
aW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BlbmRpbmdBcHBseUNv
bnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBA
IC0xMDUsNyArMTIwLDcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmVu
ZCgpCiB7CiAgICAgQVNTRVJUKCFtX2lzRW5kZWQpOwogICAgIG1faXNFbmRlZCA9IHRydWU7Ci0g
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZW1vdmVTb3VyY2UgeyBtX2lk
ZW50aWZpZXIgfSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
Ojp3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCmluZGV4IGIxMTBkMWU3ZDY1ZmFjMmFmNTQ0ODI5
ZjcyZTRmZWNiMjVlNDgzNmIuLmFhNjU4OTllZTdmNThmN2QzZmQ1YTA5Nzk3OTI3MTFiMTU5M2U0
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKQEAgLTUwLDExICs1MCwxNSBAQCBw
dWJsaWM6CiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCk7CiAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUg
ZGV2aWNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlLnR5cGUoKTsgfQorICAgIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNl
OyB9CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4g
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzOyB9CiAKICAgICB1c2luZyBDcmVhdGVDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgU3RyaW5nJiYsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzJiYsIFZlY3RvcjxXZWJDb3JlOjpWaWRlb1ByZXNldERhdGE+JiYsIFdlYkNvcmU6
OkludFNpemUsIGRvdWJsZSk+OwogICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYsIGJv
b2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CiAKKyAgICBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlUHJveHkgY2xvbmUoKTsKKyAgICB2b2lkIGNyZWF0ZVJlbW90ZUNsb25lU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKwogICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxl
ZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwogICAg
IHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSk7CkBAIC02Myw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuZCgpOwogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpOwor
ICAgIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJik7CiAKICAgICB2b2lkIHdoZW5SZWFkeShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwpAQCAtNzYsNiArODEsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRJbnRlcnJ1cHRlZChib29sIGludGVycnVwdGVkKSB7IG1faW50ZXJy
dXB0ZWQgPSBpbnRlcnJ1cHRlZDsgfQogCiBwcml2YXRlOgorICAgIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkmJikgPSBkZWZhdWx0
OworICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSYgb3BlcmF0b3I9KFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eSYmKSA9IGRlZmF1bHQ7CisKICAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSBtX2RldmljZTsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggZWRkNWQ0MTYxMzNhYzcy
MmRhMGI5OGUzNDYwYjk1ZTQxYzFjM2E3NS4uODg5MzBjMmVjY2E4NjZmMDE1NmUyY2RkZDYxN2Vi
MmE1YTQ4MzMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw1OCArMjgsNTQgQEAKIAog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAi
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29u
c3RyYWludHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5n
IG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzLCBwYWdlSWRlbnRpZmllcikpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdl
ciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5h
Z2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJj
ZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFN0
cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlk
ZW50aWZpZXIpCitSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0
ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3By
b3h5KGlkZW50aWZpZXIsIGRldmljZSwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3Ry
YWludHMpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKIHsKIH0KIAorUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkmJiBwcm94eSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiBtYW5hZ2VyLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJl
YWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmlu
ZyB7IHByb3h5LmRldmljZSgpLmxhYmVsKCkgfSwgU3RyaW5nIHsgcHJveHkuZGV2aWNlKCkucGVy
c2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQorICAgICwg
bV9wcm94eShXVEZNb3ZlKHByb3h5KSkKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQoreworfQor
CiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNl
KCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNh
bHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdz
LCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplLCBhdXRvIGZy
YW1lUmF0ZSkgbXV0YWJsZSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShk
ZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1
dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7
CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwo
V1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIHNldFNpemUoc2l6ZSk7Ci0gICAgICAgIHNldEZyYW1lUmF0ZShmcmFtZVJhdGUp
OwotCiAgICAgICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICAgICAgc2V0
Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Ci0gICAgICAgIHNldFN1cHBvcnRl
ZFByZXNldHMoV1RGTW92ZShwcmVzZXRzKSk7Ci0gICAgICAgIHNldE5hbWUoU3RyaW5nIHsgbV9z
ZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwogCiAgICAgICAgIG1fcHJveHkuc2V0QXNSZWFk
eSgpOwogICAgICAgICBpZiAobV9wcm94eS5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpCiAg
ICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbigpLmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfSwgbV9tYW5hZ2VyLnNob3VsZFVzZUdQVVBy
b2Nlc3NSZW1vdGVGcmFtZXMoKSk7CisgICAgfSwgbV9wcm94eS5zaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKCkgJiYgbV9tYW5hZ2VyLnNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMoKSk7
CiB9CiAKIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6On5SZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlKCkKQEAgLTkwLDYgKzg2LDExIEBAIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6On5SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlKCkKICAgICB9CiB9CiAKK3ZvaWQgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6ZW5kUHJvZHVjaW5nRGF0YSgpCit7CisgICAgbV9wcm94eS5lbmRQcm9kdWNp
bmdEYXRhKCk7Cit9CisKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0Q2FwYWJp
bGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCiB7
CiAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CkBAIC0xMDIsMzcg
KzEwMywxNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldFNldHRpbmdzKFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbgogICAgIG5vdGlmeVNldHRpbmdzRGlk
Q2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIEludFNpemUg
c2FtcGxlU2l6ZSwgVmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0YSkKLXsKLSAgICBBU1NFUlQo
dHlwZSgpID09IFR5cGU6OlZpZGVvKTsKLQotICAgIHNldEludHJpbnNpY1NpemUoc2FtcGxlU2l6
ZSk7Ci0KLSAgICBpZiAobV9zYW1wbGVSb3RhdGlvbiAhPSBzYW1wbGUudmlkZW9Sb3RhdGlvbigp
KSB7Ci0gICAgICAgIG1fc2FtcGxlUm90YXRpb24gPSBzYW1wbGUudmlkZW9Sb3RhdGlvbigpOwot
Ci0gICAgICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKLSAgICAgICAgaWYgKG1fc2FtcGxl
Um90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQgfHwgbV9zYW1wbGVS
b3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpIHsKLSAgICAgICAg
ICAgIHNpemUgPSBzaXplLnRyYW5zcG9zZWRTaXplKCk7Ci0gICAgICAgICAgICBtX3NldHRpbmdz
LnNldFdpZHRoKHNpemUud2lkdGgoKSk7Ci0gICAgICAgICAgICBtX3NldHRpbmdzLnNldEhlaWdo
dChzaXplLmhlaWdodCgpKTsKLSAgICAgICAgfQotICAgICAgICBzY2hlZHVsZURlZmVycmVkVGFz
ayhbdGhpc10gewotICAgICAgICAgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMo
eyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc6OldpZHRoLCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3M6OkZsYWc6OkhlaWdodCB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAg
IGRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyhzYW1wbGUsIG1ldGFkYXRhKTsKLX0KLQog
Ym9vbCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJv
b2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKIHsKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24g
eyBpZGVudGlmaWVyKCksIHNob3VsZEFwcGx5Um90YXRpb24gfSwgMCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpCit2b2lkIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7Ci0gICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OworICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICBtX3Byb3h5LmFwcGx5
Q29uc3RyYWludHNTdWNjZWVkZWQoKTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpoYXNFbmRlZCgpCkBAIC0xNDUsNDYgKzEyNSwzNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlU3RvcHBlZChib29sIGRpZEZhaWwpCitSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2xvbmUoKQogewot
ICAgIGlmIChkaWRGYWlsKQotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgZWxzZQotICAg
ICAgICBlbmQoKTsKLSAgICBoYXNFbmRlZCgpOwotfQorICAgIGlmIChpc0VuZGVkKCkgfHwgbV9w
cm94eS5pc0VuZGVkKCkpCisgICAgICAgIHJldHVybiAqdGhpczsKIAotdm9pZCBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpnZW5lcmF0ZVByZXNldHMoKQotewotICAgIEFTU0VSVChtX3Byb3h5
LmlzUmVhZHkoKSk7Ci19CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UobV9wcm94eS5jbG9uZSgpLCBkZXZpY2VJREhhc2hTYWx0KCksIG1f
bWFuYWdlciwgcGFnZUlkZW50aWZpZXIoKSkpOwogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlIGZyYW1lUmF0ZSwgUmVmUHRyPFZp
ZGVvUHJlc2V0PiBwcmVzZXQpCi17Ci0gICAgTWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50czsK
KyAgICBzb3VyY2UtPnNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IHNl
dHRpbmdzKCkgfSk7CisgICAgc291cmNlLT5zZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyB7IGNhcGFiaWxpdGllcygpIH0pOwogCi0gICAgY29uc3RyYWludHMu
aXNWYWxpZCA9IHRydWU7Ci0gICAgRG91YmxlQ29uc3RyYWludCBmcmFtZVJhdGVDb25zdHJhaW50
KCJmcmFtZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSk7Ci0gICAgZnJh
bWVSYXRlQ29uc3RyYWludC5zZXRJZGVhbChmcmFtZVJhdGUpOwotICAgIGNvbnN0cmFpbnRzLm1h
bmRhdG9yeUNvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUsIGZy
YW1lUmF0ZUNvbnN0cmFpbnQpOworICAgIG1fbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlS
ZWYoKSk7CisgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291
cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogCi0gICAgaWYgKHByZXNldCkgewotICAgICAgICBJbnRD
b25zdHJhaW50IHdpZHRoQ29uc3RyYWludCgid2lkdGgiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6
OldpZHRoKTsKLSAgICAgICAgd2lkdGhDb25zdHJhaW50LnNldElkZWFsKHByZXNldC0+c2l6ZS53
aWR0aCgpKTsKLSAgICAgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1l
ZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCB3aWR0aENvbnN0cmFpbnQpOworICAgIG1fcHJveHku
Y3JlYXRlUmVtb3RlQ2xvbmVTb3VyY2Uoc291cmNlLT5pZGVudGlmaWVyKCkpOwogCi0gICAgICAg
IEludENvbnN0cmFpbnQgaGVpZ2h0Q29uc3RyYWludCgiaGVpZ2h0Il9zLCBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpIZWlnaHQpOwotICAgICAgICBoZWlnaHRDb25zdHJhaW50LnNldElkZWFsKHByZXNl
dC0+c2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFp
bnRzLnNldChNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQsIGhlaWdodENvbnN0cmFpbnQpOwot
ICAgIH0KKyAgICByZXR1cm4gc291cmNlOworfQogCi0gICAgbV9zaXplQ29uc3RyYWludHMgPSBj
b25zdHJhaW50czsKLSAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIFtd
KGF1dG8pIHsgfSk7Cit2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVTdG9w
cGVkKGJvb2wgZGlkRmFpbCkKK3sKKyAgICBpZiAoZGlkRmFpbCkKKyAgICAgICAgY2FwdHVyZUZh
aWxlZCgpOworICAgIGVsc2UKKyAgICAgICAgZW5kKCk7CisgICAgaGFzRW5kZWQoKTsKIH0KIAot
Ym9vbCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpwcmVmZXJzUHJlc2V0KFZpZGVvUHJlc2V0
JikKK3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25z
dCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXIm
JiBjYWxsYmFjaykKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBtX2NvbnN0cmFpbnRzID0gY29u
c3RyYWludHM7CisgICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCkBAIC0xOTksOCAr
MTcwLDggQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVj
dGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8KICAgICBjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZSgpOwogCiAgICAgbV9wcm94eS5mYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKCJHUFUg
UHJvY2VzcyB0ZXJtaW5hdGVkIl9zKTsKLSAgICBpZiAobV9zaXplQ29uc3RyYWludHMpCi0gICAg
ICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50cygqbV9zaXplQ29uc3RyYWludHMsIFtdKGF1dG8p
IHsgfSk7CisgICAgaWYgKG1fY29uc3RyYWludHMpCisgICAgICAgIG1fcHJveHkuYXBwbHlDb25z
dHJhaW50cygqbV9jb25zdHJhaW50cywgW10oYXV0bykgeyB9KTsKIAogICAgIGlmIChpc1Byb2R1
Y2luZ0RhdGEoKSkKICAgICAgICAgc3RhcnRQcm9kdWNpbmdEYXRhKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaAppbmRleCA5ZWYwYmM3MmI1MzljMGY5Njk5Y2ExYWEzMzI2M2UyNTgyNjhlODkzLi5hNjNm
NWZjYzYzYjU1YjJkYzY5NmExNmY1YmY4NjU4NWRhMjdhMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzAsMzIgKzMwLDI1IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oPgotI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19
CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LWNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKLWNsYXNzIEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKLWNsYXNzIE1lZGlhU2FtcGxlOwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7CiAK
LWNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKK2NsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKICAgICAsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50
CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTY1LDMx
ICs1OCwzMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFp
bCk7CiAKLSAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
JiwgV2ViQ29yZTo6SW50U2l6ZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSk7CisgICAg
dm9pZCB2aWRlb0ZyYW1lQXZhaWxhYmxlKFdlYkNvcmU6OlZpZGVvRnJhbWUmIGZyYW1lLCBXZWJD
b3JlOjpJbnRTaXplLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKSB7IHZp
ZGVvU2FtcGxlQXZhaWxhYmxlKGZyYW1lLCBtZXRhZGF0YSk7IH0KICAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZChib29sIHZhbHVlLCBib29sIGludGVycnVwdGVkKTsKIAorICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmJik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENv
bnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkgeyBtX3Byb3h5LmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2Up
KTsgfQorCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAg
ICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eSYmLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CiAKLSAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9CiAgICAgdm9pZCBzdG9w
UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdG9wUHJvZHVjaW5nRGF0YSgpOyB9CiAg
ICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICB2b2lkIGNvbW1pdENv
bmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24o
Ym9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWlu
dHNIYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKICAgICBjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwg
eyByZXR1cm4gbV9zZXR0aW5nczsgfQotICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOworICAgIGNvbnN0IFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFs
IHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKSBmaW5hbCB7IG1fcHJveHkud2hlblJl
YWR5KFdURk1vdmUoY2FsbGJhY2spKTsgfQogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuZGV2aWNl
VHlwZSgpOyB9Ci0KLSAgICAvLyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQot
ICAgIHZvaWQgZ2VuZXJhdGVQcmVzZXRzKCkgZmluYWw7Ci0gICAgV2ViQ29yZTo6TWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb24gc2FtcGxlUm90YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3NhbXBsZVJvdGF0aW9uOyB9Ci0gICAgdm9pZCBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KGRvdWJs
ZSwgUmVmUHRyPFdlYkNvcmU6OlZpZGVvUHJlc2V0PikgZmluYWw7Ci0gICAgYm9vbCBwcmVmZXJz
UHJlc2V0KFdlYkNvcmU6OlZpZGVvUHJlc2V0JikgZmluYWw7Ci0gICAgYm9vbCBpbnRlcnJ1cHRl
ZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuaW50ZXJydXB0ZWQoKTsgfQorICAgIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOworICAgIHZvaWQgZW5kUHJvZHVj
aW5nRGF0YSgpIGZpbmFsOworICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sKSBm
aW5hbDsKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6Q2xpZW50CkBAIC05NywxNyArOTAsMTMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
dm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwotICAgIHZvaWQgZGlkRmFpbChTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgc2V0QXNSZWFkeSgpOwogICAgIHZvaWQgc2V0Q2Fw
YWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7CiAK
ICAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgbV9wcm94eTsKICAgICBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwotCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzPiBtX3NpemVDb25zdHJhaW50czsKKyAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKLSAgICBXZWJDb3Jl
OjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3NhbXBsZVJvdGF0aW9uIHsgV2ViQ29yZTo6
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfTsKIH07CiAKIGlubGluZSB2b2lkIFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZChib29sIG11dGVkLCBi
b29sIGludGVycnVwdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggZTE0NDAxYmI3MDdlNjU3
ZjE1YzExOWZlYjNjZmNmZTNkMGUzNThlNi4uOThmYTM3ZDg1NTc1YTJjOGI0MzJjNWZjNTJiZmM0
MzVjOGEyNWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5j
bHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
LmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgogI2luY2x1ZGUgIlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlck1lc3NhZ2VzLmgiCkBAIC0xMTEsMTMgKzExMCw2IEBAIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4m
JiBzb3VyY2UpCiAgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBTb3VyY2UoV1RGTW92ZShz
b3VyY2UpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZShS
ZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmIHNvdXJjZSkKLXsKLSAgICBhdXRvIGlk
ZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKLSAgICBBU1NFUlQoIW1fc291cmNlcy5j
b250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBTb3Vy
Y2UoV1RGTW92ZShzb3VyY2UpKSk7Ci19Ci0KIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnJlbW92ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwpAQCAtMTM0LDgg
KzEyNiw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpCiAgICAgICAgIHNvdXJjZS0+Y2FwdHVy
ZVN0b3BwZWQoZGlkRmFpbCk7CiAgICAgfSwgW2RpZEZhaWxdKFJlZjxSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoZGlk
RmFpbCk7Ci0gICAgfSwgW2RpZEZhaWxdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+
JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsKICAg
ICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIApAQCAtMTQ5LDggKzEzOSw2IEBAIHZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVkQ2hhbmdlZChSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpCiAgICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2Vk
KG11dGVkLCBpbnRlcnJ1cHRlZCk7CiAgICAgfSwgW211dGVkLCBpbnRlcnJ1cHRlZF0oUmVmPFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5zb3Vy
Y2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKLSAgICB9LCBbbXV0ZWQsIGludGVy
cnVwdGVkXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7Ci0gICAg
ICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkLCBpbnRlcnJ1cHRlZCk7CiAgICAg
fSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKQEAgLTE2NCw4ICsxNTIsNiBAQCB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQoUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZQogICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUo
c2V0dGluZ3MpKTsKICAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBz
b3VyY2UpIHsKICAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7
Ci0gICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsK
LSAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgfSwg
W10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKQEAgLTE3OCw3ICsxNjQsNiBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudAogICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgWyZdKFJlZjxS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+YXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZChXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgfSwgWyZdKFJl
ZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7Ci0gICAgfSwgWyZdKFJlZjxS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5h
cHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICB9LCBbXShz
dGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KQEAgLTE5Miw3ICsxNzcsNiBAQCB2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaQogICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgWyZdKFJlZjxSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1lc3NhZ2Up
KTsKICAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsK
LSAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewog
ICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25z
dHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsg
fSk7CiB9CkBAIC0yMzIsOCArMjE2LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28KICAgICBp
ZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICBtX21hbmFnZXIubV9yZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkoKSk7CiAKLSAgICBib29sIHNob3VsZFVzZUlPU3VyZmFjZSA9ICFt
X21hbmFnZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzOwotICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgV1RGTW92
ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdl
SWRlbnRpZmllciksIHNob3VsZFVzZUlPU3VyZmFjZSkpOworICAgIHJldHVybiBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNo
U2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRp
Zmllcik7CiB9CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQpAQCAtMjQ1LDcg
KzIyOCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpE
aXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1CiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcykKICAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS52aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5
KCkpOwogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGRl
dmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpOworICAgIHJldHVybiBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZSho
YXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0
b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5oCmluZGV4IGIwMTQ4NDFhMmJmMWIwODRhMzliNzk3MzBlNmYyN2Y2ZmI5NGYxMzYuLjI5MzRj
NWZkZmNlZTk1ZDVkYTAwOTlkNDNlMzk0YjEyNDI4MTU2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBA
IC00Myw3ICs0Myw2IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOwotY2xhc3MgUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOwogY2xhc3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKQEAgLTYwLDcgKzU5LDYgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwogICAgIHZv
aWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKLSAgICB2b2lk
IGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmKTsKICAgICB2b2lk
IHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAK
ICAgICBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlciYgcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIoKSB7IHJldHVybiBtX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOyB9CkBAIC0xMzEsNyAr
MTI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyYmLCBTdHJpbmcmJik7
CiAKLSAgICB1c2luZyBTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+
LCBSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPj47CisgICAgdXNpbmcgU291cmNlID0g
c3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZT4sIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPj47CiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU291cmNlPiBtX3NvdXJjZXM7CiAgICAg
V2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogICAgIE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciBtX25v
T3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZjMyODkwYWJmZGQ3ZTYwN2ZjZGFhNjRi
ZTc0YTdiNDVmYWI0MjNjLi43OWJjOGQwNWQzNjdjNmFmMmU0YzljZmNlYjkwOTY1ZmMxMDlkYjcy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIERvIGNhcHR1cmUgdmlkZW8gZnJhbWUgZG93bnNhbXBs
aW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNzMxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODk5NTk3Nzc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWw6CisgICAgICAgIFJlbW92ZSBwb3RlbnRp
YWwgcmFjZSBjb25kaXRpb24gYnkgcmVzdGFydGluZyBwbGF5aW5nIHRoZSBzdHJlYW0gdG8gY29t
cHV0ZSB0aGUgc2l6ZS4gCisKIDIwMjItMDMtMDkgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2Ft
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0
bWwKaW5kZXggZTc4MjY5MmQ3MmE0MWU5ZTc2Zjg0ZTQ5N2MwODM5NWZkNjhkMDIwYy4uY2Q3MDQ2
MDczYjNhM2YwZThjMmI5NmVjOTljZTI1NWRjZjY3YmI2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbApAQCAtMjUs
NiArMjUsMTAgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKIAogICAgIGFzc2VydF9lcXVh
bHModmlkZW8yLnZpZGVvV2lkdGgsIDMyMCk7CiAKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gbnVs
bDsKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gc3RyZWFtMTsKKyAgICBhd2FpdCB2aWRlbzEucGxh
eSgpOworCiAgICAgdGVzdCgoKSA9PiB7CiAgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8xLnZp
ZGVvV2lkdGgsIDY0MCk7CiAgICAgfSwgIm9yaWdpbmFsIHNvdXJjZSBzaG91bGQgc3RheSBhdCBh
IHNtYWxsIHNpemUiKTsKQEAgLTQ0LDYgKzQ4LDEwIEBAIHByb21pc2VfdGVzdChhc3luYyAoKSA9
PiB7CiAKICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMi52aWRlb1dpZHRoLCAxMjgwKTsKIAorICAg
IHZpZGVvMS5zcmNPYmplY3QgPSBudWxsOworICAgIHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0x
OworICAgIGF3YWl0IHZpZGVvMS5wbGF5KCk7CisKICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAg
YXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKICAgICB9LCAib3JpZ2luYWwg
c291cmNlIHNob3VsZCBzdGF5IGF0IGEgYmlnIHNpemUiKTsK
</data>
<flag name="commit-queue"
          id="481952"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454330</attachid>
            <date>2022-03-10 03:16:43 -0800</date>
            <delta_ts>2022-03-10 04:31:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237316-20220310121639.patch</filename>
            <type>text/plain</type>
            <size>56708</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiOTVjYzQxNTZjN2My
ZjI5OTM1ZWRjYzNkOTYzMjlkZjk0MTc5MC4uZDBjNGRkNWE3MjA5OWI3MDBlY2M1MDVmZjgwM2Y3
ZDczM2ZiNmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAzLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEbyBjYXB0dXJlIHZpZGVv
IGZyYW1lIGRvd25zYW1wbGluZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg5OTU5Nzc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRvIHByZXZlbnQgc29tZSBmbGFraW5lc3Nlcywgd2Ugbm93IGNvbXB1dGUgdGhlIHZpZGVv
IGZyYW1lIHNpemUgZnJvbSBNZWRpYVNhbXBsZSBnaXZlbiB0byBydmZjIG1ldGFkYXRhLgorICAg
ICAgICBXZSBzdG9wIG1ha2luZyByZXF1ZXN0VG9FbmQgYXMgdmlydHVhbCBieSBpbnRyb2R1Y2lu
ZyBhIHZpcnR1YWwgZW5kUHJvZHVjaW5nRGF0YSBtZXRob2QuCisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OmVuZCBjYWxscyB0aGUgbmV3IGVuZFByb2R1Y2luZ0RhdGEgdmlydHVhbCBtZXRo
b2QsIHdoaWNoIGlzIHN0b3AgYnkgZGVmYXVsdC4KKyAgICAgICAgUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6ZW5kUHJvZHVjaW5nRGF0YSBpcyBpbXBsZW1lbnRlZCBieSBjYWxsaW5nIHJlcXVlc3RUb0Vu
ZCBvbiB0aGUgdW5kZXJseWluZyBzb3VyY2UuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB0aGF0
IGVuZGluZyBhIHNvdXJjZSB3aWxsIG5vdCBlbmQgYSByZWxhdGVkIGNsb25lZCBzb3VyY2UuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCiAyMDIyLTAzLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUmVtb3RlVmlk
ZW9TYW1wbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYzQ0MzE1ZmJjYzk0YTY4YzU0ZWEwYzY1YjcxNDE1MDIwNjA1
YjFmOS4uZGExNDczMTYyNWM3OWU0ODdhYmRkZjgzZTA2MzdlYzViNjVjZDVkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMiBAQAorMjAyMi0wMy0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgRG8gY2FwdHVyZSB2aWRlbyBmcmFtZSBkb3duc2FtcGxpbmcgaW4g
R1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3MzE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTk1OTc3Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGNsb25pbmcg
d2l0aGluIFdlYlByb2Nlc3MsIHdlIGtub3cgY2xvbmUgaW4gR1BVUHJvY2VzcyBmb3IgY2FtZXJh
IHRyYWNrcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCB1c2luZyBJT1N1cmZhY2VzIHdo
ZW4gc2V2ZXJhbCB0cmFja3MgYXJlIHVzaW5nIHRoZSBzYW1lIGRldmljZSB3aXRoIGRpZmZlcmVu
dCByZXNvbHV0aW9ucy4KKyAgICAgICAgU2luY2UgZGlzcGxheSB0cmFja3MgYXJlIGFscmVhZHkg
Y2xvbmVkIHJlbW90ZWx5LCB3ZSBjYW4gbWVyZ2UgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
IGFuZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLgorCisgICAgICAgIFdlIG5vIGxvbmdlciBu
ZWVkIHRvIHN0b3AgdGhlIHNvdXJjZSBpbiB+U291cmNlUHJveHkgZ2l2ZW4gd2UgYXJlIHJlbW92
aW5nIG91cnNlbHZlcyBmcm9tIG9ic2VydmluZyB0aGUgc291cmNlLgorICAgICAgICBXZSByZW5h
bWUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBlbmQgdG8gcmVtb3ZlICBhbmQgcmVxdWVz
dFRvRW5kIHRvIGVuZFByb2R1Y2luZ0RhdGEuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMi0wMy0wOSAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFJlbW90ZVZpZGVvU2FtcGxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDZiMjQ4NmIzODQ5ODM1MzRjNTYyOThhZmM2NWZkMGQ1
NDMxNDczMDIuLmRkNjgwYTg2YTlkNTkxNDMzN2EzNjUxMDdhNjE0MDVjZmNlZjY3M2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0yODcsNiArMjg3LDcgQEAgcHJpdmF0ZToKICAgICB1
aW50NjRfdCBtX3NhbXBsZUNvdW50IHsgMCB9OwogICAgIHVpbnQ2NF90IG1fbGFzdFZpZGVvRnJh
bWVNZXRhZGF0YVNhbXBsZUNvdW50IHsgMCB9OwogICAgIFNlY29uZHMgbV9wcmVzZW50YXRpb25U
aW1lIHsgMCB9OworICAgIEZsb2F0U2l6ZSBtX3ZpZGVvRnJhbWVTaXplOwogICAgIFZpZGVvU2Ft
cGxlTWV0YWRhdGEgbV9zYW1wbGVNZXRhZGF0YTsKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KaW5kZXggMjVmYWQ5MDkxMGFiNWU0YjNlZWYwOWRiNDdlNjlmNmUxYjgwMmUyMS4u
YTEyMjUzZmY3MDAzZWU1NmIzNGQzMGMwMWZlZjU4NTM2ZWU2OWE0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQpAQCAtMzI0LDYgKzMyNCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
CiAgICAgfQogCiAgICAgbV9wcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKKyAg
ICBtX3ZpZGVvRnJhbWVTaXplID0gc2FtcGxlLnByZXNlbnRhdGlvblNpemUoKTsKKyAgICBpZiAo
c2FtcGxlLnZpZGVvUm90YXRpb24oKSA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVm
dCB8fCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpSaWdodCkKKyAgICAgICAgbV92aWRlb0ZyYW1lU2l6ZSA9IHsgbV92aWRlb0ZyYW1lU2l6ZS5o
ZWlnaHQoKSwgbV92aWRlb0ZyYW1lU2l6ZS53aWR0aCgpIH07CiAgICAgbV9zYW1wbGVNZXRhZGF0
YSA9IG1ldGFkYXRhOwogICAgICsrbV9zYW1wbGVDb3VudDsKIApAQCAtMTEzMSw4ICsxMTM0LDgg
QEAgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmEKICAgICBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFT
YW1wbGVDb3VudCA9IG1fc2FtcGxlQ291bnQ7CiAKICAgICBWaWRlb0ZyYW1lTWV0YWRhdGEgbWV0
YWRhdGE7Ci0gICAgbWV0YWRhdGEud2lkdGggPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKTsKLSAg
ICBtZXRhZGF0YS5oZWlnaHQgPSBtX2ludHJpbnNpY1NpemUuaGVpZ2h0KCk7CisgICAgbWV0YWRh
dGEud2lkdGggPSBtX3ZpZGVvRnJhbWVTaXplLndpZHRoKCk7CisgICAgbWV0YWRhdGEuaGVpZ2h0
ID0gbV92aWRlb0ZyYW1lU2l6ZS5oZWlnaHQoKTsKICAgICBtZXRhZGF0YS5wcmVzZW50ZWRGcmFt
ZXMgPSBtX3NhbXBsZUNvdW50OwogICAgIG1ldGFkYXRhLnByZXNlbnRhdGlvblRpbWUgPSBtX3By
ZXNlbnRhdGlvblRpbWUuc2Vjb25kcygpOwogICAgIG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRp
bWUgPSBtX3ByZXNlbnRhdGlvblRpbWUuc2Vjb25kcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApp
bmRleCBmMWM5ZTYwMjgxM2EzYmY2ZmIzMTQxNzg4YjY2MDRjYTQzYjA5YjkxLi4zNGQ0NWI1YzQ0
ZWFhNWMyOGU1ZmY3MzIxMGFkOTQ5YmQ5N2M5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApA
QCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZW5kKE9ic2VydmVy
KiBjYWxsaW5nT2JzZXJ2ZXIpCiAKICAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CiAK
LSAgICBzdG9wKCk7CisgICAgZW5kUHJvZHVjaW5nRGF0YSgpOwogICAgIG1faXNFbmRlZCA9IHRy
dWU7CiAgICAgaGFzRW5kZWQoKTsKIApAQCAtMjkzLDExICsyOTMsNyBAQCB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQogICAgIEVSUk9SX0xPR19JRihtX2xvZ2dlciwg
TE9HSURFTlRJRklFUik7CiAKICAgICBtX2NhcHR1cmVEaWRGYWlsZWQgPSB0cnVlOwotCi0gICAg
c3RvcCgpOwotICAgIGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewotICAgICAg
ICBvYnNlcnZlci5zb3VyY2VTdG9wcGVkKCk7Ci0gICAgfSk7CisgICAgZW5kKCk7CiB9CiAKIGJv
b2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0
aW9uYWw8aW50Piwgc3RkOjpvcHRpb25hbDxpbnQ+LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgKaW5kZXggYzRiNDU3ZTI5NjBmMGVkYTkwOGI3MjEyOTg3MzhhZTgzZTUx
NDQyZS4uODMwMDczNGM2Nzc5YTEwZjI5OGE4MjI1OGQxNTI3OTQ4MmRlMjA4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7
CiAgICAgdm9pZCBzdG9wKCk7CiAgICAgdm9pZCBlbmRJbW1lZGlhdGx5KCkgeyBlbmQobnVsbHB0
cik7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJiBjYWxsaW5nT2Jz
ZXJ2ZXIpOworICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIp
OwogICAgIGJvb2wgaXNFbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFbmRlZDsgfQogCiAgICAg
Ym9vbCBtdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWQ7IH0KQEAgLTI2Miw2ICsyNjIsNyBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpIHsgc3RvcCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M6OkZsYWc+KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpIHsg
c3RvcCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDFkNGY5OWJmMmIxM2FhNjZhZmZj
MjQ4YmVjZTU5ODJlYjMwZDQ2NzAuLjkzYmNjMWEzMzIzMzdhMzE1OTFkZWZhYTIzODViYWEzODgz
MWJmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC03OCw2ICs3OCwxMiBAQCB2b2lkIFJl
YWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3NvdXJjZS0+c3Rv
cCgpOwogfQogCit2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmVuZFByb2R1Y2luZ0RhdGEoKQor
eworICAgIG1fc291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBt
X3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlzKTsKK30KKwogYm9vbCBSZWFsdGltZVZpZGVvU291
cmNlOjpzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBz
dGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRl
KQogewogICAgIHJldHVybiBtX3NvdXJjZS0+c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHdpZHRo
LCBoZWlnaHQsIGZyYW1lUmF0ZSk7CkBAIC0xNDgsMTEgKzE1NCw2IEBAIGJvb2wgUmVhbHRpbWVW
aWRlb1NvdXJjZTo6cHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpCiAgICAgcmV0dXJuIGhhc09i
c2VydmVyUHJldmVudGluZ1N0b3BwaW5nOwogfQogCi12b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6
OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYpCi17Ci0gICAgbV9z
b3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQogewogICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDM2ZjM4OGFhYWZhNThjZTFhNDM3Yjc4MGEwNDMy
MTAyMzZkYzQ2MDUuLmY0NzQ3M2IwYTJmMGQ2OWFhYTc5YmY3NWRkMWRjMThiNDBiNmM5N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1
cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0
aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpIGZpbmFs
OwogICAgIHZvaWQgc2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgs
IHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJh
dGUpIGZpbmFsOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOwot
ICAgIHZvaWQgcmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBjYWxs
aW5nT2JzZXJ2ZXIpIGZpbmFsOworICAgIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwog
ICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5hbDsKIAogICAgIGNvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1f
c291cmNlLT5jYXBhYmlsaXRpZXMoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDAxYmU4
ZDdkYWQ5YjYzYjdiN2I1MzcyMDVhNTljNzU1MGMyMjY2NjMuLmIwOGQxZmRkYWMwYTU5M2NhZDU0
NWE4Y2E1MzYxMjlmYTIyYTlkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYxOCw3ICs2
MTgsNiBAQCBXZWJQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvckNv
Y29hLm1tCiBXZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCi1XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWUwNjVmOWY4MmY0MTRkNTUzM2Fk
NmZlNWE2YmM3NDI1ZWFhODliNS4uOThlNjdjZTZjM2ViMWZiZjgyZjk3M2E4Yzc1YTg3MWVkZjQ0
MDUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTgzLDkgKzgzLDYgQEAgcHVi
bGljOgogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSB0
aGUgcmVuZGVyaW5nIHRocmVhZCBpcyBzdG9wcGVkIGJlZm9yZSB3ZSBwcm9jZWVkIHdpdGggdGhl
IGRlc3RydWN0aW9uLgotICAgICAgICBzdG9wKCk7Ci0KICAgICAgICAgc3dpdGNoIChtX3NvdXJj
ZS0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW86CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6U3lzdGVtQXVkaW86
CkBAIC0xMTcsMTkgKzExNCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpCiAgICAgewog
ICAgICAgICBtX3Nob3VsZFJlc2V0ID0gdHJ1ZTsKLSAgICAgICAgbV9pc0VuZGVkID0gZmFsc2U7
CisgICAgICAgIG1faXNTdG9wcGVkID0gZmFsc2U7CiAgICAgICAgIG1fc291cmNlLT5zdGFydCgp
OwogICAgIH0KIAogICAgIHZvaWQgc3RvcCgpCiAgICAgewotICAgICAgICBtX2lzRW5kZWQgPSB0
cnVlOworICAgICAgICBtX2lzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgIG1fc291cmNlLT5zdG9w
KCk7CiAgICAgfQogCi0gICAgdm9pZCByZXF1ZXN0VG9FbmQoKQorICAgIHZvaWQgZW5kKCkKICAg
ICB7Ci0gICAgICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgICAgIG1faXNTdG9wcGVkID0gdHJ1
ZTsKICAgICAgICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAgICAgfQogCkBAIC0y
NDcsNyArMjQ0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBp
bmcoKQogICAgIHsKICAgICAgICAgLy8gRG8gbm90IGFsbG93IHRoZSBzb3VyY2UgdG8gc3RvcCBp
ZiB3ZSBhcmUgc3RpbGwgdXNpbmcgaXQuCi0gICAgICAgIHJldHVybiAhbV9pc0VuZGVkOworICAg
ICAgICByZXR1cm4gIW1faXNTdG9wcGVkOwogICAgIH0KIAogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIG1faWQ7CkBAIC0yNTgsNyArMjU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwogICAgIGludDY0X3QgbV9udW1iZXJPZkZy
YW1lcyB7IDAgfTsKLSAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
U3RvcHBlZCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlUm90YXRpb25TZXNz
aW9uVlQ+IG1fcm90YXRpb25TZXNzaW9uOwogICAgIGJvb2wgbV9zaG91bGRBcHBseVJvdGF0aW9u
IHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpTZW1hcGhvcmU+IG1fY2FwdHVy
ZVNlbWFwaG9yZTsKQEAgLTQyNyw3ICs0MjQsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQog
ICAgICAgICBwcm94eS0+c3RvcCgpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmVuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVtb3ZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkKQogewogICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOwogfQpAQCAtNDY0LDEw
ICs0NjEsMTAgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAgICAgICAgbV9wcm94aWVzLmFk
ZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29u
bmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlv
blByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCksIG1fY29u
bmVjdGlvblByb3h5LT5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCgpKSk7CiB9CiAKLXZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjplbmRQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJj
ZUlEKQogewogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoc291cmNlSUQpKQot
ICAgICAgICBwcm94eS0+cmVxdWVzdFRvRW5kKCk7CisgICAgICAgIHByb3h5LT5lbmQoKTsKIH0K
IAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0
aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFw
cGx5Um90YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZDNhYjBkYWFmYTVhYTZi
MzEzY2YyOGY3N2RmY2M3MjZiZDI3OWQzNi4uMjk2OWE4ZDdlMmZhNGFmMzY1M2U5M2FhMDBkZDI0
MzM0Njk5YzAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtODcsMTEgKzg3LDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1l
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAg
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOwogICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgY2xvbmUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpOwotICAgIHZvaWQgcmVxdWVzdFRvRW5k
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGVuZFBy
b2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKIAogICAgIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZU1pY3JvcGhvbmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZWQ3ZjRkYWIxNmJlYTc5YjQyMWQ5NjYwZWUx
ZTQ5YzNmNjkwMTMzZS4uY2E4MDgxZGE3MWIwNGZlZmE4OGYzMjEyMTgzNTRmZWRlMTc3MDhhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNywxMCAr
MjcsMTAgQEAgbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBOb3RSZWZD
b3VudGVkIHsKICAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1v
dGVGcmFtZXMsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSAtPiAoYm9v
bCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRh
PiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5j
CiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkKQotICAgIEVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZCkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQpCiAgICAgQXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMgY29uc3RyYWludHMpCiAgICAgQ2xvbmUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGNsb25lSUQpCi0gICAgUmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIHNvdXJjZUlEKQorICAgIEVuZFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCiAgICAgU2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCwgYm9v
bCBzaG91bGRBcHBseVJvdGF0aW9uKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3N2E1OTliNTM0MDljYjhkNWJmNmI2OWYzNGJi
ZDE5MDIxNzhmYmZkLi4wN2QwN2Q1Mjg1NzMyNzRjNjdiODMxNmU3Y2IwNDYwMWVmMWI0Yzg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQxNDMsOCArNDE0Myw2IEBACiAJCTQxNjg0QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE2ODRDNEUyNDY0M0M4MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRG
MjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNjg0QzUwMjQ2NDUwRkQwMDFD
RThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxNkNENzQ1MjNGQjE3OEIwMDY2MUQ5OSAvKiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsg
cGF0aCA9IE5ldHdvcmsvd2VicnRjL01ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RURDMDUyNjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFD
aGFubmVsUmVtb3RlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSVENEYXRhQ2hhbm5l
bFJlbW90ZU1hbmFnZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RURDMDYy
NjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDE4Miw4ICs0MTgwLDggQEAKIAkJNDE4OTdFRDQxRjQxNUQ4NTAwMTZGQTQyIC8q
IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5
N0VENTFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENjFGNDE1RDg2MDAxNkZBNDIgLyog
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVu
Z2luZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOEZDQkUzMjcxMDQ5REIw
MEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNB
IC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUE1RjdCOTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb25Db2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUE1
RjdCQTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VE
aXNwb3NpdGlvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE3Myw3
ICs1MTcxLDYgQEAKIAkJN0I1MEU5N0YyNzcxRjZDRTAwM0RBQUM0IC8qIElQQ1Rlc3Rlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJUENUZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QjUwRTk4MDI3NzFGNkNGMDAzREFBQzQgLyogSVBDVGVzdGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElQQ1Rlc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjVBM0RB
MDI3QTdEQzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I1QTNEQTEyN0E3REMxQTAwNkM2Rjk3IC8q
IFJlbW90ZVZpZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVWaWRlb0ZyYW1lUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZVBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNUEzREEzMjdBN0RDNkMwMDZD
NkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQTcyN0E3RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODc3
LDcgKzY4NzQsNiBAQAogCQkJCTdCNUEzREEwMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRl
b0ZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCTdCNUEzREEzMjdBN0RDNkMwMDZDNkY5NyAvKiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovLAogCQkJCTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5
NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCAqLywKLQkJCQk3QjVBM0RBMTI3QTdEQzFBMDA2
QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFERDJB
NjNBMjU1REU2RDEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcCAqLywK
IAkJCQkxREQyQTYzOTI1NURFNkQxMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZS5oICovLAogCQkJCTFERDJBNjZGMjU2MjJGMTEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLApAQCAtMTA0NTYsMTIgKzEwNDUyLDEwIEBACiAJCQkJ
NDE2ODRDNEQyNDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1l
c3NhZ2VzLmluICovLAogCQkJCTQxRTY3QThEMjVEMkNGRDAwMDdCMEE0QyAvKiBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcCAqLywKIAkJCQk0MUU2N0E4QzI1RDJDRkQwMDA3QjBBNEMgLyog
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oICovLAotCQkJCTQxOEZDQkUzMjcxMDQ5REIwMEY5
NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovLAotCQkJCTQxOEZDQkU0
MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCAqLywKIAkJ
CQk0MTYwMDhCMjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmNwcCAqLywKIAkJCQk0MTYwMDhCMTI1REE4NkI5MDBFODkyRkUgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmggKi8sCi0JCQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8q
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAotCQkJCTQxNjg0QzUxMjQ2NDUwRkQw
MDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8sCisJCQkJNDE4RkNCRTMy
NzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAorCQkJ
CTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgg
Ki8sCiAJCQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcCAqLywKIAkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaCAqLywKIAkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cAppbmRleCBiMDk4ZWZiZTdjMzNjM2RiOWVmMDc2ZTE5NmVkNGE4Zjk3ZGZmMmU3Li4zNGM0NjY0
MTk2NTI2ZTg5YTE5NzYzNTNjZjQ1NjY2MTkzYWNlNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5jcHAKQEAgLTEwMiwyMCArMTAyLDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXIKICAgICAg
ICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7CiAKICAgICAgICAgQVNT
RVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgICAgIG1fdmlk
ZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlbW90ZVZpZGVvPihXVEZNb3Zl
KHNvdXJjZSkpKTsKLSAgICB9KTsKLX0KLQotdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiYgc291cmNlKQot
ewotICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7Ci0gICAgc2V0Q29ubmVjdGlvbihz
b3VyY2UtPmNvbm5lY3Rpb24oKSk7Ci0KLSAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNvdXJjZSA9IFdURk1vdmUoc291cmNlKV0oKSBt
dXRhYmxlIHsKLSAgICAgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7
Ci0KLSAgICAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7
Ci0gICAgICAgIG1fdmlkZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlbW90
ZVZpZGVvPihXVEZNb3ZlKHNvdXJjZSkpKTsKKyAgICAgICAgbV92aWRlb1NvdXJjZXMuYWRkKGlk
ZW50aWZpZXIsIFdURk1vdmUoc291cmNlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE2OSw3ICsxNTYs
NyBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjp2aWRlb0ZyYW1lQXZhaWxhYmxl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQogICAgIH0oKTsKICAgICBhdXRvIGl0ZXJhdG9y
ID0gbV92aWRlb1NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0g
bV92aWRlb1NvdXJjZXMuZW5kKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRD
LCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxh
YmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHZpZGVvRnJhbWVBdmFpbGFi
bGUiLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGF1dG8gdmlkZW9GcmFtZVNpemUgPSB2aWRlb0ZyYW1lLT5zaXplKCk7CkBAIC0xODEsNyArMTY4
LDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6dmlkZW9GcmFtZUF2YWlsYWJs
ZUNWKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGkKICAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVu
TG9vcCgpKTsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV92aWRlb1NvdXJjZXMuZmluZChpZGVudGlm
aWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV92aWRlb1NvdXJjZXMuZW5kKCkpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUg
Zm9yIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNl
ICVsbHUgZm9yIHZpZGVvRnJhbWVBdmFpbGFibGVDViIsIGlkZW50aWZpZXIudG9VSW50NjQoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI1NSwyMCArMjQyLDYgQEAgdm9pZCBSZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hh
cmVkTWVtb3J5OjpIYW4KICAgICBzdGFydFRocmVhZCgpOwogfQogCi1SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OlJlbW90ZVZpZGVvKFNvdXJjZSYmIHNvdXJjZSkKLSAg
ICA6IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKLXsKLX0KLQotdm9pZCBSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OnZpZGVvRnJhbWVBdmFpbGFibGUoUmVmPE1lZGlh
U2FtcGxlPiYmIHNhbXBsZSwgSW50U2l6ZSBzaXplLCBWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFk
YXRhKQotewotICAgIHN3aXRjaE9uKG1fc291cmNlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT52aWRlb1NhbXBsZUF2YWlsYWJs
ZShzYW1wbGUuZ2V0KCksIHNpemUsIG1ldGFkYXRhKTsKLSAgICB9LCBbJl0oUmVmPFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPnJlbW90ZVZp
ZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZS5nZXQoKSwgbWV0YWRhdGEpOwotICAgIH0pOwotfQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2OTQ1Y2FkOWZmMTFhYjg4
MmNjYzdkNzY0MTBhNzVkZWI3ODJhNDUzLi5hMjRlOWNlNzJlNTI3ZGIwYTE2Y2U1YzUwMzBlZGEy
NTQ3NzZiMWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzEsNyArMzEsNiBAQAogI2lu
Y2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKQEAgLTU5LDcgKzU4LDYgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwogICAgIHZv
aWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKLSAgICB2b2lk
IGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmKTsKICAgICB2b2lk
IHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAK
ICAgICB2b2lkIGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKik7CkBA
IC0xMDUsMjQgKzEwMywxMiBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6OmF0b21pYzxib29sPiBt
X3Nob3VsZFN0b3BUaHJlYWQgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBjbGFzcyBSZW1vdGVW
aWRlbyB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAg
ICAgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4+OwotICAgICAgICBleHBs
aWNpdCBSZW1vdGVWaWRlbyhTb3VyY2UmJik7Ci0KLSAgICAgICAgdm9pZCB2aWRlb0ZyYW1lQXZh
aWxhYmxlKFJlZjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgV2Vi
Q29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTb3Vy
Y2UgbV9zb3VyY2U7Ci0gICAgfTsKLQogICAgIGJvb2wgbV9pc1JlZ2lzdGVyZWRUb1BhcmVudFBy
b2Nlc3NDb25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwog
ICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICAvLyBiYWNrZ3Jv
dW5kIHRocmVhZCBtZW1iZXIKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW8+PiBtX2F1ZGlvU291cmNl
czsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW8+PiBtX3ZpZGVvU291cmNlczsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZT4+IG1fdmlkZW9Tb3VyY2VzOwogCiAgICAgTG9jayBtX3ZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlMb2NrOwogICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5PiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkgV1RGX0dVQVJERURfQllfTE9DSyht
X3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5jcHAKaW5kZXggZTkxMGI2MTYwNTg5MDZhOTE5ZGU1MDhiNTliN2E5MjUxODJkMDBlMS4u
NjFmMWZhMzNiMTM2NzEzM2E1ZDExMGY5M2IyMTNhODZhZWQ5ODcwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTcwLDExICs3MCwyNiBAQCB2b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1
Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKK3ZvaWQgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5OjplbmRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZFByb2R1Y2lu
Z0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmlj
ZUlESGFzaFNhbHQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBDcmVh
dGVDYWxsYmFjayYmIGNhbGxiYWNrLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lKQogewogICAg
IGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25z
dHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjbG9uZSgpCit7CisgICAgcmV0dXJuIHsgUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1fZGV2aWNlLCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsICZtX2NvbnN0cmFpbnRzIH07Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVDbG9uZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlkZW50aWZpZXIpCit7CisgICAgY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9u
ZSB7IG1faWRlbnRpZmllciwgY2xvbmVJZGVudGlmaWVyIH0sIDApOworfQorCiB2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJh
aW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BlbmRpbmdBcHBseUNv
bnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBA
IC0xMDUsNyArMTIwLDcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmVu
ZCgpCiB7CiAgICAgQVNTRVJUKCFtX2lzRW5kZWQpOwogICAgIG1faXNFbmRlZCA9IHRydWU7Ci0g
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZW1vdmVTb3VyY2UgeyBtX2lk
ZW50aWZpZXIgfSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
Ojp3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCmluZGV4IGIxMTBkMWU3ZDY1ZmFjMmFmNTQ0ODI5
ZjcyZTRmZWNiMjVlNDgzNmIuLmM0NGM0YmU1ODc3YWMyYTEyNWRjODViNTAyY2Q3YjNlOWMxMjlj
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKQEAgLTQ3LDE0ICs0NywyMSBAQCBw
dWJsaWM6CiAgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKik7CiAgICAgflJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpOwogCisgICAg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eSYmKSA9IGRlZmF1bHQ7CisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5JiBv
cGVyYXRvcj0oUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5JiYpID0gZGVmYXVsdDsKKwog
ICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOwogICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5
cGUoKSBjb25zdCB7IHJldHVybiBtX2RldmljZS50eXBlKCk7IH0KKyAgICBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZTsgfQogICAg
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcgQ3JlYXRlQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXpl
LCBkb3VibGUpPjsKICAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmlu
ZyYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDcmVhdGVDYWxsYmFjayYmLCBib29sIHNob3Vs
ZFVzZVJlbW90ZUZyYW1lID0gZmFsc2UpOwogCisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5IGNsb25lKCk7CisgICAgdm9pZCBjcmVhdGVSZW1vdGVDbG9uZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisKICAgICB2b2lkIGFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5n
JiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGZh
aWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3MoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwpA
QCAtNjMsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmQoKTsKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICB2b2lk
IGVuZFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFw
cGx5Q29uc3RyYWludHNIYW5kbGVyJiYpOwogCiAgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBl
ZGQ1ZDQxNjEzM2FjNzIyZGEwYjk4ZTM0NjBiOTVlNDFjMWMzYTc1Li44ODkzMGMyZWNjYTg2NmYw
MTU2ZTJjZGRkNjE3ZWIyYTVhNDgzMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDU4
ICsyOCw1NCBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAKLSNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIK
ICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
Ci1SZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCitSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJh
aW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CisgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFz
aFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmll
cikpOwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIG1hbmFn
ZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYo
KSk7CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIHJldHVybiBz
b3VyY2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RG
TW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpLCBwYWdlSWRlbnRpZmllcikKK1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmll
cikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewogfQogCitS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSYmIHByb3h5LCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpWaWRlbywgU3RyaW5nIHsgcHJveHkuZGV2aWNlKCkubGFiZWwoKSB9LCBTdHJpbmcgeyBwcm94
eS5kZXZpY2UoKS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50
aWZpZXIpCisgICAgLCBtX3Byb3h5KFdURk1vdmUocHJveHkpKQorICAgICwgbV9tYW5hZ2VyKG1h
bmFnZXIpCit7Cit9CisKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKQogewotICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
ZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBh
dXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRv
IHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90
ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVy
cm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYs
IGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1f
cHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgc2V0U2l6ZShzaXplKTsKLSAgICAgICAgc2V0RnJhbWVS
YXRlKGZyYW1lUmF0ZSk7Ci0KICAgICAgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykp
OwogICAgICAgICBzZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKLSAgICAg
ICAgc2V0U3VwcG9ydGVkUHJlc2V0cyhXVEZNb3ZlKHByZXNldHMpKTsKLSAgICAgICAgc2V0TmFt
ZShTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7CiAKICAgICAgICAgbV9w
cm94eS5zZXRBc1JlYWR5KCk7CiAgICAgICAgIGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MoKSkKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKLSAgICB9LCBtX21hbmFnZXIu
c2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcygpKTsKKyAgICB9LCBtX3Byb3h5LnNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MoKSAmJiBtX21hbmFnZXIuc2hvdWxkVXNlR1BVUHJvY2Vzc1Jl
bW90ZUZyYW1lcygpKTsKIH0KIAogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UoKQpAQCAtOTAsNiArODYsMTEgQEAgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgIH0KIH0KIAordm9pZCBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjplbmRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBtX3By
b3h5LmVuZFByb2R1Y2luZ0RhdGEoKTsKK30KKwogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNh
cGFiaWxpdGllcykKIHsKICAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVz
KTsKQEAgLTEwMiwzNyArMTAzLDE2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluCiAgICAgbm90
aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7CiB9CiAKLXZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSwgSW50U2l6ZSBzYW1wbGVTaXplLCBWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKQot
ewotICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6VmlkZW8pOwotCi0gICAgc2V0SW50cmluc2lj
U2l6ZShzYW1wbGVTaXplKTsKLQotICAgIGlmIChtX3NhbXBsZVJvdGF0aW9uICE9IHNhbXBsZS52
aWRlb1JvdGF0aW9uKCkpIHsKLSAgICAgICAgbV9zYW1wbGVSb3RhdGlvbiA9IHNhbXBsZS52aWRl
b1JvdGF0aW9uKCk7Ci0KLSAgICAgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOwotICAgICAg
ICBpZiAobV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVm
dCB8fCBtX3NhbXBsZVJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdo
dCkgewotICAgICAgICAgICAgc2l6ZSA9IHNpemUudHJhbnNwb3NlZFNpemUoKTsKLSAgICAgICAg
ICAgIG1fc2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsKLSAgICAgICAgICAgIG1fc2V0
dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVpZ2h0KCkpOwotICAgICAgICB9Ci0gICAgICAgIHNjaGVk
dWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7Ci0gICAgICAgICAgICBub3RpZnlTZXR0aW5nc0RpZENo
YW5nZU9ic2VydmVycyh7IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZzo6V2lkdGgs
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZzo6SGVpZ2h0IH0pOwotICAgICAgICB9
KTsKLSAgICB9Ci0gICAgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKHNhbXBsZSwgbWV0
YWRhdGEpOwotfQotCiBib29sIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldFNob3VsZEFw
cGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQogewogICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U2V0U2hvdWxk
QXBwbHlSb3RhdGlvbiB7IGlkZW50aWZpZXIoKSwgc2hvdWxkQXBwbHlSb3RhdGlvbiB9LCAwKTsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKK3ZvaWQgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKIHsKLSAgICByZXR1cm4g
bV9jYXBhYmlsaXRpZXM7CisgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOworICAg
IG1fcHJveHkuYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogfQogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKQEAgLTE0NSw0NiArMTI1LDM3IEBAIHZvaWQg
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6aGFzRW5kZWQoKQogICAgIG1fbWFuYWdlci5yZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogfQog
Ci12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVTdG9wcGVkKGJvb2wgZGlk
RmFpbCkKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
OjpjbG9uZSgpCiB7Ci0gICAgaWYgKGRpZEZhaWwpCi0gICAgICAgIGNhcHR1cmVGYWlsZWQoKTsK
LSAgICBlbHNlCi0gICAgICAgIGVuZCgpOwotICAgIGhhc0VuZGVkKCk7Ci19CisgICAgaWYgKGlz
RW5kZWQoKSB8fCBtX3Byb3h5LmlzRW5kZWQoKSkKKyAgICAgICAgcmV0dXJuICp0aGlzOwogCi12
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlUHJlc2V0cygpCi17Ci0gICAg
QVNTRVJUKG1fcHJveHkuaXNSZWFkeSgpKTsKLX0KKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShtX3Byb3h5LmNsb25lKCksIGRldmljZUlE
SGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBwYWdlSWRlbnRpZmllcigpKSk7CiAKLXZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUgZnJhbWVS
YXRlLCBSZWZQdHI8VmlkZW9QcmVzZXQ+IHByZXNldCkKLXsKLSAgICBNZWRpYUNvbnN0cmFpbnRz
IGNvbnN0cmFpbnRzOworICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIHsgc2V0dGluZ3MoKSB9KTsKKyAgICBzb3VyY2UtPnNldENhcGFiaWxpdGllcyhS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIHsgY2FwYWJpbGl0aWVzKCkgfSk7CiAKLSAg
ICBjb25zdHJhaW50cy5pc1ZhbGlkID0gdHJ1ZTsKLSAgICBEb3VibGVDb25zdHJhaW50IGZyYW1l
UmF0ZUNvbnN0cmFpbnQoImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVS
YXRlKTsKLSAgICBmcmFtZVJhdGVDb25zdHJhaW50LnNldElkZWFsKGZyYW1lUmF0ZSk7Ci0gICAg
Y29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6
OkZyYW1lUmF0ZSwgZnJhbWVSYXRlQ29uc3RyYWludCk7CisgICAgbV9tYW5hZ2VyLmFkZFNvdXJj
ZShzb3VyY2UuY29weVJlZigpKTsKKyAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAKLSAgICBpZiAocHJlc2V0KSB7
Ci0gICAgICAgIEludENvbnN0cmFpbnQgd2lkdGhDb25zdHJhaW50KCJ3aWR0aCJfcywgTWVkaWFD
b25zdHJhaW50VHlwZTo6V2lkdGgpOwotICAgICAgICB3aWR0aENvbnN0cmFpbnQuc2V0SWRlYWwo
cHJlc2V0LT5zaXplLndpZHRoKCkpOwotICAgICAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25z
dHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIHdpZHRoQ29uc3RyYWludCk7
CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVDbG9uZVNvdXJjZShzb3VyY2UtPmlkZW50aWZpZXIo
KSk7CiAKLSAgICAgICAgSW50Q29uc3RyYWludCBoZWlnaHRDb25zdHJhaW50KCJoZWlnaHQiX3Ms
IE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCk7Ci0gICAgICAgIGhlaWdodENvbnN0cmFpbnQu
c2V0SWRlYWwocHJlc2V0LT5zaXplLmhlaWdodCgpKTsKLSAgICAgICAgY29uc3RyYWludHMubWFu
ZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwgaGVpZ2h0
Q29uc3RyYWludCk7Ci0gICAgfQorICAgIHJldHVybiBzb3VyY2U7Cit9CiAKLSAgICBtX3NpemVD
b25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOwotICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50cyhj
b25zdHJhaW50cywgW10oYXV0bykgeyB9KTsKK3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKQoreworICAgIGlmIChkaWRGYWlsKQorICAg
ICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgZWxzZQorICAgICAgICBlbmQoKTsKKyAgICBoYXNF
bmRlZCgpOwogfQogCi1ib29sIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnByZWZlcnNQcmVz
ZXQoVmlkZW9QcmVzZXQmKQordm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjphcHBseUNv
bnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0
cmFpbnRzSGFuZGxlciYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiB0cnVlOworICAgIG1fY29u
c3RyYWludHMgPSBjb25zdHJhaW50czsKKyAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHMoY29u
c3RyYWludHMsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKQEAgLTE5OSw4ICsxNzAsOCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGNyZWF0
ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAKICAgICBtX3Byb3h5LmZhaWxBcHBseUNvbnN0cmFpbnRD
YWxsYmFja3MoIkdQVSBQcm9jZXNzIHRlcm1pbmF0ZWQiX3MpOwotICAgIGlmIChtX3NpemVDb25z
dHJhaW50cykKLSAgICAgICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzKCptX3NpemVDb25zdHJh
aW50cywgW10oYXV0bykgeyB9KTsKKyAgICBpZiAobV9jb25zdHJhaW50cykKKyAgICAgICAgbV9w
cm94eS5hcHBseUNvbnN0cmFpbnRzKCptX2NvbnN0cmFpbnRzLCBbXShhdXRvKSB7IH0pOwogCiAg
ICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgpKQogICAgICAgICBzdGFydFByb2R1Y2luZ0RhdGEoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDllZjBiYzcyYjUzOWMwZjk2OTljYTFhYTMzMjYzZTI1
ODI2OGU4OTMuLmE2M2Y1ZmNjNjNiNTViMmRjNjk2YTE2ZjViZjg2NTg1ZGEyN2EwNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIw
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMCwzMiArMzAsMjUgQEAKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmg+Ci0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3Mg
Q29ubmVjdGlvbjsKLX0KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvRnJhbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwotY2xhc3MgSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDsKIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwotY2xhc3MgTWVk
aWFTYW1wbGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjsKIAotY2xhc3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorY2xhc3MgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICwgcHVibGljIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpDbGllbnQKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHN0
YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgflJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50aWZpZXIo
KTsgfQpAQCAtNjUsMzEgKzU4LDMxIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FwdHVyZVN0b3Bw
ZWQoYm9vbCBkaWRGYWlsKTsKIAotICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29y
ZTo6TWVkaWFTYW1wbGUmLCBXZWJDb3JlOjpJbnRTaXplLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1l
dGFkYXRhKTsKKyAgICB2b2lkIHZpZGVvRnJhbWVBdmFpbGFibGUoV2ViQ29yZTo6VmlkZW9GcmFt
ZSYgZnJhbWUsIFdlYkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEg
bWV0YWRhdGEpIHsgdmlkZW9TYW1wbGVBdmFpbGFibGUoZnJhbWUsIG1ldGFkYXRhKTsgfQogICAg
IHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwog
CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3Ry
aW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKSB7IG1fcHJveHku
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3Zl
KGVycm9yTWVzc2FnZSkpOyB9CisKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsK
KyAgICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5JiYsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAotICAgIC8vIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2UKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFy
dFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0K
ICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0b3BQcm9kdWNp
bmdEYXRhKCk7IH0KICAgICBib29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KICAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQogICAg
IHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQotICAgIGJvb2wgc2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5Um90YXRpb24gKi8pIGZpbmFsOworICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwg
QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBoYXNFbmRlZCgpIGZp
bmFsOwogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7Cisg
ICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJp
bGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KICAgICB2b2lkIHdoZW5S
ZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spIGZpbmFsIHsg
bV9wcm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFjaykpOyB9CiAgICAgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9wcm94eS5kZXZpY2VUeXBlKCk7IH0KLQotICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlCi0gICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSBmaW5hbDsKLSAgICBXZWJD
b3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBzYW1wbGVSb3RhdGlvbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fc2FtcGxlUm90YXRpb247IH0KLSAgICB2b2lkIHNldEZyYW1lUmF0ZVdp
dGhQcmVzZXQoZG91YmxlLCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9QcmVzZXQ+KSBmaW5hbDsKLSAg
ICBib29sIHByZWZlcnNQcmVzZXQoV2ViQ29yZTo6VmlkZW9QcmVzZXQmKSBmaW5hbDsKLSAgICBi
b29sIGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5pbnRlcnJ1cHRl
ZCgpOyB9CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7CisgICAg
dm9pZCBlbmRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgYm9vbCBzZXRTaG91bGRBcHBseVJv
dGF0aW9uKGJvb2wpIGZpbmFsOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIC8vIEdQ
VVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKQEAgLTk3LDE3ICs5MCwxMyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7Ci0gICAgdm9pZCBk
aWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Ci0gICAgdm9pZCBzZXRBc1JlYWR5KCk7CiAg
ICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYmKTsKIAogICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSBtX3Byb3h5
OwogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Ci0KLSAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHM+IG1fc2l6ZUNvbnN0cmFpbnRzOworICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsK
ICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0
aWVzOwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdz
OwotICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fc2FtcGxlUm90YXRp
b24geyBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwogfTsKIAog
aW5saW5lIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2Vk
KGJvb2wgbXV0ZWQsIGJvb2wgaW50ZXJydXB0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBl
MTQ0MDFiYjcwN2U2NTdmMTVjMTE5ZmViM2NmY2ZlM2QwZTM1OGU2Li45OGZhMzdkODU1NzVhMmM4
YjQzMmM1ZmM1MmJmYzQzNWM4YTI1ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTMxLDcg
KzMxLDYgQEAKICNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXIuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgi
CiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgogI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKQEAgLTExMSwxMyArMTEwLDYgQEAg
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlPiYmIHNvdXJjZSkKICAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFNv
dXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiYgc291cmNlKQot
ewotICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS0+aWRlbnRpZmllcigpOwotICAgIEFTU0VS
VCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX3NvdXJjZXMuYWRkKGlk
ZW50aWZpZXIsIFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsKLX0KLQogdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVy
KSk7CkBAIC0xMzQsOCArMTI2LDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291
cmNlU3RvcHBlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGkKICAgICAgICAg
c291cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsKICAgICB9LCBbZGlkRmFpbF0oUmVmPFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5jYXB0
dXJlU3RvcHBlZChkaWRGYWlsKTsKLSAgICB9LCBbZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVk
KGRpZEZhaWwpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCkBAIC0xNDks
OCArMTM5LDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFu
Z2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGkKICAgICAgICAgc291cmNlLT5zb3Vy
Y2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKICAgICB9LCBbbXV0ZWQsIGludGVy
cnVwdGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAg
ICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJydXB0ZWQpOwotICAgIH0s
IFttdXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBz
b3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVy
cnVwdGVkKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIApAQCAtMTY0LDgg
KzE1Miw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hh
bmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllCiAgICAgICAgIHNvdXJjZS0+c2V0U2V0
dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1v
dmUoc2V0dGluZ3MpKTsKLSAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGlu
Z3MpKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIApAQCAtMTc4LDcgKzE2
NCw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNj
ZWVkZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50CiAgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZh
bHVlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAg
ICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdURk1vdmUoc2V0dGluZ3MpKTsK
ICAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAg
ICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewogICAg
ICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV1RGTW92ZShzZXR0aW5ncykp
OwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQpAQCAtMTkyLDcgKzE3Nyw2IEBA
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBb
Jl0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291
cmNlLT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZT4mIHNvdXJjZSkgewotICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
PiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZN
b3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICB9LCBbXShzdGQ6
Om51bGxwdHJfdCkgeyB9KTsKIH0KQEAgLTIzMiw4ICsyMTYsNyBAQCBDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0Nh
cHR1cmVTbwogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIG1f
bWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAotICAgIGJvb2wgc2hvdWxkVXNl
SU9TdXJmYWNlID0gIW1fbWFuYWdlci5tX3Nob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXM7
Ci0gICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50
cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CisgICAgcmV0
dXJuIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRz
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCkBAIC0yNDUsNyArMjI4LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAo
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoKSk7CiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFu
YWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CisgICAg
cmV0dXJuIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFp
bnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6RGlzcGxheUZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggYjAxNDg0MWEyYmYxYjA4NGEzOWI3OTczMGU2ZjI3ZjZm
Yjk0ZjEzNi4uMjkzNGM1ZmRmY2VlOTVkNWRhMDA5OWQ0M2UzOTRiMTI0MjgxNTYzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmgKQEAgLTQzLDcgKzQzLDYgQEAgY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U7Ci1jbGFzcyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U7CiBjbGFzcyBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOwogY2xhc3MgV2ViUHJvY2VzczsKIApAQCAtNjAsNyArNTksNiBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZT4mJik7CiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+
JiYpOwotICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+
JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKIAogICAgIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyJiByZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcigpIHsgcmV0dXJuIG1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI7
IH0KQEAgLTEzMSw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50
c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5n
JiYsIFN0cmluZyYmKTsKIAotICAgIHVzaW5nIFNvdXJjZSA9IHN0ZDo6dmFyaWFudDxzdGQ6Om51
bGxwdHJfdCwgUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+LCBSZWY8UmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZT4sIFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+PjsKKyAgICB1
c2luZyBTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+PjsKICAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTb3VyY2U+IG1f
c291cmNlczsKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiAgICAgTm9PcENhcHR1cmVEZXZp
Y2VNYW5hZ2VyIG1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRmMzI4OTBhYmZk
ZDdlNjA3ZmNkYWE2NGJlNzRhN2I0NWZhYjQyM2MuLjc5YmM4ZDA1ZDM2N2M2YWYyZTRjOWNmY2Vi
OTA5NjVmYzEwOWRiNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMy0xMCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gY2FwdHVyZSB2aWRlbyBm
cmFtZSBkb3duc2FtcGxpbmcgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
OTk1OTc3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbDoKKyAgICAgICAg
UmVtb3ZlIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBieSByZXN0YXJ0aW5nIHBsYXlpbmcgdGhl
IHN0cmVhbSB0byBjb21wdXRlIHRoZSBzaXplLiAKKwogMjAyMi0wMy0wOSAgQ2FtZXJvbiBNY0Nv
cm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJk
ZW5pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxh
eU1lZGlhLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxh
eU1lZGlhLXNpemUuaHRtbAppbmRleCBlNzgyNjkyZDcyYTQxZTllNzZmODRlNDk3YzA4Mzk1ZmQ2
OGQwMjBjLi5jZDcwNDYwNzNiM2EzZjBlOGMyYjk2ZWM5OWNlMjU1ZGNmNjdiYjY0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6
ZS5odG1sCkBAIC0yNSw2ICsyNSwxMCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogCiAg
ICAgYXNzZXJ0X2VxdWFscyh2aWRlbzIudmlkZW9XaWR0aCwgMzIwKTsKIAorICAgIHZpZGVvMS5z
cmNPYmplY3QgPSBudWxsOworICAgIHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIGF3
YWl0IHZpZGVvMS5wbGF5KCk7CisKICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKICAgICB9LCAib3JpZ2luYWwgc291cmNlIHNo
b3VsZCBzdGF5IGF0IGEgc21hbGwgc2l6ZSIpOwpAQCAtNDQsNiArNDgsMTAgQEAgcHJvbWlzZV90
ZXN0KGFzeW5jICgpID0+IHsKIAogICAgIGFzc2VydF9lcXVhbHModmlkZW8yLnZpZGVvV2lkdGgs
IDEyODApOwogCisgICAgdmlkZW8xLnNyY09iamVjdCA9IG51bGw7CisgICAgdmlkZW8xLnNyY09i
amVjdCA9IHN0cmVhbTE7CisgICAgYXdhaXQgdmlkZW8xLnBsYXkoKTsKKwogICAgIHRlc3QoKCkg
PT4gewogICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOwogICAg
IH0sICJvcmlnaW5hbCBzb3VyY2Ugc2hvdWxkIHN0YXkgYXQgYSBiaWcgc2l6ZSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454334</attachid>
            <date>2022-03-10 04:31:30 -0800</date>
            <delta_ts>2022-03-10 05:51:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237316-20220310133128.patch</filename>
            <type>text/plain</type>
            <size>58834</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiOTVjYzQxNTZjN2My
ZjI5OTM1ZWRjYzNkOTYzMjlkZjk0MTc5MC4uZWYyOWE2OTQwNTBhMjk5OGQ1MzQ1N2FhMWNhMTU1
ZGZiM2JlNWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAzLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEbyBjYXB0dXJlIHZpZGVv
IGZyYW1lIGRvd25zYW1wbGluZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg5OTU5Nzc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRvIHByZXZlbnQgc29tZSBmbGFraW5lc3Nlcywgd2Ugbm93IGNvbXB1dGUgdGhlIHZpZGVv
IGZyYW1lIHNpemUgZnJvbSBNZWRpYVNhbXBsZSBnaXZlbiB0byBydmZjIG1ldGFkYXRhLgorICAg
ICAgICBXZSBzdG9wIG1ha2luZyByZXF1ZXN0VG9FbmQgYXMgdmlydHVhbCBieSBpbnRyb2R1Y2lu
ZyBhIHZpcnR1YWwgZW5kUHJvZHVjaW5nRGF0YSBtZXRob2QuCisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OmVuZCBjYWxscyB0aGUgbmV3IGVuZFByb2R1Y2luZ0RhdGEgdmlydHVhbCBtZXRo
b2QsIHdoaWNoIGlzIHN0b3AgYnkgZGVmYXVsdC4KKyAgICAgICAgUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6ZW5kUHJvZHVjaW5nRGF0YSBpcyBpbXBsZW1lbnRlZCBieSBjYWxsaW5nIHJlcXVlc3RUb0Vu
ZCBvbiB0aGUgdW5kZXJseWluZyBzb3VyY2UuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB0aGF0
IGVuZGluZyBhIHNvdXJjZSB3aWxsIG5vdCBlbmQgYSByZWxhdGVkIGNsb25lZCBzb3VyY2UuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6
OmVuZFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0Rpc3BsYXlDYXB0dXJl
U291cmNlR1N0cmVhbWVyOjpyZXF1ZXN0VG9FbmQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1l
ci5oOgorCiAyMDIyLTAzLTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgUmVtb3RlVmlkZW9TYW1wbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzQ0MzE1ZmJjYzk0
YTY4YzU0ZWEwYzY1YjcxNDE1MDIwNjA1YjFmOS4uZGExNDczMTYyNWM3OWU0ODdhYmRkZjgzZTA2
MzdlYzViNjVjZDVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMi0wMy0xMCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gY2FwdHVyZSB2aWRl
byBmcmFtZSBkb3duc2FtcGxpbmcgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTk1OTc3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnN0ZWFkIG9mIGNsb25pbmcgd2l0aGluIFdlYlByb2Nlc3MsIHdlIGtub3cgY2xvbmUg
aW4gR1BVUHJvY2VzcyBmb3IgY2FtZXJhIHRyYWNrcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8g
a2VlcCB1c2luZyBJT1N1cmZhY2VzIHdoZW4gc2V2ZXJhbCB0cmFja3MgYXJlIHVzaW5nIHRoZSBz
YW1lIGRldmljZSB3aXRoIGRpZmZlcmVudCByZXNvbHV0aW9ucy4KKyAgICAgICAgU2luY2UgZGlz
cGxheSB0cmFja3MgYXJlIGFscmVhZHkgY2xvbmVkIHJlbW90ZWx5LCB3ZSBjYW4gbWVyZ2UgUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlIGFuZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLgor
CisgICAgICAgIFdlIG5vIGxvbmdlciBuZWVkIHRvIHN0b3AgdGhlIHNvdXJjZSBpbiB+U291cmNl
UHJveHkgZ2l2ZW4gd2UgYXJlIHJlbW92aW5nIG91cnNlbHZlcyBmcm9tIG9ic2VydmluZyB0aGUg
c291cmNlLgorICAgICAgICBXZSByZW5hbWUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBl
bmQgdG8gcmVtb3ZlICBhbmQgcmVxdWVzdFRvRW5kIHRvIGVuZFByb2R1Y2luZ0RhdGEuCisKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMi0w
My0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IFJlbW90ZVZpZGVvU2FtcGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDZiMjQ4NmIz
ODQ5ODM1MzRjNTYyOThhZmM2NWZkMGQ1NDMxNDczMDIuLmRkNjgwYTg2YTlkNTkxNDMzN2EzNjUx
MDdhNjE0MDVjZmNlZjY3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0yODcsNiAr
Mjg3LDcgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3NhbXBsZUNvdW50IHsgMCB9OwogICAg
IHVpbnQ2NF90IG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50IHsgMCB9OwogICAg
IFNlY29uZHMgbV9wcmVzZW50YXRpb25UaW1lIHsgMCB9OworICAgIEZsb2F0U2l6ZSBtX3ZpZGVv
RnJhbWVTaXplOwogICAgIFZpZGVvU2FtcGxlTWV0YWRhdGEgbV9zYW1wbGVNZXRhZGF0YTsKIH07
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMjVmYWQ5MDkxMGFiNWU0YjNl
ZWYwOWRiNDdlNjlmNmUxYjgwMmUyMS4uYTEyMjUzZmY3MDAzZWU1NmIzNGQzMGMwMWZlZjU4NTM2
ZWU2OWE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzI0LDYgKzMyNCw5IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3Vmlk
ZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNhCiAgICAgfQogCiAgICAgbV9wcmVzZW50YXRpb25UaW1l
ID0gcHJlc2VudGF0aW9uVGltZTsKKyAgICBtX3ZpZGVvRnJhbWVTaXplID0gc2FtcGxlLnByZXNl
bnRhdGlvblNpemUoKTsKKyAgICBpZiAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSA9PSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8fCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpID09IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodCkKKyAgICAgICAgbV92aWRlb0ZyYW1lU2l6
ZSA9IHsgbV92aWRlb0ZyYW1lU2l6ZS5oZWlnaHQoKSwgbV92aWRlb0ZyYW1lU2l6ZS53aWR0aCgp
IH07CiAgICAgbV9zYW1wbGVNZXRhZGF0YSA9IG1ldGFkYXRhOwogICAgICsrbV9zYW1wbGVDb3Vu
dDsKIApAQCAtMTEzMSw4ICsxMTM0LDggQEAgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRh
dGE+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmEKICAgICBt
X2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCA9IG1fc2FtcGxlQ291bnQ7CiAKICAg
ICBWaWRlb0ZyYW1lTWV0YWRhdGEgbWV0YWRhdGE7Ci0gICAgbWV0YWRhdGEud2lkdGggPSBtX2lu
dHJpbnNpY1NpemUud2lkdGgoKTsKLSAgICBtZXRhZGF0YS5oZWlnaHQgPSBtX2ludHJpbnNpY1Np
emUuaGVpZ2h0KCk7CisgICAgbWV0YWRhdGEud2lkdGggPSBtX3ZpZGVvRnJhbWVTaXplLndpZHRo
KCk7CisgICAgbWV0YWRhdGEuaGVpZ2h0ID0gbV92aWRlb0ZyYW1lU2l6ZS5oZWlnaHQoKTsKICAg
ICBtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMgPSBtX3NhbXBsZUNvdW50OwogICAgIG1ldGFkYXRh
LnByZXNlbnRhdGlvblRpbWUgPSBtX3ByZXNlbnRhdGlvblRpbWUuc2Vjb25kcygpOwogICAgIG1l
dGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUgPSBtX3ByZXNlbnRhdGlvblRpbWUuc2Vjb25kcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBmMWM5ZTYwMjgxM2EzYmY2ZmIzMTQxNzg4YjY2
MDRjYTQzYjA5YjkxLi4zNGQ0NWI1YzQ0ZWFhNWMyOGU1ZmY3MzIxMGFkOTQ5YmQ5N2M5MDU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6ZW5kKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIpCiAKICAgICBSZWYgcHJv
dGVjdGVkVGhpcyB7ICp0aGlzIH07CiAKLSAgICBzdG9wKCk7CisgICAgZW5kUHJvZHVjaW5nRGF0
YSgpOwogICAgIG1faXNFbmRlZCA9IHRydWU7CiAgICAgaGFzRW5kZWQoKTsKIApAQCAtMjkzLDEx
ICsyOTMsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQogICAg
IEVSUk9SX0xPR19JRihtX2xvZ2dlciwgTE9HSURFTlRJRklFUik7CiAKICAgICBtX2NhcHR1cmVE
aWRGYWlsZWQgPSB0cnVlOwotCi0gICAgc3RvcCgpOwotICAgIGZvckVhY2hPYnNlcnZlcihbXShh
dXRvJiBvYnNlcnZlcikgewotICAgICAgICBvYnNlcnZlci5zb3VyY2VTdG9wcGVkKCk7Ci0gICAg
fSk7CisgICAgZW5kKCk7CiB9CiAKIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3VwcG9ydHNT
aXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50Piwgc3RkOjpvcHRpb25hbDxpbnQ+LCBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggYzRiNDU3ZTI5NjBm
MGVkYTkwOGI3MjEyOTg3MzhhZTgzZTUxNDQyZS4uODMwMDczNGM2Nzc5YTEwZjI5OGE4MjI1OGQx
NTI3OTQ4MmRlMjA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9wKCk7CiAgICAgdm9pZCBlbmRJ
bW1lZGlhdGx5KCkgeyBlbmQobnVsbHB0cik7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRv
RW5kKE9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIpOworICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9i
c2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIpOwogICAgIGJvb2wgaXNFbmRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNFbmRlZDsgfQogCiAgICAgYm9vbCBtdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0
ZWQ7IH0KQEAgLTI2Miw2ICsyNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpIHsg
c3RvcCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc+KSB7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wQmVpbmdPYnNlcnZlZCgpIHsgc3RvcCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmlu
ZGV4IDFkNGY5OWJmMmIxM2FhNjZhZmZjMjQ4YmVjZTU5ODJlYjMwZDQ2NzAuLjkzYmNjMWEzMzIz
MzdhMzE1OTFkZWZhYTIzODViYWEzODgzMWJmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBA
IC03OCw2ICs3OCwxMiBAQCB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdE
YXRhKCkKICAgICBtX3NvdXJjZS0+c3RvcCgpOwogfQogCit2b2lkIFJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmVuZFByb2R1Y2luZ0RhdGEoKQoreworICAgIG1fc291cmNlLT5yZW1vdmVWaWRlb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlzKTsKK30K
KwogYm9vbCBSZWFsdGltZVZpZGVvU291cmNlOjpzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoc3Rk
OjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRlKQogewogICAgIHJldHVybiBtX3NvdXJjZS0+c3VwcG9y
dHNTaXplQW5kRnJhbWVSYXRlKHdpZHRoLCBoZWlnaHQsIGZyYW1lUmF0ZSk7CkBAIC0xNDgsMTEg
KzE1NCw2IEBAIGJvb2wgUmVhbHRpbWVWaWRlb1NvdXJjZTo6cHJldmVudFNvdXJjZUZyb21TdG9w
cGluZygpCiAgICAgcmV0dXJuIGhhc09ic2VydmVyUHJldmVudGluZ1N0b3BwaW5nOwogfQogCi12
b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNl
OjpPYnNlcnZlciYpCi17Ci0gICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7Ci19Ci0K
IHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQogewogICAgIG1f
c291cmNlLT5yZXF1ZXN0VG9FbmQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDM2ZjM4
OGFhYWZhNThjZTFhNDM3Yjc4MGEwNDMyMTAyMzZkYzQ2MDUuLmY0NzQ3M2IwYTJmMGQ2OWFhYTc5
YmY3NWRkMWRjMThiNDBiNmM5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTUyLDcgKzUyLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlv
bmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiBmcmFtZVJhdGUpIGZpbmFsOwogICAgIHZvaWQgc2V0U2l6ZUFuZEZyYW1lUmF0ZShz
dGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpIGZpbmFsOwogICAgIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiBjbG9uZSgpIGZpbmFsOwotICAgIHZvaWQgcmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIpIGZpbmFsOworICAgIHZvaWQgZW5k
UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5h
bDsKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxp
dGllcygpIGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5jYXBhYmlsaXRpZXMoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggOGRiNzY4MGUyYmE4MmYxYzI5MDJhMjNlNjY1ODNkZGEwYmJjODlmYi4uZTU2ODEx
MmYyYjkwZTkwNjVkZmIyNTBhYWM0OWJlY2Q2ODA0ZWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291
cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04Mywx
MSArODMsMTAgQEAgdm9pZCBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OnN0b3BQ
cm9kdWNpbmdEYXRhKCkKICAgICBtX3NvdXJjZS0+c3RvcCgpOwogfQogCi12b2lkIE1vY2tEaXNw
bGF5Q2FwdHVyZVNvdXJjZUdTdHJlYW1lcjo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBjYWxsaW5n
T2JzZXJ2ZXIpCit2b2lkIE1vY2tEaXNwbGF5Q2FwdHVyZVNvdXJjZUdTdHJlYW1lcjo6ZW5kUHJv
ZHVjaW5nRGF0YSgpCiB7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKGNh
bGxpbmdPYnNlcnZlcik7CiAgICAgbV9zb3VyY2UtPnJlbW92ZVZpZGVvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOwotICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoY2FsbGluZ09ic2VydmVyKTsKKyAg
ICBtX3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlzKTsKIH0KIAogdm9pZCBNb2NrRGlzcGxheUNh
cHR1cmVTb3VyY2VHU3RyZWFtZXI6OnNldE11dGVkKGJvb2wgaXNNdXRlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmgKaW5kZXgg
NzZhOTYxZDU5NmUxMTdhNWI5ZjIzMTg5YWJmNWRlNDIwOTZkNjBjMi4uNTZlOGM4ZWQ0NDFkNzA5
NjQ0OTdkZDBmODk1YzY0Yjg1Y2M4ZGI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVh
bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xh
c3MgTW9ja0Rpc3BsYXlDYXB0dXJlU291cmNlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UsIFJlYWwKIHB1YmxpYzoKICAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyopOwogCi0gICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBmaW5hbDsK
KyAgICB2b2lkIGVuZFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICBib29sIGlzUHJvZHVjaW5n
RGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5pc1Byb2R1Y2luZ0RhdGEoKTsg
fQogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCBpc011dGVkKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDAxYmU4ZDdkYWQ5YjYzYjdiN2I1MzcyMDVhNTljNzU1MGMyMjY2NjMuLmIw
OGQxZmRkYWMwYTU5M2NhZDU0NWE4Y2E1MzYxMjlmYTIyYTlkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTYxOCw3ICs2MTgsNiBAQCBXZWJQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBh
eW1lbnRDb29yZGluYXRvckNvY29hLm1tCiBXZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXIubW0KIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCi1XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWUw
NjVmOWY4MmY0MTRkNTUzM2FkNmZlNWE2YmM3NDI1ZWFhODliNS4uOThlNjdjZTZjM2ViMWZiZjgy
Zjk3M2E4Yzc1YTg3MWVkZjQ0MDUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAg
LTgzLDkgKzgzLDYgQEAgcHVibGljOgogCiAgICAgflNvdXJjZVByb3h5KCkKICAgICB7Ci0gICAg
ICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVuZGVyaW5nIHRocmVhZCBpcyBzdG9wcGVkIGJlZm9yZSB3
ZSBwcm9jZWVkIHdpdGggdGhlIGRlc3RydWN0aW9uLgotICAgICAgICBzdG9wKCk7Ci0KICAgICAg
ICAgc3dpdGNoIChtX3NvdXJjZS0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6QXVkaW86CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6U3lzdGVtQXVkaW86CkBAIC0xMTcsMTkgKzExNCwxOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdGFydCgpCiAgICAgewogICAgICAgICBtX3Nob3VsZFJlc2V0ID0gdHJ1ZTsKLSAgICAgICAg
bV9pc0VuZGVkID0gZmFsc2U7CisgICAgICAgIG1faXNTdG9wcGVkID0gZmFsc2U7CiAgICAgICAg
IG1fc291cmNlLT5zdGFydCgpOwogICAgIH0KIAogICAgIHZvaWQgc3RvcCgpCiAgICAgewotICAg
ICAgICBtX2lzRW5kZWQgPSB0cnVlOworICAgICAgICBtX2lzU3RvcHBlZCA9IHRydWU7CiAgICAg
ICAgIG1fc291cmNlLT5zdG9wKCk7CiAgICAgfQogCi0gICAgdm9pZCByZXF1ZXN0VG9FbmQoKQor
ICAgIHZvaWQgZW5kKCkKICAgICB7Ci0gICAgICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgICAg
IG1faXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhp
cyk7CiAgICAgfQogCkBAIC0yNDcsNyArMjQ0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHByZXZl
bnRTb3VyY2VGcm9tU3RvcHBpbmcoKQogICAgIHsKICAgICAgICAgLy8gRG8gbm90IGFsbG93IHRo
ZSBzb3VyY2UgdG8gc3RvcCBpZiB3ZSBhcmUgc3RpbGwgdXNpbmcgaXQuCi0gICAgICAgIHJldHVy
biAhbV9pc0VuZGVkOworICAgICAgICByZXR1cm4gIW1faXNTdG9wcGVkOwogICAgIH0KIAogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWQ7CkBAIC0yNTgsNyArMjU1LDcgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7
CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwogICAgIGlu
dDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKLSAgICBib29sIG1faXNFbmRlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEltYWdlUm90YXRpb25TZXNzaW9uVlQ+IG1fcm90YXRpb25TZXNzaW9uOwogICAgIGJvb2wgbV9z
aG91bGRBcHBseVJvdGF0aW9uIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpT
ZW1hcGhvcmU+IG1fY2FwdHVyZVNlbWFwaG9yZTsKQEAgLTQyNyw3ICs0MjQsNyBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaQogICAgICAgICBwcm94eS0+c3RvcCgpOwogfQogCi12b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmVuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVtb3ZlU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogewogICAgIG1fcHJveGllcy5yZW1vdmUo
aWQpOwogfQpAQCAtNDY0LDEwICs0NjEsMTAgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAg
ICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4o
bmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFByb2Nlc3NJZGVu
dGl0eSB7IG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgcHJveHktPnNvdXJj
ZSgpLmNsb25lKCksIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cCgpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRv
RW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjplbmRQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIHNvdXJjZUlEKQogewogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGll
cy5nZXQoc291cmNlSUQpKQotICAgICAgICBwcm94eS0+cmVxdWVzdFRvRW5kKCk7CisgICAgICAg
IHByb3h5LT5lbmQoKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojpz
ZXRTaG91bGRBcHBseVJvdGF0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJj
ZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5k
ZXggZDNhYjBkYWFmYTVhYTZiMzEzY2YyOGY3N2RmY2M3MjZiZDI3OWQzNi4uMjk2OWE4ZDdlMmZh
NGFmMzY1M2U5M2FhMDBkZDI0MzM0Njk5YzAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApA
QCAtODcsMTEgKzg3LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJp
bmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BV
UHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJj
ZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGVuZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2Fw
YWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
Jik+JiYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAg
IHZvaWQgY2xvbmUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVk
SUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpOwotICAg
IHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGVuZFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsK
IAogICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZU1pY3JvcGhvbmVTb3Vy
Y2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZWQ3ZjRkYWIx
NmJlYTc5YjQyMWQ5NjYwZWUxZTQ5YzNmNjkwMTMzZS4uY2E4MDgxZGE3MWIwNGZlZmE4OGYzMjEy
MTgzNTRmZWRlMTc3MDhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNywxMCArMjcsMTAgQEAgbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQs
IHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzLCBib29sIHNob3Vs
ZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29y
ZTo6VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJs
ZSBmcmFtZVJhdGUpIEFzeW5jCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQotICAgIEVuZChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgQXBwbHlDb25zdHJhaW50
cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCiAgICAgQ2xvbmUoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpCi0gICAgUmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQorICAgIEVuZFByb2R1Y2luZ0Rh
dGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCiAgICAg
U2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBzb3VyY2VJRCwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3N2E1OTliNTM0
MDljYjhkNWJmNmI2OWYzNGJiZDE5MDIxNzhmYmZkLi4wN2QwN2Q1Mjg1NzMyNzRjNjdiODMxNmU3
Y2IwNDYwMWVmMWI0Yzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQxNDMsOCArNDE0Myw2IEBACiAJCTQxNjg0QzREMjQ2NDNCRkEw
MDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRDNEUyNDY0M0M4MTAwMUNFOEVEIC8q
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQx
Njg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4NEM1MTI0NjQ1MEZE
MDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNkNENzQ1MjNGQjE3OEIwMDY2MUQ5OSAvKiBNRE5TUmVnaXN0
ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1ETlNSZWdp
c3RlcklkZW50aWZpZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL01ETlNSZWdpc3RlcklkZW50
aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RURDMDUyNjAwRjZCMDAw
MDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJy
dGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE2RURDMDYyNjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaDsg
cGF0aCA9IE5ldHdvcmsvd2VicnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE4Miw4ICs0MTgwLDggQEAKIAkJNDE4OTdFRDQx
RjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTg5N0VENTFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENjFG
NDE1RDg2MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENhY2hlU3RvcmFnZUVuZ2luZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQxOEZDQkUzMjcxMDQ5REIwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8q
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNC
RTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOUIxRjk4MUQyNjAwOUYx
QTgzIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUE1RjdCOTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUE1RjdCQTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTE3Myw3ICs1MTcxLDYgQEAKIAkJN0I1MEU5N0YyNzcxRjZDRTAwM0RBQUM0
IC8qIElQQ1Rlc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJUENUZXN0ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjUwRTk4MDI3NzFGNkNGMDAzREFBQzQgLyogSVBD
VGVzdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElQQ1Rlc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QjVBM0RBMDI3QTdEQzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9G
cmFtZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I1QTNEQTEy
N0E3REMxQTAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVWaWRlb0ZyYW1lUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5NyAvKiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlVmlkZW9GcmFtZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdC
NUEzREEzMjdBN0RDNkMwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQTcyN0E3RENCQzAwNkM2Rjk3
IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02ODc3LDcgKzY4NzQsNiBAQAogCQkJCTdCNUEzREEwMjdBN0RDMUEwMDZD
NkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCTdCNUEzREEzMjdB
N0RDNkMwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovLAogCQkJCTdCNUEz
REEyMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCAqLywKLQkJCQk3
QjVBM0RBMTI3QTdEQzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZVByb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCTFERDJBNjNBMjU1REU2RDEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkxREQyQTYzOTI1NURFNkQxMDBGRjdCNkYgLyogU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTFERDJBNjZGMjU2MjJGMTEwMEZGN0I2RiAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLApAQCAtMTA0NTYsMTIg
KzEwNDUyLDEwIEBACiAJCQkJNDE2ODRDNEQyNDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxRTY3QThEMjVEMkNGRDAwMDdC
MEE0QyAvKiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcCAqLywKIAkJCQk0MUU2N0E4QzI1
RDJDRkQwMDA3QjBBNEMgLyogUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oICovLAotCQkJCTQx
OEZDQkUzMjcxMDQ5REIwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3Bw
ICovLAotCQkJCTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2UuaCAqLywKIAkJCQk0MTYwMDhCMjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCAqLywKIAkJCQk0MTYwMDhCMTI1REE4NkI5MDBFODky
RkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggKi8sCi0JCQkJNDE2ODRDNTAy
NDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAotCQkJ
CTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgg
Ki8sCisJCQkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwICovLAorCQkJCTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlLmggKi8sCiAJCQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLywKIAkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLywKIAkJCQlDRDQ5MUIwQTFFNzMyRDEy
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCBiMDk4ZWZiZTdjMzNjM2RiOWVmMDc2ZTE5NmVkNGE4
Zjk3ZGZmMmU3Li4zNGM0NjY0MTk2NTI2ZTg5YTE5NzYzNTNjZjQ1NjY2MTkzYWNlNmVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTEwMiwyMCArMTAyLDcgQEAgdm9pZCBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlPiYmIHNvdXIKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVy
KCk7CiAKICAgICAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVy
KSk7Ci0gICAgICAgIG1fdmlkZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJl
bW90ZVZpZGVvPihXVEZNb3ZlKHNvdXJjZSkpKTsKLSAgICB9KTsKLX0KLQotdm9pZCBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2U+JiYgc291cmNlKQotewotICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7Ci0g
ICAgc2V0Q29ubmVjdGlvbihzb3VyY2UtPmNvbm5lY3Rpb24oKSk7Ci0KLSAgICBtX3F1ZXVlLT5k
aXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNvdXJjZSA9IFdU
Rk1vdmUoc291cmNlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBpZGVudGlmaWVyID0gc291
cmNlLT5pZGVudGlmaWVyKCk7Ci0KLSAgICAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlcy5jb250
YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgICAgIG1fdmlkZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVy
LCBtYWtlVW5pcXVlPFJlbW90ZVZpZGVvPihXVEZNb3ZlKHNvdXJjZSkpKTsKKyAgICAgICAgbV92
aWRlb1NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlKSk7CiAgICAgfSk7CiB9
CiAKQEAgLTE2OSw3ICsxNTYsNyBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjp2
aWRlb0ZyYW1lQXZhaWxhYmxlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQogICAgIH0oKTsK
ICAgICBhdXRvIGl0ZXJhdG9yID0gbV92aWRlb1NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKICAg
ICBpZiAoaXRlcmF0b3IgPT0gbV92aWRlb1NvdXJjZXMuZW5kKCkpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHJlbW90
ZVZpZGVvU2FtcGxlQXZhaWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9y
IHZpZGVvRnJhbWVBdmFpbGFibGUiLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGF1dG8gdmlkZW9GcmFtZVNpemUgPSB2aWRlb0ZyYW1lLT5zaXpl
KCk7CkBAIC0xODEsNyArMTY4LDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6
dmlkZW9GcmFtZUF2YWlsYWJsZUNWKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGkKICAgICBBU1NF
UlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV92aWRlb1Nv
dXJjZXMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV92aWRlb1NvdXJj
ZXMuZW5kKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRv
IGZpbmQgc291cmNlICVsbHUgZm9yIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlIiwgaWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5h
YmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHZpZGVvRnJhbWVBdmFpbGFibGVDViIsIGlkZW50
aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI1NSwyMCAr
MjQyLDYgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNl
dFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW4KICAgICBzdGFydFRocmVhZCgpOwogfQog
Ci1SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OlJlbW90ZVZpZGVvKFNv
dXJjZSYmIHNvdXJjZSkKLSAgICA6IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKLXsKLX0KLQot
dm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OnZpZGVvRnJhbWVB
dmFpbGFibGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgSW50U2l6ZSBzaXplLCBWaWRlb1Nh
bXBsZU1ldGFkYXRhIG1ldGFkYXRhKQotewotICAgIHN3aXRjaE9uKG1fc291cmNlLCBbJl0oUmVm
PFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT52
aWRlb1NhbXBsZUF2YWlsYWJsZShzYW1wbGUuZ2V0KCksIHNpemUsIG1ldGFkYXRhKTsKLSAgICB9
LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAg
ICBzb3VyY2UtPnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZS5nZXQoKSwgbWV0YWRh
dGEpOwotICAgIH0pOwotfQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRl
eCA2OTQ1Y2FkOWZmMTFhYjg4MmNjYzdkNzY0MTBhNzVkZWI3ODJhNDUzLi5hMjRlOWNlNzJlNTI3
ZGIwYTE2Y2U1YzUwMzBlZGEyNTQ3NzZiMWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAt
MzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKLSNp
bmNsdWRlICJSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKQEAgLTU5LDcgKzU4LDYg
QEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2U+JiYpOwogICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlPiYmKTsKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uKik7CkBAIC0xMDUsMjQgKzEwMywxMiBAQCBwcml2YXRlOgogICAgICAgICBz
dGQ6OmF0b21pYzxib29sPiBtX3Nob3VsZFN0b3BUaHJlYWQgeyBmYWxzZSB9OwogICAgIH07CiAK
LSAgICBjbGFzcyBSZW1vdGVWaWRlbyB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotICAgIHB1YmxpYzoKLSAgICAgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PFJlZjxS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZT4+OwotICAgICAgICBleHBsaWNpdCBSZW1vdGVWaWRlbyhTb3VyY2UmJik7Ci0KLSAgICAgICAg
dm9pZCB2aWRlb0ZyYW1lQXZhaWxhYmxlKFJlZjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4mJiwgV2Vi
Q29yZTo6SW50U2l6ZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSk7Ci0KLSAgICBwcml2
YXRlOgotICAgICAgICBTb3VyY2UgbV9zb3VyY2U7Ci0gICAgfTsKLQogICAgIGJvb2wgbV9pc1Jl
Z2lzdGVyZWRUb1BhcmVudFByb2Nlc3NDb25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBSZWY8V29y
a1F1ZXVlPiBtX3F1ZXVlOwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKICAgICAvLyBiYWNrZ3JvdW5kIHRocmVhZCBtZW1iZXIKICAgICBIYXNoTWFwPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVk
aW8+PiBtX2F1ZGlvU291cmNlczsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW8+PiBtX3ZpZGVvU291
cmNlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4+IG1fdmlkZW9Tb3VyY2VzOwogCiAgICAg
TG9jayBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlMb2NrOwogICAgIFJlZlB0cjxSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5PiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkgV1RG
X0dVQVJERURfQllfTE9DSyhtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlMb2NrKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggZTkxMGI2MTYwNTg5MDZhOTE5ZGU1MDhi
NTliN2E5MjUxODJkMDBlMS4uNjFmMWZhMzNiMTM2NzEzM2E1ZDExMGY5M2IyMTNhODZhZWQ5ODcw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTcwLDExICs3MCwyNiBA
QCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEo
KQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjplbmRQcm9kdWNpbmdEYXRhKCkKK3sK
KyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkVuZFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKIHZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyLCBDcmVhdGVDYWxsYmFjayYmIGNhbGxiYWNrLCBib29sIHNob3VsZFVzZVJl
bW90ZUZyYW1lKQogewogICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNl
SURIYXNoU2FsdCwgbV9jb25zdHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVu
dGlmaWVyKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCitSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjbG9uZSgpCit7CisgICAg
cmV0dXJuIHsgUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1fZGV2
aWNlLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsICZtX2NvbnN0cmFpbnRzIH07Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVDbG9uZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlkZW50aWZp
ZXIpCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDbG9uZSB7IG1faWRlbnRpZmllciwgY2xvbmVJZGVudGlmaWVyIH0sIDAp
OworfQorCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlDb25zdHJh
aW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CkBAIC0xMDUsNyArMTIwLDcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlUHJveHk6OmVuZCgpCiB7CiAgICAgQVNTRVJUKCFtX2lzRW5kZWQpOwogICAgIG1f
aXNFbmRlZCA9IHRydWU7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7CisgICAgY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpS
ZW1vdmVTb3VyY2UgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5Ojp3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcpPiYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCmluZGV4IGIxMTBk
MWU3ZDY1ZmFjMmFmNTQ0ODI5ZjcyZTRmZWNiMjVlNDgzNmIuLmM0NGM0YmU1ODc3YWMyYTEyNWRj
ODViNTAyY2Q3YjNlOWMxMjljYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKQEAg
LTQ3LDE0ICs0NywyMSBAQCBwdWJsaWM6CiAgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgflJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eSgpOwogCisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eSYmKSA9IGRlZmF1bHQ7CisgICAgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5JiBvcGVyYXRvcj0oUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
JiYpID0gZGVmYXVsdDsKKwogICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOwogICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2RldmljZS50eXBlKCk7IH0K
KyAgICBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UoKSBjb25zdCB7IHJldHVy
biBtX2RldmljZTsgfQogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNvbnN0
IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcgQ3Jl
YXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYm
LCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKICAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDcmVhdGVDYWxs
YmFjayYmLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lID0gZmFsc2UpOwogCisgICAgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5IGNsb25lKCk7CisgICAgdm9pZCBjcmVhdGVSZW1vdGVD
bG9uZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisKICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoKTsKICAgICB2b2lkIGFwcGx5Q29uc3Ry
YWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNz
YWdlKTsKICAgICB2b2lkIGZhaWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3MoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpOwpAQCAtNjMsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmQo
KTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoKTsKKyAgICB2b2lkIGVuZFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpOwogCiAgICAgdm9pZCB3
aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmNwcAppbmRleCBlZGQ1ZDQxNjEzM2FjNzIyZGEwYjk4ZTM0NjBiOTVlNDFjMWMzYTc1
Li44ODkzMGMyZWNjYTg2NmYwMTU2ZTJjZGRkNjE3ZWIyYTVhNDgzMzA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDU4ICsyOCw1NCBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgot
I2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCitS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCks
IG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7Cisg
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3Ry
YWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzLCBwYWdlSWRlbnRpZmllcikpOwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5
UmVmKCkpOwogICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3Vy
Y2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJj
ZSgpOwogICAgIHJldHVybiBzb3VyY2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6
OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQotICAgIDogUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKK1JlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxh
YmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlciht
YW5hZ2VyKQogewogfQogCitSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSYmIHByb3h5LCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgcHJveHkuZGV2aWNlKCkubGFiZWwo
KSB9LCBTdHJpbmcgeyBwcm94eS5kZXZpY2UoKS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCisgICAgLCBtX3Byb3h5KFdURk1vdmUocHJveHkpKQor
ICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCit7Cit9CisKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIG1fcHJveHkuY3JlYXRl
UmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRv
JiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1
dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKKyAgICBt
X3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlk
ZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1
Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2Fw
YWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQp
IHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgc2V0U2l6ZShzaXplKTsK
LSAgICAgICAgc2V0RnJhbWVSYXRlKGZyYW1lUmF0ZSk7Ci0KICAgICAgICAgc2V0U2V0dGluZ3Mo
V1RGTW92ZShzZXR0aW5ncykpOwogICAgICAgICBzZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBh
YmlsaXRpZXMpKTsKLSAgICAgICAgc2V0U3VwcG9ydGVkUHJlc2V0cyhXVEZNb3ZlKHByZXNldHMp
KTsKLSAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkg
fSk7CiAKICAgICAgICAgbV9wcm94eS5zZXRBc1JlYWR5KCk7CiAgICAgICAgIGlmIChtX3Byb3h5
LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSkKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuYWRkQ2xpZW50KCp0aGlzKTsK
LSAgICB9LCBtX21hbmFnZXIuc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcygpKTsKKyAg
ICB9LCBtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSAmJiBtX21hbmFnZXIuc2hv
dWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcygpKTsKIH0KIAogUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQpAQCAtOTAsNiArODYsMTEgQEAg
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQog
ICAgIH0KIH0KIAordm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjplbmRQcm9kdWNpbmdE
YXRhKCkKK3sKKyAgICBtX3Byb3h5LmVuZFByb2R1Y2luZ0RhdGEoKTsKK30KKwogdm9pZCBSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKIHsKICAgICBtX2NhcGFiaWxpdGllcyA9IFdU
Rk1vdmUoY2FwYWJpbGl0aWVzKTsKQEAgLTEwMiwzNyArMTAzLDE2IEBAIHZvaWQgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiYgc2V0dGluCiAgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7
CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFi
bGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgSW50U2l6ZSBzYW1wbGVTaXplLCBWaWRlb1NhbXBsZU1l
dGFkYXRhIG1ldGFkYXRhKQotewotICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6VmlkZW8pOwot
Ci0gICAgc2V0SW50cmluc2ljU2l6ZShzYW1wbGVTaXplKTsKLQotICAgIGlmIChtX3NhbXBsZVJv
dGF0aW9uICE9IHNhbXBsZS52aWRlb1JvdGF0aW9uKCkpIHsKLSAgICAgICAgbV9zYW1wbGVSb3Rh
dGlvbiA9IHNhbXBsZS52aWRlb1JvdGF0aW9uKCk7Ci0KLSAgICAgICAgYXV0byBzaXplID0gdGhp
cy0+c2l6ZSgpOwotICAgICAgICBpZiAobV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6TGVmdCB8fCBtX3NhbXBsZVJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpSaWdodCkgewotICAgICAgICAgICAgc2l6ZSA9IHNpemUudHJhbnNwb3Nl
ZFNpemUoKTsKLSAgICAgICAgICAgIG1fc2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsK
LSAgICAgICAgICAgIG1fc2V0dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVpZ2h0KCkpOwotICAgICAg
ICB9Ci0gICAgICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7Ci0gICAgICAgICAgICBu
b3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyh7IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6RmxhZzo6V2lkdGgsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZzo6SGVp
Z2h0IH0pOwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2Jz
ZXJ2ZXJzKHNhbXBsZSwgbWV0YWRhdGEpOwotfQotCiBib29sIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQog
ewogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U2V0U2hvdWxkQXBwbHlSb3RhdGlvbiB7IGlkZW50aWZpZXIoKSwgc2hvdWxkQXBw
bHlSb3RhdGlvbiB9LCAwKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJp
bGl0aWVzKCkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6YXBwbHlDb25zdHJhaW50
c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5n
cykKIHsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgc2V0U2V0dGluZ3MoV1RGTW92
ZShzZXR0aW5ncykpOworICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwog
fQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKQEAgLTE0NSw0
NiArMTI1LDM3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6aGFzRW5kZWQoKQog
ICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShp
ZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1
cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCkKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpjbG9uZSgpCiB7Ci0gICAgaWYgKGRpZEZhaWwpCi0gICAgICAg
IGNhcHR1cmVGYWlsZWQoKTsKLSAgICBlbHNlCi0gICAgICAgIGVuZCgpOwotICAgIGhhc0VuZGVk
KCk7Ci19CisgICAgaWYgKGlzRW5kZWQoKSB8fCBtX3Byb3h5LmlzRW5kZWQoKSkKKyAgICAgICAg
cmV0dXJuICp0aGlzOwogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRl
UHJlc2V0cygpCi17Ci0gICAgQVNTRVJUKG1fcHJveHkuaXNSZWFkeSgpKTsKLX0KKyAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShtX3Byb3h5
LmNsb25lKCksIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBwYWdlSWRlbnRpZmllcigp
KSk7CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFBy
ZXNldChkb3VibGUgZnJhbWVSYXRlLCBSZWZQdHI8VmlkZW9QcmVzZXQ+IHByZXNldCkKLXsKLSAg
ICBNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzOworICAgIHNvdXJjZS0+c2V0U2V0dGluZ3Mo
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgc2V0dGluZ3MoKSB9KTsKKyAgICBzb3VyY2Ut
PnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIHsgY2FwYWJp
bGl0aWVzKCkgfSk7CiAKLSAgICBjb25zdHJhaW50cy5pc1ZhbGlkID0gdHJ1ZTsKLSAgICBEb3Vi
bGVDb25zdHJhaW50IGZyYW1lUmF0ZUNvbnN0cmFpbnQoImZyYW1lUmF0ZSJfcywgTWVkaWFDb25z
dHJhaW50VHlwZTo6RnJhbWVSYXRlKTsKLSAgICBmcmFtZVJhdGVDb25zdHJhaW50LnNldElkZWFs
KGZyYW1lUmF0ZSk7Ci0gICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1l
ZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgZnJhbWVSYXRlQ29uc3RyYWludCk7CisgICAg
bV9tYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKKyAgICBtX21hbmFnZXIucmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAK
LSAgICBpZiAocHJlc2V0KSB7Ci0gICAgICAgIEludENvbnN0cmFpbnQgd2lkdGhDb25zdHJhaW50
KCJ3aWR0aCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgpOwotICAgICAgICB3aWR0aENv
bnN0cmFpbnQuc2V0SWRlYWwocHJlc2V0LT5zaXplLndpZHRoKCkpOwotICAgICAgICBjb25zdHJh
aW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgs
IHdpZHRoQ29uc3RyYWludCk7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVDbG9uZVNvdXJjZShz
b3VyY2UtPmlkZW50aWZpZXIoKSk7CiAKLSAgICAgICAgSW50Q29uc3RyYWludCBoZWlnaHRDb25z
dHJhaW50KCJoZWlnaHQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCk7Ci0gICAgICAg
IGhlaWdodENvbnN0cmFpbnQuc2V0SWRlYWwocHJlc2V0LT5zaXplLmhlaWdodCgpKTsKLSAgICAg
ICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5
cGU6OkhlaWdodCwgaGVpZ2h0Q29uc3RyYWludCk7Ci0gICAgfQorICAgIHJldHVybiBzb3VyY2U7
Cit9CiAKLSAgICBtX3NpemVDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOwotICAgIG1fcHJveHku
YXBwbHlDb25zdHJhaW50cyhjb25zdHJhaW50cywgW10oYXV0bykgeyB9KTsKK3ZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKQoreworICAg
IGlmIChkaWRGYWlsKQorICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgZWxzZQorICAgICAg
ICBlbmQoKTsKKyAgICBoYXNFbmRlZCgpOwogfQogCi1ib29sIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnByZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQmKQordm9pZCBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNhbGxiYWNrKQogewotICAgIHJldHVy
biB0cnVlOworICAgIG1fY29uc3RyYWludHMgPSBjb25zdHJhaW50czsKKyAgICBtX3Byb3h5LmFw
cGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKQEAgLTE5OSw4ICsxNzAsOCBAQCB2b2lkIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nv
bm5lY3RpbwogICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAKICAgICBtX3Byb3h5LmZh
aWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3MoIkdQVSBQcm9jZXNzIHRlcm1pbmF0ZWQiX3MpOwot
ICAgIGlmIChtX3NpemVDb25zdHJhaW50cykKLSAgICAgICAgbV9wcm94eS5hcHBseUNvbnN0cmFp
bnRzKCptX3NpemVDb25zdHJhaW50cywgW10oYXV0bykgeyB9KTsKKyAgICBpZiAobV9jb25zdHJh
aW50cykKKyAgICAgICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzKCptX2NvbnN0cmFpbnRzLCBb
XShhdXRvKSB7IH0pOwogCiAgICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgpKQogICAgICAgICBzdGFy
dFByb2R1Y2luZ0RhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDllZjBiYzcyYjUzOWMw
Zjk2OTljYTFhYTMzMjYzZTI1ODI2OGU4OTMuLmE2M2Y1ZmNjNjNiNTViMmRjNjk2YTE2ZjViZjg2
NTg1ZGEyN2EwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwzMiArMzAsMjUgQEAKICNpbmNs
dWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlLmg+Ci0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0KLW5hbWVz
cGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVv
RnJhbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uOwotY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKIHN0cnVjdCBNZWRpYUNvbnN0
cmFpbnRzOwotY2xhc3MgTWVkaWFTYW1wbGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsKIAotY2xhc3MgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZQorY2xhc3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICwgcHVi
bGljIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICNlbmRpZgogewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAgICAgflJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNjUsMzEgKzU4LDMxIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgY2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKTsKIAotICAgIHZvaWQgdmlkZW9TYW1w
bGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBXZWJDb3JlOjpJbnRTaXplLCBXZWJD
b3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhKTsKKyAgICB2b2lkIHZpZGVvRnJhbWVBdmFpbGFibGUo
V2ViQ29yZTo6VmlkZW9GcmFtZSYgZnJhbWUsIFdlYkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZp
ZGVvU2FtcGxlTWV0YWRhdGEgbWV0YWRhdGEpIHsgdmlkZW9TYW1wbGVBdmFpbGFibGUoZnJhbWUs
IG1ldGFkYXRhKTsgfQogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJv
b2wgaW50ZXJydXB0ZWQpOwogCisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKKyAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JN
ZXNzYWdlKSB7IG1fcHJveHkuYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENv
bnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOyB9CisKIHByaXZhdGU6Ci0gICAgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5JiYsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAotICAg
IC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAvLyBSZWFsdGltZU1lZGlhU291
cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQ
cm9kdWNpbmdEYXRhKCk7IH0KICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBt
X3Byb3h5LnN0b3BQcm9kdWNpbmdEYXRhKCk7IH0KICAgICBib29sIGlzQ2FwdHVyZVNvdXJjZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlv
bigpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQot
ICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5Um90YXRp
b24gKi8pIGZpbmFsOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmluYWw7CiAgICAg
dm9pZCBoYXNFbmRlZCgpIGZpbmFsOwogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9Ci0g
ICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJp
bGl0aWVzKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
IH0KICAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYg
Y2FsbGJhY2spIGZpbmFsIHsgbV9wcm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFjaykpOyB9
CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5kZXZpY2VUeXBlKCk7IH0KLQotICAgIC8vIFdlYkNv
cmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlCi0gICAgdm9pZCBnZW5lcmF0ZVByZXNldHMo
KSBmaW5hbDsKLSAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBzYW1wbGVS
b3RhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2FtcGxlUm90YXRpb247IH0KLSAgICB2
b2lkIHNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlLCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9Q
cmVzZXQ+KSBmaW5hbDsKLSAgICBib29sIHByZWZlcnNQcmVzZXQoV2ViQ29yZTo6VmlkZW9QcmVz
ZXQmKSBmaW5hbDsKLSAgICBib29sIGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9wcm94eS5pbnRlcnJ1cHRlZCgpOyB9CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNs
b25lKCkgZmluYWw7CisgICAgdm9pZCBlbmRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgYm9v
bCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wpIGZpbmFsOwogCiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKQEAgLTk3LDE3ICs5
MCwxMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291
cmNlKCk7Ci0gICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Ci0gICAgdm9p
ZCBzZXRBc1JlYWR5KCk7CiAgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKIAogICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eSBtX3Byb3h5OwogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFn
ZXI7Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHM+IG1fc2l6
ZUNvbnN0cmFpbnRzOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cz4gbV9jb25zdHJhaW50czsKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzIG1fY2FwYWJpbGl0aWVzOwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBtX3NldHRpbmdzOwotICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uIG1fc2FtcGxlUm90YXRpb24geyBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6Tm9uZSB9OwogfTsKIAogaW5saW5lIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
c291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQsIGJvb2wgaW50ZXJydXB0ZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAppbmRleCBlMTQ0MDFiYjcwN2U2NTdmMTVjMTE5ZmViM2NmY2ZlM2QwZTM1OGU2
Li45OGZhMzdkODU1NzVhMmM4YjQzMmM1ZmM1MmJmYzQzNWM4YTI1ZmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKLSNpbmNs
dWRlICJSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKQEAg
LTExMSwxMyArMTEwLDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNl
KFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXJjZSkKICAgICBtX3NvdXJjZXMu
YWRkKGlkZW50aWZpZXIsIFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2U+JiYgc291cmNlKQotewotICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS0+aWRlbnRp
ZmllcigpOwotICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAg
ICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsKLX0K
LQogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1fc291cmNlcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CkBAIC0xMzQsOCArMTI2LDYgQEAgdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGkKICAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsKICAgICB9
LCBbZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAg
ICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsKLSAgICB9LCBbZGlkRmFpbF0o
UmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3Vy
Y2UtPmNhcHR1cmVTdG9wcGVkKGRpZEZhaWwpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7
IH0pOwogfQogCkBAIC0xNDksOCArMTM5LDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6c291cmNlTXV0ZWRDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGkKICAg
ICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKICAg
ICB9LCBbbXV0ZWQsIGludGVycnVwdGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4m
IHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50
ZXJydXB0ZWQpOwotICAgIH0sIFttdXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENo
YW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9
KTsKIH0KIApAQCAtMTY0LDggKzE1Miw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnNvdXJjZVNldHRpbmdzQ2hhbmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllCiAgICAg
ICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgIH0sIFsmXShS
ZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2Ut
PnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKLSAgICB9LCBbJl0oUmVmPFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPnNldFNldHRp
bmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsK
IH0KIApAQCAtMTc4LDcgKzE2NCw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFw
cGx5Q29uc3RyYWludHNTdWNjZWVkZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50CiAgICAgc3dp
dGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+
JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdU
Rk1vdmUoc2V0dGluZ3MpKTsKICAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U+JiBzb3VyY2UpIHsKLSAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
V1RGTW92ZShzZXR0aW5ncykpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQpA
QCAtMTkyLDcgKzE3Nyw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29u
c3RyYWludHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgc3dpdGNoT24o
aXRlcmF0b3ItPnZhbHVlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3Vy
Y2UpIHsKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFp
bGVkQ29uc3RyYWludCksIFdURk1vdmUobWVzc2FnZSkpOwogICAgIH0sIFsmXShSZWY8UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgewotICAgIH0sIFsmXShSZWY8UmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1lc3NhZ2Up
KTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KQEAgLTIzMiw4ICsyMTYsNyBA
QCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0
b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpCiAgICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNl
dFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAot
ICAgIGJvb2wgc2hvdWxkVXNlSU9TdXJmYWNlID0gIW1fbWFuYWdlci5tX3Nob3VsZFVzZUdQVVBy
b2Nlc3NSZW1vdGVGcmFtZXM7Ci0gICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
ZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSwgc2hvdWxkVXNlSU9T
dXJmYWNlKSk7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVE
aXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCkBAIC0yNDUsNyArMjI4LDcgQEAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNw
bGF5Q2FwdHUKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICBt
X21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKLSAgICByZXR1cm4gUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92
ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdl
SWRlbnRpZmllcik7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MoYm9vbCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggYjAxNDg0MWEyYmYxYjA4
NGEzOWI3OTczMGU2ZjI3ZjZmYjk0ZjEzNi4uMjkzNGM1ZmRmY2VlOTVkNWRhMDA5OWQ0M2UzOTRi
MTI0MjgxNTYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTQzLDcgKzQzLDYgQEAgY2xhc3MgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U7Ci1jbGFzcyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U7
CiBjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOwogY2xhc3MgV2ViUHJvY2VzczsKIApA
QCAtNjAsNyArNTksNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZT4mJik7CiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U+JiYpOwotICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIFJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyJiByZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpIHsgcmV0dXJuIG1fcmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXI7IH0KQEAgLTEzMSw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKIAotICAgIHVzaW5nIFNvdXJjZSA9IHN0
ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+
LCBSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4sIFJlZjxSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U+PjsKKyAgICB1c2luZyBTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRy
X3QsIFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U+PjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBTb3VyY2U+IG1fc291cmNlczsKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiAg
ICAgTm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyIG1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGRmMzI4OTBhYmZkZDdlNjA3ZmNkYWE2NGJlNzRhN2I0NWZhYjQyM2MuLjk1MGY5YzI3
OTJjZGQ1OTA1YTIxYTQ2Njk2MzIzYzgzZmQxOTE5OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMi0wMy0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
RG8gY2FwdHVyZSB2aWRlbyBmcmFtZSBkb3duc2FtcGxpbmcgaW4gR1BVUHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzE2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84OTk1OTc3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNp
emUuaHRtbDoKKyAgICAgICAgUmVtb3ZlIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBieSByZXN0
YXJ0aW5nIHBsYXlpbmcgdGhlIHN0cmVhbSB0byBjb21wdXRlIHRoZSBzaXplLgorCiAyMDIyLTAz
LTA5ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sCmluZGV4IGU3ODI2OTJkNzJhNDFlOWU3
NmY4NGU0OTdjMDgzOTVmZDY4ZDAyMGMuLmNkNzA0NjA3M2IzYTNmMGU4YzJiOTZlYzk5Y2UyNTVk
Y2Y2N2JiNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlz
cGxheU1lZGlhLXNpemUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dl
dERpc3BsYXlNZWRpYS1zaXplLmh0bWwKQEAgLTI1LDYgKzI1LDEwIEBAIHByb21pc2VfdGVzdChh
c3luYyAoKSA9PiB7CiAKICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMi52aWRlb1dpZHRoLCAzMjAp
OwogCisgICAgdmlkZW8xLnNyY09iamVjdCA9IG51bGw7CisgICAgdmlkZW8xLnNyY09iamVjdCA9
IHN0cmVhbTE7CisgICAgYXdhaXQgdmlkZW8xLnBsYXkoKTsKKwogICAgIHRlc3QoKCkgPT4gewog
ICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOwogICAgIH0sICJv
cmlnaW5hbCBzb3VyY2Ugc2hvdWxkIHN0YXkgYXQgYSBzbWFsbCBzaXplIik7CkBAIC00NCw2ICs0
OCwxMCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogCiAgICAgYXNzZXJ0X2VxdWFscyh2
aWRlbzIudmlkZW9XaWR0aCwgMTI4MCk7CiAKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gbnVsbDsK
KyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gc3RyZWFtMTsKKyAgICBhd2FpdCB2aWRlbzEucGxheSgp
OworCiAgICAgdGVzdCgoKSA9PiB7CiAgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8xLnZpZGVv
V2lkdGgsIDY0MCk7CiAgICAgfSwgIm9yaWdpbmFsIHNvdXJjZSBzaG91bGQgc3RheSBhdCBhIGJp
ZyBzaXplIik7Cg==
</data>
<flag name="commit-queue"
          id="481965"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454338</attachid>
            <date>2022-03-10 05:20:56 -0800</date>
            <delta_ts>2022-03-11 02:57:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237316-20220310142053.patch</filename>
            <type>text/plain</type>
            <size>56394</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiOTVjYzQxNTZjN2My
ZjI5OTM1ZWRjYzNkOTYzMjlkZjk0MTc5MC4uZDBjNGRkNWE3MjA5OWI3MDBlY2M1MDVmZjgwM2Y3
ZDczM2ZiNmY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAzLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEbyBjYXB0dXJlIHZpZGVv
IGZyYW1lIGRvd25zYW1wbGluZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg5OTU5Nzc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRvIHByZXZlbnQgc29tZSBmbGFraW5lc3Nlcywgd2Ugbm93IGNvbXB1dGUgdGhlIHZpZGVv
IGZyYW1lIHNpemUgZnJvbSBNZWRpYVNhbXBsZSBnaXZlbiB0byBydmZjIG1ldGFkYXRhLgorICAg
ICAgICBXZSBzdG9wIG1ha2luZyByZXF1ZXN0VG9FbmQgYXMgdmlydHVhbCBieSBpbnRyb2R1Y2lu
ZyBhIHZpcnR1YWwgZW5kUHJvZHVjaW5nRGF0YSBtZXRob2QuCisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OmVuZCBjYWxscyB0aGUgbmV3IGVuZFByb2R1Y2luZ0RhdGEgdmlydHVhbCBtZXRo
b2QsIHdoaWNoIGlzIHN0b3AgYnkgZGVmYXVsdC4KKyAgICAgICAgUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6ZW5kUHJvZHVjaW5nRGF0YSBpcyBpbXBsZW1lbnRlZCBieSBjYWxsaW5nIHJlcXVlc3RUb0Vu
ZCBvbiB0aGUgdW5kZXJseWluZyBzb3VyY2UuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB0aGF0
IGVuZGluZyBhIHNvdXJjZSB3aWxsIG5vdCBlbmQgYSByZWxhdGVkIGNsb25lZCBzb3VyY2UuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCiAyMDIyLTAzLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUmVtb3RlVmlk
ZW9TYW1wbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYzQ0MzE1ZmJjYzk0YTY4YzU0ZWEwYzY1YjcxNDE1MDIwNjA1
YjFmOS4uZGExNDczMTYyNWM3OWU0ODdhYmRkZjgzZTA2MzdlYzViNjVjZDVkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMiBAQAorMjAyMi0wMy0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgRG8gY2FwdHVyZSB2aWRlbyBmcmFtZSBkb3duc2FtcGxpbmcgaW4g
R1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3MzE2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTk1OTc3Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGNsb25pbmcg
d2l0aGluIFdlYlByb2Nlc3MsIHdlIGtub3cgY2xvbmUgaW4gR1BVUHJvY2VzcyBmb3IgY2FtZXJh
IHRyYWNrcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCB1c2luZyBJT1N1cmZhY2VzIHdo
ZW4gc2V2ZXJhbCB0cmFja3MgYXJlIHVzaW5nIHRoZSBzYW1lIGRldmljZSB3aXRoIGRpZmZlcmVu
dCByZXNvbHV0aW9ucy4KKyAgICAgICAgU2luY2UgZGlzcGxheSB0cmFja3MgYXJlIGFscmVhZHkg
Y2xvbmVkIHJlbW90ZWx5LCB3ZSBjYW4gbWVyZ2UgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
IGFuZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLgorCisgICAgICAgIFdlIG5vIGxvbmdlciBu
ZWVkIHRvIHN0b3AgdGhlIHNvdXJjZSBpbiB+U291cmNlUHJveHkgZ2l2ZW4gd2UgYXJlIHJlbW92
aW5nIG91cnNlbHZlcyBmcm9tIG9ic2VydmluZyB0aGUgc291cmNlLgorICAgICAgICBXZSByZW5h
bWUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBlbmQgdG8gcmVtb3ZlICBhbmQgcmVxdWVz
dFRvRW5kIHRvIGVuZFByb2R1Y2luZ0RhdGEuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMi0wMy0wOSAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFJlbW90ZVZpZGVvU2FtcGxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDZiMjQ4NmIzODQ5ODM1MzRjNTYyOThhZmM2NWZkMGQ1
NDMxNDczMDIuLmRkNjgwYTg2YTlkNTkxNDMzN2EzNjUxMDdhNjE0MDVjZmNlZjY3M2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0yODcsNiArMjg3LDcgQEAgcHJpdmF0ZToKICAgICB1
aW50NjRfdCBtX3NhbXBsZUNvdW50IHsgMCB9OwogICAgIHVpbnQ2NF90IG1fbGFzdFZpZGVvRnJh
bWVNZXRhZGF0YVNhbXBsZUNvdW50IHsgMCB9OwogICAgIFNlY29uZHMgbV9wcmVzZW50YXRpb25U
aW1lIHsgMCB9OworICAgIEZsb2F0U2l6ZSBtX3ZpZGVvRnJhbWVTaXplOwogICAgIFZpZGVvU2Ft
cGxlTWV0YWRhdGEgbV9zYW1wbGVNZXRhZGF0YTsKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KaW5kZXggMjVmYWQ5MDkxMGFiNWU0YjNlZWYwOWRiNDdlNjlmNmUxYjgwMmUyMS4u
YTEyMjUzZmY3MDAzZWU1NmIzNGQzMGMwMWZlZjU4NTM2ZWU2OWE0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQpAQCAtMzI0LDYgKzMyNCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
CiAgICAgfQogCiAgICAgbV9wcmVzZW50YXRpb25UaW1lID0gcHJlc2VudGF0aW9uVGltZTsKKyAg
ICBtX3ZpZGVvRnJhbWVTaXplID0gc2FtcGxlLnByZXNlbnRhdGlvblNpemUoKTsKKyAgICBpZiAo
c2FtcGxlLnZpZGVvUm90YXRpb24oKSA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVm
dCB8fCBzYW1wbGUudmlkZW9Sb3RhdGlvbigpID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpSaWdodCkKKyAgICAgICAgbV92aWRlb0ZyYW1lU2l6ZSA9IHsgbV92aWRlb0ZyYW1lU2l6ZS5o
ZWlnaHQoKSwgbV92aWRlb0ZyYW1lU2l6ZS53aWR0aCgpIH07CiAgICAgbV9zYW1wbGVNZXRhZGF0
YSA9IG1ldGFkYXRhOwogICAgICsrbV9zYW1wbGVDb3VudDsKIApAQCAtMTEzMSw4ICsxMTM0LDgg
QEAgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmEKICAgICBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFT
YW1wbGVDb3VudCA9IG1fc2FtcGxlQ291bnQ7CiAKICAgICBWaWRlb0ZyYW1lTWV0YWRhdGEgbWV0
YWRhdGE7Ci0gICAgbWV0YWRhdGEud2lkdGggPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKTsKLSAg
ICBtZXRhZGF0YS5oZWlnaHQgPSBtX2ludHJpbnNpY1NpemUuaGVpZ2h0KCk7CisgICAgbWV0YWRh
dGEud2lkdGggPSBtX3ZpZGVvRnJhbWVTaXplLndpZHRoKCk7CisgICAgbWV0YWRhdGEuaGVpZ2h0
ID0gbV92aWRlb0ZyYW1lU2l6ZS5oZWlnaHQoKTsKICAgICBtZXRhZGF0YS5wcmVzZW50ZWRGcmFt
ZXMgPSBtX3NhbXBsZUNvdW50OwogICAgIG1ldGFkYXRhLnByZXNlbnRhdGlvblRpbWUgPSBtX3By
ZXNlbnRhdGlvblRpbWUuc2Vjb25kcygpOwogICAgIG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRp
bWUgPSBtX3ByZXNlbnRhdGlvblRpbWUuc2Vjb25kcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApp
bmRleCBmMWM5ZTYwMjgxM2EzYmY2ZmIzMTQxNzg4YjY2MDRjYTQzYjA5YjkxLi4zNGQ0NWI1YzQ0
ZWFhNWMyOGU1ZmY3MzIxMGFkOTQ5YmQ5N2M5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApA
QCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZW5kKE9ic2VydmVy
KiBjYWxsaW5nT2JzZXJ2ZXIpCiAKICAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CiAK
LSAgICBzdG9wKCk7CisgICAgZW5kUHJvZHVjaW5nRGF0YSgpOwogICAgIG1faXNFbmRlZCA9IHRy
dWU7CiAgICAgaGFzRW5kZWQoKTsKIApAQCAtMjkzLDExICsyOTMsNyBAQCB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQogICAgIEVSUk9SX0xPR19JRihtX2xvZ2dlciwg
TE9HSURFTlRJRklFUik7CiAKICAgICBtX2NhcHR1cmVEaWRGYWlsZWQgPSB0cnVlOwotCi0gICAg
c3RvcCgpOwotICAgIGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewotICAgICAg
ICBvYnNlcnZlci5zb3VyY2VTdG9wcGVkKCk7Ci0gICAgfSk7CisgICAgZW5kKCk7CiB9CiAKIGJv
b2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0
aW9uYWw8aW50Piwgc3RkOjpvcHRpb25hbDxpbnQ+LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgKaW5kZXggYzRiNDU3ZTI5NjBmMGVkYTkwOGI3MjEyOTg3MzhhZTgzZTUx
NDQyZS4uOGIxYzRiM2NhYjhjZDkxMjBkMDU5ZmM2YjZlOTRkYzZjNTc0YzY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaApAQCAtMjYyLDYgKzI2Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbmRQcm9kdWNpbmdEYXRh
KCkgeyBzdG9wKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9u
U2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIHsgfQogCiAgICAgdmlydHVh
bCB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgeyBzdG9wKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKaW5kZXggMWQ0Zjk5YmYyYjEzYWE2NmFmZmMyNDhiZWNlNTk4MmViMzBkNDY3MC4uOTNiY2Mx
YTMzMjMzN2EzMTU5MWRlZmFhMjM4NWJhYTM4ODMxYmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKQEAgLTc4LDYgKzc4LDEyIEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RvcFByb2R1
Y2luZ0RhdGEoKQogICAgIG1fc291cmNlLT5zdG9wKCk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVWaWRl
b1NvdXJjZTo6ZW5kUHJvZHVjaW5nRGF0YSgpCit7CisgICAgbV9zb3VyY2UtPnJlbW92ZVZpZGVv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoKnRoaXMp
OworfQorCiBib29sIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0
ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpCiB7CiAgICAgcmV0dXJuIG1fc291cmNlLT5z
dXBwb3J0c1NpemVBbmRGcmFtZVJhdGUod2lkdGgsIGhlaWdodCwgZnJhbWVSYXRlKTsKQEAgLTE0
OCwxMSArMTU0LDYgQEAgYm9vbCBSZWFsdGltZVZpZGVvU291cmNlOjpwcmV2ZW50U291cmNlRnJv
bVN0b3BwaW5nKCkKICAgICByZXR1cm4gaGFzT2JzZXJ2ZXJQcmV2ZW50aW5nU3RvcHBpbmc7CiB9
CiAKLXZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFT
b3VyY2U6Ok9ic2VydmVyJikKLXsKLSAgICBtX3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlzKTsK
LX0KLQogdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgpCiB7CiAg
ICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXgg
MzZmMzg4YWFhZmE1OGNlMWE0MzdiNzgwYTA0MzIxMDIzNmRjNDYwNS4uZjQ3NDczYjBhMmYwZDY5
YWFhNzliZjc1ZGQxZGMxOGI0MGI2Yzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNTIsNyAr
NTIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6
b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwgc3RkOjpvcHRp
b25hbDxkb3VibGU+IGZyYW1lUmF0ZSkgZmluYWw7CiAgICAgdm9pZCBzZXRTaXplQW5kRnJhbWVS
YXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwg
c3RkOjpvcHRpb25hbDxkb3VibGU+IGZyYW1lUmF0ZSkgZmluYWw7CiAgICAgUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7Ci0gICAgdm9pZCByZXF1ZXN0VG9FbmQoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXImIGNhbGxpbmdPYnNlcnZlcikgZmluYWw7CisgICAgdm9p
ZCBlbmRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgp
IGZpbmFsOwogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2Fw
YWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmNhcGFiaWxpdGllcygpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMDFiZThkN2RhZDliNjNiN2I3YjUzNzIwNWE1OWM3NTUw
YzIyNjY2My4uYjA4ZDFmZGRhYzBhNTkzY2FkNTQ1YThjYTUzNjEyOWZhMjJhOWRlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtNjE4LDcgKzYxOCw2IEBAIFdlYlByb2Nlc3MvQXBwbGVQYXkv
Y29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yQ29jb2EubW0KIFdlYlByb2Nlc3MvY29jb2EvUGxh
eWJhY2tTZXNzaW9uTWFuYWdlci5tbQogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHAKLVdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAog
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAppbmRleCBhZTA2NWY5ZjgyZjQxNGQ1NTMzYWQ2ZmU1YTZiYzc0MjVlYWE4OWI1Li45OGU2N2Nl
NmMzZWIxZmJmODJmOTczYThjNzVhODcxZWRmNDQwNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcApAQCAtODMsOSArODMsNiBAQCBwdWJsaWM6CiAKICAgICB+U291cmNlUHJveHkoKQog
ICAgIHsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSByZW5kZXJpbmcgdGhyZWFkIGlzIHN0b3Bw
ZWQgYmVmb3JlIHdlIHByb2NlZWQgd2l0aCB0aGUgZGVzdHJ1Y3Rpb24uCi0gICAgICAgIHN0b3Ao
KTsKLQogICAgICAgICBzd2l0Y2ggKG1fc291cmNlLT50eXBlKCkpIHsKICAgICAgICAgY2FzZSBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKICAgICAgICAgY2FzZSBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpTeXN0ZW1BdWRpbzoKQEAgLTExNywxOSArMTE0LDE5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN0YXJ0KCkKICAgICB7CiAgICAgICAgIG1fc2hvdWxkUmVzZXQgPSB0cnVl
OwotICAgICAgICBtX2lzRW5kZWQgPSBmYWxzZTsKKyAgICAgICAgbV9pc1N0b3BwZWQgPSBmYWxz
ZTsKICAgICAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9wKCkK
ICAgICB7Ci0gICAgICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgICAgIG1faXNTdG9wcGVkID0g
dHJ1ZTsKICAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKICAgICB9CiAKLSAgICB2b2lkIHJlcXVl
c3RUb0VuZCgpCisgICAgdm9pZCBlbmQoKQogICAgIHsKLSAgICAgICAgbV9pc0VuZGVkID0gdHJ1
ZTsKKyAgICAgICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogICAgICAgICBtX3NvdXJjZS0+cmVxdWVz
dFRvRW5kKCp0aGlzKTsKICAgICB9CiAKQEAgLTI0Nyw3ICsyNDQsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpCiAgICAgewogICAgICAgICAvLyBEbyBu
b3QgYWxsb3cgdGhlIHNvdXJjZSB0byBzdG9wIGlmIHdlIGFyZSBzdGlsbCB1c2luZyBpdC4KLSAg
ICAgICAgcmV0dXJuICFtX2lzRW5kZWQ7CisgICAgICAgIHJldHVybiAhbV9pc1N0b3BwZWQ7CiAg
ICAgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKQEAgLTI1OCw3
ICsyNTUsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1f
cmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7
IH07CiAgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OwotICAgIGJvb2wgbV9pc0Vu
ZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VSb3RhdGlvblNlc3Npb25WVD4gbV9yb3RhdGlvblNlc3Npb247CiAg
ICAgYm9vbCBtX3Nob3VsZEFwcGx5Um90YXRpb24geyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OlNlbWFwaG9yZT4gbV9jYXB0dXJlU2VtYXBob3JlOwpAQCAtNDI3LDcgKzQyNCw3
IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgICAgIHByb3h5LT5zdG9wKCk7CiB9CiAK
LXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6ZW5kKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZW1v
dmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiB7CiAgICAgbV9wcm94
aWVzLnJlbW92ZShpZCk7CiB9CkBAIC00NjQsMTAgKzQ2MSwxMCBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNs
b25lZElELAogICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNv
dXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwg
UHJvY2Vzc0lkZW50aXR5IHsgbV9jb25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSB9LCBw
cm94eS0+c291cmNlKCkuY2xvbmUoKSwgbV9jb25uZWN0aW9uUHJveHktPnJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwKCkpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCit2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmVuZFByb2R1Y2luZ0RhdGEoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCiB7CiAgICAgaWYgKGF1dG8qIHByb3h5
ID0gbV9wcm94aWVzLmdldChzb3VyY2VJRCkpCi0gICAgICAgIHByb3h5LT5yZXF1ZXN0VG9FbmQo
KTsKKyAgICAgICAgcHJveHktPmVuZCgpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24oUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgc291cmNlSUQsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaAppbmRleCBkM2FiMGRhYWZhNWFhNmIzMTNjZjI4Zjc3ZGZjYzcyNmJkMjc5ZDM2Li4y
OTY5YThkN2UyZmE0YWYzNjUzZTkzYWEwMGRkMjQzMzQ2OTljMDI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oCkBAIC04NywxMSArODcsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2
aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBz
aG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Q3JlYXRlU291cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZv
aWQgZW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBjYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmKT4mJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJik7CiAgICAgdm9pZCBjbG9uZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBjbG9uZWRJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xv
bmVJRCk7Ci0gICAgdm9pZCByZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgZW5kUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9u
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5
Um90YXRpb24pOwogCiAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlTWlj
cm9waG9uZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCBlZDdmNGRhYjE2YmVhNzliNDIxZDk2NjBlZTFlNDljM2Y2OTAxMzNlLi5jYTgwODFkYTcxYjA0
ZmVmYTg4ZjMyMTIxODM1NGZlZGUxNzcwOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KQEAgLTI3LDEwICsyNywxMCBAQCBtZXNzYWdlcyAtPiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIENyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmlu
ZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMs
IGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29u
c3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMsIFZl
Y3RvcjxXZWJDb3JlOjpWaWRlb1ByZXNldERhdGE+IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUg
c2l6ZSwgZG91YmxlIGZyYW1lUmF0ZSkgQXN5bmMKICAgICBTdGFydFByb2R1Y2luZ0RhdGEoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgU3RvcFByb2R1Y2lu
Z0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCi0gICAgRW5k
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQorICAgIFJlbW92ZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBBcHBs
eUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBz
dHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKICAgICBDbG9uZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVJRCkKLSAgICBSZXF1ZXN0VG9FbmQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCisgICAgRW5k
UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3Vy
Y2VJRCkKICAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc3YTU5OWI1MzQwOWNiOGQ1YmY2YjY5ZjM0YmJkMTkwMjE3OGZiZmQuLjA3ZDA3ZDUyODU3MzI3
NGM2N2I4MzE2ZTdjYjA0NjAxZWYxYjRjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE0Myw4ICs0MTQzLDYgQEAKIAkJNDE2ODRD
NEQyNDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTY4NEM0RTI0NjQzQzgx
MDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRDNEYyNDY0M0QzRjAwMUNFOEVEIC8qIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNjg0
QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2Q0Q3NDUyM0ZCMTc4QjAwNjYxRDk5IC8q
IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTUROU1JlZ2lzdGVySWRlbnRpZmllci5oOyBwYXRoID0gTmV0d29yay93ZWJydGMvTUROU1Jl
Z2lzdGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZFREMw
NTI2MDBGNkIwMDAwOTI2NzUgLyogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5jcHA7IHBhdGggPSBO
ZXR3b3JrL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTZFREMwNjI2MDBGNkIwMDAwOTI2NzUgLyogUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJUQ0RhdGFDaGFubmVsUmVtb3Rl
TWFuYWdlci5oOyBwYXRoID0gTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTgyLDggKzQxODAsOCBAQAog
CQk0MTg5N0VENDFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUQ1MUY0MTVEODUwMDE2RkE0MiAvKiBDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxODk3RUQ2MUY0MTVEODYwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MThGQ0JFNDI3MTA0OURD
MDBGOTZFQ0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MThGQ0JFMzI3MTA0OURCMDBGOTZFQ0EgLyogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8q
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y5QjFG
OTgxRDI2MDA5RjFBODMgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQTVGN0I5MjI2RUNGN0MwMDY3
MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQTVGN0JBMjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTczLDcgKzUxNzEsNiBAQAogCQk3QjUwRTk3RjI3NzFG
NkNFMDAzREFBQzQgLyogSVBDVGVzdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElQQ1Rlc3Rl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNTBFOTgwMjc3MUY2Q0YwMDNE
QUFDNCAvKiBJUENUZXN0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSVBDVGVzdGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNUEzREEwMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVW
aWRlb0ZyYW1lSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3QjVBM0RBMTI3QTdEQzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZVByb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVZpZGVvRnJhbWVQcm94eS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQTIyN0E3REMxQTAw
NkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0I1QTNEQTMyN0E3REM2QzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVWaWRlb0Zy
YW1lUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjVBM0RBNzI3QTdE
Q0JDMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4NzcsNyArNjg3NCw2IEBACiAJCQkJN0I1QTNEQTAy
N0E3REMxQTAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJ
N0I1QTNEQTMyN0E3REM2QzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAgKi8s
CiAJCQkJN0I1QTNEQTIyN0E3REMxQTAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVQcm94eS5o
ICovLAotCQkJCTdCNUEzREExMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUREMkE2M0EyNTVERTZEMTAwRkY3QjZGIC8qIFNvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTFERDJBNjM5MjU1REU2RDEwMEZGN0I2
RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMUREMkE2NkYyNTYyMkYx
MTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCkBA
IC0xMDQ1NiwxMiArMTA0NTIsMTAgQEAKIAkJCQk0MTY4NEM0RDI0NjQzQkZBMDAxQ0U4RUQgLyog
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFFNjdBOEQy
NUQyQ0ZEMDAwN0IwQTRDIC8qIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwICovLAogCQkJ
CTQxRTY3QThDMjVEMkNGRDAwMDdCMEE0QyAvKiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgg
Ki8sCi0JCQkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZS5jcHAgKi8sCi0JCQkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8qIFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5oICovLAogCQkJCTQxNjAwOEIyMjVEQTg5NUIwMEU4OTJGRSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwICovLAogCQkJCTQxNjAwOEIxMjVE
QTg2QjkwMEU4OTJGRSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCAqLywKLQkJ
CQk0MTY4NEM1MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAgKi8sCi0JCQkJNDE2ODRDNTEyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaCAqLywKKwkJCQk0MThGQ0JFMzI3MTA0OURCMDBGOTZFQ0EgLyogUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8sCisJCQkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8q
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCAqLywKIAkJCQlDRDQ5MUIwNTFFNzBEMDVGMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovLAogCQkJCUNENDkxQjA2MUU3
MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovLAogCQkJCUNENDkx
QjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5p
biAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IGIwOThlZmJlN2MzM2MzZGI5ZWYw
NzZlMTk2ZWQ0YThmOTdkZmYyZTcuLjM0YzQ2NjQxOTY1MjZlODlhMTk3NjM1M2NmNDU2NjYxOTNh
Y2U2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMTAyLDIwICsxMDIsNyBAQCB2
b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U+JiYgc291cgogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2Ut
PmlkZW50aWZpZXIoKTsKIAogICAgICAgICBBU1NFUlQoIW1fdmlkZW9Tb3VyY2VzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKLSAgICAgICAgbV92aWRlb1NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1h
a2VVbmlxdWU8UmVtb3RlVmlkZW8+KFdURk1vdmUoc291cmNlKSkpOwotICAgIH0pOwotfQotCi12
b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZT4mJiBzb3VyY2UpCi17Ci0gICAgQVNTRVJUKFdURjo6aXNNYWluUnVu
TG9vcCgpKTsKLSAgICBzZXRDb25uZWN0aW9uKHNvdXJjZS0+Y29ubmVjdGlvbigpKTsKLQotICAg
IG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
c291cmNlID0gV1RGTW92ZShzb3VyY2UpXSgpIG11dGFibGUgewotICAgICAgICBhdXRvIGlkZW50
aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKLQotICAgICAgICBBU1NFUlQoIW1fdmlkZW9T
b3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICAgICAgbV92aWRlb1NvdXJjZXMuYWRk
KGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVtb3RlVmlkZW8+KFdURk1vdmUoc291cmNlKSkpOwor
ICAgICAgICBtX3ZpZGVvU291cmNlcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2UpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTY5LDcgKzE1Niw3IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXI6OnZpZGVvRnJhbWVBdmFpbGFibGUoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
CiAgICAgfSgpOwogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3ZpZGVvU291cmNlcy5maW5kKGlkZW50
aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3ZpZGVvU291cmNlcy5lbmQoKSkgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJVbmFibGUgdG8gZmluZCBzb3VyY2UgJWxs
dSBmb3IgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUiLCBpZGVudGlmaWVyLnRvVUludDY0KCkp
OworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJVbmFibGUgdG8gZmluZCBzb3Vy
Y2UgJWxsdSBmb3IgdmlkZW9GcmFtZUF2YWlsYWJsZSIsIGlkZW50aWZpZXIudG9VSW50NjQoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byB2aWRlb0ZyYW1lU2l6ZSA9IHZpZGVv
RnJhbWUtPnNpemUoKTsKQEAgLTE4MSw3ICsxNjgsNyBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyOjp2aWRlb0ZyYW1lQXZhaWxhYmxlQ1YoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aQogICAgIEFTU0VSVCghV1RGOjppc01haW5SdW5Mb29wKCkpOwogICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX3ZpZGVvU291cmNlcy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBt
X3ZpZGVvU291cmNlcy5lbmQoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMs
ICJVbmFibGUgdG8gZmluZCBzb3VyY2UgJWxsdSBmb3IgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFi
bGUiLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJVbmFibGUgdG8gZmluZCBzb3VyY2UgJWxsdSBmb3IgdmlkZW9GcmFtZUF2YWlsYWJs
ZUNWIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMjU1LDIwICsyNDIsNiBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1v
dGVBdWRpbzo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbgogICAgIHN0YXJ0VGhy
ZWFkKCk7CiB9CiAKLVJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVWaWRlbzo6UmVt
b3RlVmlkZW8oU291cmNlJiYgc291cmNlKQotICAgIDogbV9zb3VyY2UoV1RGTW92ZShzb3VyY2Up
KQotewotfQotCi12b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVWaWRlbzo6
dmlkZW9GcmFtZUF2YWlsYWJsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBJbnRTaXplIHNp
emUsIFZpZGVvU2FtcGxlTWV0YWRhdGEgbWV0YWRhdGEpCi17Ci0gICAgc3dpdGNoT24obV9zb3Vy
Y2UsIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgewotICAgICAg
ICBzb3VyY2UtPnZpZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZS5nZXQoKSwgc2l6ZSwgbWV0YWRh
dGEpOwotICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNl
KSB7Ci0gICAgICAgIHNvdXJjZS0+cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlLmdl
dCgpLCBtZXRhZGF0YSk7Ci0gICAgfSk7Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCmluZGV4IDY5NDVjYWQ5ZmYxMWFiODgyY2NjN2Q3NjQxMGE3NWRlYjc4MmE0NTMuLmEy
NGU5Y2U3MmU1MjdkYjBhMTZjZTVjNTAzMGVkYTI1NDc3NmIxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIgogI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgpAQCAt
NTksNyArNTgsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZT4mJik7CiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U+JiYpOwotICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkVXBkYXRlU291cmNlQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKQEAgLTEwNSwyNCArMTAzLDEyIEBAIHByaXZhdGU6
CiAgICAgICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fc2hvdWxkU3RvcFRocmVhZCB7IGZhbHNlIH07
CiAgICAgfTsKIAotICAgIGNsYXNzIFJlbW90ZVZpZGVvIHsKLSAgICAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICB1c2luZyBTb3VyY2UgPSBzdGQ6OnZh
cmlhbnQ8UmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+LCBSZWY8UmVtb3RlUmVhbHRpbWVE
aXNwbGF5U291cmNlPj47Ci0gICAgICAgIGV4cGxpY2l0IFJlbW90ZVZpZGVvKFNvdXJjZSYmKTsK
LQotICAgICAgICB2b2lkIHZpZGVvRnJhbWVBdmFpbGFibGUoUmVmPFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhKTsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIFNvdXJjZSBtX3NvdXJjZTsKLSAgICB9OwotCiAgICAg
Ym9vbCBtX2lzUmVnaXN0ZXJlZFRvUGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24geyBmYWxzZSB9Owog
ICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogICAgIC8vIGJhY2tncm91bmQgdGhyZWFkIG1lbWJlcgogICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVBdWRpbz4+IG1fYXVkaW9Tb3VyY2VzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlbz4+
IG1fdmlkZW9Tb3VyY2VzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPj4gbV92aWRlb1NvdXJj
ZXM7CiAKICAgICBMb2NrIG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eUxvY2s7CiAgICAgUmVm
UHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk+IG1fdmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eUxv
Y2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCBlOTEwYjYxNjA1ODkw
NmE5MTlkZTUwOGI1OWI3YTkyNTE4MmQwMGUxLi42MWYxZmEzM2IxMzY3MTMzYTVkMTEwZjkzYjIx
M2E4NmFlZDk4NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNzAs
MTEgKzcwLDI2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdG9wUHJv
ZHVjaW5nRGF0YSgpCiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAw
KTsKIH0KIAordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmVuZFByb2R1Y2lu
Z0RhdGEoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6RW5kUHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsK
K30KKwogdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNyZWF0ZVJlbW90ZU1l
ZGlhU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wg
c2hvdWxkVXNlUmVtb3RlRnJhbWUpCiB7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2
aWNlLCBkZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFpbnRzLCBzaG91bGRVc2VSZW1vdGVGcmFt
ZSwgcGFnZUlkZW50aWZpZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKK1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNsb25l
KCkKK3sKKyAgICByZXR1cm4geyBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJh
dGUoKSwgbV9kZXZpY2UsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgJm1fY29uc3RyYWlu
dHMgfTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNyZWF0ZVJl
bW90ZUNsb25lU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNs
b25lSWRlbnRpZmllcikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9pZGVudGlmaWVyLCBjbG9uZUlkZW50
aWZpZXIgfSwgMCk7Cit9CisKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojph
cHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBSZWFs
dGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTEwNSw3ICsxMjAsNyBAQCB2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6ZW5kKCkKIHsKICAgICBBU1NFUlQoIW1faXNFbmRl
ZCk7CiAgICAgbV9pc0VuZGVkID0gdHJ1ZTsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAw
KTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlJlbW92ZVNvdXJjZSB7IG1faWRlbnRpZmllciB9LCAwKTsKIH0KIAogdm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OndoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgK
aW5kZXggYjExMGQxZTdkNjVmYWMyYWY1NDQ4MjlmNzJlNGZlY2IyNWU0ODM2Yi4uYzQ0YzRiZTU4
NzdhYzJhMTI1ZGM4NWI1MDJjZDdiM2U5YzEyOWNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuaApAQCAtNDcsMTQgKzQ3LDIxIEBAIHB1YmxpYzoKICAgICBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlUHJveHkoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKTsKICAgICB+UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5KCk7CiAKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5JiYpID0gZGVmYXVsdDsKKyAgICBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkmIG9wZXJhdG9yPShSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkmJikgPSBkZWZhdWx0OworCiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKCk7CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNl
LnR5cGUoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGV2aWNlOyB9CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzOyB9CiAKICAg
ICB1c2luZyBDcmVhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgU3Ry
aW5nJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYsIFZlY3RvcjxXZWJDb3JlOjpWaWRlb1By
ZXNldERhdGE+JiYsIFdlYkNvcmU6OkludFNpemUsIGRvdWJsZSk+OwogICAgIHZvaWQgY3JlYXRl
UmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CiAK
KyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgY2xvbmUoKTsKKyAgICB2b2lkIGNy
ZWF0ZVJlbW90ZUNsb25lU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyKTsKKwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CkBAIC02Myw2ICs3MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGVuZCgpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCk7CiAgICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpOwogICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJik7CiAK
ICAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGVkZDVkNDE2MTMzYWM3MjJkYTBiOThlMzQ2MGI5
NWU0MWMxYzNhNzUuLjg4OTMwYzJlY2NhODY2ZjAxNTZlMmNkZGQ2MTdlYjJhNWE0ODMzMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNTggKzI4LDU0IEBACiAKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25u
ZWN0aW9uLmgiCi0jaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFM
OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdl
ciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50
aWZpZXIpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2
aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uo
c291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90
ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCi0gICAgOiBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQorUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFs
dGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcg
eyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVy
LCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiB7CiB9CiAKK1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5JiYg
cHJveHksIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdl
ciwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBwcm94eS5kZXZp
Y2UoKS5sYWJlbCgpIH0sIFN0cmluZyB7IHByb3h5LmRldmljZSgpLnBlcnNpc3RlbnRJZCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKKyAgICAsIG1fcHJveHkoV1RGTW92
ZShwcm94eSkpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKK3sKK30KKwogdm9pZCBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9w
cm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVu
dGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNj
ZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFi
aWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11dGFi
bGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2Fs
dCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3Ms
IGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgewogICAgICAgICBpZiAo
IXN1Y2NlZWRlZCkgewogICAgICAgICAgICAgbV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JN
ZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBzZXRT
aXplKHNpemUpOwotICAgICAgICBzZXRGcmFtZVJhdGUoZnJhbWVSYXRlKTsKLQogICAgICAgICBz
ZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgICAgIHNldENhcGFiaWxpdGllcyhX
VEZNb3ZlKGNhcGFiaWxpdGllcykpOwotICAgICAgICBzZXRTdXBwb3J0ZWRQcmVzZXRzKFdURk1v
dmUocHJlc2V0cykpOwotICAgICAgICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwo
KS5zdHJpbmcoKSB9KTsKIAogICAgICAgICBtX3Byb3h5LnNldEFzUmVhZHkoKTsKICAgICAgICAg
aWYgKG1fcHJveHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpKQogICAgICAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGll
bnQoKnRoaXMpOwotICAgIH0sIG1fbWFuYWdlci5zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJh
bWVzKCkpOworICAgIH0sIG1fcHJveHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpICYmIG1f
bWFuYWdlci5zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKCkpOwogfQogCiBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjp+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpCkBAIC05MCw2
ICs4NiwxMSBAQCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjp+UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZSgpCiAgICAgfQogfQogCit2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmVu
ZFByb2R1Y2luZ0RhdGEoKQoreworICAgIG1fcHJveHkuZW5kUHJvZHVjaW5nRGF0YSgpOworfQor
CiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQogewogICAgIG1fY2FwYWJp
bGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwpAQCAtMTAyLDM3ICsxMDMsMTYgQEAgdm9p
ZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmJiBzZXR0aW4KICAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVy
cyhjaGFuZ2VkKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBJbnRTaXplIHNhbXBsZVNpemUsIFZp
ZGVvU2FtcGxlTWV0YWRhdGEgbWV0YWRhdGEpCi17Ci0gICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBl
OjpWaWRlbyk7Ci0KLSAgICBzZXRJbnRyaW5zaWNTaXplKHNhbXBsZVNpemUpOwotCi0gICAgaWYg
KG1fc2FtcGxlUm90YXRpb24gIT0gc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgewotICAgICAgICBt
X3NhbXBsZVJvdGF0aW9uID0gc2FtcGxlLnZpZGVvUm90YXRpb24oKTsKLQotICAgICAgICBhdXRv
IHNpemUgPSB0aGlzLT5zaXplKCk7Ci0gICAgICAgIGlmIChtX3NhbXBsZVJvdGF0aW9uID09IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0IHx8IG1fc2FtcGxlUm90YXRpb24gPT0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0KSB7Ci0gICAgICAgICAgICBzaXplID0gc2l6
ZS50cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICAgICAgbV9zZXR0aW5ncy5zZXRXaWR0aChzaXpl
LndpZHRoKCkpOwotICAgICAgICAgICAgbV9zZXR0aW5ncy5zZXRIZWlnaHQoc2l6ZS5oZWlnaHQo
KSk7Ci0gICAgICAgIH0KLSAgICAgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKLSAg
ICAgICAgICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKHsgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzOjpGbGFnOjpXaWR0aCwgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
OjpGbGFnOjpIZWlnaHQgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICBkaXNwYXRjaE1lZGlh
U2FtcGxlVG9PYnNlcnZlcnMoc2FtcGxlLCBtZXRhZGF0YSk7Ci19Ci0KIGJvb2wgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5
Um90YXRpb24pCiB7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgaWRlbnRpZmllcigp
LCBzaG91bGRBcHBseVJvdGF0aW9uIH0sIDApOwogICAgIHJldHVybiB0cnVlOwogfQogCi1jb25z
dCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpjYXBhYmlsaXRpZXMoKQordm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjphcHBs
eUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYmIHNldHRpbmdzKQogewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICBzZXRTZXR0
aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzU3Vj
Y2VlZGVkKCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6aGFzRW5kZWQo
KQpAQCAtMTQ1LDQ2ICsxMjUsMzcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpo
YXNFbmRlZCgpCiAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVt
b3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKQorUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNsb25lKCkKIHsKLSAgICBpZiAoZGlkRmFp
bCkKLSAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAgIGVsc2UKLSAgICAgICAgZW5kKCk7Ci0g
ICAgaGFzRW5kZWQoKTsKLX0KKyAgICBpZiAoaXNFbmRlZCgpIHx8IG1fcHJveHkuaXNFbmRlZCgp
KQorICAgICAgICByZXR1cm4gKnRoaXM7CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Z2VuZXJhdGVQcmVzZXRzKCkKLXsKLSAgICBBU1NFUlQobV9wcm94eS5pc1JlYWR5KCkpOwot
fQorICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlKG1fcHJveHkuY2xvbmUoKSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX21hbmFnZXIsIHBhZ2VJ
ZGVudGlmaWVyKCkpKTsKIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRGcmFt
ZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSBmcmFtZVJhdGUsIFJlZlB0cjxWaWRlb1ByZXNldD4gcHJl
c2V0KQotewotICAgIE1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHM7CisgICAgc291cmNlLT5z
ZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgeyBzZXR0aW5ncygpIH0pOwor
ICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMgeyBjYXBhYmlsaXRpZXMoKSB9KTsKIAotICAgIGNvbnN0cmFpbnRzLmlzVmFsaWQgPSB0cnVl
OwotICAgIERvdWJsZUNvbnN0cmFpbnQgZnJhbWVSYXRlQ29uc3RyYWludCgiZnJhbWVSYXRlIl9z
LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUpOwotICAgIGZyYW1lUmF0ZUNvbnN0cmFp
bnQuc2V0SWRlYWwoZnJhbWVSYXRlKTsKLSAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJh
aW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlLCBmcmFtZVJhdGVDb25zdHJh
aW50KTsKKyAgICBtX21hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOworICAgIG1f
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29w
eVJlZigpKTsKIAotICAgIGlmIChwcmVzZXQpIHsKLSAgICAgICAgSW50Q29uc3RyYWludCB3aWR0
aENvbnN0cmFpbnQoIndpZHRoIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCk7Ci0gICAg
ICAgIHdpZHRoQ29uc3RyYWludC5zZXRJZGVhbChwcmVzZXQtPnNpemUud2lkdGgoKSk7Ci0gICAg
ICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFpbnRU
eXBlOjpXaWR0aCwgd2lkdGhDb25zdHJhaW50KTsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZUNs
b25lU291cmNlKHNvdXJjZS0+aWRlbnRpZmllcigpKTsKIAotICAgICAgICBJbnRDb25zdHJhaW50
IGhlaWdodENvbnN0cmFpbnQoImhlaWdodCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0
KTsKLSAgICAgICAgaGVpZ2h0Q29uc3RyYWludC5zZXRJZGVhbChwcmVzZXQtPnNpemUuaGVpZ2h0
KCkpOwotICAgICAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5zZXQoTWVkaWFD
b25zdHJhaW50VHlwZTo6SGVpZ2h0LCBoZWlnaHRDb25zdHJhaW50KTsKLSAgICB9CisgICAgcmV0
dXJuIHNvdXJjZTsKK30KIAotICAgIG1fc2l6ZUNvbnN0cmFpbnRzID0gY29uc3RyYWludHM7Ci0g
ICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLCBbXShhdXRvKSB7IH0pOwor
dm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlU3RvcHBlZChib29sIGRpZEZh
aWwpCit7CisgICAgaWYgKGRpZEZhaWwpCisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICBl
bHNlCisgICAgICAgIGVuZCgpOworICAgIGhhc0VuZGVkKCk7CiB9CiAKLWJvb2wgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6cHJlZmVyc1ByZXNldChWaWRlb1ByZXNldCYpCit2b2lkIFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJh
aW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY2FsbGJhY2spCiB7
Ci0gICAgcmV0dXJuIHRydWU7CisgICAgbV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOworICAg
IG1fcHJveHkuYXBwbHlDb25zdHJhaW50cyhjb25zdHJhaW50cywgV1RGTW92ZShjYWxsYmFjaykp
OwogfQogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQpAQCAtMTk5LDggKzE3MCw4IEBAIHZvaWQg
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShH
UFVQcm9jZXNzQ29ubmVjdGlvCiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKIAogICAg
IG1fcHJveHkuZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcygiR1BVIFByb2Nlc3MgdGVybWlu
YXRlZCJfcyk7Ci0gICAgaWYgKG1fc2l6ZUNvbnN0cmFpbnRzKQotICAgICAgICBtX3Byb3h5LmFw
cGx5Q29uc3RyYWludHMoKm1fc2l6ZUNvbnN0cmFpbnRzLCBbXShhdXRvKSB7IH0pOworICAgIGlm
IChtX2NvbnN0cmFpbnRzKQorICAgICAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHMoKm1fY29u
c3RyYWludHMsIFtdKGF1dG8pIHsgfSk7CiAKICAgICBpZiAoaXNQcm9kdWNpbmdEYXRhKCkpCiAg
ICAgICAgIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggOWVm
MGJjNzJiNTM5YzBmOTY5OWNhMWFhMzMyNjNlMjU4MjY4ZTg5My4uYTYzZjVmY2M2M2I1NWIyZGM2
OTZhMTZmNWJmODY1ODVkYTI3YTA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDMyICszMCwy
NSBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2
aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaD4KLSNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQorI2luY2x1ZGUgPFdl
YkNvcmUvVmlkZW9GcmFtZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247Ci1jbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogc3RydWN0
IE1lZGlhQ29uc3RyYWludHM7Ci1jbGFzcyBNZWRpYVNhbXBsZTsKIH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOwogCi1jbGFzcyBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlCitjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAgICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAogI2VuZGlmCiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02NSwzMSArNTgsMzEgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjYXB0dXJlU3RvcHBlZChib29sIGRpZEZhaWwpOwogCi0gICAgdm9p
ZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYsIFdlYkNvcmU6Oklu
dFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEpOworICAgIHZvaWQgdmlkZW9GcmFt
ZUF2YWlsYWJsZShXZWJDb3JlOjpWaWRlb0ZyYW1lJiBmcmFtZSwgV2ViQ29yZTo6SW50U2l6ZSwg
V2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0YSkgeyB2aWRlb1NhbXBsZUF2YWls
YWJsZShmcmFtZSwgbWV0YWRhdGEpOyB9CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9v
bCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOworICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJp
bmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1v
dmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7IH0KKwogcHJpdmF0
ZToKLSAgICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkmJiwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOwogCi0gICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIC8vIFJlYWx0
aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9w
cm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KSBmaW5hbCB7IG1fcHJveHkuc3RvcFByb2R1Y2luZ0RhdGEoKTsgfQogICAgIGJvb2wgaXNDYXB0
dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgYmVnaW5D
b25maWd1cmF0aW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkg
ZmluYWwgeyB9Ci0gICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgLyogc2hvdWxk
QXBwbHlSb3RhdGlvbiAqLykgZmluYWw7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBm
aW5hbDsKICAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CiAgICAgY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0
dGluZ3M7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2Nh
cGFiaWxpdGllczsgfQogICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nKT4mJiBjYWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNh
bGxiYWNrKSk7IH0KICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmlj
ZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQotCi0g
ICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKLSAgICB2b2lkIGdlbmVy
YXRlUHJlc2V0cygpIGZpbmFsOwotICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uIHNhbXBsZVJvdGF0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zYW1wbGVSb3RhdGlv
bjsgfQotICAgIHZvaWQgc2V0RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxXZWJD
b3JlOjpWaWRlb1ByZXNldD4pIGZpbmFsOwotICAgIGJvb2wgcHJlZmVyc1ByZXNldChXZWJDb3Jl
OjpWaWRlb1ByZXNldCYpIGZpbmFsOwotICAgIGJvb2wgaW50ZXJydXB0ZWQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3Byb3h5LmludGVycnVwdGVkKCk7IH0KKyAgICBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY2xvbmUoKSBmaW5hbDsKKyAgICB2b2lkIGVuZFByb2R1Y2luZ0RhdGEoKSBmaW5h
bDsKKyAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgZmluYWw7CiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudApA
QCAtOTcsMTcgKzkwLDEzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQgY3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKTsKLSAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdl
KTsKLSAgICB2b2lkIHNldEFzUmVhZHkoKTsKICAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOwogCiAgICAgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5IG1fcHJveHk7CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImIG1fbWFuYWdlcjsKLQotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cz4gbV9zaXplQ29uc3RyYWludHM7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7Ci0gICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7IFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiBpbmxpbmUgdm9pZCBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGUxNDQwMWJiNzA3ZTY1N2YxNWMxMTlmZWIzY2Zj
ZmUzZDBlMzU4ZTYuLjk4ZmEzN2Q4NTU3NWEyYzhiNDMyYzVmYzUyYmZjNDM1YzhhMjVmZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oIgogI2luY2x1ZGUgIkdQ
VVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZS5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIgogI2luY2x1ZGUg
IlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNz
YWdlcy5oIgpAQCAtMTExLDEzICsxMTAsNiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYgc291cmNlKQogICAg
IG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgU291cmNlKFdURk1vdmUoc291cmNlKSkpOwogfQog
Ci12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZT4mJiBzb3VyY2UpCi17Ci0gICAgYXV0byBpZGVudGlmaWVyID0gc291
cmNlLT5pZGVudGlmaWVyKCk7Ci0gICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRp
ZmllcikpOwotICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgU291cmNlKFdURk1vdmUoc291
cmNlKSkpOwotfQotCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdmVTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQo
bV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKQEAgLTEzNCw4ICsxMjYsNiBAQCB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVkKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aQogICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKGRpZEZh
aWwpOwogICAgIH0sIFtkaWRGYWlsXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNv
dXJjZSkgewogICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKGRpZEZhaWwpOwotICAgIH0s
IFtkaWRGYWlsXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7Ci0g
ICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoZGlkRmFpbCk7CiAgICAgfSwgW10oc3RkOjpu
dWxscHRyX3QpIHsgfSk7CiB9CiAKQEAgLTE0OSw4ICsxMzksNiBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaQogICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJy
dXB0ZWQpOwogICAgIH0sIFttdXRlZCwgaW50ZXJydXB0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2Vk
KG11dGVkLCBpbnRlcnJ1cHRlZCk7Ci0gICAgfSwgW211dGVkLCBpbnRlcnJ1cHRlZF0oUmVmPFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPnNv
dXJjZU11dGVkQ2hhbmdlZChtdXRlZCwgaW50ZXJydXB0ZWQpOwogICAgIH0sIFtdKHN0ZDo6bnVs
bHB0cl90KSB7IH0pOwogfQogCkBAIC0xNjQsOCArMTUyLDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWUKICAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAg
ICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CiAgICAg
ICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwotICAgIH0sIFsmXShS
ZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJj
ZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0
cl90KSB7IH0pOwogfQogCkBAIC0xNzgsNyArMTY0LDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChSZWFsdGltZU1lZGlhU291cmNlSWRl
bnQKICAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoV1RGTW92ZShzZXR0aW5ncykpOwogICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgewotICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVE
aXNwbGF5U291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50
c1N1Y2NlZWRlZChXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgfSwgW10oc3RkOjpudWxscHRyX3Qp
IHsgfSk7CiB9CkBAIC0xOTIsNyArMTc3LDYgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKICAg
ICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWlsZWQo
V1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSwgWyZd
KFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7Ci0gICAgfSwgWyZdKFJl
ZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNl
LT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1v
dmUobWVzc2FnZSkpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQpAQCAtMjMy
LDggKzIxNiw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAgICAgaWYgKG1fc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykKICAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS52aWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5KCkpOwogCi0gICAgYm9vbCBzaG91bGRVc2VJT1N1cmZhY2UgPSAhbV9tYW5hZ2VyLm1fc2hv
dWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lczsKLSAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBt
X21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpLCBz
aG91bGRVc2VJT1N1cmZhY2UpKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFn
ZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpOwogfQogCiBD
YXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rv
cnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKQEAgLTI0NSw3ICsyMjgsNyBAQCBDYXB0
dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6
OmNyZWF0ZURpc3BsYXlDYXB0dQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
CiAgICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAotICAgIHJl
dHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFp
bnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtX21h
bmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpOwogfQog
CiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6c2V0U2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCBiMDE0
ODQxYTJiZjFiMDg0YTM5Yjc5NzMwZTZmMjdmNmZiOTRmMTM2Li4yOTM0YzVmZGZjZWU5NWQ1ZGEw
MDk5ZDQzZTM5NGIxMjQyODE1NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNDMsNyArNDMsNiBA
QCBjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTsKLWNsYXNzIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZTsKIGNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U7CiBjbGFzcyBXZWJQ
cm9jZXNzOwogCkBAIC02MCw3ICs1OSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkU291cmNl
KFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsKICAgICB2b2lkIGFkZFNvdXJjZShS
ZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7Ci0gICAgdm9pZCBhZGRTb3VyY2UoUmVm
PFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mJik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXImIHJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkgeyByZXR1cm4g
bV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjsgfQpAQCAtMTMxLDcgKzEyOSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCi0gICAgdXNpbmcg
U291cmNlID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8UmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZT4sIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiwgUmVmPFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZT4+OworICAgIHVzaW5nIFNvdXJjZSA9IHN0ZDo6dmFyaWFudDxz
dGQ6Om51bGxwdHJfdCwgUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+LCBSZWY8UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZT4+OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIFNvdXJjZT4gbV9zb3VyY2VzOwogICAgIFdlYlByb2Nlc3MmIG1f
cHJvY2VzczsKICAgICBOb09wQ2FwdHVyZURldmljZU1hbmFnZXIgbV9ub09wQ2FwdHVyZURldmlj
ZU1hbmFnZXI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZGYzMjg5MGFiZmRkN2U2MDdmY2RhYTY0YmU3NGE3YjQ1ZmFiNDIz
Yy4uOTUwZjljMjc5MmNkZDU5MDVhMjFhNDY2OTYzMjNjODNmZDE5MTk5OCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIyLTAzLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBEbyBjYXB0dXJlIHZpZGVvIGZyYW1lIGRvd25zYW1wbGluZyBpbiBHUFVQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcz
MTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5OTU5Nzc3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNw
bGF5TWVkaWEtc2l6ZS5odG1sOgorICAgICAgICBSZW1vdmUgcG90ZW50aWFsIHJhY2UgY29uZGl0
aW9uIGJ5IHJlc3RhcnRpbmcgcGxheWluZyB0aGUgc3RyZWFtIHRvIGNvbXB1dGUgdGhlIHNpemUu
CisKIDIwMjItMDMtMDkgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwKaW5kZXggZTc4MjY5
MmQ3MmE0MWU5ZTc2Zjg0ZTQ5N2MwODM5NWZkNjhkMDIwYy4uY2Q3MDQ2MDczYjNhM2YwZThjMmI5
NmVjOTljZTI1NWRjZjY3YmI2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbApAQCAtMjUsNiArMjUsMTAgQEAgcHJv
bWlzZV90ZXN0KGFzeW5jICgpID0+IHsKIAogICAgIGFzc2VydF9lcXVhbHModmlkZW8yLnZpZGVv
V2lkdGgsIDMyMCk7CiAKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gbnVsbDsKKyAgICB2aWRlbzEu
c3JjT2JqZWN0ID0gc3RyZWFtMTsKKyAgICBhd2FpdCB2aWRlbzEucGxheSgpOworCiAgICAgdGVz
dCgoKSA9PiB7CiAgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8xLnZpZGVvV2lkdGgsIDY0MCk7
CiAgICAgfSwgIm9yaWdpbmFsIHNvdXJjZSBzaG91bGQgc3RheSBhdCBhIHNtYWxsIHNpemUiKTsK
QEAgLTQ0LDYgKzQ4LDEwIEBAIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAKICAgICBhc3Nl
cnRfZXF1YWxzKHZpZGVvMi52aWRlb1dpZHRoLCAxMjgwKTsKIAorICAgIHZpZGVvMS5zcmNPYmpl
Y3QgPSBudWxsOworICAgIHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIGF3YWl0IHZp
ZGVvMS5wbGF5KCk7CisKICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAgYXNzZXJ0X2VxdWFscyh2
aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKICAgICB9LCAib3JpZ2luYWwgc291cmNlIHNob3VsZCBz
dGF5IGF0IGEgYmlnIHNpemUiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454466</attachid>
            <date>2022-03-11 02:57:57 -0800</date>
            <delta_ts>2022-03-11 07:34:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237316-20220311115755.patch</filename>
            <type>text/plain</type>
            <size>68019</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBmYTNiN2RmNDAwNWFm
OTdiNmE1YWYxZGY2OGRlOThiODlhOTE0OC4uMGQ4ODY5YTUzYzNlMjUxNjQ0Yjk1ZjgxODIyMDUw
Njc5NzY0MzgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAzLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBEbyBjYXB0dXJlIHZpZGVv
IGZyYW1lIGRvd25zYW1wbGluZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg5OTU5Nzc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAg
ICBUbyBwcmV2ZW50IHNvbWUgZmxha2luZXNzZXMsIHdlIG5vdyBjb21wdXRlIHRoZSB2aWRlbyBm
cmFtZSBzaXplIGZyb20gTWVkaWFTYW1wbGUgZ2l2ZW4gdG8gcnZmYyBtZXRhZGF0YS4KKyAgICAg
ICAgV2Ugc3RvcCBtYWtpbmcgcmVxdWVzdFRvRW5kIGFzIHZpcnR1YWwgYnkgaW50cm9kdWNpbmcg
YSB2aXJ0dWFsIGVuZFByb2R1Y2luZ0RhdGEgbWV0aG9kLgorICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlOjplbmQgY2FsbHMgdGhlIG5ldyBlbmRQcm9kdWNpbmdEYXRhIHZpcnR1YWwgbWV0aG9k
LCB3aGljaCBpcyBzdG9wIGJ5IGRlZmF1bHQuCisgICAgICAgIFJlYWx0aW1lVmlkZW9Tb3VyY2U6
OmVuZFByb2R1Y2luZ0RhdGEgaXMgaW1wbGVtZW50ZWQgYnkgY2FsbGluZyByZXF1ZXN0VG9FbmQg
b24gdGhlIHVuZGVybHlpbmcgc291cmNlLgorICAgICAgICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBl
bmRpbmcgYSBzb3VyY2Ugd2lsbCBub3QgZW5kIGEgcmVsYXRlZCBjbG9uZWQgc291cmNlLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwogMjAyMi0wMy0xMSAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbd2ViLWFuaW1hdGlvbnNd
IHJlZmFjdG9yIGRpc2NyZXRlIFNWRyBwcm9wZXJ0aWVzIHRvIHVzZSBhIGRlZGljYXRlZCBhbmlt
YXRpb24gd3JhcHBlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyOTljZTVhMDQwZDg5ODIwMmFjZjU2Y2MxYzA2MjQ2
NDJmNDkyNDAyLi4wZGEwYTM0MjRmODVlZTA5NDA1MjE1MTdmZjhmOTFhYTdhNmM0ODA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIyLTAzLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBEbyBjYXB0dXJlIHZpZGVvIGZyYW1lIGRvd25zYW1wbGlu
ZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzczMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5OTU5Nzc3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbnN0ZWFkIG9mIGNsb25p
bmcgd2l0aGluIFdlYlByb2Nlc3MsIHdlIGtub3cgY2xvbmUgaW4gR1BVUHJvY2VzcyBmb3IgY2Ft
ZXJhIHRyYWNrcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCB1c2luZyBJT1N1cmZhY2Vz
IHdoZW4gc2V2ZXJhbCB0cmFja3MgYXJlIHVzaW5nIHRoZSBzYW1lIGRldmljZSB3aXRoIGRpZmZl
cmVudCByZXNvbHV0aW9ucy4KKyAgICAgICAgU2luY2UgZGlzcGxheSB0cmFja3MgYXJlIGFscmVh
ZHkgY2xvbmVkIHJlbW90ZWx5LCB3ZSBjYW4gbWVyZ2UgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlIGFuZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLgorCisgICAgICAgIFdlIG5vIGxvbmdl
ciBuZWVkIHRvIHN0b3AgdGhlIHNvdXJjZSBpbiB+U291cmNlUHJveHkgZ2l2ZW4gd2UgYXJlIHJl
bW92aW5nIG91cnNlbHZlcyBmcm9tIG9ic2VydmluZyB0aGUgc291cmNlLgorICAgICAgICBXZSBy
ZW5hbWUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBlbmQgdG8gcmVtb3ZlICBhbmQgcmVx
dWVzdFRvRW5kIHRvIGVuZFByb2R1Y2luZ0RhdGEuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAy
Mi0wMy0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gQWRkIGEgdW5pdCB0ZXN0cyB0byBjaGVjayB0aGUgcmVtb3RlIGluc3BlY3Rv
ciBIVFRQIHNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA2YjI0ODZiMzg0OTgz
NTM0YzU2Mjk4YWZjNjVmZDBkNTQzMTQ3MzAyLi5kZDY4MGE4NmE5ZDU5MTQzMzdhMzY1MTA3YTYx
NDA1Y2ZjZWY2NzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMjg3LDYgKzI4Nyw3
IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9zYW1wbGVDb3VudCB7IDAgfTsKICAgICB1aW50
NjRfdCBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCB7IDAgfTsKICAgICBTZWNv
bmRzIG1fcHJlc2VudGF0aW9uVGltZSB7IDAgfTsKKyAgICBGbG9hdFNpemUgbV92aWRlb0ZyYW1l
U2l6ZTsKICAgICBWaWRlb1NhbXBsZU1ldGFkYXRhIG1fc2FtcGxlTWV0YWRhdGE7CiB9OwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDI1ZmFkOTA5MTBhYjVlNGIzZWVmMDlk
YjQ3ZTY5ZjZlMWI4MDJlMjEuLmExMjI1M2ZmNzAwM2VlNTZiMzRkMzBjMDFmZWY1ODUzNmVlNjlh
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMyNCw2ICszMjQsOSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJvY2Vzc05ld1ZpZGVvU2Ft
cGxlKE1lZGlhU2FtcGxlJiBzYQogICAgIH0KIAogICAgIG1fcHJlc2VudGF0aW9uVGltZSA9IHBy
ZXNlbnRhdGlvblRpbWU7CisgICAgbV92aWRlb0ZyYW1lU2l6ZSA9IHNhbXBsZS5wcmVzZW50YXRp
b25TaXplKCk7CisgICAgaWYgKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgPT0gTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246OkxlZnQgfHwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSA9PSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCisgICAgICAgIG1fdmlkZW9GcmFtZVNpemUgPSB7
IG1fdmlkZW9GcmFtZVNpemUuaGVpZ2h0KCksIG1fdmlkZW9GcmFtZVNpemUud2lkdGgoKSB9Owog
ICAgIG1fc2FtcGxlTWV0YWRhdGEgPSBtZXRhZGF0YTsKICAgICArK21fc2FtcGxlQ291bnQ7CiAK
QEAgLTExMzEsOCArMTEzNCw4IEBAIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnZpZGVvRnJhCiAgICAgbV9sYXN0
VmlkZW9GcmFtZU1ldGFkYXRhU2FtcGxlQ291bnQgPSBtX3NhbXBsZUNvdW50OwogCiAgICAgVmlk
ZW9GcmFtZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgIG1ldGFkYXRhLndpZHRoID0gbV9pbnRyaW5z
aWNTaXplLndpZHRoKCk7Ci0gICAgbWV0YWRhdGEuaGVpZ2h0ID0gbV9pbnRyaW5zaWNTaXplLmhl
aWdodCgpOworICAgIG1ldGFkYXRhLndpZHRoID0gbV92aWRlb0ZyYW1lU2l6ZS53aWR0aCgpOwor
ICAgIG1ldGFkYXRhLmhlaWdodCA9IG1fdmlkZW9GcmFtZVNpemUuaGVpZ2h0KCk7CiAgICAgbWV0
YWRhdGEucHJlc2VudGVkRnJhbWVzID0gbV9zYW1wbGVDb3VudDsKICAgICBtZXRhZGF0YS5wcmVz
ZW50YXRpb25UaW1lID0gbV9wcmVzZW50YXRpb25UaW1lLnNlY29uZHMoKTsKICAgICBtZXRhZGF0
YS5leHBlY3RlZERpc3BsYXlUaW1lID0gbV9wcmVzZW50YXRpb25UaW1lLnNlY29uZHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZjFjOWU2MDI4MTNhM2JmNmZiMzE0MTc4OGI2NjA0Y2E0
M2IwOWI5MS4uMzRkNDViNWM0NGVhYTVjMjhlNWZmNzMyMTBhZDk0OWJkOTdjOTA1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OmVuZChPYnNlcnZlciogY2FsbGluZ09ic2VydmVyKQogCiAgICAgUmVmIHByb3RlY3Rl
ZFRoaXMgeyAqdGhpcyB9OwogCi0gICAgc3RvcCgpOworICAgIGVuZFByb2R1Y2luZ0RhdGEoKTsK
ICAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAgIGhhc0VuZGVkKCk7CiAKQEAgLTI5MywxMSArMjkz
LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKICAgICBFUlJP
Ul9MT0dfSUYobV9sb2dnZXIsIExPR0lERU5USUZJRVIpOwogCiAgICAgbV9jYXB0dXJlRGlkRmFp
bGVkID0gdHJ1ZTsKLQotICAgIHN0b3AoKTsKLSAgICBmb3JFYWNoT2JzZXJ2ZXIoW10oYXV0byYg
b2JzZXJ2ZXIpIHsKLSAgICAgICAgb2JzZXJ2ZXIuc291cmNlU3RvcHBlZCgpOwotICAgIH0pOwor
ICAgIGVuZCgpOwogfQogCiBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzU2l6ZUFu
ZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4sIHN0ZDo6b3B0aW9uYWw8aW50Piwgc3RkOjpv
cHRpb25hbDxkb3VibGU+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGM0YjQ1N2UyOTYwZjBlZGE5
MDhiNzIxMjk4NzM4YWU4M2U1MTQ0MmUuLjhiMWM0YjNjYWI4Y2Q5MTIwZDA1OWZjNmI2ZTk0ZGM2
YzU3NGM2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTI2Miw2ICsyNjIsNyBAQCBwcm90ZWN0
ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZW5kUHJvZHVjaW5nRGF0YSgpIHsgc3RvcCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldHRp
bmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc+
KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpIHsgc3RvcCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDFkNGY5OWJmMmIxM2FhNjZhZmZjMjQ4YmVjZTU5
ODJlYjMwZDQ2NzAuLjkzYmNjMWEzMzIzMzdhMzE1OTFkZWZhYTIzODViYWEzODgzMWJmNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC03OCw2ICs3OCwxMiBAQCB2b2lkIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBtX3NvdXJjZS0+c3RvcCgpOwogfQog
Cit2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmVuZFByb2R1Y2luZ0RhdGEoKQoreworICAgIG1f
c291cmNlLT5yZW1vdmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+
cmVxdWVzdFRvRW5kKCp0aGlzKTsKK30KKwogYm9vbCBSZWFsdGltZVZpZGVvU291cmNlOjpzdXBw
b3J0c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlv
bmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRlKQogewogICAg
IHJldHVybiBtX3NvdXJjZS0+c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHdpZHRoLCBoZWlnaHQs
IGZyYW1lUmF0ZSk7CkBAIC0xNDgsMTEgKzE1NCw2IEBAIGJvb2wgUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6cHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpCiAgICAgcmV0dXJuIGhhc09ic2VydmVyUHJl
dmVudGluZ1N0b3BwaW5nOwogfQogCi12b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnJlcXVlc3RU
b0VuZChSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYpCi17Ci0gICAgbV9zb3VyY2UtPnJl
cXVlc3RUb0VuZCgqdGhpcyk7Ci19Ci0KIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RvcEJl
aW5nT2JzZXJ2ZWQoKQogewogICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoKnRoaXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5oCmluZGV4IDM2ZjM4OGFhYWZhNThjZTFhNDM3Yjc4MGEwNDMyMTAyMzZkYzQ2
MDUuLmY0NzQ3M2IwYTJmMGQ2OWFhYTc5YmY3NWRkMWRjMThiNDBiNmM5N2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzU2l6
ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50
PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpIGZpbmFsOwogICAgIHZv
aWQgc2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0
aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpIGZpbmFs
OwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOwotICAgIHZvaWQg
cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2
ZXIpIGZpbmFsOworICAgIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQg
c3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5hbDsKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5j
YXBhYmlsaXRpZXMoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDAxYmU4ZDdkYWQ5YjYz
YjdiN2I1MzcyMDVhNTljNzU1MGMyMjY2NjMuLmIwOGQxZmRkYWMwYTU5M2NhZDU0NWE4Y2E1MzYx
MjlmYTIyYTlkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYxOCw3ICs2MTgsNiBAQCBX
ZWJQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvckNvY29hLm1tCiBX
ZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCi1XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZS5jcHAKIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWUwNjVmOWY4MmY0MTRkNTUzM2FkNmZlNWE2YmM3
NDI1ZWFhODliNS4uOThlNjdjZTZjM2ViMWZiZjgyZjk3M2E4Yzc1YTg3MWVkZjQ0MDUxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTgzLDkgKzgzLDYgQEAgcHVibGljOgogCiAg
ICAgflNvdXJjZVByb3h5KCkKICAgICB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVuZGVy
aW5nIHRocmVhZCBpcyBzdG9wcGVkIGJlZm9yZSB3ZSBwcm9jZWVkIHdpdGggdGhlIGRlc3RydWN0
aW9uLgotICAgICAgICBzdG9wKCk7Ci0KICAgICAgICAgc3dpdGNoIChtX3NvdXJjZS0+dHlwZSgp
KSB7CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86CiAgICAg
ICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6U3lzdGVtQXVkaW86CkBAIC0xMTcs
MTkgKzExNCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpCiAgICAgewogICAgICAgICBt
X3Nob3VsZFJlc2V0ID0gdHJ1ZTsKLSAgICAgICAgbV9pc0VuZGVkID0gZmFsc2U7CisgICAgICAg
IG1faXNTdG9wcGVkID0gZmFsc2U7CiAgICAgICAgIG1fc291cmNlLT5zdGFydCgpOwogICAgIH0K
IAogICAgIHZvaWQgc3RvcCgpCiAgICAgewotICAgICAgICBtX2lzRW5kZWQgPSB0cnVlOworICAg
ICAgICBtX2lzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgIG1fc291cmNlLT5zdG9wKCk7CiAgICAg
fQogCi0gICAgdm9pZCByZXF1ZXN0VG9FbmQoKQorICAgIHZvaWQgZW5kKCkKICAgICB7Ci0gICAg
ICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKICAgICAg
ICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAgICAgfQogCkBAIC0yNDcsNyArMjQ0
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKQogICAg
IHsKICAgICAgICAgLy8gRG8gbm90IGFsbG93IHRoZSBzb3VyY2UgdG8gc3RvcCBpZiB3ZSBhcmUg
c3RpbGwgdXNpbmcgaXQuCi0gICAgICAgIHJldHVybiAhbV9pc0VuZGVkOworICAgICAgICByZXR1
cm4gIW1faXNTdG9wcGVkOwogICAgIH0KIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIG1faWQ7CkBAIC0yNTgsNyArMjU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uIG1fZGVzY3JpcHRpb24geyB9OwogICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAg
fTsKLSAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3RvcHBlZCB7
IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlUm90YXRpb25TZXNzaW9uVlQ+IG1f
cm90YXRpb25TZXNzaW9uOwogICAgIGJvb2wgbV9zaG91bGRBcHBseVJvdGF0aW9uIHsgZmFsc2Ug
fTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpTZW1hcGhvcmU+IG1fY2FwdHVyZVNlbWFwaG9y
ZTsKQEAgLTQyNyw3ICs0MjQsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OnN0b3BQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQogICAgICAgICBw
cm94eS0+c3RvcCgpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmVu
ZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6cmVtb3ZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkKQogewogICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOwogfQpAQCAtNDY0LDEwICs0NjEsMTAg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3Vy
Y2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblBy
b3h5LT5jb25uZWN0aW9uKCksIFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlvblByb3h5LT5y
ZXNvdXJjZU93bmVyKCkgfSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCksIG1fY29ubmVjdGlvblBy
b3h5LT5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCgpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIHNvdXJjZUlEKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjplbmRQ
cm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQogewog
ICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoc291cmNlSUQpKQotICAgICAgICBw
cm94eS0+cmVxdWVzdFRvRW5kKCk7CisgICAgICAgIHByb3h5LT5lbmQoKTsKIH0KIAogdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRp
b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZDNhYjBkYWFmYTVhYTZiMzEzY2YyOGY3
N2RmY2M3MjZiZDI3OWQzNi4uMjk2OWE4ZDdlMmZhNGFmMzY1M2U5M2FhMDBkZDI0MzM0Njk5YzAy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtODcsMTEgKzg3LDExIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgc3Rh
cnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOwogICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgY2xvbmUoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGNsb25lSUQpOwotICAgIHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGVuZFByb2R1Y2luZ0Rh
dGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0
U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKIAogICAgIFdlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZU1pY3JvcGhvbmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggZWQ3ZjRkYWIxNmJlYTc5YjQyMWQ5NjYwZWUxZTQ5YzNmNjkw
MTMzZS4uY2E4MDgxZGE3MWIwNGZlZmE4OGYzMjEyMTgzNTRmZWRlMTc3MDhhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNywxMCArMjcsMTAgQEAg
bWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsK
ICAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzIGNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSAtPiAoYm9vbCBzdWNjZXNz
LCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRz
LCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5jCiAgICAgU3Rh
cnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
KQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkKQotICAgIEVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWQpCiAgICAgQXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3Ry
YWludHMpCiAgICAgQ2xvbmUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
Y2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQp
Ci0gICAgUmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IHNvdXJjZUlEKQorICAgIEVuZFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgc291cmNlSUQpCiAgICAgU2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCwgYm9vbCBzaG91bGRB
cHBseVJvdGF0aW9uKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3N2E1OTliNTM0MDljYjhkNWJmNmI2OWYzNGJiZDE5MDIxNzhm
YmZkLi4wN2QwN2Q1Mjg1NzMyNzRjNjdiODMxNmU3Y2IwNDYwMWVmMWI0Yzg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNDMsOCAr
NDE0Myw2IEBACiAJCTQxNjg0QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE2ODRDNEUyNDY0M0M4MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRGMjQ2NDNEM0Yw
MDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0MTY4NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkNENzQ1
MjNGQjE3OEIwMDY2MUQ5OSAvKiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgcGF0aCA9IE5l
dHdvcmsvd2VicnRjL01ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE2RURDMDUyNjAwRjZCMDAwMDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSVENEYXRhQ2hhbm5lbFJlbW90ZU1h
bmFnZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RURDMDYyNjAwRjZCMDAw
MDkyNjc1IC8qIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL1JUQ0Rh
dGFDaGFubmVsUmVtb3RlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDE4Miw4ICs0MTgwLDggQEAKIAkJNDE4OTdFRDQxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5l
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENTFGNDE1
RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENjFGNDE1RDg2MDAxNkZBNDIgLyogQ2FjaGVTdG9y
YWdlRW5naW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOEZDQkUzMjcxMDQ5REIwMEY5NkVDQSAv
KiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOEZDQkU0
MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUE1RjdCOTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9z
aXRpb25Db2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUE1RjdCQTIyNkVD
RjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE3Myw3ICs1MTcxLDYg
QEAKIAkJN0I1MEU5N0YyNzcxRjZDRTAwM0RBQUM0IC8qIElQQ1Rlc3Rlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJUENUZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjUwRTk4MDI3NzFGNkNGMDAzREFBQzQgLyogSVBDVGVzdGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElQ
Q1Rlc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjVBM0RBMDI3QTdEQzFB
MDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I1QTNEQTEyN0E3REMxQTAwNkM2Rjk3IC8qIFJlbW90ZVZp
ZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVW
aWRlb0ZyYW1lUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNUEzREEzMjdBN0RDNkMwMDZDNkY5NyAvKiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0I1QTNEQTcyN0E3RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODc3LDcgKzY4NzQs
NiBAQAogCQkJCTdCNUEzREEwMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lSWRl
bnRpZmllci5oICovLAogCQkJCTdCNUEzREEzMjdBN0RDNkMwMDZDNkY5NyAvKiBSZW1vdGVWaWRl
b0ZyYW1lUHJveHkuY3BwICovLAogCQkJCTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1v
dGVWaWRlb0ZyYW1lUHJveHkuaCAqLywKLQkJCQk3QjVBM0RBMTI3QTdEQzFBMDA2QzZGOTcgLyog
UmVtb3RlVmlkZW9GcmFtZVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFERDJBNjNBMjU1REU2
RDEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkxREQy
QTYzOTI1NURFNkQxMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oICovLAog
CQkJCTFERDJBNjZGMjU2MjJGMTEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
Lm1lc3NhZ2VzLmluICovLApAQCAtMTA0NTYsMTIgKzEwNDUyLDEwIEBACiAJCQkJNDE2ODRDNEQy
NDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLAogCQkJCTQxRTY3QThEMjVEMkNGRDAwMDdCMEE0QyAvKiBSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCAqLywKIAkJCQk0MUU2N0E4QzI1RDJDRkQwMDA3QjBBNEMgLyogUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5oICovLAotCQkJCTQxOEZDQkUzMjcxMDQ5REIwMEY5NkVDQSAvKiBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovLAotCQkJCTQxOEZDQkU0MjcxMDQ5REMw
MEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCAqLywKIAkJCQk0MTYwMDhC
MjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCAq
LywKIAkJCQk0MTYwMDhCMTI1REE4NkI5MDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5LmggKi8sCi0JCQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAotCQkJCTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAv
KiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8sCisJCQkJNDE4RkNCRTMyNzEwNDlEQjAw
Rjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAorCQkJCTQxOEZDQkU0
MjcxMDQ5REMwMEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8sCiAJCQkJ
Q0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAq
LywKIAkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCAqLywKIAkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCBi
MDk4ZWZiZTdjMzNjM2RiOWVmMDc2ZTE5NmVkNGE4Zjk3ZGZmMmU3Li4zNGM0NjY0MTk2NTI2ZTg5
YTE5NzYzNTNjZjQ1NjY2MTkzYWNlNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAg
LTEwMiwyMCArMTAyLDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YWRkU291
cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXIKICAgICAgICAgYXV0byBp
ZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7CiAKICAgICAgICAgQVNTRVJUKCFtX3Zp
ZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgICAgIG1fdmlkZW9Tb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlbW90ZVZpZGVvPihXVEZNb3ZlKHNvdXJjZSkp
KTsKLSAgICB9KTsKLX0KLQotdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YWRkU291
cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiYgc291cmNlKQotewotICAgIEFT
U0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7Ci0gICAgc2V0Q29ubmVjdGlvbihzb3VyY2UtPmNv
bm5lY3Rpb24oKSk7Ci0KLSAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH0sIHNvdXJjZSA9IFdURk1vdmUoc291cmNlKV0oKSBtdXRhYmxlIHsK
LSAgICAgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7Ci0KLSAgICAg
ICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgICAg
IG1fdmlkZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlbW90ZVZpZGVvPihX
VEZNb3ZlKHNvdXJjZSkpKTsKKyAgICAgICAgbV92aWRlb1NvdXJjZXMuYWRkKGlkZW50aWZpZXIs
IFdURk1vdmUoc291cmNlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE2OSw3ICsxNTYsNyBAQCB2b2lk
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjp2aWRlb0ZyYW1lQXZhaWxhYmxlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaQogICAgIH0oKTsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV92aWRl
b1NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV92aWRlb1Nv
dXJjZXMuZW5kKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxl
IHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlIiwgaWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
VW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHZpZGVvRnJhbWVBdmFpbGFibGUiLCBpZGVu
dGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gdmlk
ZW9GcmFtZVNpemUgPSB2aWRlb0ZyYW1lLT5zaXplKCk7CkBAIC0xODEsNyArMTY4LDcgQEAgdm9p
ZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6dmlkZW9GcmFtZUF2YWlsYWJsZUNWKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGkKICAgICBBU1NFUlQoIVdURjo6aXNNYWluUnVuTG9vcCgpKTsK
ICAgICBhdXRvIGl0ZXJhdG9yID0gbV92aWRlb1NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKICAg
ICBpZiAoaXRlcmF0b3IgPT0gbV92aWRlb1NvdXJjZXMuZW5kKCkpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9yIHJlbW90
ZVZpZGVvU2FtcGxlQXZhaWxhYmxlIiwgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiVW5hYmxlIHRvIGZpbmQgc291cmNlICVsbHUgZm9y
IHZpZGVvRnJhbWVBdmFpbGFibGVDViIsIGlkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTI1NSwyMCArMjQyLDYgQEAgdm9pZCBSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW4KICAgICBzdGFydFRocmVhZCgpOwogfQogCi1SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6UmVtb3RlVmlkZW86OlJlbW90ZVZpZGVvKFNvdXJjZSYmIHNvdXJjZSkKLSAgICA6IG1fc291
cmNlKFdURk1vdmUoc291cmNlKSkKLXsKLX0KLQotdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcjo6UmVtb3RlVmlkZW86OnZpZGVvRnJhbWVBdmFpbGFibGUoUmVmPE1lZGlhU2FtcGxlPiYm
IHNhbXBsZSwgSW50U2l6ZSBzaXplLCBWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKQotewot
ICAgIHN3aXRjaE9uKG1fc291cmNlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+
JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT52aWRlb1NhbXBsZUF2YWlsYWJsZShzYW1wbGUu
Z2V0KCksIHNpemUsIG1ldGFkYXRhKTsKLSAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPnJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKHNhbXBsZS5nZXQoKSwgbWV0YWRhdGEpOwotICAgIH0pOwotfQotCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2OTQ1Y2FkOWZmMTFhYjg4MmNjYzdkNzY0
MTBhNzVkZWI3ODJhNDUzLi5hMjRlOWNlNzJlNTI3ZGIwYTE2Y2U1YzUwMzBlZGEyNTQ3NzZiMWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIklQ
Q1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgiCiAjaW5j
bHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRl
b0ZyYW1lUHJveHkuaCIKQEAgLTU5LDcgKzU4LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRT
b3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwogICAgIHZvaWQgYWRkU291
cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKLSAgICB2b2lkIGFkZFNvdXJj
ZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lk
IGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKik7CkBAIC0xMDUsMjQg
KzEwMywxMiBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6OmF0b21pYzxib29sPiBtX3Nob3VsZFN0
b3BUaHJlYWQgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBjbGFzcyBSZW1vdGVWaWRlbyB7Ci0g
ICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgdXNp
bmcgU291cmNlID0gc3RkOjp2YXJpYW50PFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiwg
UmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4+OwotICAgICAgICBleHBsaWNpdCBSZW1v
dGVWaWRlbyhTb3VyY2UmJik7Ci0KLSAgICAgICAgdm9pZCB2aWRlb0ZyYW1lQXZhaWxhYmxlKFJl
ZjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgV2ViQ29yZTo6Vmlk
ZW9TYW1wbGVNZXRhZGF0YSk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTb3VyY2UgbV9zb3Vy
Y2U7Ci0gICAgfTsKLQogICAgIGJvb2wgbV9pc1JlZ2lzdGVyZWRUb1BhcmVudFByb2Nlc3NDb25u
ZWN0aW9uIHsgZmFsc2UgfTsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogICAgIFJlZlB0
cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICAvLyBiYWNrZ3JvdW5kIHRocmVh
ZCBtZW1iZXIKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW8+PiBtX2F1ZGlvU291cmNlczsKLSAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlVmlkZW8+PiBtX3ZpZGVvU291cmNlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZT4+IG1fdmlkZW9Tb3VyY2VzOwogCiAgICAgTG9jayBtX3ZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlMb2NrOwogICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5PiBt
X3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkgV1RGX0dVQVJERURfQllfTE9DSyhtX3ZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHlMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2YmIzODI0ODMxYTAzNTdiZTU2MGU4YWU0ZGE3MjZm
MzhlMTZlOTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCIK
LQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyKQotewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCks
IGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcikpOwotICAgIG1hbmFnZXIuYWRkU291
cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwotICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7Ci0gICAgc291cmNlLT5jcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZSgpOwotICAgIHJldHVybiBzb3VyY2U7Ci19Ci0KLVJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKLSAgICA6IFJlYWx0aW1l
TWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7IGRl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCi0gICAgLCBtX3Byb3h5KGlkZW50aWZpZXIsIGRl
dmljZSwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3RyYWludHMpCi0gICAgLCBtX21h
bmFnZXIobWFuYWdlcikKLXsKLSAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4gfHwgZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpXaW5kb3cpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQotewotICAgIG1fcHJveHkuY3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYg
ZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8m
JiwgYXV0bywgYXV0bykgewotICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewotICAgICAgICAgICAg
bV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLQotICAgICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7
Ci0gICAgICAgIHNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwotCi0gICAg
ICAgIG1fcHJveHkuc2V0QXNSZWFkeSgpOwotICAgICAgICBpZiAobV9wcm94eS5zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKCkpCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfSk7Ci19
Ci0KLVJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6flJlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZSgpCi17Ci0gICAgaWYgKG1fcHJveHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpKSB7
Ci0gICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZXhpc3RpbmdHUFVQcm9jZXNzQ29ubmVjdGlvbigpKQotICAgICAgICAgICAgY29ubmVjdGlvbi0+
cmVtb3ZlQ2xpZW50KCp0aGlzKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYmIGNhcGFiaWxpdGllcykKLXsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJp
bGl0aWVzKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OnNldFNldHRp
bmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQotewotICAgIGF1dG8g
Y2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5jZShzZXR0aW5ncyk7Ci0gICAgbV9zZXR0aW5n
cyA9IFdURk1vdmUoc2V0dGluZ3MpOwotICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2
ZXJzKGNoYW5nZWQpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmJiBzZXR0aW5ncykKLXsKLSAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7Ci0g
ICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKCk7Ci19Ci0KLXZvaWQgUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlOjpoYXNFbmRlZCgpCi17Ci0gICAgaWYgKG1fcHJveHkuaXNF
bmRlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Byb3h5LmVuZCgpOwotICAgIG1fbWFu
YWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKLSAgICBtX21hbmFnZXIucmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKLX0KLQotdm9p
ZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFp
bCkKLXsKLSAgICBpZiAoZGlkRmFpbCkKLSAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAgIGVs
c2UKLSAgICAgICAgZW5kKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY2FsbGJhY2spCi17Ci0g
ICAgbV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOwotICAgIG1fcHJveHkuYXBwbHlDb25zdHJh
aW50cyhjb25zdHJhaW50cywgV1RGTW92ZShjYWxsYmFjaykpOwotfQotCi0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQotdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmdwdVByb2Nlc3ND
b25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQotewotICAgIEFTU0VSVCht
X3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSk7Ci0gICAgaWYgKGlzRW5kZWQoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyKCkuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihjb25uZWN0aW9uKCkpOwotICAgIG1fcHJv
eHkucmVzZXRSZWFkeSgpOwotICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7Ci0KLSAgICBt
X3Byb3h5LmZhaWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3MoIkdQVSBQcm9jZXNzIHRlcm1pbmF0
ZWQiX3MpOwotICAgIGlmIChtX2NvbnN0cmFpbnRzKQotICAgICAgICBtX3Byb3h5LmFwcGx5Q29u
c3RyYWludHMoKm1fY29uc3RyYWludHMsIFtdKGF1dG8pIHsgfSk7Ci0KLSAgICBpZiAoaXNQcm9k
dWNpbmdEYXRhKCkpCi0gICAgICAgIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwotCi19Ci0jZW5kaWYK
LQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2EzZDlmODY2YzA4MWQzZTQ5YzY3NGY4Mzg0NmI1OWM2ZmM1NDA0Ny4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysrIC9kZXYv
bnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJHUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IE1l
ZGlhQ29uc3RyYWludHM7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjsKLQotY2xhc3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKLSNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCi0gICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAotI2Vu
ZGlmCi17Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKLSAgICB+UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKCk7Ci0KLSAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KLSAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24oKSB7IHJldHVybiBtX3Byb3h5LmNvbm5lY3Rpb24oKTsgfQotCi0gICAgdm9pZCBzZXRT
ZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7Ci0KLSAgICB2
b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiYpOwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBm
YWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBseUNv
bnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JN
ZXNzYWdlKSk7IH0KLQotICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKTsKLQot
ICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUm
IHNhbXBsZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0YSkgeyB2aWRlb1Nh
bXBsZUF2YWlsYWJsZShzYW1wbGUsIG1ldGFkYXRhKTsgfQotICAgIHZvaWQgc291cmNlTXV0ZWRD
aGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwotCi1wcml2YXRlOgotICAgIFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKLQotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKLSAgICB2b2lkIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQotICAgIHZv
aWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RvcFByb2R1Y2luZ0RhdGEo
KTsgfQotICAgIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBj
b21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRz
KGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxl
ciYmKSBmaW5hbDsKLSAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7Ci0gICAgY29uc3QgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJu
IG1fc2V0dGluZ3M7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsg
fQotICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBj
YWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNhbGxiYWNrKSk7IH0K
LSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQotICAgIGJvb2wgaW50ZXJy
dXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmludGVycnVwdGVkKCk7IH0KLQot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xp
ZW50Ci0gICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25u
ZWN0aW9uJikgZmluYWw7Ci0jZW5kaWYKLQotICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFTb3Vy
Y2UoKTsKLSAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJiYpOwotCi0gICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
IG1fcHJveHk7Ci0gICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKLSAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7Ci0g
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGll
czsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsK
LX07Ci0KLWlubGluZSB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6c291cmNlTXV0
ZWRDaGFuZ2VkKGJvb2wgbXV0ZWQsIGJvb2wgaW50ZXJydXB0ZWQpCi17Ci0gICAgbV9wcm94eS5z
ZXRJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlZCk7Ci0gICAgbm90aWZ5TXV0ZWRDaGFuZ2UobXV0ZWQp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuY3BwCmluZGV4IGU5MTBiNjE2MDU4OTA2YTkxOWRlNTA4YjU5YjdhOTI1MTgy
ZDAwZTEuLjYxZjFmYTMzYjEzNjcxMzNhNWQxMTBmOTNiMjEzYTg2YWVkOTg3MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC03MCwxMSArNzAsMjYgQEAgdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBjb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0
b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCit2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6ZW5kUHJvZHVjaW5nRGF0YSgpCit7CisgICAgY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmRQ
cm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCiB2b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJREhhc2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
ciwgQ3JlYXRlQ2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSkK
IHsKICAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQs
IG1fY29uc3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lLCBwYWdlSWRlbnRpZmllciksIFdU
Rk1vdmUoY2FsbGJhY2spKTsKIH0KIAorUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y2xvbmUoKQoreworICAgIHJldHVybiB7IFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtX2RldmljZSwgbV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCAmbV9jb25zdHJhaW50cyB9OworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlQ2xvbmVTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVJZGVudGlmaWVyKQoreworICAg
IGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Q2xvbmUgeyBtX2lkZW50aWZpZXIsIGNsb25lSWRlbnRpZmllciB9LCAwKTsKK30KKwogdm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmFwcGx5Q29uc3RyYWludHMoY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5
Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wZW5kaW5n
QXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwpAQCAtMTA1LDcgKzEyMCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5OjplbmQoKQogewogICAgIEFTU0VSVCghbV9pc0VuZGVkKTsKICAgICBtX2lzRW5kZWQgPSB0
cnVlOwotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOworICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVtb3ZlU291cmNl
IHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxs
YmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAppbmRleCBiMTEwZDFlN2Q2NWZhYzJh
ZjU0NDgyOWY3MmU0ZmVjYjI1ZTQ4MzZiLi5jNDRjNGJlNTg3N2FjMmExMjVkYzg1YjUwMmNkN2Iz
ZTljMTI5Y2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCkBAIC00NywxNCArNDcs
MjEgQEAgcHVibGljOgogICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyopOwogICAgIH5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoKTsK
IAorICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eShSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkmJikgPSBkZWZhdWx0OworICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eSYgb3BlcmF0b3I9KFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSYmKSA9IGRlZmF1
bHQ7CisKICAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKTsKICAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBk
ZXZpY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2UudHlwZSgpOyB9CisgICAgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2U7
IH0KICAgICBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3M7IH0KIAogICAgIHVzaW5nIENyZWF0ZUNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBTdHJpbmcmJiwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6
SW50U2l6ZSwgZG91YmxlKT47CiAgICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwgYm9v
bCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9IGZhbHNlKTsKIAorICAgIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eSBjbG9uZSgpOworICAgIHZvaWQgY3JlYXRlUmVtb3RlQ2xvbmVTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCiAgICAgdm9pZCBhcHBs
eUNvbnN0cmFpbnRzU3VjY2VlZGVkKCk7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVk
KFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CiAgICAg
dm9pZCBmYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlKTsKQEAgLTYzLDYgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZW5kKCk7CiAgICAgdm9p
ZCBzdGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCk7Cisg
ICAgdm9pZCBlbmRQcm9kdWNpbmdEYXRhKCk7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKTsKIAogICAgIHZvaWQgd2hlblJlYWR5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
aW5kZXggZWRkNWQ0MTYxMzNhYzcyMmRhMGI5OGUzNDYwYjk1ZTQxYzFjM2E3NS4uODg5MzBjMmVj
Y2E4NjZmMDE1NmUyY2RkZDYxN2ViMmE1YTQ4MzMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOCw1OCArMjgsNTQgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCi0jaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAotUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBT
dHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwg
Y29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcikpOworICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlk
ZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAg
ICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5j
b3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICBy
ZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlKFdURk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCitSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0
cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlk
ZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5KGlkZW50aWZpZXIsIGRldmljZSwgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcywgY29uc3RyYWludHMpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKIHsK
IH0KIAorUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkmJiBwcm94eSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7IHByb3h5LmRldmljZSgpLmxhYmVsKCkgfSwgU3RyaW5n
IHsgcHJveHkuZGV2aWNlKCkucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBh
Z2VJZGVudGlmaWVyKQorICAgICwgbV9wcm94eShXVEZNb3ZlKHByb3h5KSkKKyAgICAsIG1fbWFu
YWdlcihtYW5hZ2VyKQoreworfQorCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVz
c2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJlc2V0
cywgYXV0byBzaXplLCBhdXRvIGZyYW1lUmF0ZSkgbXV0YWJsZSB7CisgICAgbV9wcm94eS5jcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1
dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywg
YXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAg
ICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHNldFNpemUoc2l6ZSk7Ci0gICAgICAgIHNl
dEZyYW1lUmF0ZShmcmFtZVJhdGUpOwotCiAgICAgICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0
dGluZ3MpKTsKICAgICAgICAgc2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7
Ci0gICAgICAgIHNldFN1cHBvcnRlZFByZXNldHMoV1RGTW92ZShwcmVzZXRzKSk7Ci0gICAgICAg
IHNldE5hbWUoU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwogCiAgICAg
ICAgIG1fcHJveHkuc2V0QXNSZWFkeSgpOwogICAgICAgICBpZiAobV9wcm94eS5zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKCkpCiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfSwgbV9t
YW5hZ2VyLnNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMoKSk7CisgICAgfSwgbV9wcm94
eS5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkgJiYgbV9tYW5hZ2VyLnNob3VsZFVzZUdQVVBy
b2Nlc3NSZW1vdGVGcmFtZXMoKSk7CiB9CiAKIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6On5S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCkKQEAgLTkwLDYgKzg2LDExIEBAIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6On5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCkKICAgICB9CiB9CiAK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZW5kUHJvZHVjaW5nRGF0YSgpCit7Cisg
ICAgbV9wcm94eS5lbmRQcm9kdWNpbmdEYXRhKCk7Cit9CisKIHZvaWQgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFi
aWxpdGllcyk7CkBAIC0xMDIsMzcgKzEwMywxNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbgog
ICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOwogfQogCi12b2lk
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2Ft
cGxlJiBzYW1wbGUsIEludFNpemUgc2FtcGxlU2l6ZSwgVmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRh
ZGF0YSkKLXsKLSAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKLQotICAgIHNldElu
dHJpbnNpY1NpemUoc2FtcGxlU2l6ZSk7Ci0KLSAgICBpZiAobV9zYW1wbGVSb3RhdGlvbiAhPSBz
YW1wbGUudmlkZW9Sb3RhdGlvbigpKSB7Ci0gICAgICAgIG1fc2FtcGxlUm90YXRpb24gPSBzYW1w
bGUudmlkZW9Sb3RhdGlvbigpOwotCi0gICAgICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsK
LSAgICAgICAgaWYgKG1fc2FtcGxlUm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246OkxlZnQgfHwgbV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6UmlnaHQpIHsKLSAgICAgICAgICAgIHNpemUgPSBzaXplLnRyYW5zcG9zZWRTaXplKCk7Ci0g
ICAgICAgICAgICBtX3NldHRpbmdzLnNldFdpZHRoKHNpemUud2lkdGgoKSk7Ci0gICAgICAgICAg
ICBtX3NldHRpbmdzLnNldEhlaWdodChzaXplLmhlaWdodCgpKTsKLSAgICAgICAgfQotICAgICAg
ICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10gewotICAgICAgICAgICAgbm90aWZ5U2V0dGlu
Z3NEaWRDaGFuZ2VPYnNlcnZlcnMoeyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc6
OldpZHRoLCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc6OkhlaWdodCB9KTsKLSAg
ICAgICAgfSk7Ci0gICAgfQotICAgIGRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyhzYW1w
bGUsIG1ldGFkYXRhKTsKLX0KLQogYm9vbCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRT
aG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKIHsKICAgICBjb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNl
dFNob3VsZEFwcGx5Um90YXRpb24geyBpZGVudGlmaWVyKCksIHNob3VsZEFwcGx5Um90YXRpb24g
fSwgMCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpCit2
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7Ci0gICAg
cmV0dXJuIG1fY2FwYWJpbGl0aWVzOworICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3Mp
KTsKKyAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoKTsKIH0KIAogdm9pZCBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRlZCgpCkBAIC0xNDUsNDYgKzEyNSwzNyBA
QCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKICAgICBtX21hbmFn
ZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigp
KTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlU3RvcHBlZChi
b29sIGRpZEZhaWwpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y2xvbmUoKQogewotICAgIGlmIChkaWRGYWlsKQotICAgICAgICBjYXB0dXJlRmFp
bGVkKCk7Ci0gICAgZWxzZQotICAgICAgICBlbmQoKTsKLSAgICBoYXNFbmRlZCgpOwotfQorICAg
IGlmIChpc0VuZGVkKCkgfHwgbV9wcm94eS5pc0VuZGVkKCkpCisgICAgICAgIHJldHVybiAqdGhp
czsKIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpnZW5lcmF0ZVByZXNldHMoKQot
ewotICAgIEFTU0VSVChtX3Byb3h5LmlzUmVhZHkoKSk7Ci19CisgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UobV9wcm94eS5jbG9uZSgpLCBk
ZXZpY2VJREhhc2hTYWx0KCksIG1fbWFuYWdlciwgcGFnZUlkZW50aWZpZXIoKSkpOwogCi12b2lk
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91Ymxl
IGZyYW1lUmF0ZSwgUmVmUHRyPFZpZGVvUHJlc2V0PiBwcmVzZXQpCi17Ci0gICAgTWVkaWFDb25z
dHJhaW50cyBjb25zdHJhaW50czsKKyAgICBzb3VyY2UtPnNldFNldHRpbmdzKFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyB7IHNldHRpbmdzKCkgfSk7CisgICAgc291cmNlLT5zZXRDYXBhYmls
aXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyB7IGNhcGFiaWxpdGllcygpIH0p
OwogCi0gICAgY29uc3RyYWludHMuaXNWYWxpZCA9IHRydWU7Ci0gICAgRG91YmxlQ29uc3RyYWlu
dCBmcmFtZVJhdGVDb25zdHJhaW50KCJmcmFtZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6
OkZyYW1lUmF0ZSk7Ci0gICAgZnJhbWVSYXRlQ29uc3RyYWludC5zZXRJZGVhbChmcmFtZVJhdGUp
OwotICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGcmFtZVJhdGUsIGZyYW1lUmF0ZUNvbnN0cmFpbnQpOworICAgIG1fbWFuYWdlci5h
ZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CisgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogCi0gICAgaWYgKHBy
ZXNldCkgewotICAgICAgICBJbnRDb25zdHJhaW50IHdpZHRoQ29uc3RyYWludCgid2lkdGgiX3Ms
IE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoKTsKLSAgICAgICAgd2lkdGhDb25zdHJhaW50LnNl
dElkZWFsKHByZXNldC0+c2l6ZS53aWR0aCgpKTsKLSAgICAgICAgY29uc3RyYWludHMubWFuZGF0
b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCB3aWR0aENvbnN0
cmFpbnQpOworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlQ2xvbmVTb3VyY2Uoc291cmNlLT5pZGVu
dGlmaWVyKCkpOwogCi0gICAgICAgIEludENvbnN0cmFpbnQgaGVpZ2h0Q29uc3RyYWludCgiaGVp
Z2h0Il9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQpOwotICAgICAgICBoZWlnaHRDb25z
dHJhaW50LnNldElkZWFsKHByZXNldC0+c2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIGNvbnN0cmFp
bnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQs
IGhlaWdodENvbnN0cmFpbnQpOwotICAgIH0KKyAgICByZXR1cm4gc291cmNlOworfQogCi0gICAg
bV9zaXplQ29uc3RyYWludHMgPSBjb25zdHJhaW50czsKLSAgICBtX3Byb3h5LmFwcGx5Q29uc3Ry
YWludHMoY29uc3RyYWludHMsIFtdKGF1dG8pIHsgfSk7Cit2b2lkIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCkKK3sKKyAgICBpZiAoZGlkRmFp
bCkKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgIGVsc2UKKyAgICAgICAgZW5kKCk7Cisg
ICAgaGFzRW5kZWQoKTsKIH0KIAotYm9vbCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpwcmVm
ZXJzUHJlc2V0KFZpZGVvUHJlc2V0JikKK3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQXBw
bHlDb25zdHJhaW50c0hhbmRsZXImJiBjYWxsYmFjaykKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBtX2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7CisgICAgbV9wcm94eS5hcHBseUNvbnN0cmFp
bnRzKGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCkBAIC0xOTksOCArMTcwLDggQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8KICAg
ICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwogCiAgICAgbV9wcm94eS5mYWlsQXBwbHlDb25z
dHJhaW50Q2FsbGJhY2tzKCJHUFUgUHJvY2VzcyB0ZXJtaW5hdGVkIl9zKTsKLSAgICBpZiAobV9z
aXplQ29uc3RyYWludHMpCi0gICAgICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50cygqbV9zaXpl
Q29uc3RyYWludHMsIFtdKGF1dG8pIHsgfSk7CisgICAgaWYgKG1fY29uc3RyYWludHMpCisgICAg
ICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50cygqbV9jb25zdHJhaW50cywgW10oYXV0bykgeyB9
KTsKIAogICAgIGlmIChpc1Byb2R1Y2luZ0RhdGEoKSkKICAgICAgICAgc3RhcnRQcm9kdWNpbmdE
YXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCA5ZWYwYmM3MmI1MzljMGY5Njk5Y2ExYWEz
MzI2M2UyNTgyNjhlODkzLi5hNjNmNWZjYzYzYjU1YjJkYzY5NmExNmY1YmY4NjU4NWRhMjdhMDU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMzIgKzMwLDI1IEBACiAjaW5jbHVkZSAiR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZS5oPgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotCi1uYW1lc3BhY2UgSVBDIHsK
LWNsYXNzIENvbm5lY3Rpb247Ci19CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKLWNs
YXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKLWNs
YXNzIE1lZGlhU2FtcGxlOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKK2NsYXNzIFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAsIHB1YmxpYyBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6Q2xpZW50CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsK
KyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVu
dGlmaWVyKCk7IH0KQEAgLTY1LDMxICs1OCwzMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNhcHR1
cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCk7CiAKLSAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxl
KFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiwgV2ViQ29yZTo6SW50U2l6ZSwgV2ViQ29yZTo6VmlkZW9T
YW1wbGVNZXRhZGF0YSk7CisgICAgdm9pZCB2aWRlb0ZyYW1lQXZhaWxhYmxlKFdlYkNvcmU6OlZp
ZGVvRnJhbWUmIGZyYW1lLCBXZWJDb3JlOjpJbnRTaXplLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1l
dGFkYXRhIG1ldGFkYXRhKSB7IHZpZGVvU2FtcGxlQXZhaWxhYmxlKGZyYW1lLCBtZXRhZGF0YSk7
IH0KICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlLCBib29sIGludGVycnVw
dGVkKTsKIAorICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkgeyBt
X3Byb3h5LmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwg
V1RGTW92ZShlcnJvck1lc3NhZ2UpKTsgfQorCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcik7CisgICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eSYmLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKLSAgICAvLyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0
YSgpOyB9CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdG9w
UHJvZHVjaW5nRGF0YSgpOyB9CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7
IH0KICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAgICBib29sIHNl
dFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSBmaW5h
bDsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgaGFzRW5k
ZWQoKSBmaW5hbDsKICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQotICAgIGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZp
bmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
IGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdm9p
ZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKSBm
aW5hbCB7IG1fcHJveHkud2hlblJlYWR5KFdURk1vdmUoY2FsbGJhY2spKTsgfQogICAgIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fcHJveHkuZGV2aWNlVHlwZSgpOyB9Ci0KLSAgICAvLyBXZWJDb3JlOjpSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZQotICAgIHZvaWQgZ2VuZXJhdGVQcmVzZXRzKCkgZmluYWw7Ci0g
ICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gc2FtcGxlUm90YXRpb24oKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3NhbXBsZVJvdGF0aW9uOyB9Ci0gICAgdm9pZCBzZXRGcmFt
ZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSwgUmVmUHRyPFdlYkNvcmU6OlZpZGVvUHJlc2V0PikgZmlu
YWw7Ci0gICAgYm9vbCBwcmVmZXJzUHJlc2V0KFdlYkNvcmU6OlZpZGVvUHJlc2V0JikgZmluYWw7
Ci0gICAgYm9vbCBpbnRlcnJ1cHRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuaW50
ZXJydXB0ZWQoKTsgfQorICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFs
OworICAgIHZvaWQgZW5kUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGJvb2wgc2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihib29sKSBmaW5hbDsKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAg
ICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CkBAIC05NywxNyArOTAsMTMgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwotICAg
IHZvaWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgc2V0QXNSZWFk
eSgpOwogICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmJik7CiAKICAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkg
bV9wcm94eTsKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwotCi0gICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzPiBtX3NpemVDb25zdHJhaW50
czsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHM+IG1fY29uc3Ry
YWludHM7CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2Nh
cGFiaWxpdGllczsKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9z
ZXR0aW5nczsKLSAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3NhbXBs
ZVJvdGF0aW9uIHsgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfTsK
IH07CiAKIGlubGluZSB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNvdXJjZU11dGVk
Q2hhbmdlZChib29sIG11dGVkLCBib29sIGludGVycnVwdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
aW5kZXggZTE0NDAxYmI3MDdlNjU3ZjE1YzExOWZlYjNjZmNmZTNkMGUzNThlNi4uOThmYTM3ZDg1
NTc1YTJjOGI0MzJjNWZjNTJiZmM0MzVjOGEyNWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBA
IC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgiCi0jaW5jbHVkZSAiUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCkBAIC0xMTEsMTMgKzEx
MCw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZT4mJiBzb3VyY2UpCiAgICAgbV9zb3VyY2VzLmFkZChpZGVudGlm
aWVyLCBTb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmIHNv
dXJjZSkKLXsKLSAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKLSAg
ICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9zb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCBTb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7Ci19Ci0KIHZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWRl
bnRpZmllcikpOwpAQCAtMTM0LDggKzEyNiw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OnNvdXJjZVN0b3BwZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpCiAg
ICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoZGlkRmFpbCk7CiAgICAgfSwgW2RpZEZhaWxd
KFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJj
ZS0+Y2FwdHVyZVN0b3BwZWQoZGlkRmFpbCk7Ci0gICAgfSwgW2RpZEZhaWxdKFJlZjxSZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5jYXB0dXJl
U3RvcHBlZChkaWRGYWlsKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIApA
QCAtMTQ5LDggKzEzOSw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11
dGVkQ2hhbmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpCiAgICAgICAgIHNvdXJj
ZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkLCBpbnRlcnJ1cHRlZCk7CiAgICAgfSwgW211dGVk
LCBpbnRlcnJ1cHRlZF0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsK
ICAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQsIGludGVycnVwdGVkKTsK
LSAgICB9LCBbbXV0ZWQsIGludGVycnVwdGVkXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVk
LCBpbnRlcnJ1cHRlZCk7CiAgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKQEAg
LTE2NCw4ICsxNTIsNiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTZXR0
aW5nc0NoYW5nZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZQogICAgICAgICBzb3VyY2Ut
PnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICB9LCBbJl0oUmVmPFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5zZXRTZXR0aW5n
cyhXVEZNb3ZlKHNldHRpbmdzKSk7Ci0gICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3Zl
KHNldHRpbmdzKSk7CiAgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKQEAgLTE3
OCw3ICsxNjQsNiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudAogICAgIHN3aXRjaE9uKGl0ZXJh
dG9yLT52YWx1ZSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7
CiAgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXVEZNb3ZlKHNldHRp
bmdzKSk7CiAgICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNl
KSB7Ci0gICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2Up
IHsKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdURk1vdmUoc2V0
dGluZ3MpKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KQEAgLTE5Miw3ICsx
NzcsNiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQogICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52
YWx1ZSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CiAgICAg
ICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFp
bnQpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWls
ZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSwg
W10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CkBAIC0yMzIsOCArMjE2LDcgQEAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRl
VmlkZW9DYXB0dXJlU28KICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAg
ICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKLSAgICBib29sIHNo
b3VsZFVzZUlPU3VyZmFjZSA9ICFtX21hbmFnZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3Rl
RnJhbWVzOwotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29u
c3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllciksIHNob3VsZFVzZUlPU3VyZmFjZSkpOwor
ICAgIHJldHVybiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25z
dHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQpAQCAtMjQ1LDcgKzIyOCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1CiAg
ICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKICAgICAgICAgbV9tYW5hZ2VyLm1f
cmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgm
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS52aWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkpOwogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQp
LCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIp
OworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBj
b25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJv
b2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IGIwMTQ4NDFhMmJmMWIwODRhMzliNzk3MzBl
NmYyN2Y2ZmI5NGYxMzYuLjI5MzRjNWZkZmNlZTk1ZDVkYTAwOTlkNDNlMzk0YjEyNDI4MTU2MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCkBAIC00Myw3ICs0Myw2IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbjsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOwotY2xhc3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOwogY2xhc3MgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKQEAgLTYwLDcgKzU5
LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U+JiYpOwogICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiYmKTsKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CiAKICAgICBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlciYgcmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKSB7IHJldHVybiBtX3JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyOyB9CkBAIC0xMzEsNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKICAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IFN0cmluZyYmLCBTdHJpbmcmJik7CiAKLSAgICB1c2luZyBTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8
c3RkOjpudWxscHRyX3QsIFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiwgUmVmPFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+LCBSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPj47
CisgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8UmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4sIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPj47
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU291
cmNlPiBtX3NvdXJjZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogICAgIE5vT3BDYXB0
dXJlRGV2aWNlTWFuYWdlciBtX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YmE0
Nzk5ZDQ1YmVlMDRhOWE0YmI3ZmExOWU4MGFkYjZjNzljMWEyLi42MTUyNjZjMjNhNDFkMWQ2YjY5
MDQ3ZWI1NGI1YzZlNDE0ZjlkMGViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDMtMTEg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIERvIGNhcHR1cmUg
dmlkZW8gZnJhbWUgZG93bnNhbXBsaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzMxNgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODk5NTk3Nzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sOgorICAg
ICAgICBSZW1vdmUgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIGJ5IHJlc3RhcnRpbmcgcGxheWlu
ZyB0aGUgc3RyZWFtIHRvIGNvbXB1dGUgdGhlIHNpemUuCisKIDIwMjItMDMtMTAgIEZyw6lkw6ly
aWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgWyBpT1MgXSBlZGl0aW5nL2lu
c2VydGluZy9pbnNlcnQtcGFyYWdyYXBoLXNlcGFyYXRvci13aXRoLWlubGluZS10YWJsZS1ib2xk
LWNyYXNoLmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwKaW5kZXggZTc4MjY5MmQ3
MmE0MWU5ZTc2Zjg0ZTQ5N2MwODM5NWZkNjhkMDIwYy4uY2Q3MDQ2MDczYjNhM2YwZThjMmI5NmVj
OTljZTI1NWRjZjY3YmI2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbApAQCAtMjUsNiArMjUsMTAgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jICgpID0+IHsKIAogICAgIGFzc2VydF9lcXVhbHModmlkZW8yLnZpZGVvV2lk
dGgsIDMyMCk7CiAKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gbnVsbDsKKyAgICB2aWRlbzEuc3Jj
T2JqZWN0ID0gc3RyZWFtMTsKKyAgICBhd2FpdCB2aWRlbzEucGxheSgpOworCiAgICAgdGVzdCgo
KSA9PiB7CiAgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8xLnZpZGVvV2lkdGgsIDY0MCk7CiAg
ICAgfSwgIm9yaWdpbmFsIHNvdXJjZSBzaG91bGQgc3RheSBhdCBhIHNtYWxsIHNpemUiKTsKQEAg
LTQ0LDYgKzQ4LDEwIEBAIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAKICAgICBhc3NlcnRf
ZXF1YWxzKHZpZGVvMi52aWRlb1dpZHRoLCAxMjgwKTsKIAorICAgIHZpZGVvMS5zcmNPYmplY3Qg
PSBudWxsOworICAgIHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIGF3YWl0IHZpZGVv
MS5wbGF5KCk7CisKICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRl
bzEudmlkZW9XaWR0aCwgNjQwKTsKICAgICB9LCAib3JpZ2luYWwgc291cmNlIHNob3VsZCBzdGF5
IGF0IGEgYmlnIHNpemUiKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>