<?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>237359</bug_id>
          
          <creation_ts>2022-03-02 03:48:24 -0800</creation_ts>
          <short_desc>Scope capture sources by page identifiers</short_desc>
          <delta_ts>2022-03-10 13:11:02 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211509</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>237316</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</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>1847333</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 03:48:24 -0800</bug_when>
    <thetext>Scope capture sources by page identifiers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847334</commentid>
    <comment_count>1</comment_count>
      <attachid>453585</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 03:51:35 -0800</bug_when>
    <thetext>Created attachment 453585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847335</commentid>
    <comment_count>2</comment_count>
      <attachid>453586</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 04:05:29 -0800</bug_when>
    <thetext>Created attachment 453586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847336</commentid>
    <comment_count>3</comment_count>
      <attachid>453587</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 04:16:45 -0800</bug_when>
    <thetext>Created attachment 453587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847346</commentid>
    <comment_count>4</comment_count>
      <attachid>453591</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 05:25:46 -0800</bug_when>
    <thetext>Created attachment 453591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847347</commentid>
    <comment_count>5</comment_count>
      <attachid>453592</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 05:34:40 -0800</bug_when>
    <thetext>Created attachment 453592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847358</commentid>
    <comment_count>6</comment_count>
      <attachid>453596</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 06:09:01 -0800</bug_when>
    <thetext>Created attachment 453596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847405</commentid>
    <comment_count>7</comment_count>
      <attachid>453596</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 08:15:35 -0800</bug_when>
    <thetext>Comment on attachment 453596
Patch

GTK failure is legit and due to difference of -expected.txt files, I&apos;ll fix that. Putting as r? while waiting for iOS results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847428</commentid>
    <comment_count>8</comment_count>
      <attachid>453596</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-03-02 08:45:04 -0800</bug_when>
    <thetext>Comment on attachment 453596
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:328
&gt; +            if (mediaConstraints) {
&gt; +                auto error = source-&gt;applyConstraints(*mediaConstraints);
&gt; +                if (error)
&gt; +                    return WTFMove(error-&gt;message);
&gt; +            }

It would be nice to improve this eventually so we apply a union of the constraints, so we always capture at the highest requested constraint values and decimate/downsample as necessary. Maybe add a FIXME?

&gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:343
&gt; +#if PLATFORM(IOS_FAMILY)
&gt; +    if (perPageSources.cameraSource) {
&gt; +        // We cannot reuse the source so fail it.
&gt; +        perPageSources.cameraSource-&gt;captureFailed();
&gt; +        perPageSources.cameraSource-&gt;stop();
&gt; +    }
&gt; +#endif

I would be cleaner to have the compile flag in a method (`canCaptureFromMultipleCameras`?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848227</commentid>
    <comment_count>9</comment_count>
      <attachid>453828</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-04 03:05:54 -0800</bug_when>
    <thetext>Created attachment 453828
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848228</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-04 03:20:49 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:328
&gt; &gt; +            if (mediaConstraints) {
&gt; &gt; +                auto error = source-&gt;applyConstraints(*mediaConstraints);
&gt; &gt; +                if (error)
&gt; &gt; +                    return WTFMove(error-&gt;message);
&gt; &gt; +            }
&gt; 
&gt; It would be nice to improve this eventually so we apply a union of the
&gt; constraints, so we always capture at the highest requested constraint values
&gt; and decimate/downsample as necessary. Maybe add a FIXME?

RealtimeVideoCaptureSource does this for width, height and frameRate.
This should ensure there is no functionality regression.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:343
&gt; &gt; +#if PLATFORM(IOS_FAMILY)
&gt; &gt; +    if (perPageSources.cameraSource) {
&gt; &gt; +        // We cannot reuse the source so fail it.
&gt; &gt; +        perPageSources.cameraSource-&gt;captureFailed();
&gt; &gt; +        perPageSources.cameraSource-&gt;stop();
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; 
&gt; I would be cleaner to have the compile flag in a method
&gt; (`canCaptureFromMultipleCameras`?).

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848233</commentid>
    <comment_count>11</comment_count>
      <attachid>453829</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-04 03:47:43 -0800</bug_when>
    <thetext>Created attachment 453829
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848308</commentid>
    <comment_count>12</comment_count>
      <attachid>453829</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-04 08:35:11 -0800</bug_when>
    <thetext>Comment on attachment 453829
Patch for landing

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

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:295
&gt; +    if (failSilently == FailSilently::No)

Instead of introducing this boolean, I&apos;ll add a dedicated method instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848310</commentid>
    <comment_count>13</comment_count>
      <attachid>453846</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-04 08:37:21 -0800</bug_when>
    <thetext>Created attachment 453846
Patch for landing - v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848638</commentid>
    <comment_count>14</comment_count>
      <attachid>453946</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-07 00:29:53 -0800</bug_when>
    <thetext>Created attachment 453946
Patch for landing - v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849196</commentid>
    <comment_count>15</comment_count>
      <attachid>454101</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-08 04:32:40 -0800</bug_when>
    <thetext>Created attachment 454101
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849197</commentid>
    <comment_count>16</comment_count>
      <attachid>454102</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-08 04:34:37 -0800</bug_when>
    <thetext>Created attachment 454102
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849217</commentid>
    <comment_count>17</comment_count>
      <attachid>454111</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-08 05:36:51 -0800</bug_when>
    <thetext>Created attachment 454111
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849555</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-09 00:05:55 -0800</bug_when>
    <thetext>Committed r291034 (248208@main): &lt;https://commits.webkit.org/248208@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454111.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849556</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-09 00:06:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/90016088&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850214</commentid>
    <comment_count>20</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2022-03-10 13:11:02 -0800</bug_when>
    <thetext>This fixed platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html, originally marked as failing in bug 211509. Removed test expectation in r291125.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453585</attachid>
            <date>2022-03-02 03:51:35 -0800</date>
            <delta_ts>2022-03-02 04:22:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237359-20220302125133.patch</filename>
            <type>text/plain</type>
            <size>131909</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRkZTA1NWUzZGEyOGQx
ZTE3MmNlMDJjOTA4NmVlMTdiYjFiMDNlZi4uMzg3MDU5ZThhZjAyNTQyNzhmNmY0ODIyNTMwZTk4
OGE0Y2RmMzZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGVyIHBhZ2Ugc291cmNlcworCisgICAgICAgIE5vIG5ldyB0ZXN0
cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIu
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9T
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwog
MjAyMi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFiZjAxMjQxMzcw
ZjRhN2FhZWRlNDBlZGQxZjI4Yjg5MTY0ZmJmNC4uODVhZGY1NjJhZTk0NzA2YzU3YmYzMzAxNmZk
OGQ3YWU5MTI3ZmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMy0wMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2NvcGUgY2FwdHVyZSBz
b3VyY2VzIGJ5IHBhZ2UgaWRlbnRpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBlciBwYWdlIHNvdXJjZXMKKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwog
MjAyMi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA1MDZmMzM3NGI3ZTZk
NzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4wZmFhOGJiNTVhMTk4NWU5ODBmNzM2YjYxZGEw
ZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBNZWRpYURldmlj
ZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFBy
b21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldERlZmF1bHRWaWRlb0NvbnN0cmFp
bnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3Jl
YXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RG
TW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2Vy
R2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVz
dCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1
ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUo
dmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5w
YWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKIAogICAgIGlmICghZG9jdW1lbnQtPnNldHRp
bmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7CiAgICAgICAgIHJlcXVlc3QtPnN0
YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlN
ZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6
OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVk
aWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVk
Z2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJl
cXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNw
bGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVBy
aXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgpIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAg
IHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGE0NWQxOWU1NDczOTk1
NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQuLmZjMTc2MTU2ZGQwZmNkMjIxZGZiODI3MjMxODE0
MmRhNzBjZjA4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDY5LDQ0ICs0NjksMTIgQEAgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVu
dChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAg
ICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVkKCkpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNv
dXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29y
ZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwotICAgIGlmICghcGFn
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2Fw
dHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7
Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0
aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkg
JiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFu
Z2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rvcnko
KS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VD
YXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkp
IHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMo
TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwotICAgICAgICBh
Y3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigp
KTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVy
ZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkgPT0gJmRv
Y3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjYXB0dXJlVHJh
Y2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuY3BwCmluZGV4IDM0OWFkZjZiNDJjY2IzY2MxZDZjMDdhMmU1NDRjMmJjNTkz
YWNhNGIuLmFmYmNlN2E5ZjQ1NmY3ZDUwNzY4NzgwOWNiZTE2ZTExYmU0MGUyOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsOSArNjIsOSBAQCBzdGQ6Om9wdGlvbmFs
PENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1
cmVEZXZpY2UoKQogICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOwogfQogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK0NhcHR1cmVTb3Vy
Y2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVN
ZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAiU3BlZWNoSUQiX3MsIHsgfSk7CisgICAgcmV0dXJuIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVjaElEIl9zLCB7
IH0sIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRh
Q2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
CmluZGV4IGNhOTAzYjEyYjdmMjIxOTM1ZjVkZmExOThkYmIxYThjNGM3OWQzNDkuLmUzMjhkYzNj
N2NkMzBmNjk5MzAyN2NiN2Q5ODRjNjYxN2ZiOTZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNh
bGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJh
Y2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZpbmRDYXB0dXJlRGV2
aWNlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBQYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTFkNmI2ZmM2M2FkMjkxZjA3MjhkNTE4OTdlOGI5
YzE3OTdjYjMwMS4uZDg1ZjBlNzM4YjYwZTFmMDNlOWY0NzRhMzcxOGQxZWFmMjBiNDMzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTIxOTIsNyArMjE5Miw2IEBAIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcAotcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mu
Y3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29u
c3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZWE1NzY1ZWY2OGQzMzgxZDg3MDY0NWZmM2U3ZmI3NWZiY2Q0NGRlMy4u
OTM4YmE1ZmJjNGMzNzY2NjM3OTA5MzZkYjFmMmZkZmI1Y2M3ODk4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4Miw2ICsx
MTgyLDcgQEAKIAkJNDE4RkNCRTcyNzE1QTI4RjAwRjk2RUNBIC8qIFJUQ1J0cENvZGVjQ2FwYWJp
bGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFF
MEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRBMEI0
RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJhbWVS
YXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbSAqLzsgfTsKKwkJNDE5MkJCMTMyN0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTlBQ0Y5MjFGOTdFN0RBMDA5
RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdv
cmtlckZldGNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUJDMkREMTY4NTMy
OTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggKi87IH07CiAJCTQxOUJFNzU5MUJDN0Y0
MkIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlCRTc1MjFCQzdGM0RCMDBFMUM4NUIgLyogV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oICovOyB9OwpAQCAtMTM2Myw3ICsxMzY0LDYgQEAKIAkJNDZBNzhC
MzQyNzk5QkQ3MTAwMTE1NEZFIC8qIFdvcmtlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMUIxRDI2MjZGMThBNEIwMDg4MkRBMiAvKiBX
b3JrZXJPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDZBQUFBM0QyNUQzNjMyMDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29h
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkFBQUEz
QTI1RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9GaWxlUmVhZGVyQ29jb2EuaCAqLzsgfTsKIAkJNDZC
NjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJF
OTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI4NTkzQzI2MTY3MjI3
MDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAv
KiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovOyB9OwogCQk0NkI5NTE5NTIwN0Q2MzM0
MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjk1MThBMjA3RDYzMjgwMEE3RDJERCAvKiBBYnN0cmFj
dERPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2Qjk1MTk2MjA3RDYzM0EwMEE3RDJERCAvKiBBYnN0cmFjdEZyYW1lLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4RjIwN0Q2MzJC
MDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC02MTAzLDcgKzYxMDMsNiBAQAogCQkwNzUzODYwMDE0NDg5
RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEz
QzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXNhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5h
Z2VySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4NTgsNiArODg1Nyw3
IEBACiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcg
LyogRnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
cmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0MjQ3
MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTkyQkIx
MjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE5NDU2OTQyMDM1MDJBNTAwNEJBMjc3IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTk0NTY5NjIwMzUwMkE2MDA0QkEyNzcgLyogQXBwbGljYXRpb25DYWNoZVJlc291cmNlTG9h
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y4RTFG
OTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTMxMSw3ICs5MzExLDYgQEAKIAkJNDZBQUFBM0MyNUQzNjMxNDAwQkFGNDJG
IC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZBQ0Q4MTEyNzAxNjU2QTAwRUY4Q0VEIC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblJlcXVl
c3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2RThDREYw
MDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAvKiBTY3JpcHRCdWZm
ZXJTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRCdWZmZXJTb3VyY2VQcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI5NTE4QTIwN0Q2MzI4MDBB
N0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQWJzdHJhY3RET01XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDZCOTUxOEMyMDdENjMyOTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE4NjkwLDcgKzE4Njg5LDYgQEAKIAkJCQk0QTRGNjU2RDFBQTk5N0Yx
MDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oICovLAogCQkJCTRB
MEZGQTlGMUFBRjVFQTIwMDYyODAzQiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCAq
LywKIAkJCQk0QTBGRkFBMDFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oICovLAotCQkJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlh
U291cmNlRmFjdG9yeS5jcHAgKi8sCiAJCQkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJl
YWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8sCiAJCQkJNDFCODc3NjAyM0RFMTA0MjAwMzYz
OEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmggKi8sCiAJCQkJNEE0RjY1NkUx
QUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5jcHAgKi8sCkBA
IC0yNDI1NSw3ICsyNDI1Myw2IEBACiAJCQkJOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBh
Z2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdl
R3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJCQk0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyog
UGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDREVGREEwRDI3MTIyOUJBMDA1NTU5QTcgLyogUGFn
ZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNGQjE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5o
ICovLApAQCAtMzAxMDAsNiArMzAwOTcsNyBAQAogCQkJCTQxNzhFRjE2MjQxMjVCNkMwMDE5M0M3
NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5jcHAgKi8sCiAJCQkJNDE3OEVGMTQyNDEyNUI2QzAwMTkz
Qzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmggKi8sCiAJCQkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4
QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIuaCAqLywKKwkJCQk0MTkyQkIxMjI3Q0Y2MzgzMDBG
MjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQkyRUUwMkExRTFGNzMyNDI4MDAwNkFG
NzIgLyogUGFzdGVib2FyZC5jcHAgKi8sCiAJCQkJNEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8q
IFBhc3RlYm9hcmQuaCAqLywKIAkJCQlGNDBEQUFFQjI1RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVi
b2FyZENvbnRleHQuaCAqLywKQEAgLTM0MTMzLDYgKzM0MTMxLDcgQEAKIAkJCQk5MzkzRTYwMDE1
MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgwRTZDRkEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MEU2Q0Y2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTkyQkIxMzI3Q0Y2Mzg2MDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlm
cmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAv
KiBDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTQxMDdBNDI2Q0I2NkY4
MDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NTUzLDcg
KzM2NTUyLDYgQEAKIAkJCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QTY3NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDNDFGQUE0NEJDMDAzN0Qx
RTYgLyogUGFnZUhlYXBBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDZCNjUwREQyMjk2MjYy
NzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGREEw
RTI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
Q0IwNTI0MUZCNTFGMzMwMDA4OUI5NyAvKiBQYWdlTmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDVDOUQwMDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0NGQ1ZjhkMjk3NTYzZWUwMjljNDEzZTljZGE3NDk0YzVmYTRkOGFlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBQYWdlSWRlbnRpZmllclR5cGUg
eyB9OwotdXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlm
aWVyVHlwZT47Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBQYWdl
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKaW5kZXggYTRkNGI1
MjViZTg5OWMyOTIxNjQwOWMyODk0NzZlMTlmNDZlNzcxZC4uZDA3OTU2ZjQ5YWFjYThiNWMzNTE5
YTI5NzhiNjkyMGM4NDFhMTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5o
IgorI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzksNiArNDAsNyBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICBNZWRpYUNv
bnN0cmFpbnRzIGF1ZGlvQ29uc3RyYWludHM7CiAgICAgTWVkaWFDb25zdHJhaW50cyB2aWRlb0Nv
bnN0cmFpbnRzOwogICAgIGJvb2wgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIHsgZmFsc2UgfTsK
KyAgICBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcjsKIAogICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTQ3
LDE1ICs0OSwyMCBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICAgICAgZW5jb2Rl
ciA8PCBhdWRpb0NvbnN0cmFpbnRzOwogICAgICAgICBlbmNvZGVyIDw8IHZpZGVvQ29uc3RyYWlu
dHM7CiAgICAgICAgIGVuY29kZXIgPDwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkOworICAgICAg
ICBlbmNvZGVyIDw8IHBhZ2VJZGVudGlmaWVyOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVN0cmVhbVJlcXVlc3Q+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgTWVkaWFTdHJlYW1SZXF1ZXN0IHJl
cXVlc3Q7Ci0gICAgICAgIGlmIChkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnR5cGUpICYmIGRlY29k
ZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykgJiYgZGVjb2Rlci5kZWNvZGUocmVx
dWVzdC52aWRlb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmlzVXNlckdl
c3R1cmVQcml2aWxlZGdlZCkpCi0gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDsKLQotICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVl
c3QudHlwZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmF1ZGlvQ29u
c3RyYWludHMpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52aWRlb0Nv
bnN0cmFpbnRzKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QuaXNVc2Vy
R2VzdHVyZVByaXZpbGVkZ2VkKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVl
c3QucGFnZUlkZW50aWZpZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4gcmVxdWVzdDsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CmluZGV4IGRlMGYxYTdhNGU2MzVhMTM5ZTQ4MjhiNTQ3ZmRjZjA2NjE5YjM1YWIuLmYxYzllNjAy
ODEzYTNiZjZmYjMxNDE3ODhiNjYwNGNhNDNiMDliOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CkBAIC00OCw4ICs0OCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVNZWRp
YVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IG1faWRIYXNoU2FsdChX
VEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
aGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9wYWdlSWRl
bnRpZmllcihwYWdlSWRlbnRpZmllcikKKyAgICAsIG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hT
YWx0KSkKICAgICAsIG1fcGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90
eXBlKHR5cGUpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApp
bmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJmZjQwZDUyNTExNDNiNjlhYjQ0Li5hYzRmZGU5MzVi
NzgwNGRhMmVkZTU5MzA5NTljNDJlMTJiOWY3MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02
OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIAogY2xhc3MgV0VCQ09S
RV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5S
dW5Mb29wPgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwdWJsaWMgTG9nZ2VySGVscGVyCiAj
ZW5kaWYKQEAgLTIyMSw4ICsyMjIsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNl
dFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSWRlbnRpZmll
cjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0p
OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
ZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9LCBQYWdlSWRlbnRpZmllciA9
IHsgfSk7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4m
Jik7CiAKQEAgLTI3Myw2ICsyNzYsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVD
b3VudCB7IDAgfTsKICNlbmRpZgogCisgICAgUGFnZUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmll
cjsKICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OwogICAgIFN0cmluZyBtX2hhc2hlZElEOwogICAg
IFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAK
aW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQwYzExMjA4ZjUzYjFiOTIxYzM0YS4uMDA3NGQxNDQ5
NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZiODZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgTmUKIAog
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJjZTsKICAgICBpZiAoYXVk
aW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCku
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBo
YXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0byBzb3Vy
Y2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0
cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKCFzb3VyY2UpIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmco
IkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNlOiAiLCBzb3VyY2UuZXJy
b3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODksOSArODksOSBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBM
b2dnZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlmICh2aWRlb0RldmljZSkgewogICAgICAgICBDYXB0
dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAgIGlmICh2aWRlb0RldmljZS50eXBlKCkg
PT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAgc291cmNl
ID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWlu
dHMpOworICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCks
ICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5j
cmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZSho
YXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNl
ID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoV1RG
TW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0
cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKIAogICAgICAgICBpZiAoIXNvdXJjZSkg
ewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmlu
ZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSB2aWRlbyBzb3VyY2U6ICIsIHNvdXJjZS5l
cnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVz
dCYKICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJl
cXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRp
c3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwg
U3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVzdC5w
YWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJy
b3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LnZpZGVvQ29uc3Ry
YWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAgICAgIGRpc3BsYXlEZXZpY2VJbmZv
LmFwcGVuZCh7IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRl
dmljZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAg
ICAgICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGF1ZGlvQ2FwdHVyZUZhY3Rv
cnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9
LCB7IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0
IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgICAgICBpZiAoc291cmNl
T3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWlu
dHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAg
ICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291
cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVk
aWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJy
b3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmlj
ZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JF
cnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2
aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwog
ICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291
cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgaW52YWxp
ZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlSW5mby5hcHBlbmQoe3Nv
dXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZX0pOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYxM2I1ODZhNDhlOTY1NWFmZTYxZmQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUg
IkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgotI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL1NIQTEuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnNldEFjdGl2ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCi17Ci0gICAgaWYgKG1fYWN0aXZlU291
cmNlID09ICZzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2Ug
JiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICBtX2FjdGl2ZVNv
dXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAgbV9hY3RpdmVTb3VyY2UgPSAmc291cmNlOwotfQot
Ci12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkK
LSAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBudWxscHRyOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VGYWN0b3J5LmgKaW5kZXggYmEwZDkwM2U2MjllZDhhYmVkZjdjZmNmMWVmOTY1MTEzZTM4
OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTllMmFmODAzYzI0Mjc2ZjZkNzA5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsMjcgKzQyLDEwIEBAIGNsYXNzIFJlYWx0
aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1Y3QgTWVk
aWFDb25zdHJhaW50czsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgU2luZ2xlU291cmNlRmFjdG9y
eSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U2luZ2xlU291cmNlRmFjdG9yeSgpID0gZGVmYXVs
dDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSgp
IHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRp
YVNvdXJjZSogbV9hY3RpdmVTb3VyY2UgeyBudWxscHRyIH07Ci19OwotCi1jbGFzcyBBdWRpb0Nh
cHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5n
bGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIEF1ZGlvQ2FwdHVyZUZhY3Rvcnkgewog
cHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0g
ICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikg
PSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFu
YWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0
IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVTcGVha2VyRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY2FsbGJhY2spIGNvbnN0IHsgY2FsbGJhY2soKTsgfQpAQCAtNzQsMjggKzU4LDIwIEBA
IHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAot
Y2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
OiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2VuZGlmCi17CitjbGFzcyBWaWRlb0NhcHR1
cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkg
PSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgQ2Fw
dHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7CiAKIHBy
b3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xh
c3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6
IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIERpc3BsYXlDYXB0
dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVGYWN0b3J5
KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlz
cGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYm
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0
dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkg
PSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5k
ZXggODJkZTI1OGJiYzdiMWExODZkY2I1NzBkY2EwNDQwZDhhYjQwMDllMS4uMzBiMGEyNThkM2Fk
MDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUoaWQpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFz
aFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRp
YVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdURk1vdmUo
aGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKIHsKIH0KIAogUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2U6On5SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRl
b0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi19Ci0K
LXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXBhcmVUb1Byb2R1Y2VEYXRhKCkK
LXsKLSAgICBBU1NFUlQoZnJhbWVSYXRlKCkpOwotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVG
YWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiBjb25zdCBWZWN0
b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRz
KCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpz
ZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgcwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGlu
Z1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFt
ZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAKICAgICBpZiAoIW1hdGNoLT5yZXF1ZXN0
ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2ICs0MDEsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVkU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFs
PGludAogICAgIGlmICghbWF0Y2gpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fY3VycmVudFBy
ZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0
KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAgICAg
c2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVzZXQtPnNpemUpOwogICAgIHNldEZyYW1lUmF0ZSht
YXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5o
CmluZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVkZmY3ZmQ0NDhiNWYzOTVjZDE4YWIuLmRjMWMzZDVl
YWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFlZjlmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5zdXJl
SW50cmluc2ljU2l6ZU1haW50YWluc0FzcGVjdFJhdGlvKCk7CiAKKyAgICBjb25zdCBWaWRlb1By
ZXNldCogY3VycmVudFByZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFByZXNldC5nZXQo
KTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFz
aFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVjZURhdGEo
KTsKICAgICB2b2lkIHNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRo
LCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQmKSB7IHJl
dHVybiB0cnVlOyB9CkBAIC05MCw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciog
bG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlIjsgfQogI2VuZGlmCiAKKyAgICBSZWZQdHI8VmlkZW9QcmVzZXQ+IG1fY3VycmVu
dFByZXNldDsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwogICAgIERl
cXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKICAgICBkb3VibGUgbV9vYnNl
cnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggY2U2ZTAwMzU5
N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkzZjQzYy4uMWQ0Zjk5YmYyYjEzYWE2NmFmZmMyNDhi
ZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM2LDcgKzM2LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVW
aWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlLCBib29s
IHNob3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6Vmlk
ZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVu
dElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSkKKyAgICA6IFJl
YWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0s
IFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZp
Y2VJREhhc2hTYWx0KCkgfSwgc291cmNlLT5wYWdlSWRlbnRpZmllcigpKQogICAgICwgbV9zb3Vy
Y2UoV1RGTW92ZShzb3VyY2UpKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV9zaG91bGRV
c2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJmYWNlKQpAQCAtOTUsMTIgKzk1LDE1IEBAIHZvaWQg
UmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGlu
dD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNTRVJUKHNvdXJjZVNpemUuaGVpZ2h0KCkpOwogICAg
IEFTU0VSVChzb3VyY2VTaXplLndpZHRoKCkpOwogCisgICAgYXV0byogY3VycmVudFByZXNldCA9
IG1fc291cmNlLT5jdXJyZW50UHJlc2V0KCk7CisgICAgYXV0byBpbnRyaW5zaWNTaXplID0gY3Vy
cmVudFByZXNldCA/IGN1cnJlbnRQcmVzZXQtPnNpemUgOiBzb3VyY2VTaXplOworCiAgICAgaWYg
KCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBzb3VyY2VTaXplLndpZHRoKCkgKiBoZWlnaHQudmFs
dWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7CisgICAgICAgIHdpZHRoID0gaW50cmluc2ljU2l6
ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBpbnRyaW5zaWNTaXplLmhlaWdodCgpOwogICAg
IG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKCp3aWR0aCk7CiAKICAgICBpZiAoIWhlaWdodCkK
LSAgICAgICAgaGVpZ2h0ID0gc291cmNlU2l6ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBz
b3VyY2VTaXplLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IGludHJpbnNpY1NpemUuaGVpZ2h0
KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50cmluc2ljU2l6ZS53aWR0aCgpOwogICAgIG1fY3VycmVu
dFNldHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0KTsKIAogICAgIGlmIChmcmFtZVJhdGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDU1NGY4ZGQyN2E0
YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQyYjcuLjE2NmE1MzA3NzMyYjExNWU0NWQ2MjA3MGVm
YTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwCkBAIC04MywyMyArODMsMjMgQEAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGUgc291cmNlVHlwZUZvckRldmljZShDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHQKICAgICBy
ZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKIH0KIAotQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikKIHsKICAgICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgICAgIHJldHVybiBjcmVhdGUoUmVwbGF5S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUo
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbHNlCiAjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9L
SVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFi
bGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVT
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0
dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2Us
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VuZGlm
Ci0gICAgICAgIHJldHVybiBjcmVhdGUoQ0dEaXNwbGF5U3RyZWFtU2NyZWVuQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlTdHJlYW1T
Y3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNl
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRp
ZgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogI2lmIEhBVkUo
U0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVT
b3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gY3JlYXRlKFNjcmVlbkNh
cHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cyksIGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBj
cmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0
cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVu
dGlmaWVyKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpAQCAtMTE0LDEyICsxMTQsMTIgQEAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmkKICAgICByZXR1cm4geyB9OwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJv
ciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENh
cHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
K0NhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShF
eHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAg
ICBpZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVyLmVycm9yKCkpIH07CiAKLSAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1
cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVy
LnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAg
aWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNv
bnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0xMjksOCAr
MTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXIKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVy
ZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkK
LSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZvckRldmljZShjYXB0dXJlci0+
ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
aGFzaFNhbHQpKQorRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGb3JEZXZpY2Uo
Y2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2NhcHR1cmVyKFdU
Rk1vdmUoY2FwdHVyZXIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMs
ICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXggMDQ1YzhjYzQzNWZjYjI5YzVkZWQwYjJm
MWFlY2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0NzQ5MzRjNWUwNTFhNzVhYjFkZDAzY2M1NGU3Zjg1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAtMTEyLDE0
ICsxMTIsMTQgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7
CiAgICAgfTsKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3Qg
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Ci0gICAg
c3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2Fw
dHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmll
cik7CiAKICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCk7CiAgICAgdm9pZCB1cGRhdGVGcmFtZVNp
emUoKTsKIAogcHJpdmF0ZToKLSAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJl
ZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0
dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYSgpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJ
T1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLmgKaW5kZXggNjY0ODVlMzJiOTc0YjI2YjZkYjcwZWYzMWY0MTU0NTBj
MGM2MzFmZi4uYjEwNWIzZTEwYzgwOTk5OGNhMTE1OTU2ODBhNGFlODY2MzdiM2JiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCkBAIC00NSw3ICs0NSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBiZWdpbkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbigpIHsgYmVnaW5JbnRl
cnJ1cHRpb24oKTsgfQogICAgIHZvaWQgZW5kQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKEF1ZGlv
U2Vzc2lvbjo6TWF5UmVzdW1lKSB7IGVuZEludGVycnVwdGlvbigpOyB9CiAKLSAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgZmluYWw7CisgICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBm
aW5hbDsKICAgICB2b2lkIGFkZEV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyJikg
ZmluYWw7CiAgICAgdm9pZCByZW1vdmVFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZl
ciYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCmluZGV4
IDY3MDU5MmYzNTE2N2Y2YjA2MTk5NmIwMTY3NGViOWI1NDg0NDNhNTIuLmJiMzI5ZmUwZTFkODU3
ZWZiNjE3MTc0YmM0OTkxMzZiYWM4M2UzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlSU9TLm1tCkBAIC0xMTYsMTMgKzExNiwxMyBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2VGYWN0b3J5SU9TOjpyZW1vdmVFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZl
cgogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24o
KS5kaXNhYmxlQWxsRGV2aWNlc1F1ZXJ5KCk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeUlPUzo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
ICAgICAvLyBXZSBlbmFibGUgZXhoYXVzdGl2ZSBxdWVyeSB0byBiZSBzdXJlIHRvIHN0YXJ0IGNh
cHR1cmUgd2l0aCB0aGUgcmlnaHQgZGV2aWNlLgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3Rv
cCB0aGUgYXV4aWxpYXJ5IHNlc3Npb24gYWZ0ZXIgc3RhcnRpbmcgY2FwdHVyZS4KICAgICBpZiAo
bV9vYnNlcnZlcnMuY29tcHV0ZXNFbXB0eSgpKQogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5lbmFibGVBbGxEZXZpY2VzUXVlcnkoKTsKLSAg
ICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgIHJl
dHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDhjNDEzOGU3MzM4
Y2VmYzY5MTczNDIwNzQ0M2FhNDllNTYyZjlmZWYuLjRiYWZiNTg5MjhhY2UwMWYzYmFlNTkzZTgw
OWNiNGJiOGViMWJjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC01NCw3ICs1
NCw3IEBAIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKIGNsYXNzIEFWVmlkZW9DYXB0
dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLCBwcml2YXRlIE9y
aWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVv
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYXB0dXJlRGV2aWNlU3VzcGVuZGVkRGlkQ2hhbmdlKCk7CiAKIHByaXZhdGU6Ci0g
ICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgU3RyaW5nJiYgaWQsIFN0
cmluZyYmIGhhc2hTYWx0KTsKKyAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZp
Y2UqLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKICAg
ICB2aXJ0dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAgICAgdm9pZCBjbGVhclNlc3Np
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA2ZTc0M2U1YTk0NTE5MzA3
N2YyZTYwZTJlMWJkMzRjYWNmZmIzNTkyLi41YTBlYTc3OGQ1MjhkM2IxNGI5ZjdmODNmODc3MDRi
ODc4NDVjNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC0xMDgsMTMgKzEw
OCwxMyBAQCBwdWJsaWM6CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUZvcm1hdD4gZm9y
bWF0OwogfTsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
ICAgICBBVkNhcHR1cmVEZXZpY2UgKmRldmljZSA9IFtQQUw6OmdldEFWQ2FwdHVyZURldmljZUNs
YXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmlkXTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAg
cmV0dXJuIHsgIk5vIEFWVmlkZW9DYXB0dXJlU291cmNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RG
TW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShpZCksIFdURk1vdmUo
aGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAg
ICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMp
OwogICAgICAgICBpZiAocmVzdWx0KQpAQCAtMTI0LDggKzEyNCw4IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYm
IGhhc2hTYWx0CiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSogZGV2aWNlLCBTdHJpbmcm
JiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZShkZXZpY2UubG9jYWxpemVkTmFtZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQor
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmlj
ZSogZGV2aWNlLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNl
LmxvY2FsaXplZE5hbWUsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50
aWZpZXIpCiAgICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWVmlkZW9DYXB0
dXJlU291cmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pKQogICAgICwg
bV9kZXZpY2UoZGV2aWNlKQogICAgICwgbV92ZXJpZnlDYXB0dXJpbmdUaW1lcigqdGhpcywgJkFW
VmlkZW9DYXB0dXJlU291cmNlOjp2ZXJpZnlJc0NhcHR1cmluZykKQEAgLTEzNyw5ICsxMzcsNiBA
QCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291cmNlKCkKIHsKICAgICBB
TFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
dmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgog
ICAgIFttX29iamNPYnNlcnZlciBkaXNjb25uZWN0XTsKICAgICBbbV9kZXZpY2UgcmVtb3ZlT2Jz
ZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInN1c3BlbmRlZCJdOwogCkBA
IC00NjksMTAgKzQ2Niw2IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVy
ZVNlc3Npb24oKQogewogICAgIEFMV0FZU19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJ
RVIpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNl
KCp0aGlzKTsKLSNlbmRpZgotCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAgICAgUmV0YWlu
UHRyPEFWQ2FwdHVyZURldmljZUlucHV0PiB2aWRlb0luID0gYWRvcHROUyhbUEFMOjphbGxvY0FW
Q2FwdHVyZURldmljZUlucHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJv
cjomZXJyb3JdKTsKICAgICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmNwcAppbmRleCA5YTBiMjllZGIxZDE3ODE1NjU0NTBmNThkZTkwOWY2OGM4NzNlYTAzLi5k
MjRkNGIzMWZjNTQyMTBlZDhkNTg2MGFlNjc3ODM2Y2M1NDBhOWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC02NjgsMjcgKzY2OCwyNyBAQCBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgaW5pdGlhbGl6ZUNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoUmVmPENvcmVB
dWRpb0NhcHR1cgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJj
ZSkpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgYXV0byBkZXZpY2UgPSBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlvRGV2aWNlV2l0
aFVJRChkZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJObyBD
b3JlQXVkaW9DYXB0dXJlU291cmNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0
cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZp
Y2VJRCgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1
cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZpY2VJRCgpLCBudWxscHRyLCBwYWdlSWRlbnRp
ZmllcikpOwogI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBhdXRvIGRldmljZSA9IEFW
QXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmF1ZGlvU2Vzc2lv
bkRldmljZVdpdGhVSUQoV1RGTW92ZShkZXZpY2VJRCkpOwogICAgIGlmICghZGV2aWNlKQogICAg
ICAgICByZXR1cm4geyAiTm8gQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlIGRldmljZSJfcyB9
OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgMCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVk
aW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVs
KCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDAsIG51bGxwdHIsIHBhZ2VJZGVudGlmaWVyKSk7CiAj
ZW5kaWYKICAgICByZXR1cm4gaW5pdGlhbGl6ZUNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92
ZShzb3VyY2UpLCBjb25zdHJhaW50cyk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJyaWRlVW5pdCkKK0NhcHR1cmVT
b3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJy
aWRlVW5pdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCwgJm92ZXJyaWRlVW5pdCkp
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShoYXNoU2FsdCksIDAs
ICZvdmVycmlkZVVuaXQsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgcmV0dXJuIGluaXRpYWxpemVD
b3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSwgY29uc3RyYWludHMpOwogfQog
CkBAIC03ODAsOCArNzgwLDggQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6
d2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoRnVuY3Rpb248dm8KICAgICByZXR1cm4g
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5pdCgpLndoZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5u
aW5nKFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0
cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBjYXB0dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJl
ZFVuaXQqIG92ZXJyaWRlVW5pdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShoYXNoU2FsdCkpCitDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9D
YXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYg
aGFzaFNhbHQsIHVpbnQzMl90IGNhcHR1cmVEZXZpY2VJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCog
b3ZlcnJpZGVVbml0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUo
bGFiZWwpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlm
aWVyKQogICAgICwgbV9jYXB0dXJlRGV2aWNlSUQoY2FwdHVyZURldmljZUlEKQogICAgICwgbV9v
dmVycmlkZVVuaXQob3ZlcnJpZGVVbml0KQogewpAQCAtODIxLDE5ICs4MjEsMTEgQEAgdm9pZCBD
b3JlQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKQog
CiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjp+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9y
eTo6c2luZ2xldG9uKCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0KICAgICB1
bml0KCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291
cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNv
dXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAgIGluaXRpYWxpemVUb1N0YXJ0UHJvZHVjaW5nRGF0
YSgpOwogICAgIHVuaXQoKS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDMzMDM2ZTk5NmY2NzNlNTI3MDIzODViNDFlMGE5M2YxODAz
NTFmOTkuLjBlYzY3MmJmOWYxYzM2MDU2MjQ5NzBjMjQxZjZhMGExNTkzNTJkOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNTEsMTUgKzUxLDE1IEBAIGNsYXNzIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogCiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVs
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1No
YXJlZFVuaXQmIG92ZXJyaWRlVW5pdCk7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVs
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1No
YXJlZFVuaXQmIG92ZXJyaWRlVW5pdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIENNQ2xv
Y2tSZWYgdGltZWJhc2VDbG9jaygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hT
YWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqID0gbnVsbHB0
cik7CisgICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQsIEJhc2VB
dWRpb1NoYXJlZFVuaXQqLCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+Q29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZSgpOwogICAgIEJhc2VBdWRpb1NoYXJlZFVuaXQmIHVuaXQoKTsKICAgICBj
b25zdCBCYXNlQXVkaW9TaGFyZWRVbml0JiB1bml0KCkgY29uc3Q7CkBAIC0xMjksMTQgKzEyOSwx
NCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aGVuQXVkaW9DYXB0dXJlVW5p
dElzTm90UnVubmluZyhGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgotICAgIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBvdmVycmlkZTsKKyAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZp
ZXIpIG92ZXJyaWRlOwogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkgZmluYWw7CiAgICAgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVh
a2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsOwogfTsKIAotaW5saW5lIENhcHR1cmVTb3VyY2VPckVy
cm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitpbmxpbmUgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCiB7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
KTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBh
Z2VJZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVu
aXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlv
U2hhcmVkVW5pdC5tbQppbmRleCAwZGQzZDcxY2FlN2E2M2I2MzcyMDhmMjgzODIyMGU2NTllNDIx
M2NlLi4zNDIyNzQyM2Q4OWIwYTA0OWRlNjlhY2UzNWY4ZjM4ZjNkMzBjMzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVk
VW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgdm9pZCBhZGRIdW0o
ZmxvYXQgYW1wbGl0dWRlLCBmbG9hdCBmcmVxdWVuY3ksIGZsb2F0IHNhbXBsZVJhdGUsIHVpbnQ2
NF90CiAgICAgfQogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAg
IGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VX
aXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKQEAgLTkxLDcg
KzkxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1v
Y2sgbWljcm9waG9uZSBkZXZpY2UiX3MgfTsKIAogICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNp
bmdsZXRvbigpLnNldERldmljZUlEKGRldmljZUlEKTsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhXVEZNb3ZlKGRldmljZUlEKSwgIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgTW9ja0F1ZGlvU2hhcmVkVW5p
dDo6c2luZ2xldG9uKCkpOworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVh
dGVGb3JUZXN0aW5nKFdURk1vdmUoZGV2aWNlSUQpLCAgV1RGTW92ZShuYW1lKSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzLCBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKSwg
cGFnZUlkZW50aWZpZXIpOwogfQogCiBNb2NrQXVkaW9TaGFyZWRVbml0JiBNb2NrQXVkaW9TaGFy
ZWRVbml0OjpzaW5nbGV0b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
aAppbmRleCA5NWNmMzVjZDRlYjEzMThkODY4MzI3M2E1ZDA5NmM3MzY0NDYwOGIwLi40ODI5NTc5
ZDJmYTE2NTNjZWMwMDEyN2MwM2YyNGNhMzA5NzZjZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMuaApAQCAtNDcsMTMgKzQ3LDEzIEBAIGNsYXNzIEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ7CiAKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjIGZpbmFsIDog
cHVibGljIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAg
c3RhdGljIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlD
YXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYygp
ID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U7Ci0gICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZlcigpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGZkMTk0ZTYxOWE0NGI4
ODExZGNiMTdlMDA0NjcxZjQ0NTM1ZTdhOTcuLjllMjVmNmQyZDQzMTNmOTBkZTljMGZiMWQ2MGRk
ODhiMDk3ODVkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0K
QEAgLTUyLDcgKzUyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJ
RChkZXZpY2VJRCk7CkBAIC02MSw3ICs2MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAg
ICAgICAgIHJldHVybiB7ICJObyBtb2NrIGNhbWVyYSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0g
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwor
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
YyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBh
Z2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGlmIChhdXRv
IGVycm9yID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAg
ICAgICByZXR1cm4gV1RGTW92ZShlcnJvci0+bWVzc2FnZSk7CkBAIC03MCwxMyArNzAsMTMgQEAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Io
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFdURk1vdmUoc291cmNlKSkpOwogfQogCi1SZWY8
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVh
dGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCkKK1JlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZSho
YXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCitN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlk
ZW50aWZpZXIpCiAgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UgUmVuZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFj
dGl2ZSkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5j
cHAKaW5kZXggZjM2N2RhMWJkNTg0ZmU0NTlkYTJiNzVmMjE1M2QzYWRiNTlmOTY1Zi4uMmQ4Zjg0
ZDRhNzMwZWYwMWQ5MDdmYTU5NGYxMjI0ZGJiNmQ4YjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJN
YWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtNDUsMTAgKzQ1LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeU1hYyBmaW5hbCA6
IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7Ci0gICAgICAgIHJldHVybiBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtNTcsOSArNTcsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1
YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewotICAgICAgICBy
ZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogICAgIH0KIHByaXZhdGU6CiAgICAgRGlzcGxheUNhcHR1cmVNYW5h
Z2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJldHVybiBEaXNwbGF5Q2FwdHVy
ZU1hbmFnZXJDb2NvYTo6c2luZ2xldG9uKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggZDA4OTRk
NWQ0ZmU4MjVmOGIwNmQ2YzkyOGFhZjA5ODYzNzdjYzRiMi4uOWU4OGFiMWU1OWU3YTcyYjc4Yzc1
NWQ4MjQ3OGJhYmY5OTY0Y2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTYyLDggKzYyLDgg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVu
dGlmaWVyKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlIFJlbmRlciBRdWV1ZSIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJy
ZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6dGljaykKIHsKQEAgLTc3LDkg
Kzc3LDYgQEAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6On5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNl
dHRpbmdzKCkKQEAgLTEzNiw3ICsxMzMsNiBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldAogdm9p
ZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Q
cm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRS
ZWNvcmQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBj
NzliOTQyNDJkMDg2OGZmOC4uN2EwZjRkMTViOTUzZjBhMDhlODFmY2M0OTVkZjVlMzgyZjlhN2Uw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTMgKzQyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNv
dXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRD
aGFubmVsQ291bnQodW5zaWduZWQpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0KTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZp
cnR1YWwgdm9pZCByZW5kZXIoU2Vjb25kcykgPSAwOwogICAgIHZvaWQgc2V0dGluZ3NEaWRDaGFu
Z2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjExOTM0OGY5ODY1YTg4
ZmIyNzkxZTNhMmQ3MTRhNDAxLi42ZDEyYzZiZjA3OGRhMmY1NGVmNDY3NTY3YTBmZDM1NWEwNjlk
MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAxLDEzICsxMDEsMTMgQEAg
c3RhdGljIGlubGluZSBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2aWNlcygpCiAK
IGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBWaWRlb0NhcHR1
cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRl
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7
CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYSk7CiAgICAgICAgIGlmICghTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkNhbWVyYSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJV
bmFibGUgdG8gZmluZCBtb2NrIGNhbWVyYSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQi
X3MgfTsKIAotICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
IH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTExNyw3ICsxMTcs
NyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKIGNsYXNzIE1vY2tEaXNwbGF5Q2FwdHVy
ZXIgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXIgewog
cHVibGljOgotICAgIGV4cGxpY2l0IE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURl
dmljZSYpOworICAgIE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYsIFBh
Z2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBib29sIHN0YXJ0KCkgZmluYWw7CkBAIC0x
MzQsOCArMTM0LDggQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
bV9zZXR0aW5nczsKIH07CiAKLU1vY2tEaXNwbGF5Q2FwdHVyZXI6Ok1vY2tEaXNwbGF5Q2FwdHVy
ZXIoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQotICAgIDogbV9zb3VyY2UoTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmlu
ZyB7IH0pKQorTW9ja0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAg
IDogbV9zb3VyY2UoTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNw
bGF5Q2FwdHVyZXIoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IH0sIHBhZ2VJZGVudGlmaWVyKSkKIHsKIH0KIApAQCAt
MTc3LDcgKzE3Nyw3IEBAIEludFNpemUgTW9ja0Rpc3BsYXlDYXB0dXJlcjo6aW50cmluc2ljU2l6
ZSgpIGNvbnN0CiAKIGNsYXNzIE1vY2tSZWFsdGltZURpc3BsYXlTb3VyY2VGYWN0b3J5IDogcHVi
bGljIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlLnR5cGUoKSwgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmlu
ZCBtb2NrIGRpc3BsYXkgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CkBAIC0x
ODYsMTEgKzE4NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgICAgICByZXR1cm4gRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihkZXZpY2Up
KSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAg
cmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShVbmlxdWVSZWY8RGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXI+KG1ha2VVbmlxdWVSZWY8TW9ja0Rpc3BsYXlD
YXB0dXJlcj4oZGV2aWNlLCBwYWdlSWRlbnRpZmllcikpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VsaWYgVVNFKEdTVFJFQU1FUikK
ICAgICAgICAgICAgIHJldHVybiBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OmNy
ZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAjZWxzZQotICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
U3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
LCBwYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CkBAIC0yMTEsMjAgKzIx
MSwxNSBAQCBwcml2YXRlOgogCiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3Rvcnkg
ZmluYWwgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9
PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICAgICAgICAgaWYgKCFN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50
SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSwgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIG1pY3Jv
cGhvbmUgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CiAKLSAgICAgICAgcmV0
dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6
Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2Uu
bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVy
KTsKICAgICB9CiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBz
ZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2Uoc291
cmNlKTsgfQotICAgIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYg
c291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24o
KS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSog
YWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgpOyB9Ci0jZW5kaWYKICAgICBDYXB0dXJlRGV2
aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCk7IH0KICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJE
ZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNwZWFrZXJEZXZpY2VzKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDYwYzVhOGNk
NmQ1MGU5MDBlNGMxZWJkMWZkOGUyZGRhZThiNmRiOWQuLjNjZjc0NjBjODBlM2JlMWQ1YmEzZjBj
ZWQ3YzE5YjI1ZGYyOWFiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC01MCw3ICs1MCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgIVVTRShHU1RSRUFNRVIpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBA
IC01OSw3ICs1OSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7
ICJObyBtb2NrIGNhbWVyYSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0gICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAg
aWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMp
KQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBIYXNoU2V0
PE1vY2tSZWFsdGltZVZpZGVvU291cmNlKj4mIGFsbE1vY2tSZWFsdGltZVZpZGVvU291cmNlKCkK
ICAgICByZXR1cm4gdmlkZW9Tb3VyY2VzOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVy
KQogICAgICwgbV9lbWl0RnJhbWVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVGcmFtZSkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpAQCAtMjM5LDcgKzIzOSw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnN0YXJ0Q2FwdHVyZVRpbWVyKCkKIAogdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpOwogICAg
IHN0YXJ0Q2FwdHVyZVRpbWVyKCk7CiAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCA5MzVjNmRkZWNiOGQ0NThjOTE2NmY1YjI2N2FjNWM0
OTRmZjM0M2I1Li5mYzVmYzdhYTFjYjc2ZmE2ZDk3MzkwNTg2NWJmYWZlY2VkZTM2YmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogY2xh
c3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgot
ICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Kik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNlKCk7
CiAKICAgICBzdGF0aWMgdm9pZCBzZXRJc0ludGVycnVwdGVkKGJvb2wpOwpAQCAtNTYsNyArNTYs
NyBAQCBwdWJsaWM6CiAgICAgSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKCkgY29uc3Q7CiAKIHBy
b3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZl
cigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBhZDA3NTgyMTc1MTAx
MzU3ZTA1NWIxMTQyNjg4OTJmYTdjNzNjOTQ2Li5kN2FmOTE3NDk1YzBiMmNjZWE4YmUyMGFhZjE5
OTVkOGQ2OWYzMGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMjg5LDcgKzI4
OSw3MCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSgpCiAgICAgbV9jb25uZWN0aW9uUHJveHktPnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wg
c2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJiBj
b21wbGV0aW9uSGFuZGxlcikKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1pY3JvcGhvbmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogbWVkaWFD
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQorICAgICAgICByZXR1cm4gc291
cmNlT3JFcnJvcjsKKworICAgIGF1dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5l
bnN1cmUocGFnZUlkZW50aWZpZXIsIFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRl
cmF0b3ItPnZhbHVlOworCisgICAgLy8gRklYTUU6IFN1cHBvcnQgbXVsdGlwbGUgbWljcm9waG9u
ZXMgc2ltdWx0YW5lb3VzbHkuCisgICAgaWYgKHBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3Vy
Y2UpIHsKKyAgICAgICAgYXV0byYgbWljcm9waG9uZVNvdXJjZSA9ICpwZXJQYWdlU291cmNlcy5t
aWNyb3Bob25lU291cmNlOworICAgICAgICBpZiAobWljcm9waG9uZVNvdXJjZS5wZXJzaXN0ZW50
SUQoKSAhPSBkZXZpY2UucGVyc2lzdGVudElkKCkgJiYgIW1pY3JvcGhvbmVTb3VyY2UuY2FwdHVy
ZURpZEZhaWwoKSkgeworICAgICAgICAgICAgLy8gV2UgY2Fubm90IHJldXNlIHRoZSBzb3VyY2Ug
c28gZmFpbCBpdC4KKyAgICAgICAgICAgIG1pY3JvcGhvbmVTb3VyY2UuY2FwdHVyZUZhaWxlZCgp
OworICAgICAgICAgICAgbWljcm9waG9uZVNvdXJjZS5zdG9wKCk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgcGVyUGFn
ZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZSA9IFdlYWtQdHIgeyBzb3VyY2UuZ2V0KCkgfTsKKyAg
ICByZXR1cm4gc291cmNlOworI2Vsc2UKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CisjZW5kaWYKK30KKworQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlQ2FtZXJhU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIG1l
ZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQoreworICAgIGF1
dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5lbnN1cmUocGFnZUlkZW50aWZpZXIs
IFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGlm
IChwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UpIHsKKyAgICAgICAgYXV0byYgY2FtZXJhU291
cmNlID0gKnBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZTsKKyAgICAgICAgLy8gRklYTUU6IE9w
dGltaXplIG11bHRpcGxlIGNvbmN1cnJlbnQgY2FtZXJhcy4KKyAgICAgICAgaWYgKHBlclBhZ2VT
b3VyY2VzLmNhbWVyYVNvdXJjZS0+cGVyc2lzdGVudElEKCkgPT0gZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpICYmICFjYW1lcmFTb3VyY2UuY2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgLy8g
V2UgY2FuIHJldXNlIHRoZSBzb3VyY2UsIGxldCdzIGRvIGl0LgorICAgICAgICAgICAgYXV0byBz
b3VyY2UgPSBjYW1lcmFTb3VyY2UuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChtZWRpYUNvbnN0
cmFpbnRzKSB7CisgICAgICAgICAgICAgICAgYXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqbWVkaWFDb25zdHJhaW50cyk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvci0+bWVzc2FnZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9CisgICAgfQor
CisgICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmll
cik7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQorICAgICAgICByZXR1cm4gc291cmNlT3JFcnJv
cjsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKHBlclBhZ2VTb3VyY2VzLmNh
bWVyYVNvdXJjZSkgeworICAgICAgICAvLyBXZSBjYW5ub3QgcmV1c2UgdGhlIHNvdXJjZSBzbyBm
YWlsIGl0LgorICAgICAgICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UtPmNhcHR1cmVGYWls
ZWQoKTsKKyAgICAgICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlLT5zdG9wKCk7CisgICAg
fQorI2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7Cisg
ICAgc291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAg
ICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UgPSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07
CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3Ry
YWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Qcm94eS0+d2lsbFN0YXJ0Q2FwdHVyZShkZXZp
Y2UudHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCAiUmVx
dWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgfSwg
eyB9LCB7IH0sIHsgfSwgMCk7CkBAIC0yOTksMTYgKzM2MiwxNCBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaQogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dp
dGNoIChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50
cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVNaWNyb3Bob25lU291cmNlKGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
Q2FtZXJhOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Ci0gICAgICAgIGlm
IChzb3VyY2VPckVycm9yKQotICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNl
LT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgc291
cmNlT3JFcnJvciA9IGNyZWF0ZUNhbWVyYVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgc291cmNl
T3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlD
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92
ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgp
LmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNv
bnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CiAgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oCmluZGV4IDY1OGI1YjdkMTg4NmM0ODMwNmYxODAzYTM4ODA0Yjk1M2Q4NTRmNTQu
LjViZWMxMDc1YzQ0ZjJhNjAxZWY1ODVjNTg0NzViYjc1N2YyMmY0ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAg
dXNpbmcgQ3JlYXRlU291cmNlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wg
c3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRT
aXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3Rl
RnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQs
IFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRV
c2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRl
U291cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZW5k
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKQEAgLTk0LDExICs5NCwy
MSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24oV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3Rh
dGlvbik7CiAKKyAgICAKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVN
aWNyb3Bob25lU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYW1l
cmFTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOworCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVBy
b3h5OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsKICAgICBVbmlxdWVSZWY8
Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKICAgICBXZWJDb3JlOjpPcmllbnRh
dGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsKKworICAgIHN0cnVjdCBQ
YWdlU291cmNlcyB7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gbWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgV2Vha1B0cjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjYW1lcmFTb3VyY2U7CisgICAgfTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBQYWdlU291cmNlcz4gbV9wYWdlU291cmNlczsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdiY2E0NTNlNzM3NTM3
NjlhN2ZjNThlMmU3MDczMmI4NTdkOWI4MjkuLmVkN2Y0ZGFiMTZiZWE3OWI0MjFkOTY2MGVlMWU0
OWMzZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2Vz
IC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRl
dmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBj
b25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAoYm9v
bCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRh
PiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5j
CisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVz
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2Vz
cywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0
cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKSBBc3luYwogICAgIFN0
YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBm
NWE2MTY0ZTgzMWM5Njg5OTVlMzMyZWYwMjY5YzBiOGMxOGNmOWYyLi44OGZkYTg0OTE0NjBiNzc3
NTBkN2RhMzUwMWJlYTA1ZTBmMDMzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNl
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBwYWdlSWRlbnRpZmllcikpOwogfQog
Ci1TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQotICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkK
K1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQor
OiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5n
IHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9LCB7IH0sIHBhZ2VJZGVudGlmaWVyKQog
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikK
ICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKaW5kZXggNzhiZmU1YjY0YjIwZGQwOTAxYjk5YWE3M2MzNWM5MDcwMjFkOWIwNi4uOWFmZmYy
ODAzNWEwZDAzMjVmMjZjMGQyZTljNmRhZGRhZWJhNWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgV2ViQXVkaW9CdWZm
ZXJMaXN0OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwogICAgIAotY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTYyLDcg
KzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwogCiBwcml2
YXRlOgotICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4
IDY4ZGMxMTVmMTY5ZjE5ZWY4OWY2NmZlNWM4ZjI0MWM4NWI5NzhkNzEuLmUzYTcwNGUxYmMyMjZl
ZDQ4MWEwZDc1ZDE4NzA1ZmEzYjlhNTI5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNl
KFNwZWVjaFJlY29nbml0CiAgICAgfQogI2VuZGlmCiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRl
bnRpZmllciwgY2FwdHVyZURldmljZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVy
LCBjYXB0dXJlRGV2aWNlLCBzb3VyY2UucGFnZUlkZW50aWZpZXIoKSkpOwogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI1OWFlNzNlY2I5
MjEzNWYwOWE5NjUwMWIzM2VkMmE0MWQzNTMzMTkuLmM5YWY1YzZmOTZjYjcxZGM4MjJjZTAzOTBi
YTdjNDBkNDQyYWNkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMTA5OTYsMTIgKzEwOTk2LDEyIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlCiAgICAg
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxl
IGZvciBjYXB0dXJlIiB9OwogCiAgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5H
UFVQcm9jZXNzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3By
b2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNl
T3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3Jl
YXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSwgbV93ZWJQYWdlSUQpIH07CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vz
cy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpLCAqY2FwdHVyZURldmljZSkgfTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3By
b2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9OwogI2Vsc2UKLSAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlLCBtX3dlYlBh
Z2VJRCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAKaW5kZXggYjgxZGJiMjNlZmY0NTMzYTA3MjU1Nzg4YTI2
ZWVhN2MzM2UwNWFlMy4uOWYwOWY2MjI2MjgyNjgzYzI2MGI1MzQ1MTZmOTgwOGRhNGI3YzQwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwCkBAIC0yMDgsOSArMjA4LDkgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCiAKICNlbmRpZgog
Ci12b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0
ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7CisgICAgYXV0
byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoZGV2aWNlLCBwYWdlSWRlbnRpZmllcik7CiAgICAgaWYgKCFyZXN1bHQpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0
aW1lIHNvdXJjZSIpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50
aWZpZXIpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmgKaW5kZXggMTg4NDc3MWE4N2I3ZjY2OTkxOTBhNWRlNTY5MTE2Y2M0N2Y4NjFi
My4uNjIzNDQ4ZmJhOWRkN2Y4NWFiNzMzNTkwNmQ0OGJhOTY5NDhmMzM2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCi0gICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmKTsKKyAgICB2b2lkIGNyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIGRlbGV0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAyMzgyZGYxZDhlNTlm
MGE4ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFkLi5hYjVlOThlNDk3MTlhYWRlZDVlOTFiYmQzNzM4
MDdlMTBkMDE3M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKICAg
ICBEZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKICAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKTsKICAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDJjZTk1NGY0
OGJmZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2UxMzguLjg3Mjk2OTE2NjcyMTE5ZjFiYmQzOTI4
YzYwMTgzMmUzNmNlMzRmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQzLDI5ICs0
MywyNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1Jl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFp
bnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJj
ZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5h
bWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFn
ZXIpCiB7CiAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZSk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0
QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0
ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwg
YXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8p
IHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQo
KSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBh
dXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFz
dWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVz
c2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcsMTAgKzg0LDYgQEAgUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKQogICAgICAgICBp
ZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVu
dCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5z
ZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmJiBjYXBhYmlsaXRpZXMpCkBAIC0xMTksOSArMTEyLDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6aGFzRW5kZWQoKQogewot
ICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKLSAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50
aWZpZXIoKSk7Ci0gICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVt
b3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgaWYgKG1fcHJveHkuaGFzRW5kZWQoKSkgewor
ICAgICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgICAgIG1f
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlm
aWVyKCkpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0
dXJlU3RvcHBlZCgpCkBAIC0xNDksMTQgKzE0Myw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlv
CiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAg
Ly8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0
J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigp
LmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJl
c2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmgKaW5kZXggYTNjNDFkYzA0YWFjZTVkZDRlYTczOWE2MGYyYTUzMGU1ZTNkMDc1ZS4uODhh
YWJhMDhiNTY1YmVlOWFlNGZhNGE3M2E3ODg4NjU5MDg3MWUwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBS
ZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAg
flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5Lmlk
ZW50aWZpZXIoKTsgfQpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzb3VyY2VN
dXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KIAog
cHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2Vzcyk7CisgICAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVk
aWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5z
dGFydFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAppbmRleCBj
NTUzMzUzM2FjNTViMWY1YzJhZGFlZTE4ODk2ZjM2MTRmN2NlZTM1Li5iNDkwYTdhNTdmMTY0NzNi
NzQ1Y2Q2YmYyMDZlMzFjMTA1YmU5MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcApA
QCAtMzgsMTcgKzM4LDE3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5h
Z2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRl
KCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1h
bmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAg
bWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBz
b3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0K
IAotUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCitSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJp
bmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
V1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlm
aWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAg
ICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7CkBAIC01Nyw3ICs1Nyw3IEBAIFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVuCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGVSZW1v
dGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShk
ZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0o
Ym9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0
byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CisgICAgbV9wcm94eS5jcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1
dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywg
YXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAg
ICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTEwMCw5ICsxMDAsMTAgQEAgdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWQKIAog
dm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3By
b3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkp
OwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJj
ZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAg
bV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBtX21hbmFnZXIu
cmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsK
KyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjYXB0dXJlU3Rv
cHBlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKaW5kZXggNTJmNTM1YjNkNzNkNjg5Nzc4Yjk1
ZjE5NDdmOGU3MmQ4Mjk4ZDZhMS4uOGQ4MmZiNTk3NDllYTg1ZGMwYmQ0NjVjNDg1YzI0NzkyMDJj
MGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
OworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAg
flJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgpOwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHku
aWRlbnRpZmllcigpOyB9CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNvdXJj
ZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQog
CiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwor
ICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA0YTI5NGQ4YzU0MTcxZTZlMTAw
NWIzYTQwNjY1NmIyNmMxNTljMDRkLi5iZTc1NDU1ODE4YjUzNWU1ZWYyZDZjODg1NDYxNzQwMGIz
YzBjOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNjgsOSArNjgs
OSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0Rh
dGEoKQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAK
LXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0ZUNhbGxiYWNrJiYgY2Fs
bGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJREhhc2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgQ3Jl
YXRlQ2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSkKIHsKLSAg
ICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29u
c3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25z
dHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBw
bHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTk5LDkgKzk5LDE0IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
OjpmYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYKICAgICAgICAgY2Fs
bGJhY2tzLnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNF
cnJvciB7IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eTo6aGFzRW5kZWQoKQorYm9vbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6Omhhc0VuZGVkKCkKIHsKKyAgICBpZiAobV9pc0VuZGVkKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVy
IH0sIDApOworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBj
YWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAppbmRleCAwM2MxZDcxMjIyN2Nk
NWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi4yMDZmNmY5MTc4YWM5Yjg0YTM2N2YwMjcwNmEw
NjNlNDRkNzU4ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCkBAIC01MywxMyAr
NTMsMTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcg
Q3JlYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRh
PiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1l
ZGlhU291cmNlKGNvbnN0IFN0cmluZyYsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNl
UmVtb3RlRnJhbWUgPSBmYWxzZSk7CisgICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShj
b25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwg
Ym9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9IGZhbHNlKTsKIAogICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJp
bmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQg
ZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7
CiAgICAgCi0gICAgdm9pZCBoYXNFbmRlZCgpOworICAgIGJvb2wgaGFzRW5kZWQoKTsKICAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsK
ICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVy
JiYpOwpAQCAtNzUsMTIgKzc1LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgbV9kZXZpY2U7CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBm
YWxzZSB9OworICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlkZW50aWZpZXI7CiAK
ICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAgICAgRGVxdWU8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1f
cGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBm
YWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsK
ICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9
OwogfTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBkMmQyNGFiYWI5
ZWMzNGEwZGEyMmViNjVhOGFkM2NiNWYwMDdkOTdjLi44OGI4ZWM3NmJhNDg3NjQ3YmVkZmUyOTk4
MDg1YmU3MWM3NTM5OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00NSwyOSArNDUs
MjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2Us
IGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlk
ZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAg
ICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5j
b3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICBy
ZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAg
IDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAg
ICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Ms
IGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJ
REhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBz
dWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNh
cGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11
dGFibGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNo
U2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGlu
Z3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8g
ZnJhbWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAg
ICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtOTMsMTEgKzg5LDYgQEAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkK
ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNl
KCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNl
dENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0
aWVzKQpAQCAtMTQ3LDkgKzEzOCwxMCBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogCiB2b2lk
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhh
c0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwotICAg
IG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVu
dGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAgbV9tYW5h
Z2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBtX21hbmFnZXIucmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICB9
CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQpA
QCAtMjA0LDE0ICsxOTYsNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0Vu
ZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
aWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYg
dGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQg
YW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAg
ICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAg
IG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNv
bm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBj
cmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMzJhOGEx
MTU0NjRiMGI2NWI3ZWFmM2JmMGRiODE3ZmUxYjhmOWE5Ny4uZmIzMDFiNWE0MzFiM2VkMjc2M2My
YmEyMDQ1MzI0MjY5ZDk0OTljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC01NSw3ICs1NSw3
IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2Vi
Q29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAg
IH5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5p
ZGVudGlmaWVyKCk7IH0KQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc291cmNl
TXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CiAK
IHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7
IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4
IGY2ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLjNjZjIyNzhmNGU5MzE1
MTRiZGMyNmE3ZDc0OWEzZmE2Yzk2NzAyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMjEy
LDcgKzIxMiw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgfSwgW10oc3RkOjpudWxs
cHRyX3QpIHsgfSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYg
IUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQpAQCAtMjI1LDcgKzIyNSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
OjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9t
YW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHJldHVybiBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBh
Z2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9G
YWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCkBAIC0yMzgs
NyArMjM4LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5Ojpz
ZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmEKICAgICBtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MgPSB2YWx1ZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikK
IHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCkBAIC0yNDgsMTAgKzI0OCwxMCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwog
ICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKICAgICBib29s
IHNob3VsZFVzZUlPU3VyZmFjZSA9ICFtX21hbmFnZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVt
b3RlRnJhbWVzOwotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwg
Y29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CisgICAgcmV0dXJuIENh
cHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJ
ZGVudGlmaWVyKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVy
cm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxh
eUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNl
T3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURp
c3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlm
IChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNjAsNyArMjYwLDcgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5Ojpj
cmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKLSAgICByZXR1
cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50
cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2
aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDhjYzViNGY5MjY5YjI0NGRiNTk5
NWI3Yjc0NDRiOTE1OTdmMTZhODIuLjhkMjJjZDMwMmI2Y2U4NjkwYTk4ODg0OTdlMzA5MGMyMDUz
YTg5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2Vi
Q29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAg
ICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFn
ZXI7IH0KICAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBzcGVh
a2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3BlYWtlckRldmljZXM7IH0KIApA
QCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKikgZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9t
YW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAgICAgICAgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgog
ICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNw
bGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAgICBXZWJD
b3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigp
IGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQog
CiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZh
NmY5NTM2YTRmMzEwZjQ0NzE4MmEwZjYxYmQ2YjVjNjBmNGQzZi4uNTIzYzI0Nzg4YTUzNTcwN2Y0
Y2E3MDRlNmI5MmRkZDNkMzAxMzIxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAzLTAy
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0
dXJlIHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUGVyIHBhZ2Ugc291cmNlcworCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4
dDoKKwogMjAyMi0wMy0wMSAgTWF0dGVvIEZsb3JlcyAgPG1hdHRlb19mbG9yZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFsgaU9TIF0gcG9pbnRlcmV2ZW50cy9tb3VzZS8qIDEwIHBvaW50ZXIgZXZl
bnQgdGVzdHMgYXJlIGNvbnN0YW50IHRpbWVvdXRzIG9yIGZhaWx1cmVzIG9uIGlPUy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5n
ZS1ldmVudC0yLWV4cGVjdGVkLnR4dAppbmRleCAwNDgzYzcwZGRiZDdkZTkxZmNkYTA1NjhkMjNm
Y2MwZjFlOGU5MzYzLi5kYWE2NzRhN2Y5Nzc2NWMyNDEzZmUzOTVjMjhkNWYyODJkZmYzODkzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZl
bnQtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZp
Y2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAorQ09OU09MRSBN
RVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJl
CitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFjayBlbmRlZCBkdWUgdG8gYSBjYXB0
dXJlIGZhaWx1cmUKIAogUEFTUyAnZGV2aWNlY2hhbmdlJyBldmVudCBmaXJlZCB3aGVuIGRldmlj
ZSBsaXN0IGNoYW5nZXMKIFBBU1MgJ2RldmljZWNoYW5nZScgZXZlbnRzIGZpcmVkIHF1aWNrbHkg
YXJlIGNvYWxlc2NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhwZWN0ZWQudHh0CmluZGV4IDUw
MjRjZWY2NTNmMzZhNDZiNWFiNzg2MzAxOTg1NDEwZDMyMTA5ZDUuLmQyZmE2Njg3ZGY0NWVmY2Iy
ODJmNjE5Y2JkMjQ4M2I4MWEzZDg0MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFj
ayBlbmRlZCBkdWUgdG8gYSBjYXB0dXJlIGZhaWx1cmUKK0NPTlNPTEUgTUVTU0FHRTogQSBNZWRp
YVN0cmVhbVRyYWNrIGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQorQ09OU09MRSBNRVNT
QUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJlCiAK
IFBBU1MgRGV2aWNlIElEcyBzaG91bGQgYmUgZW1wdHkgaW5pdGlhbGx5CiBQQVNTIENvbGxlY3Qg
ZGV2aWNlIElEcwo=
</data>
<flag name="commit-queue"
          id="481007"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453586</attachid>
            <date>2022-03-02 04:05:29 -0800</date>
            <delta_ts>2022-03-02 04:38:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237359-20220302130527.patch</filename>
            <type>text/plain</type>
            <size>135272</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRkZTA1NWUzZGEyOGQx
ZTE3MmNlMDJjOTA4NmVlMTdiYjFiMDNlZi4uMzg3MDU5ZThhZjAyNTQyNzhmNmY0ODIyNTMwZTk4
OGE0Y2RmMzZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGVyIHBhZ2Ugc291cmNlcworCisgICAgICAgIE5vIG5ldyB0ZXN0
cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIu
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9T
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwog
MjAyMi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFiZjAxMjQxMzcw
ZjRhN2FhZWRlNDBlZGQxZjI4Yjg5MTY0ZmJmNC4uODVhZGY1NjJhZTk0NzA2YzU3YmYzMzAxNmZk
OGQ3YWU5MTI3ZmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMy0wMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2NvcGUgY2FwdHVyZSBz
b3VyY2VzIGJ5IHBhZ2UgaWRlbnRpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBlciBwYWdlIHNvdXJjZXMKKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwog
MjAyMi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDNj
YjRhNDlkOTg1MTZjOWNiZDUxZGVkY2ZhYzM2YWYyZGZkNWQxNTEuLjkyYzY2Mzg4MDgxZWQ0OTk2
NDJmOTJhODBjZDc1OTZiYjhjNTQzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNSw3ICsx
MTM1LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBh
Z2UvUGFnZUdyb3VwLmgKLSAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJ
bmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5oCkBAIC0xMjkyLDYgKzEyOTEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BP
REludGVydmFsVHJlZS5oCiAgICAgcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0
Zm9ybS9QYWdlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxh
dGZvcm0vUGFzdGVib2FyZENvbnRleHQuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21E
YXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcAppbmRleCA1MDZmMzM3NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5
Li4wZmFhOGJiNTVhMTk4NWU5ODBmNzM2YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0x
NDIsNyArMTQyLDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJl
YW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0
cmFpbnRzLnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byBy
ZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVh
bVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RG
TW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1v
dmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0
ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1v
dmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdl
c3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2Up
KTsKIAogICAgIGlmICghZG9jdW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNG
b2N1cygpKSB7CiAgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAg
dm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJl
YW1Db25zdHJhaW50cyYgY29uc3RyYWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1
dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFT
dHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0
cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOwor
ICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsg
TWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRl
b0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJ
RCgpIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suY3BwCmluZGV4IGE0NWQxOWU1NDczOTk1NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQu
LmZjMTc2MTU2ZGQwZmNkMjIxZGZiODI3MjMxODE0MmRhNzBjZjA4OGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cApAQCAtNDY5LDQ0ICs0NjksMTIgQEAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRp
YVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVy
biBzdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1Nv
dXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UsIERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2Fw
dHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1l
bnQgfHwgdHJhY2stPmVuZGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBp
ZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0g
ZG9jdW1lbnQucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
YXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFj
dGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCph
Y3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0g
cGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRp
b0NhcHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBh
Z2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRl
cnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAg
ICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAo
YWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQo
KmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQg
PSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZp
ZGVvQ2FwdHVyZUlzTXV0ZWQpOwotICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQo
cGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAo
YXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChj
YXB0dXJlVHJhY2stPmRvY3VtZW50KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVu
ZGVkKCkpCiAgICAgICAgICAgICBjYXB0dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUo
KTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1Bh
Z2VNdXRlZFN0YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDM0OWFk
ZjZiNDJjY2IzY2MxZDZjMDdhMmU1NDRjMmJjNTkzYWNhNGIuLmFmYmNlN2E5ZjQ1NmY3ZDUwNzY4
NzgwOWNiZTE2ZTExYmU0MGUyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtNjIsOSArNjIsOSBAQCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQogICAgIHJldHVybiBjYXB0
dXJlRGV2aWNlOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYgY2FwdHVyZURldmljZSkKK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAg
ICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAiU3Bl
ZWNoSUQiX3MsIHsgfSk7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y2FwdHVyZURldmljZSwgIlNwZWVjaElEIl9zLCB7IH0sIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJh
Y2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3Vy
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGNhOTAzYjEyYjdmMjIxOTM1ZjVk
ZmExOThkYmIxYThjNGM3OWQzNDkuLmUzMjhkYzNjN2NkMzBmNjk5MzAyN2NiN2Q5ODRjNjYxN2Zi
OTZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1
YmxpYzoKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0
YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBQYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
YTFkNmI2ZmM2M2FkMjkxZjA3MjhkNTE4OTdlOGI5YzE3OTdjYjMwMS4uZDg1ZjBlNzM4YjYwZTFm
MDNlOWY0NzRhMzcxOGQxZWFmMjBiNDMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIxOTIsNyArMjE5
Miw2IEBAIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5j
cHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAK
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAotcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWE1NzY1ZWY2OGQz
MzgxZDg3MDY0NWZmM2U3ZmI3NWZiY2Q0NGRlMy4uOTM4YmE1ZmJjNGMzNzY2NjM3OTA5MzZkYjFm
MmZkZmI1Y2M3ODk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTE4Miw2ICsxMTgyLDcgQEAKIAkJNDE4RkNCRTcyNzE1QTI4
RjAwRjk2RUNBIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJU
Q1J0cENvZGVjQ2FwYWJpbGl0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRBMEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25p
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkw
RjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYz
NEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZD
RiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLzsgfTsKKwkJNDE5MkJC
MTMyN0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyog
UGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MTlBQ0Y5MjFGOTdFN0RBMDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlBQ0Y4
RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE5QkMyREYxNjg1MzI5OTAwRDY0
RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxOUJDMkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0
YXRlLmggKi87IH07CiAJCTQxOUJFNzU5MUJDN0Y0MkIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRp
bk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTlCRTc1MjFCQzdGM0RCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5oICovOyB9OwpA
QCAtMTM2Myw3ICsxMzY0LDYgQEAKIAkJNDZBNzhCMzQyNzk5QkQ3MTAwMTE1NEZFIC8qIFdvcmtl
ck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMUIxRDI2MjZGMThBNEIwMDg4MkRBMiAvKiBXb3JrZXJPcHRpb25zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZBQUFBM0QyNUQzNjMyMDAw
QkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkFBQUEzQTI1RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9G
aWxlUmVhZGVyQ29jb2EuaCAqLzsgfTsKIAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpT
RXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9t
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDZC
NjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0NkI4NTkzQzI2MTY3MjI3MDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291
cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRl
ci5oICovOyB9OwogCQk0NkI5NTE5NTIwN0Q2MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5k
b3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjk1
MThBMjA3RDYzMjgwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2Qjk1MTk2MjA3RDYzM0EwMEE3
RDJERCAvKiBBYnN0cmFjdEZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NkI5NTE4RjIwN0Q2MzJCMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MTAz
LDcgKzYxMDMsNiBAQAogCQkwNzUzODYwMDE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRy
YWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRU
cmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgw
MEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNB
OTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9Q
cmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8q
IE1lZGlhVXNhZ2VJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VXNhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk3MTg4NDQ4
NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTg4NTgsNiArODg1Nyw3IEBACiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUz
MUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTQyMDM1MDJBNTAwNEJB
Mjc3IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTk0NTY5NjIwMzUwMkE2MDA0QkEyNzcg
LyogQXBwbGljYXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdv
cmtlckZldGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3Jr
ZXJGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTMxMSw3ICs5MzExLDYg
QEAKIAkJNDZBQUFBM0MyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlckNv
Y29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBQ0Q4MTEyNzAxNjU2QTAw
RUY4Q0VEIC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblJlcXVlc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRDdXN0
b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4
QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjg1OTNB
MjYxNjcyMEMwMDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NkI5NTE4QTIwN0Q2MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWJzdHJhY3RET01XaW5kb3cuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZCOTUxOEMyMDdENjMyOTAwQTdEMkREIC8q
IFJlbW90ZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjkwLDcgKzE4
Njg5LDYgQEAKIAkJCQk0QTRGNjU2RDFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcy5oICovLAogCQkJCTRBMEZGQTlGMUFBRjVFQTIwMDYyODAzQiAvKiBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCAqLywKIAkJCQk0QTBGRkFBMDFBQUY1RUEyMDA2
MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oICovLAotCQkJCTA3NTRBNUVCMjE1
RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8sCiAJCQkJ
MDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmgg
Ki8sCiAJCQkJNDFCODc3NjAyM0RFMTA0MjAwMzYzOEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJNEE0RjY1NkUxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncy5jcHAgKi8sCkBAIC0yNDI1NSw3ICsyNDI1Myw2IEBACiAJCQkJ
OTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5
MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdB
Njc0QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJ
CQk0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQlD
REVGREEwRDI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNG
QjE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlD
N0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oICovLApAQCAtMzAxMDAsNiArMzAwOTcsNyBA
QAogCQkJCTQxNzhFRjE2MjQxMjVCNkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5jcHAg
Ki8sCiAJCQkJNDE3OEVGMTQyNDEyNUI2QzAwMTkzQzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmgg
Ki8sCiAJCQkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIu
aCAqLywKKwkJCQk0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAq
LywKIAkJCQkyRUUwMkExRTFGNzMyNDI4MDAwNkFGNzIgLyogUGFzdGVib2FyZC5jcHAgKi8sCiAJ
CQkJNEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQuaCAqLywKIAkJCQlGNDBE
QUFFQjI1RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVib2FyZENvbnRleHQuaCAqLywKQEAgLTM0MTMz
LDYgKzM0MTMxLDcgQEAKIAkJCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VT
ZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkEwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0ltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0Y2MEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTkyQkIxMzI3Q0Y2
Mzg2MDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4
RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyQTQxMDdBNDI2Q0I2NkY4MDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVl
LmggaW4gSGVhZGVycyAqLywKQEAgLTM2NTUzLDcgKzM2NTUyLDYgQEAKIAkJCQk5MzAyQjBCRjBE
NzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTY3NEJE
QzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNUI4MUNDNDFGQUE0NEJDMDAzN0QxRTYgLyogUGFnZUhlYXBBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGREEwRTI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0IwNTI0MUZCNTFGMzMwMDA4OUI5NyAvKiBQ
YWdlTmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDVDOUQwMDE5QzdCNTJFMDBC
M0M1QzEgLyogUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
SWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGQ1ZjhkMjk3NTYz
ZWUwMjljNDEzZTljZGE3NDk0YzVmYTRkOGFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotZW51bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgUGFnZUlkZW50aWZpZXIg
PSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47Ci0KLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZDVmOGQyOTc1NjNlZTAy
OWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcg
UGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1SZXF1ZXN0LmgKaW5kZXggYTRkNGI1MjViZTg5OWMyOTIxNjQwOWMyODk0NzZlMTlm
NDZlNzcxZC4uZDA3OTU2ZjQ5YWFjYThiNWMzNTE5YTI5NzhiNjkyMGM4NDFhMTZiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1SZXF1ZXN0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
CiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArNDAsNyBAQCBzdHJ1Y3QgTWVk
aWFTdHJlYW1SZXF1ZXN0IHsKICAgICBNZWRpYUNvbnN0cmFpbnRzIGF1ZGlvQ29uc3RyYWludHM7
CiAgICAgTWVkaWFDb25zdHJhaW50cyB2aWRlb0NvbnN0cmFpbnRzOwogICAgIGJvb2wgaXNVc2Vy
R2VzdHVyZVByaXZpbGVkZ2VkIHsgZmFsc2UgfTsKKyAgICBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcjsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTQ3LDE1ICs0OSwyMCBAQCBzdHJ1Y3QgTWVkaWFT
dHJlYW1SZXF1ZXN0IHsKICAgICAgICAgZW5jb2RlciA8PCBhdWRpb0NvbnN0cmFpbnRzOwogICAg
ICAgICBlbmNvZGVyIDw8IHZpZGVvQ29uc3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgaXNV
c2VyR2VzdHVyZVByaXZpbGVkZ2VkOworICAgICAgICBlbmNvZGVyIDw8IHBhZ2VJZGVudGlmaWVy
OwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxNZWRpYVN0cmVhbVJlcXVlc3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsK
ICAgICAgICAgTWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3Q7Ci0gICAgICAgIGlmIChkZWNvZGVy
LmRlY29kZShyZXF1ZXN0LnR5cGUpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25z
dHJhaW50cykgJiYgZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKSAmJiBk
ZWNvZGVyLmRlY29kZShyZXF1ZXN0LmlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCkpCi0gICAgICAg
ICAgICByZXR1cm4gcmVxdWVzdDsKLQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlwZSkKKyAgICAgICAgICAgIHx8ICFk
ZWNvZGVyLmRlY29kZShyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpCisgICAgICAgICAgICB8fCAh
ZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKQorICAgICAgICAgICAgfHwg
IWRlY29kZXIuZGVjb2RlKHJlcXVlc3QuaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkKQorICAgICAg
ICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QucGFnZUlkZW50aWZpZXIpKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4gcmVxdWVzdDsKICAg
ICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IGRlMGYxYTdhNGU2MzVhMTM5ZTQ4
MjhiNTQ3ZmRjZjA2NjE5YjM1YWIuLmYxYzllNjAyODEzYTNiZjZmYjMxNDE3ODhiNjYwNGNhNDNi
MDliOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00OCw4ICs0OCw5IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCkKLSAgICA6IG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1l
TWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorICAgIDogbV9wYWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllcikKKyAg
ICAsIG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fcGVyc2lzdGVudElE
KFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX25hbWUoV1RG
TW92ZShuYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJm
ZjQwZDUyNTExNDNiNjlhYjQ0Li5hYzRmZGU5MzViNzgwNGRhMmVkZTU5MzA5NTljNDJlMTJiOWY3
MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJl
U291cmNlT3JFcnJvcjsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJj
ZQogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2Us
IFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPgorICAgICwgcHVibGljIENhbk1h
a2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgLCBwdWJsaWMgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAgLTIyMSw4ICsyMjIsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkg
eyByZXR1cm4gZmFsc2U7IH0KIAorICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVh
bHRpbWVNZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9
IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0pOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2Uo
VHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhh
c2hTYWx0ID0geyB9LCBQYWdlSWRlbnRpZmllciA9IHsgfSk7CiAKICAgICB2b2lkIHNjaGVkdWxl
RGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKQEAgLTI3Myw2ICsyNzYsNyBAQCBw
cml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVDb3VudCB7IDAgfTsKICNlbmRpZgogCisgICAg
UGFnZUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0
OwogICAgIFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQw
YzExMjA4ZjUzYjFiOTIxYzM0YS4uMDA3NGQxNDQ5NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZi
ODZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3LDcg
QEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8
Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgTmUKIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlPiBhdWRpb1NvdXJjZTsKICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBz
b3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdU
Rk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0Nv
bnN0cmFpbnRzKTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCku
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBo
YXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlm
aWVyKTsKICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJl
YW0gYXVkaW8gc291cmNlOiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtODksOSArODksOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlm
ICh2aWRlb0RldmljZSkgewogICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAg
ICAgICAgIGlmICh2aWRlb0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6Q2FtZXJhKQotICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNo
U2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0g
dmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZp
ZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMs
IHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzb3Vy
Y2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShX
VEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29u
c3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCku
Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUo
aGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlm
aWVyKTsKIAogICAgICAgICBpZiAoIXNvdXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0
cmVhbSB2aWRlbyBzb3VyY2U6ICIsIHNvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyAr
MjA0LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFE
ZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICAgICAgaWYgKCFkZXZpY2UuZW5h
YmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRl
dmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7Cisg
ICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVl
c3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlm
IChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHND
b25zdHJhaW50cyhyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkK
ICAgICAgICAgICAgIGRpc3BsYXlEZXZpY2VJbmZvLmFwcGVuZCh7IHNvdXJjZU9yRXJyb3IuY2Fw
dHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3
IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhj
b25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5lbmFi
bGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0byBz
b3VyY2VPckVycm9yID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRp
Zmllcik7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNh
cHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRz
LCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFw
cGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNl
fSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAg
ICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCku
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9
KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7
IH0sIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJy
b3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJl
cXVlc3QudmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAg
ICAgIHZpZGVvRGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
Zml0bmVzc1Njb3JlKCksIGRldmljZX0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYx
M2I1ODZhNDhlOTY1NWFmZTYxZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUZhY3RvcnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRl
ICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgi
Ci0jaW5jbHVkZSA8d3RmL1NIQTEuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNp
bmdsZVNvdXJjZUZhY3Rvcnk6OnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBz
b3VyY2UpCi17Ci0gICAgaWYgKG1fYWN0aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAgIHJl
dHVybjsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgJiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVj
aW5nRGF0YSgpKQotICAgICAgICBtX2FjdGl2ZVNvdXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAg
bV9hY3RpdmVTb3VyY2UgPSAmc291cmNlOwotfQotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6
OnVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBp
ZiAobV9hY3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBu
dWxscHRyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYmEwZDkw
M2U2MjllZDhhYmVkZjdjZmNmMWVmOTY1MTEzZTM4OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTll
MmFmODAzYzI0Mjc2ZjZkNzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAi
UGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpA
QCAtNDEsMjcgKzQyLDEwIEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIAotY2xhc3MgV0VC
Q09SRV9FWFBPUlQgU2luZ2xlU291cmNlRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+
U2luZ2xlU291cmNlRmFjdG9yeSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRB
Y3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1bnNl
dEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0
aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9
Ci0KLXByaXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogbV9hY3RpdmVTb3VyY2UgeyBu
dWxscHRyIH07Ci19OwotCi1jbGFzcyBBdWRpb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsK
K2NsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7
CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlcigpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3Bl
YWtlckRldmljZXMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTcGVha2Vy
RGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spIGNvbnN0IHsgY2Fs
bGJhY2soKTsgfQpAQCAtNzQsMjggKzU4LDIwIEBAIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1
cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9y
eQotI2VuZGlmCi17CitjbGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0
dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRl
bnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2Fw
dHVyZURldmljZU1hbmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVG
YWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5
Ci0jZW5kaWYKLXsKK2NsYXNzIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+RGlzcGxheUNhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAg
IHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwg
UGFnZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdlciYg
ZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggODJkZTI1OGJiYzdiMWExODZkY2I1NzBk
Y2EwNDQwZDhhYjQwMDllMS4uMzBiMGEyNThkM2FkMDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEz
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBT
dHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8s
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikK
IHsKIH0KIAogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6On5SZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2U6OnByZXBhcmVUb1Byb2R1Y2VEYXRhKCkKLXsKLSAgICBBU1NFUlQoZnJhbWVSYXRlKCkp
OwotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0
aGlzKTsKLSNlbmRpZgogfQogCiBjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2b2lk
IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0
aW9uYWw8aW50PiB3aWR0aCwgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1f
Y3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVX
aXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNl
dCk7CiAKICAgICBpZiAoIW1hdGNoLT5yZXF1ZXN0ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2
ICs0MDEsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVk
U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludAogICAgIGlmICghbWF0Y2gpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNl
dDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUs
IG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAgICAgc2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVz
ZXQtPnNpemUpOwogICAgIHNldEZyYW1lUmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVk
ZmY3ZmQ0NDhiNWYzOTVjZDE4YWIuLmRjMWMzZDVlYWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFl
ZjlmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDEx
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5zdXJlSW50cmluc2ljU2l6ZU1haW50YWluc0FzcGVj
dFJhdGlvKCk7CiAKKyAgICBjb25zdCBWaWRlb1ByZXNldCogY3VycmVudFByZXNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fY3VycmVudFByZXNldC5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmlu
ZyYmIGhhc2hTYWx0KTsKKyAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAot
ICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVjZURhdGEoKTsKICAgICB2b2lkIHNldFNpemVBbmRGcmFt
ZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0
LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHBy
ZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQmKSB7IHJldHVybiB0cnVlOyB9CkBAIC05MCw2ICs5MSw3
IEBAIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlIjsgfQogI2VuZGlmCiAKKyAg
ICBSZWZQdHI8VmlkZW9QcmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBWZWN0b3I8UmVmPFZp
ZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1l
VGltZVN0YW1wczsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKaW5kZXggY2U2ZTAwMzU5N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkz
ZjQzYy4uMWQ0Zjk5YmYyYjEzYWE2NmFmZmMyNDhiZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U+JiYgc291cmNlLCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgp
IH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5k
ZXZpY2VJREhhc2hTYWx0KCkgfSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6Vmlk
ZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVu
dElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSwgc291cmNlLT5w
YWdlSWRlbnRpZmllcigpKQogICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICwgbV9zaG91bGRVc2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJm
YWNlKQpAQCAtOTUsMTIgKzk1LDE1IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6
ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNT
RVJUKHNvdXJjZVNpemUuaGVpZ2h0KCkpOwogICAgIEFTU0VSVChzb3VyY2VTaXplLndpZHRoKCkp
OwogCisgICAgYXV0byogY3VycmVudFByZXNldCA9IG1fc291cmNlLT5jdXJyZW50UHJlc2V0KCk7
CisgICAgYXV0byBpbnRyaW5zaWNTaXplID0gY3VycmVudFByZXNldCA/IGN1cnJlbnRQcmVzZXQt
PnNpemUgOiBzb3VyY2VTaXplOworCiAgICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBz
b3VyY2VTaXplLndpZHRoKCkgKiBoZWlnaHQudmFsdWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7
CisgICAgICAgIHdpZHRoID0gaW50cmluc2ljU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkg
LyBpbnRyaW5zaWNTaXplLmhlaWdodCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRo
KCp3aWR0aCk7CiAKICAgICBpZiAoIWhlaWdodCkKLSAgICAgICAgaGVpZ2h0ID0gc291cmNlU2l6
ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBzb3VyY2VTaXplLndpZHRoKCk7CisgICAgICAg
IGhlaWdodCA9IGludHJpbnNpY1NpemUuaGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50cmlu
c2ljU2l6ZS53aWR0aCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0
KTsKIAogICAgIGlmIChmcmFtZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EuY3BwCmluZGV4IDU1NGY4ZGQyN2E0YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQy
YjcuLjE2NmE1MzA3NzMyYjExNWU0NWQ2MjA3MGVmYTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC04MywyMyArODMsMjMgQEAg
c3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZvckRldmljZShDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHQKICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6Tm9uZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBzd2l0
Y2ggKGRldmljZS50eXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNjcmVlbjoKICNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHJldHVybiBjcmVhdGUoUmVwbGF5
S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShS
ZXBsYXlLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2
aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNl
bHNlCiAjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0
dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBj
cmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0
cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAg
ICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCi0gICAgICAgIHJldHVybiBjcmVhdGUoQ0dE
aXNwbGF5U3RyZWFtU2NyZWVuQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50
SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlTdHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUo
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6V2luZG93OgogI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAg
ICBpZiAoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gY3JlYXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVh
dGUoZGV2aWNlLCBjb25zdHJhaW50cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1
cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpA
QCAtMTE0LDEyICsxMTQsMTIgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICByZXR1cm4g
eyB9OwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVy
LCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+
LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgp
KQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVy
LmVycm9yKCkpIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZp
Y2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2Uu
bGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAg
IGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAg
ICAgICAgIGlmIChyZXN1bHQpCkBAIC0xMjksOCArMTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxD
YXB0dXIKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsK
IH0KIAotRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
c291cmNlVHlwZUZvckRldmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1l
KSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+
JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKHNvdXJjZVR5cGVGb3JEZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlk
ZW50aWZpZXIpCiAgICAgLCBtX2NhcHR1cmVyKFdURk1vdmUoY2FwdHVyZXIpKQogICAgICwgbV90
aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjplbWl0RnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgK
aW5kZXggMDQ1YzhjYzQzNWZjYjI5YzVkZWQwYjJmMWFlY2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0
NzQ5MzRjNWUwNTFhNzVhYjFkZDAzY2M1NGU3Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuaApAQCAtMTEyLDE0ICsxMTIsMTQgQEAgcHVibGljOgogICAgICAg
ICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAgICAgfTsKIAotICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENh
cHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1
cmVyPiwgU3RyaW5nPiYmLCBjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBTZWNvbmRzIGVsYXBzZWRU
aW1lKCk7CiAgICAgdm9pZCB1cGRhdGVGcmFtZVNpemUoKTsKIAogcHJpdmF0ZToKLSAgICBEaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAg
dmlydHVhbCB+RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSgpOwogCiAgICAgLy8gUmVhbHRpbWVN
ZWRpYVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJl
U291cmNlLmNwcAppbmRleCA0ODZiMGU0NDg2YTNjNjRlM2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2
Li43M2VjZDI0MDNiYzBmNDhiZGExOWQ1MTk5MDE0N2EzNTczYjdlYTMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTYsNyAr
NTYsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiAKIGNsYXNzIEdT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBl
MTNkNTNiMmIyNGRjZTlkNTAyNmRhMjM3MjgzM2U0ZTQyMTNiMWUwLi5jYzgxZTNiMDE3OTVmNTA0
MTljYzJhNGVmZWU4NzUxZjE0OWI0YzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAK
IGNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMg
VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5h
bAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAg
ICAgICByZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7
CiAgICAgfQpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBHU3RyZWFtZXJEaXNw
bGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0
b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRvJiBt
YW5hZ2VyID0gR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24o
KTsKICAgICAgICAgcmV0dXJuIG1hbmFnZXIuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2
aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJ
T1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLmgKaW5kZXggNjY0ODVlMzJiOTc0YjI2YjZkYjcwZWYzMWY0MTU0NTBj
MGM2MzFmZi4uYjEwNWIzZTEwYzgwOTk5OGNhMTE1OTU2ODBhNGFlODY2MzdiM2JiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCkBAIC00NSw3ICs0NSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBiZWdpbkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbigpIHsgYmVnaW5JbnRl
cnJ1cHRpb24oKTsgfQogICAgIHZvaWQgZW5kQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKEF1ZGlv
U2Vzc2lvbjo6TWF5UmVzdW1lKSB7IGVuZEludGVycnVwdGlvbigpOyB9CiAKLSAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgZmluYWw7CisgICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBm
aW5hbDsKICAgICB2b2lkIGFkZEV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyJikg
ZmluYWw7CiAgICAgdm9pZCByZW1vdmVFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZl
ciYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCmluZGV4
IDY3MDU5MmYzNTE2N2Y2YjA2MTk5NmIwMTY3NGViOWI1NDg0NDNhNTIuLmJiMzI5ZmUwZTFkODU3
ZWZiNjE3MTc0YmM0OTkxMzZiYWM4M2UzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlSU9TLm1tCkBAIC0xMTYsMTMgKzExNiwxMyBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2VGYWN0b3J5SU9TOjpyZW1vdmVFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZl
cgogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24o
KS5kaXNhYmxlQWxsRGV2aWNlc1F1ZXJ5KCk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeUlPUzo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
ICAgICAvLyBXZSBlbmFibGUgZXhoYXVzdGl2ZSBxdWVyeSB0byBiZSBzdXJlIHRvIHN0YXJ0IGNh
cHR1cmUgd2l0aCB0aGUgcmlnaHQgZGV2aWNlLgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3Rv
cCB0aGUgYXV4aWxpYXJ5IHNlc3Npb24gYWZ0ZXIgc3RhcnRpbmcgY2FwdHVyZS4KICAgICBpZiAo
bV9vYnNlcnZlcnMuY29tcHV0ZXNFbXB0eSgpKQogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5lbmFibGVBbGxEZXZpY2VzUXVlcnkoKTsKLSAg
ICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgIHJl
dHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDhjNDEzOGU3MzM4
Y2VmYzY5MTczNDIwNzQ0M2FhNDllNTYyZjlmZWYuLjRiYWZiNTg5MjhhY2UwMWYzYmFlNTkzZTgw
OWNiNGJiOGViMWJjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC01NCw3ICs1
NCw3IEBAIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKIGNsYXNzIEFWVmlkZW9DYXB0
dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLCBwcml2YXRlIE9y
aWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVv
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYXB0dXJlRGV2aWNlU3VzcGVuZGVkRGlkQ2hhbmdlKCk7CiAKIHByaXZhdGU6Ci0g
ICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgU3RyaW5nJiYgaWQsIFN0
cmluZyYmIGhhc2hTYWx0KTsKKyAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZp
Y2UqLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKICAg
ICB2aXJ0dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAgICAgdm9pZCBjbGVhclNlc3Np
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA2ZTc0M2U1YTk0NTE5MzA3
N2YyZTYwZTJlMWJkMzRjYWNmZmIzNTkyLi41YTBlYTc3OGQ1MjhkM2IxNGI5ZjdmODNmODc3MDRi
ODc4NDVjNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC0xMDgsMTMgKzEw
OCwxMyBAQCBwdWJsaWM6CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUZvcm1hdD4gZm9y
bWF0OwogfTsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
ICAgICBBVkNhcHR1cmVEZXZpY2UgKmRldmljZSA9IFtQQUw6OmdldEFWQ2FwdHVyZURldmljZUNs
YXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmlkXTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAg
cmV0dXJuIHsgIk5vIEFWVmlkZW9DYXB0dXJlU291cmNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RG
TW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShpZCksIFdURk1vdmUo
aGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAg
ICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMp
OwogICAgICAgICBpZiAocmVzdWx0KQpAQCAtMTI0LDggKzEyNCw4IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYm
IGhhc2hTYWx0CiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSogZGV2aWNlLCBTdHJpbmcm
JiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZShkZXZpY2UubG9jYWxpemVkTmFtZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQor
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmlj
ZSogZGV2aWNlLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNl
LmxvY2FsaXplZE5hbWUsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50
aWZpZXIpCiAgICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWVmlkZW9DYXB0
dXJlU291cmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pKQogICAgICwg
bV9kZXZpY2UoZGV2aWNlKQogICAgICwgbV92ZXJpZnlDYXB0dXJpbmdUaW1lcigqdGhpcywgJkFW
VmlkZW9DYXB0dXJlU291cmNlOjp2ZXJpZnlJc0NhcHR1cmluZykKQEAgLTEzNyw5ICsxMzcsNiBA
QCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291cmNlKCkKIHsKICAgICBB
TFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
dmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgog
ICAgIFttX29iamNPYnNlcnZlciBkaXNjb25uZWN0XTsKICAgICBbbV9kZXZpY2UgcmVtb3ZlT2Jz
ZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInN1c3BlbmRlZCJdOwogCkBA
IC00NjksMTAgKzQ2Niw2IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVy
ZVNlc3Npb24oKQogewogICAgIEFMV0FZU19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJ
RVIpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNl
KCp0aGlzKTsKLSNlbmRpZgotCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAgICAgUmV0YWlu
UHRyPEFWQ2FwdHVyZURldmljZUlucHV0PiB2aWRlb0luID0gYWRvcHROUyhbUEFMOjphbGxvY0FW
Q2FwdHVyZURldmljZUlucHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJv
cjomZXJyb3JdKTsKICAgICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmNwcAppbmRleCA5YTBiMjllZGIxZDE3ODE1NjU0NTBmNThkZTkwOWY2OGM4NzNlYTAzLi5k
MjRkNGIzMWZjNTQyMTBlZDhkNTg2MGFlNjc3ODM2Y2M1NDBhOWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC02NjgsMjcgKzY2OCwyNyBAQCBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgaW5pdGlhbGl6ZUNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoUmVmPENvcmVB
dWRpb0NhcHR1cgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJj
ZSkpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgYXV0byBkZXZpY2UgPSBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlvRGV2aWNlV2l0
aFVJRChkZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJObyBD
b3JlQXVkaW9DYXB0dXJlU291cmNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0
cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZp
Y2VJRCgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1
cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZpY2VJRCgpLCBudWxscHRyLCBwYWdlSWRlbnRp
ZmllcikpOwogI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBhdXRvIGRldmljZSA9IEFW
QXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmF1ZGlvU2Vzc2lv
bkRldmljZVdpdGhVSUQoV1RGTW92ZShkZXZpY2VJRCkpOwogICAgIGlmICghZGV2aWNlKQogICAg
ICAgICByZXR1cm4geyAiTm8gQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlIGRldmljZSJfcyB9
OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgMCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVk
aW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVs
KCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDAsIG51bGxwdHIsIHBhZ2VJZGVudGlmaWVyKSk7CiAj
ZW5kaWYKICAgICByZXR1cm4gaW5pdGlhbGl6ZUNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92
ZShzb3VyY2UpLCBjb25zdHJhaW50cyk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJyaWRlVW5pdCkKK0NhcHR1cmVT
b3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJy
aWRlVW5pdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCwgJm92ZXJyaWRlVW5pdCkp
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShoYXNoU2FsdCksIDAs
ICZvdmVycmlkZVVuaXQsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgcmV0dXJuIGluaXRpYWxpemVD
b3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSwgY29uc3RyYWludHMpOwogfQog
CkBAIC03ODAsOCArNzgwLDggQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6
d2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoRnVuY3Rpb248dm8KICAgICByZXR1cm4g
Q29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5pdCgpLndoZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5u
aW5nKFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0
cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBjYXB0dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJl
ZFVuaXQqIG92ZXJyaWRlVW5pdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShoYXNoU2FsdCkpCitDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9D
YXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYg
aGFzaFNhbHQsIHVpbnQzMl90IGNhcHR1cmVEZXZpY2VJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCog
b3ZlcnJpZGVVbml0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUo
bGFiZWwpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlm
aWVyKQogICAgICwgbV9jYXB0dXJlRGV2aWNlSUQoY2FwdHVyZURldmljZUlEKQogICAgICwgbV9v
dmVycmlkZVVuaXQob3ZlcnJpZGVVbml0KQogewpAQCAtODIxLDE5ICs4MjEsMTEgQEAgdm9pZCBD
b3JlQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKQog
CiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjp+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9y
eTo6c2luZ2xldG9uKCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0KICAgICB1
bml0KCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291
cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNv
dXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAgIGluaXRpYWxpemVUb1N0YXJ0UHJvZHVjaW5nRGF0
YSgpOwogICAgIHVuaXQoKS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDMzMDM2ZTk5NmY2NzNlNTI3MDIzODViNDFlMGE5M2YxODAz
NTFmOTkuLjBlYzY3MmJmOWYxYzM2MDU2MjQ5NzBjMjQxZjZhMGExNTkzNTJkOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNTEsMTUgKzUxLDE1IEBAIGNsYXNzIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogCiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVs
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1No
YXJlZFVuaXQmIG92ZXJyaWRlVW5pdCk7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVs
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1No
YXJlZFVuaXQmIG92ZXJyaWRlVW5pdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIENNQ2xv
Y2tSZWYgdGltZWJhc2VDbG9jaygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hT
YWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqID0gbnVsbHB0
cik7CisgICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQsIEJhc2VB
dWRpb1NoYXJlZFVuaXQqLCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+Q29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZSgpOwogICAgIEJhc2VBdWRpb1NoYXJlZFVuaXQmIHVuaXQoKTsKICAgICBj
b25zdCBCYXNlQXVkaW9TaGFyZWRVbml0JiB1bml0KCkgY29uc3Q7CkBAIC0xMjksMTQgKzEyOSwx
NCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aGVuQXVkaW9DYXB0dXJlVW5p
dElzTm90UnVubmluZyhGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgotICAgIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBvdmVycmlkZTsKKyAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZp
ZXIpIG92ZXJyaWRlOwogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkgZmluYWw7CiAgICAgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVh
a2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsOwogfTsKIAotaW5saW5lIENhcHR1cmVTb3VyY2VPckVy
cm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitpbmxpbmUgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCiB7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
KTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBh
Z2VJZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVu
aXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlv
U2hhcmVkVW5pdC5tbQppbmRleCAwZGQzZDcxY2FlN2E2M2I2MzcyMDhmMjgzODIyMGU2NTllNDIx
M2NlLi4zNDIyNzQyM2Q4OWIwYTA0OWRlNjlhY2UzNWY4ZjM4ZjNkMzBjMzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVk
VW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgdm9pZCBhZGRIdW0o
ZmxvYXQgYW1wbGl0dWRlLCBmbG9hdCBmcmVxdWVuY3ksIGZsb2F0IHNhbXBsZVJhdGUsIHVpbnQ2
NF90CiAgICAgfQogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAg
IGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VX
aXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKQEAgLTkxLDcg
KzkxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1v
Y2sgbWljcm9waG9uZSBkZXZpY2UiX3MgfTsKIAogICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNp
bmdsZXRvbigpLnNldERldmljZUlEKGRldmljZUlEKTsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhXVEZNb3ZlKGRldmljZUlEKSwgIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgTW9ja0F1ZGlvU2hhcmVkVW5p
dDo6c2luZ2xldG9uKCkpOworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVh
dGVGb3JUZXN0aW5nKFdURk1vdmUoZGV2aWNlSUQpLCAgV1RGTW92ZShuYW1lKSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzLCBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKSwg
cGFnZUlkZW50aWZpZXIpOwogfQogCiBNb2NrQXVkaW9TaGFyZWRVbml0JiBNb2NrQXVkaW9TaGFy
ZWRVbml0OjpzaW5nbGV0b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
aAppbmRleCA5NWNmMzVjZDRlYjEzMThkODY4MzI3M2E1ZDA5NmM3MzY0NDYwOGIwLi40ODI5NTc5
ZDJmYTE2NTNjZWMwMDEyN2MwM2YyNGNhMzA5NzZjZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMuaApAQCAtNDcsMTMgKzQ3LDEzIEBAIGNsYXNzIEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ7CiAKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjIGZpbmFsIDog
cHVibGljIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAg
c3RhdGljIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlD
YXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYygp
ID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U7Ci0gICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZlcigpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGZkMTk0ZTYxOWE0NGI4
ODExZGNiMTdlMDA0NjcxZjQ0NTM1ZTdhOTcuLjllMjVmNmQyZDQzMTNmOTBkZTljMGZiMWQ2MGRk
ODhiMDk3ODVkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0K
QEAgLTUyLDcgKzUyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJ
RChkZXZpY2VJRCk7CkBAIC02MSw3ICs2MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAg
ICAgICAgIHJldHVybiB7ICJObyBtb2NrIGNhbWVyYSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0g
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwor
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
YyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBh
Z2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGlmIChhdXRv
IGVycm9yID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAg
ICAgICByZXR1cm4gV1RGTW92ZShlcnJvci0+bWVzc2FnZSk7CkBAIC03MCwxMyArNzAsMTMgQEAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Io
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFdURk1vdmUoc291cmNlKSkpOwogfQogCi1SZWY8
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVh
dGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCkKK1JlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZSho
YXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCitN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlk
ZW50aWZpZXIpCiAgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UgUmVuZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFj
dGl2ZSkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5j
cHAKaW5kZXggZjM2N2RhMWJkNTg0ZmU0NTlkYTJiNzVmMjE1M2QzYWRiNTlmOTY1Zi4uMmQ4Zjg0
ZDRhNzMwZWYwMWQ5MDdmYTU5NGYxMjI0ZGJiNmQ4YjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJN
YWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtNDUsMTAgKzQ1LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeU1hYyBmaW5hbCA6
IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7Ci0gICAgICAgIHJldHVybiBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtNTcsOSArNTcsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1
YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewotICAgICAgICBy
ZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogICAgIH0KIHByaXZhdGU6CiAgICAgRGlzcGxheUNhcHR1cmVNYW5h
Z2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJldHVybiBEaXNwbGF5Q2FwdHVy
ZU1hbmFnZXJDb2NvYTo6c2luZ2xldG9uKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggZDA4OTRk
NWQ0ZmU4MjVmOGIwNmQ2YzkyOGFhZjA5ODYzNzdjYzRiMi4uOWU4OGFiMWU1OWU3YTcyYjc4Yzc1
NWQ4MjQ3OGJhYmY5OTY0Y2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTYyLDggKzYyLDgg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVu
dGlmaWVyKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlIFJlbmRlciBRdWV1ZSIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJy
ZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6dGljaykKIHsKQEAgLTc3LDkg
Kzc3LDYgQEAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6On5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNl
dHRpbmdzKCkKQEAgLTEzNiw3ICsxMzMsNiBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldAogdm9p
ZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Q
cm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRS
ZWNvcmQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBj
NzliOTQyNDJkMDg2OGZmOC4uN2EwZjRkMTViOTUzZjBhMDhlODFmY2M0OTVkZjVlMzgyZjlhN2Uw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTMgKzQyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNv
dXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRD
aGFubmVsQ291bnQodW5zaWduZWQpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0KTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZp
cnR1YWwgdm9pZCByZW5kZXIoU2Vjb25kcykgPSAwOwogICAgIHZvaWQgc2V0dGluZ3NEaWRDaGFu
Z2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjExOTM0OGY5ODY1YTg4
ZmIyNzkxZTNhMmQ3MTRhNDAxLi42ZDEyYzZiZjA3OGRhMmY1NGVmNDY3NTY3YTBmZDM1NWEwNjlk
MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAxLDEzICsxMDEsMTMgQEAg
c3RhdGljIGlubGluZSBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2aWNlcygpCiAK
IGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBWaWRlb0NhcHR1
cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRl
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7
CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYSk7CiAgICAgICAgIGlmICghTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkNhbWVyYSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJV
bmFibGUgdG8gZmluZCBtb2NrIGNhbWVyYSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQi
X3MgfTsKIAotICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
IH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTExNyw3ICsxMTcs
NyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKIGNsYXNzIE1vY2tEaXNwbGF5Q2FwdHVy
ZXIgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXIgewog
cHVibGljOgotICAgIGV4cGxpY2l0IE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURl
dmljZSYpOworICAgIE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYsIFBh
Z2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBib29sIHN0YXJ0KCkgZmluYWw7CkBAIC0x
MzQsOCArMTM0LDggQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
bV9zZXR0aW5nczsKIH07CiAKLU1vY2tEaXNwbGF5Q2FwdHVyZXI6Ok1vY2tEaXNwbGF5Q2FwdHVy
ZXIoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQotICAgIDogbV9zb3VyY2UoTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmlu
ZyB7IH0pKQorTW9ja0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAg
IDogbV9zb3VyY2UoTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNw
bGF5Q2FwdHVyZXIoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IH0sIHBhZ2VJZGVudGlmaWVyKSkKIHsKIH0KIApAQCAt
MTc3LDcgKzE3Nyw3IEBAIEludFNpemUgTW9ja0Rpc3BsYXlDYXB0dXJlcjo6aW50cmluc2ljU2l6
ZSgpIGNvbnN0CiAKIGNsYXNzIE1vY2tSZWFsdGltZURpc3BsYXlTb3VyY2VGYWN0b3J5IDogcHVi
bGljIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlLnR5cGUoKSwgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmlu
ZCBtb2NrIGRpc3BsYXkgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CkBAIC0x
ODYsMTEgKzE4NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgICAgICByZXR1cm4gRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihkZXZpY2Up
KSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAg
cmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShVbmlxdWVSZWY8RGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXI+KG1ha2VVbmlxdWVSZWY8TW9ja0Rpc3BsYXlD
YXB0dXJlcj4oZGV2aWNlLCBwYWdlSWRlbnRpZmllcikpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VsaWYgVVNFKEdTVFJFQU1FUikK
ICAgICAgICAgICAgIHJldHVybiBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OmNy
ZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAjZWxzZQotICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
U3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
LCBwYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CkBAIC0yMTEsMjAgKzIx
MSwxNSBAQCBwcml2YXRlOgogCiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3Rvcnkg
ZmluYWwgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9
PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICAgICAgICAgaWYgKCFN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50
SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSwgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIG1pY3Jv
cGhvbmUgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CiAKLSAgICAgICAgcmV0
dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6
Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2Uu
bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVy
KTsKICAgICB9CiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBz
ZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2Uoc291
cmNlKTsgfQotICAgIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYg
c291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24o
KS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSog
YWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgpOyB9Ci0jZW5kaWYKICAgICBDYXB0dXJlRGV2
aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCk7IH0KICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJE
ZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNwZWFrZXJEZXZpY2VzKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDYwYzVhOGNk
NmQ1MGU5MDBlNGMxZWJkMWZkOGUyZGRhZThiNmRiOWQuLjNjZjc0NjBjODBlM2JlMWQ1YmEzZjBj
ZWQ3YzE5YjI1ZGYyOWFiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC01MCw3ICs1MCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgIVVTRShHU1RSRUFNRVIpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBA
IC01OSw3ICs1OSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7
ICJObyBtb2NrIGNhbWVyYSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0gICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAg
aWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMp
KQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBIYXNoU2V0
PE1vY2tSZWFsdGltZVZpZGVvU291cmNlKj4mIGFsbE1vY2tSZWFsdGltZVZpZGVvU291cmNlKCkK
ICAgICByZXR1cm4gdmlkZW9Tb3VyY2VzOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVy
KQogICAgICwgbV9lbWl0RnJhbWVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVGcmFtZSkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpAQCAtMjM5LDcgKzIzOSw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnN0YXJ0Q2FwdHVyZVRpbWVyKCkKIAogdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpOwogICAg
IHN0YXJ0Q2FwdHVyZVRpbWVyKCk7CiAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCA5MzVjNmRkZWNiOGQ0NThjOTE2NmY1YjI2N2FjNWM0
OTRmZjM0M2I1Li5mYzVmYzdhYTFjYjc2ZmE2ZDk3MzkwNTg2NWJmYWZlY2VkZTM2YmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogY2xh
c3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgot
ICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Kik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNlKCk7
CiAKICAgICBzdGF0aWMgdm9pZCBzZXRJc0ludGVycnVwdGVkKGJvb2wpOwpAQCAtNTYsNyArNTYs
NyBAQCBwdWJsaWM6CiAgICAgSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKCkgY29uc3Q7CiAKIHBy
b3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZl
cigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBhZDA3NTgyMTc1MTAx
MzU3ZTA1NWIxMTQyNjg4OTJmYTdjNzNjOTQ2Li5kN2FmOTE3NDk1YzBiMmNjZWE4YmUyMGFhZjE5
OTVkOGQ2OWYzMGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMjg5LDcgKzI4
OSw3MCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSgpCiAgICAgbV9jb25uZWN0aW9uUHJveHktPnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wg
c2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJiBj
b21wbGV0aW9uSGFuZGxlcikKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1pY3JvcGhvbmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogbWVkaWFD
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQorICAgICAgICByZXR1cm4gc291
cmNlT3JFcnJvcjsKKworICAgIGF1dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5l
bnN1cmUocGFnZUlkZW50aWZpZXIsIFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRl
cmF0b3ItPnZhbHVlOworCisgICAgLy8gRklYTUU6IFN1cHBvcnQgbXVsdGlwbGUgbWljcm9waG9u
ZXMgc2ltdWx0YW5lb3VzbHkuCisgICAgaWYgKHBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3Vy
Y2UpIHsKKyAgICAgICAgYXV0byYgbWljcm9waG9uZVNvdXJjZSA9ICpwZXJQYWdlU291cmNlcy5t
aWNyb3Bob25lU291cmNlOworICAgICAgICBpZiAobWljcm9waG9uZVNvdXJjZS5wZXJzaXN0ZW50
SUQoKSAhPSBkZXZpY2UucGVyc2lzdGVudElkKCkgJiYgIW1pY3JvcGhvbmVTb3VyY2UuY2FwdHVy
ZURpZEZhaWwoKSkgeworICAgICAgICAgICAgLy8gV2UgY2Fubm90IHJldXNlIHRoZSBzb3VyY2Ug
c28gZmFpbCBpdC4KKyAgICAgICAgICAgIG1pY3JvcGhvbmVTb3VyY2UuY2FwdHVyZUZhaWxlZCgp
OworICAgICAgICAgICAgbWljcm9waG9uZVNvdXJjZS5zdG9wKCk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgcGVyUGFn
ZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZSA9IFdlYWtQdHIgeyBzb3VyY2UuZ2V0KCkgfTsKKyAg
ICByZXR1cm4gc291cmNlOworI2Vsc2UKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CisjZW5kaWYKK30KKworQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlQ2FtZXJhU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIG1l
ZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQoreworICAgIGF1
dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5lbnN1cmUocGFnZUlkZW50aWZpZXIs
IFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGlm
IChwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UpIHsKKyAgICAgICAgYXV0byYgY2FtZXJhU291
cmNlID0gKnBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZTsKKyAgICAgICAgLy8gRklYTUU6IE9w
dGltaXplIG11bHRpcGxlIGNvbmN1cnJlbnQgY2FtZXJhcy4KKyAgICAgICAgaWYgKHBlclBhZ2VT
b3VyY2VzLmNhbWVyYVNvdXJjZS0+cGVyc2lzdGVudElEKCkgPT0gZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpICYmICFjYW1lcmFTb3VyY2UuY2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgLy8g
V2UgY2FuIHJldXNlIHRoZSBzb3VyY2UsIGxldCdzIGRvIGl0LgorICAgICAgICAgICAgYXV0byBz
b3VyY2UgPSBjYW1lcmFTb3VyY2UuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChtZWRpYUNvbnN0
cmFpbnRzKSB7CisgICAgICAgICAgICAgICAgYXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqbWVkaWFDb25zdHJhaW50cyk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvci0+bWVzc2FnZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9CisgICAgfQor
CisgICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmll
cik7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQorICAgICAgICByZXR1cm4gc291cmNlT3JFcnJv
cjsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKHBlclBhZ2VTb3VyY2VzLmNh
bWVyYVNvdXJjZSkgeworICAgICAgICAvLyBXZSBjYW5ub3QgcmV1c2UgdGhlIHNvdXJjZSBzbyBm
YWlsIGl0LgorICAgICAgICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UtPmNhcHR1cmVGYWls
ZWQoKTsKKyAgICAgICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlLT5zdG9wKCk7CisgICAg
fQorI2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7Cisg
ICAgc291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAg
ICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UgPSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07
CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3Ry
YWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Qcm94eS0+d2lsbFN0YXJ0Q2FwdHVyZShkZXZp
Y2UudHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCAiUmVx
dWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgfSwg
eyB9LCB7IH0sIHsgfSwgMCk7CkBAIC0yOTksMTYgKzM2MiwxNCBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaQogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dp
dGNoIChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50
cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVNaWNyb3Bob25lU291cmNlKGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
Q2FtZXJhOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Ci0gICAgICAgIGlm
IChzb3VyY2VPckVycm9yKQotICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNl
LT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgc291
cmNlT3JFcnJvciA9IGNyZWF0ZUNhbWVyYVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgc291cmNl
T3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlD
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92
ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgp
LmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNv
bnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CiAgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oCmluZGV4IDY1OGI1YjdkMTg4NmM0ODMwNmYxODAzYTM4ODA0Yjk1M2Q4NTRmNTQu
LjViZWMxMDc1YzQ0ZjJhNjAxZWY1ODVjNTg0NzViYjc1N2YyMmY0ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAg
dXNpbmcgQ3JlYXRlU291cmNlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wg
c3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRT
aXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3Rl
RnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQs
IFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRV
c2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRl
U291cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZW5k
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKQEAgLTk0LDExICs5NCwy
MSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24oV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3Rh
dGlvbik7CiAKKyAgICAKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVN
aWNyb3Bob25lU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYW1l
cmFTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOworCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVBy
b3h5OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsKICAgICBVbmlxdWVSZWY8
Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKICAgICBXZWJDb3JlOjpPcmllbnRh
dGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsKKworICAgIHN0cnVjdCBQ
YWdlU291cmNlcyB7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gbWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgV2Vha1B0cjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjYW1lcmFTb3VyY2U7CisgICAgfTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBQYWdlU291cmNlcz4gbV9wYWdlU291cmNlczsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdiY2E0NTNlNzM3NTM3
NjlhN2ZjNThlMmU3MDczMmI4NTdkOWI4MjkuLmVkN2Y0ZGFiMTZiZWE3OWI0MjFkOTY2MGVlMWU0
OWMzZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2Vz
IC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRl
dmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBj
b25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAoYm9v
bCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRh
PiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5j
CisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVz
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2Vz
cywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0
cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKSBBc3luYwogICAgIFN0
YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBm
NWE2MTY0ZTgzMWM5Njg5OTVlMzMyZWYwMjY5YzBiOGMxOGNmOWYyLi44OGZkYTg0OTE0NjBiNzc3
NTBkN2RhMzUwMWJlYTA1ZTBmMDMzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNl
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBwYWdlSWRlbnRpZmllcikpOwogfQog
Ci1TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQotICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkK
K1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQor
OiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5n
IHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9LCB7IH0sIHBhZ2VJZGVudGlmaWVyKQog
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikK
ICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKaW5kZXggNzhiZmU1YjY0YjIwZGQwOTAxYjk5YWE3M2MzNWM5MDcwMjFkOWIwNi4uOWFmZmYy
ODAzNWEwZDAzMjVmMjZjMGQyZTljNmRhZGRhZWJhNWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgV2ViQXVkaW9CdWZm
ZXJMaXN0OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwogICAgIAotY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTYyLDcg
KzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwogCiBwcml2
YXRlOgotICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4
IDY4ZGMxMTVmMTY5ZjE5ZWY4OWY2NmZlNWM4ZjI0MWM4NWI5NzhkNzEuLmUzYTcwNGUxYmMyMjZl
ZDQ4MWEwZDc1ZDE4NzA1ZmEzYjlhNTI5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNl
KFNwZWVjaFJlY29nbml0CiAgICAgfQogI2VuZGlmCiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRl
bnRpZmllciwgY2FwdHVyZURldmljZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVy
LCBjYXB0dXJlRGV2aWNlLCBzb3VyY2UucGFnZUlkZW50aWZpZXIoKSkpOwogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI1OWFlNzNlY2I5
MjEzNWYwOWE5NjUwMWIzM2VkMmE0MWQzNTMzMTkuLmM5YWY1YzZmOTZjYjcxZGM4MjJjZTAzOTBi
YTdjNDBkNDQyYWNkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMTA5OTYsMTIgKzEwOTk2LDEyIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlCiAgICAg
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxl
IGZvciBjYXB0dXJlIiB9OwogCiAgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5H
UFVQcm9jZXNzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3By
b2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNl
T3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3Jl
YXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSwgbV93ZWJQYWdlSUQpIH07CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vz
cy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpLCAqY2FwdHVyZURldmljZSkgfTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3By
b2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9OwogI2Vsc2UKLSAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlLCBtX3dlYlBh
Z2VJRCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAKaW5kZXggYjgxZGJiMjNlZmY0NTMzYTA3MjU1Nzg4YTI2
ZWVhN2MzM2UwNWFlMy4uOWYwOWY2MjI2MjgyNjgzYzI2MGI1MzQ1MTZmOTgwOGRhNGI3YzQwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwCkBAIC0yMDgsOSArMjA4LDkgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCiAKICNlbmRpZgog
Ci12b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0
ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7CisgICAgYXV0
byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoZGV2aWNlLCBwYWdlSWRlbnRpZmllcik7CiAgICAgaWYgKCFyZXN1bHQpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0
aW1lIHNvdXJjZSIpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50
aWZpZXIpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmgKaW5kZXggMTg4NDc3MWE4N2I3ZjY2OTkxOTBhNWRlNTY5MTE2Y2M0N2Y4NjFi
My4uNjIzNDQ4ZmJhOWRkN2Y4NWFiNzMzNTkwNmQ0OGJhOTY5NDhmMzM2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdl
U2VuZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCi0gICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmKTsKKyAgICB2b2lkIGNyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIGRlbGV0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAyMzgyZGYxZDhlNTlm
MGE4ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFkLi5hYjVlOThlNDk3MTlhYWRlZDVlOTFiYmQzNzM4
MDdlMTBkMDE3M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKICAg
ICBEZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKICAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKTsKICAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDJjZTk1NGY0
OGJmZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2UxMzguLjg3Mjk2OTE2NjcyMTE5ZjFiYmQzOTI4
YzYwMTgzMmUzNmNlMzRmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQzLDI5ICs0
MywyNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1Jl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFp
bnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJj
ZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5h
bWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFn
ZXIpCiB7CiAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZSk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0
QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0
ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwg
YXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8p
IHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQo
KSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBh
dXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFz
dWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVz
c2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcsMTAgKzg0LDYgQEAgUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKQogICAgICAgICBp
ZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVu
dCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5z
ZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmJiBjYXBhYmlsaXRpZXMpCkBAIC0xMTksOSArMTEyLDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6aGFzRW5kZWQoKQogewot
ICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKLSAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50
aWZpZXIoKSk7Ci0gICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVt
b3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgaWYgKG1fcHJveHkuaGFzRW5kZWQoKSkgewor
ICAgICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgICAgIG1f
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlm
aWVyKCkpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0
dXJlU3RvcHBlZCgpCkBAIC0xNDksMTQgKzE0Myw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlv
CiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAg
Ly8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0
J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigp
LmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJl
c2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmgKaW5kZXggYTNjNDFkYzA0YWFjZTVkZDRlYTczOWE2MGYyYTUzMGU1ZTNkMDc1ZS4uODhh
YWJhMDhiNTY1YmVlOWFlNGZhNGE3M2E3ODg4NjU5MDg3MWUwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBS
ZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAg
flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5Lmlk
ZW50aWZpZXIoKTsgfQpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzb3VyY2VN
dXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KIAog
cHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2Vzcyk7CisgICAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVk
aWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5z
dGFydFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAppbmRleCBj
NTUzMzUzM2FjNTViMWY1YzJhZGFlZTE4ODk2ZjM2MTRmN2NlZTM1Li5iNDkwYTdhNTdmMTY0NzNi
NzQ1Y2Q2YmYyMDZlMzFjMTA1YmU5MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcApA
QCAtMzgsMTcgKzM4LDE3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5h
Z2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRl
KCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1h
bmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAg
bWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBz
b3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0K
IAotUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCitSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJp
bmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
V1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlm
aWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAg
ICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7CkBAIC01Nyw3ICs1Nyw3IEBAIFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVuCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGVSZW1v
dGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShk
ZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0o
Ym9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0
byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CisgICAgbV9wcm94eS5jcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1
dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywg
YXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAg
ICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTEwMCw5ICsxMDAsMTAgQEAgdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWQKIAog
dm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3By
b3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkp
OwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJj
ZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAg
bV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBtX21hbmFnZXIu
cmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsK
KyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjYXB0dXJlU3Rv
cHBlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKaW5kZXggNTJmNTM1YjNkNzNkNjg5Nzc4Yjk1
ZjE5NDdmOGU3MmQ4Mjk4ZDZhMS4uOGQ4MmZiNTk3NDllYTg1ZGMwYmQ0NjVjNDg1YzI0NzkyMDJj
MGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
OworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAg
flJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgpOwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHku
aWRlbnRpZmllcigpOyB9CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNvdXJj
ZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQog
CiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwor
ICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA0YTI5NGQ4YzU0MTcxZTZlMTAw
NWIzYTQwNjY1NmIyNmMxNTljMDRkLi5iZTc1NDU1ODE4YjUzNWU1ZWYyZDZjODg1NDYxNzQwMGIz
YzBjOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNjgsOSArNjgs
OSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0Rh
dGEoKQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAK
LXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0ZUNhbGxiYWNrJiYgY2Fs
bGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJREhhc2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgQ3Jl
YXRlQ2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSkKIHsKLSAg
ICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29u
c3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25z
dHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBw
bHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTk5LDkgKzk5LDE0IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
OjpmYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYKICAgICAgICAgY2Fs
bGJhY2tzLnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNF
cnJvciB7IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eTo6aGFzRW5kZWQoKQorYm9vbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6Omhhc0VuZGVkKCkKIHsKKyAgICBpZiAobV9pc0VuZGVkKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVy
IH0sIDApOworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBj
YWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAppbmRleCAwM2MxZDcxMjIyN2Nk
NWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi4yMDZmNmY5MTc4YWM5Yjg0YTM2N2YwMjcwNmEw
NjNlNDRkNzU4ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCkBAIC01MywxMyAr
NTMsMTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcg
Q3JlYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRh
PiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1l
ZGlhU291cmNlKGNvbnN0IFN0cmluZyYsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNl
UmVtb3RlRnJhbWUgPSBmYWxzZSk7CisgICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShj
b25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwg
Ym9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9IGZhbHNlKTsKIAogICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJp
bmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQg
ZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7
CiAgICAgCi0gICAgdm9pZCBoYXNFbmRlZCgpOworICAgIGJvb2wgaGFzRW5kZWQoKTsKICAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsK
ICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVy
JiYpOwpAQCAtNzUsMTIgKzc1LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgbV9kZXZpY2U7CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBm
YWxzZSB9OworICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlkZW50aWZpZXI7CiAK
ICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAgICAgRGVxdWU8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1f
cGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBm
YWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsK
ICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9
OwogfTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBkMmQyNGFiYWI5
ZWMzNGEwZGEyMmViNjVhOGFkM2NiNWYwMDdkOTdjLi44OGI4ZWM3NmJhNDg3NjQ3YmVkZmUyOTk4
MDg1YmU3MWM3NTM5OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00NSwyOSArNDUs
MjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2Us
IGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlk
ZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAg
ICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5j
b3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICBy
ZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAg
IDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAg
ICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Ms
IGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJ
REhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBz
dWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNh
cGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11
dGFibGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNo
U2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGlu
Z3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8g
ZnJhbWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAg
ICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtOTMsMTEgKzg5LDYgQEAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkK
ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNl
KCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNl
dENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0
aWVzKQpAQCAtMTQ3LDkgKzEzOCwxMCBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogCiB2b2lk
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhh
c0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwotICAg
IG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVu
dGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAgbV9tYW5h
Z2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBtX21hbmFnZXIucmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICB9
CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQpA
QCAtMjA0LDE0ICsxOTYsNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0Vu
ZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
aWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYg
dGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQg
YW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAg
ICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAg
IG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNv
bm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBj
cmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMzJhOGEx
MTU0NjRiMGI2NWI3ZWFmM2JmMGRiODE3ZmUxYjhmOWE5Ny4uZmIzMDFiNWE0MzFiM2VkMjc2M2My
YmEyMDQ1MzI0MjY5ZDk0OTljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC01NSw3ICs1NSw3
IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2Vi
Q29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAg
IH5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5p
ZGVudGlmaWVyKCk7IH0KQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc291cmNl
TXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CiAK
IHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7
IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4
IGY2ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLjNjZjIyNzhmNGU5MzE1
MTRiZGMyNmE3ZDc0OWEzZmE2Yzk2NzAyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMjEy
LDcgKzIxMiw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgfSwgW10oc3RkOjpudWxs
cHRyX3QpIHsgfSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYg
IUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQpAQCAtMjI1LDcgKzIyNSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdv
cnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
OjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9t
YW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHJldHVybiBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBh
Z2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9G
YWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCkBAIC0yMzgs
NyArMjM4LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5Ojpz
ZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmEKICAgICBtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MgPSB2YWx1ZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikK
IHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCkBAIC0yNDgsMTAgKzI0OCwxMCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwog
ICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKICAgICBib29s
IHNob3VsZFVzZUlPU3VyZmFjZSA9ICFtX21hbmFnZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVt
b3RlRnJhbWVzOwotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwg
Y29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CisgICAgcmV0dXJuIENh
cHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJ
ZGVudGlmaWVyKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVy
cm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxh
eUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNl
T3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURp
c3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlm
IChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNjAsNyArMjYwLDcgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5Ojpj
cmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKLSAgICByZXR1
cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50
cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2
aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDhjYzViNGY5MjY5YjI0NGRiNTk5
NWI3Yjc0NDRiOTE1OTdmMTZhODIuLjhkMjJjZDMwMmI2Y2U4NjkwYTk4ODg0OTdlMzA5MGMyMDUz
YTg5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2Vi
Q29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAg
ICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFn
ZXI7IH0KICAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBzcGVh
a2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3BlYWtlckRldmljZXM7IH0KIApA
QCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKikgZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9t
YW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAgICAgICAgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgog
ICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNw
bGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAgICBXZWJD
b3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigp
IGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQog
CiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZh
NmY5NTM2YTRmMzEwZjQ0NzE4MmEwZjYxYmQ2YjVjNjBmNGQzZi4uNTIzYzI0Nzg4YTUzNTcwN2Y0
Y2E3MDRlNmI5MmRkZDNkMzAxMzIxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAzLTAy
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0
dXJlIHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUGVyIHBhZ2Ugc291cmNlcworCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4
dDoKKwogMjAyMi0wMy0wMSAgTWF0dGVvIEZsb3JlcyAgPG1hdHRlb19mbG9yZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFsgaU9TIF0gcG9pbnRlcmV2ZW50cy9tb3VzZS8qIDEwIHBvaW50ZXIgZXZl
bnQgdGVzdHMgYXJlIGNvbnN0YW50IHRpbWVvdXRzIG9yIGZhaWx1cmVzIG9uIGlPUy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5n
ZS1ldmVudC0yLWV4cGVjdGVkLnR4dAppbmRleCAwNDgzYzcwZGRiZDdkZTkxZmNkYTA1NjhkMjNm
Y2MwZjFlOGU5MzYzLi5kYWE2NzRhN2Y5Nzc2NWMyNDEzZmUzOTVjMjhkNWYyODJkZmYzODkzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZl
bnQtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZp
Y2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAorQ09OU09MRSBN
RVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJl
CitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFjayBlbmRlZCBkdWUgdG8gYSBjYXB0
dXJlIGZhaWx1cmUKIAogUEFTUyAnZGV2aWNlY2hhbmdlJyBldmVudCBmaXJlZCB3aGVuIGRldmlj
ZSBsaXN0IGNoYW5nZXMKIFBBU1MgJ2RldmljZWNoYW5nZScgZXZlbnRzIGZpcmVkIHF1aWNrbHkg
YXJlIGNvYWxlc2NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhwZWN0ZWQudHh0CmluZGV4IDUw
MjRjZWY2NTNmMzZhNDZiNWFiNzg2MzAxOTg1NDEwZDMyMTA5ZDUuLmQyZmE2Njg3ZGY0NWVmY2Iy
ODJmNjE5Y2JkMjQ4M2I4MWEzZDg0MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFj
ayBlbmRlZCBkdWUgdG8gYSBjYXB0dXJlIGZhaWx1cmUKK0NPTlNPTEUgTUVTU0FHRTogQSBNZWRp
YVN0cmVhbVRyYWNrIGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQorQ09OU09MRSBNRVNT
QUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJlCiAK
IFBBU1MgRGV2aWNlIElEcyBzaG91bGQgYmUgZW1wdHkgaW5pdGlhbGx5CiBQQVNTIENvbGxlY3Qg
ZGV2aWNlIElEcwo=
</data>
<flag name="commit-queue"
          id="481008"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453587</attachid>
            <date>2022-03-02 04:16:45 -0800</date>
            <delta_ts>2022-03-02 05:31:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237359-20220302131643.patch</filename>
            <type>text/plain</type>
            <size>137351</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRkZTA1NWUzZGEyOGQx
ZTE3MmNlMDJjOTA4NmVlMTdiYjFiMDNlZi4uMzg3MDU5ZThhZjAyNTQyNzhmNmY0ODIyNTMwZTk4
OGE0Y2RmMzZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGVyIHBhZ2Ugc291cmNlcworCisgICAgICAgIE5vIG5ldyB0ZXN0
cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIu
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9T
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2VJT1MubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwog
MjAyMi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFiZjAxMjQxMzcw
ZjRhN2FhZWRlNDBlZGQxZjI4Yjg5MTY0ZmJmNC4uODVhZGY1NjJhZTk0NzA2YzU3YmYzMzAxNmZk
OGQ3YWU5MTI3ZmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMy0wMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2NvcGUgY2FwdHVyZSBz
b3VyY2VzIGJ5IHBhZ2UgaWRlbnRpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBlciBwYWdlIHNvdXJjZXMKKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwog
MjAyMi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDNj
YjRhNDlkOTg1MTZjOWNiZDUxZGVkY2ZhYzM2YWYyZGZkNWQxNTEuLjkyYzY2Mzg4MDgxZWQ0OTk2
NDJmOTJhODBjZDc1OTZiYjhjNTQzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNSw3ICsx
MTM1LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBh
Z2UvUGFnZUdyb3VwLmgKLSAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJ
bmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5oCkBAIC0xMjkyLDYgKzEyOTEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BP
REludGVydmFsVHJlZS5oCiAgICAgcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0
Zm9ybS9QYWdlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxh
dGZvcm0vUGFzdGVib2FyZENvbnRleHQuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21E
YXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcAppbmRleCA1MDZmMzM3NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5
Li4wZmFhOGJiNTVhMTk4NWU5ODBmNzM2YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0x
NDIsNyArMTQyLDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJl
YW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0
cmFpbnRzLnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byBy
ZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVh
bVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RG
TW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1v
dmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0
ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1v
dmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdl
c3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2Up
KTsKIAogICAgIGlmICghZG9jdW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNG
b2N1cygpKSB7CiAgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAg
dm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJl
YW1Db25zdHJhaW50cyYgY29uc3RyYWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1
dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFT
dHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0
cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOwor
ICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsg
TWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRl
b0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJ
RCgpIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suY3BwCmluZGV4IGE0NWQxOWU1NDczOTk1NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQu
LmZjMTc2MTU2ZGQwZmNkMjIxZGZiODI3MjMxODE0MmRhNzBjZjA4OGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cApAQCAtNDY5LDQ0ICs0NjksMTIgQEAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRp
YVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVy
biBzdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1Nv
dXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UsIERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2Fw
dHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1l
bnQgfHwgdHJhY2stPmVuZGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBp
ZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0g
ZG9jdW1lbnQucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
YXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFj
dGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCph
Y3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0g
cGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRp
b0NhcHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBh
Z2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRl
cnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAg
ICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAo
YWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQo
KmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQg
PSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZp
ZGVvQ2FwdHVyZUlzTXV0ZWQpOwotICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQo
cGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAo
YXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChj
YXB0dXJlVHJhY2stPmRvY3VtZW50KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVu
ZGVkKCkpCiAgICAgICAgICAgICBjYXB0dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUo
KTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1Bh
Z2VNdXRlZFN0YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDM0OWFk
ZjZiNDJjY2IzY2MxZDZjMDdhMmU1NDRjMmJjNTkzYWNhNGIuLmFmYmNlN2E5ZjQ1NmY3ZDUwNzY4
NzgwOWNiZTE2ZTExYmU0MGUyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtNjIsOSArNjIsOSBAQCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQogICAgIHJldHVybiBjYXB0
dXJlRGV2aWNlOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYgY2FwdHVyZURldmljZSkKK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAg
ICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAiU3Bl
ZWNoSUQiX3MsIHsgfSk7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y2FwdHVyZURldmljZSwgIlNwZWVjaElEIl9zLCB7IH0sIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJh
Y2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3Vy
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGNhOTAzYjEyYjdmMjIxOTM1ZjVk
ZmExOThkYmIxYThjNGM3OWQzNDkuLmUzMjhkYzNjN2NkMzBmNjk5MzAyN2NiN2Q5ODRjNjYxN2Zi
OTZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1
YmxpYzoKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0
YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBQYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
YTFkNmI2ZmM2M2FkMjkxZjA3MjhkNTE4OTdlOGI5YzE3OTdjYjMwMS4uZDg1ZjBlNzM4YjYwZTFm
MDNlOWY0NzRhMzcxOGQxZWFmMjBiNDMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIxOTIsNyArMjE5
Miw2IEBAIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5j
cHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAK
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAotcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWE1NzY1ZWY2OGQz
MzgxZDg3MDY0NWZmM2U3ZmI3NWZiY2Q0NGRlMy4uMzhmYTY4ZTY3MzY2ODFmYTZhZDE3NmUwYWRl
MTM5ODk2YTg0N2NkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTE4Miw2ICsxMTgyLDcgQEAKIAkJNDE4RkNCRTcyNzE1QTI4
RjAwRjk2RUNBIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJU
Q1J0cENvZGVjQ2FwYWJpbGl0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRBMEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25p
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkw
RjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYz
NEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZD
RiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLzsgfTsKKwkJNDE5MkJC
MTMyN0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyog
UGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MTlBQ0Y5MjFGOTdFN0RBMDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlBQ0Y4
RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE5QkMyREYxNjg1MzI5OTAwRDY0
RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxOUJDMkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0
YXRlLmggKi87IH07CiAJCTQxOUJFNzU5MUJDN0Y0MkIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRp
bk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTlCRTc1MjFCQzdGM0RCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5oICovOyB9OwpA
QCAtMTM2Myw3ICsxMzY0LDYgQEAKIAkJNDZBNzhCMzQyNzk5QkQ3MTAwMTE1NEZFIC8qIFdvcmtl
ck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMUIxRDI2MjZGMThBNEIwMDg4MkRBMiAvKiBXb3JrZXJPcHRpb25zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZBQUFBM0QyNUQzNjMyMDAw
QkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkFBQUEzQTI1RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9G
aWxlUmVhZGVyQ29jb2EuaCAqLzsgfTsKIAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpT
RXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9t
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDZC
NjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0NkI4NTkzQzI2MTY3MjI3MDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291
cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRl
ci5oICovOyB9OwogCQk0NkI5NTE5NTIwN0Q2MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5k
b3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjk1
MThBMjA3RDYzMjgwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2Qjk1MTk2MjA3RDYzM0EwMEE3
RDJERCAvKiBBYnN0cmFjdEZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NkI5NTE4RjIwN0Q2MzJCMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MTAz
LDcgKzYxMDMsNiBAQAogCQkwNzUzODYwMDE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRy
YWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRU
cmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgw
MEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNB
OTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9Q
cmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8q
IE1lZGlhVXNhZ2VJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VXNhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk3MTg4NDQ4
NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTg4NTgsNiArODg1Nyw3IEBACiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUz
MUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTQyMDM1MDJBNTAwNEJB
Mjc3IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTk0NTY5NjIwMzUwMkE2MDA0QkEyNzcg
LyogQXBwbGljYXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdv
cmtlckZldGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3Jr
ZXJGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTMxMSw3ICs5MzExLDYg
QEAKIAkJNDZBQUFBM0MyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlckNv
Y29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBQ0Q4MTEyNzAxNjU2QTAw
RUY4Q0VEIC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblJlcXVlc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRDdXN0
b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4
QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjg1OTNB
MjYxNjcyMEMwMDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NkI5NTE4QTIwN0Q2MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWJzdHJhY3RET01XaW5kb3cuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZCOTUxOEMyMDdENjMyOTAwQTdEMkREIC8q
IFJlbW90ZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjkwLDcgKzE4
Njg5LDYgQEAKIAkJCQk0QTRGNjU2RDFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcy5oICovLAogCQkJCTRBMEZGQTlGMUFBRjVFQTIwMDYyODAzQiAvKiBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCAqLywKIAkJCQk0QTBGRkFBMDFBQUY1RUEyMDA2
MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oICovLAotCQkJCTA3NTRBNUVCMjE1
RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8sCiAJCQkJ
MDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmgg
Ki8sCiAJCQkJNDFCODc3NjAyM0RFMTA0MjAwMzYzOEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJNEE0RjY1NkUxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncy5jcHAgKi8sCkBAIC0yNDI1NSw3ICsyNDI1Myw2IEBACiAJCQkJ
OTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5
MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdB
Njc0QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJ
CQk0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQlD
REVGREEwRDI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNG
QjE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlD
N0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oICovLApAQCAtMzAxMDAsNiArMzAwOTcsNyBA
QAogCQkJCTQxNzhFRjE2MjQxMjVCNkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5jcHAg
Ki8sCiAJCQkJNDE3OEVGMTQyNDEyNUI2QzAwMTkzQzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmgg
Ki8sCiAJCQkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIu
aCAqLywKKwkJCQk0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAq
LywKIAkJCQkyRUUwMkExRTFGNzMyNDI4MDAwNkFGNzIgLyogUGFzdGVib2FyZC5jcHAgKi8sCiAJ
CQkJNEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQuaCAqLywKIAkJCQlGNDBE
QUFFQjI1RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVib2FyZENvbnRleHQuaCAqLywKQEAgLTM2NTUz
LDcgKzM2NTUxLDcgQEAKIAkJCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3Vw
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTY3NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdy
b3VwTG9hZERlZmVycmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDNDFGQUE0NEJDMDAz
N0QxRTYgLyogUGFnZUhlYXBBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDZCNjUwREQyMjk2
MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTky
QkIxMzI3Q0Y2Mzg2MDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNERUZEQTBFMjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVDQjA1MjQxRkI1MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTJENUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3Zlcmxh
eS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRj
NWZhNGQ4YWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEs
MzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09i
amVjdElkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIFBhZ2VJZGVu
dGlmaWVyVHlwZSB7IH07Ci11c2luZyBQYWdlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8
UGFnZUlkZW50aWZpZXJUeXBlPjsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFnZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVu
dGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRkNWY4ZDI5NzU2M2VlMDI5YzQxM2U5Y2RhNzQ5NGM1ZmE0
ZDhhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVu
dGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIFBhZ2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBQYWdlSWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8UGFnZUlkZW50aWZpZXJUeXBlPjsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaApp
bmRleCBhNGQ0YjUyNWJlODk5YzI5MjE2NDA5YzI4OTQ3NmUxOWY0NmU3NzFkLi5kMDc5NTZmNDlh
YWNhOGI1YzM1MTlhMjk3OGI2OTIwYzg0MWExNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaApAQCAtMzAs
NiArMzAsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJNZWRpYUNv
bnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zOSw2ICs0MCw3IEBAIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3Qgewog
ICAgIE1lZGlhQ29uc3RyYWludHMgYXVkaW9Db25zdHJhaW50czsKICAgICBNZWRpYUNvbnN0cmFp
bnRzIHZpZGVvQ29uc3RyYWludHM7CiAgICAgYm9vbCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQg
eyBmYWxzZSB9OworICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyOwogCiAgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdApAQCAtNDcsMTUgKzQ5LDIwIEBAIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAg
ICAgICBlbmNvZGVyIDw8IGF1ZGlvQ29uc3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgdmlk
ZW9Db25zdHJhaW50czsKICAgICAgICAgZW5jb2RlciA8PCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRn
ZWQ7CisgICAgICAgIGVuY29kZXIgPDwgcGFnZUlkZW50aWZpZXI7CiAgICAgfQogCiAgICAgdGVt
cGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhU3RyZWFtUmVx
dWVzdD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBNZWRpYVN0cmVh
bVJlcXVlc3QgcmVxdWVzdDsKLSAgICAgICAgaWYgKGRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlw
ZSkgJiYgZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVy
LmRlY29kZShyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVl
c3QuaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkKSkKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
OwotCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVxdWVzdC50eXBlKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVl
c3QuYXVkaW9Db25zdHJhaW50cykKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1
ZXN0LnZpZGVvQ29uc3RyYWludHMpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVx
dWVzdC5pc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5k
ZWNvZGUocmVxdWVzdC5wYWdlSWRlbnRpZmllcikpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiByZXF1ZXN0OwogICAgIH0KIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKaW5kZXggZGUwZjFhN2E0ZTYzNWExMzllNDgyOGI1NDdmZGNmMDY2MTliMzVh
Yi4uZjFjOWU2MDI4MTNhM2JmNmZiMzE0MTc4OGI2NjA0Y2E0M2IwOWI5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKQEAgLTQ4LDggKzQ4LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogbV9p
ZEhhc2hTYWx0KFdURk1vdmUoaGFzaFNhbHQpKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAg
OiBtX3BhZ2VJZGVudGlmaWVyKHBhZ2VJZGVudGlmaWVyKQorICAgICwgbV9pZEhhc2hTYWx0KFdU
Rk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9wZXJzaXN0ZW50SUQoV1RGTW92ZShkZXZpY2VJRCkp
CiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5oCmluZGV4IGIyNTkzNzY3OWFiOTI3MGYxOWI2MmZmNDBkNTI1MTE0M2I2OWFiNDQu
LmFjNGZkZTkzNWI3ODA0ZGEyZWRlNTkzMDk1OWM0MmUxMmI5ZjcwYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmgKQEAgLTY5LDYgKzY5LDcgQEAgc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogCiBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRo
cmVhZDo6TWFpblJ1bkxvb3A+CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHB1YmxpYyBMb2dn
ZXJIZWxwZXIKICNlbmRpZgpAQCAtMjIxLDggKzIyMiwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sKSB7IHJldHVybiBmYWxzZTsgfQog
CisgICAgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VJZGVudGlmaWVyOyB9CisKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZU1lZGlhU291cmNlKFR5
cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0geyB9LCBTdHJpbmcmJiBoYXNo
U2FsdCA9IHsgfSk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0sIFBhZ2VJ
ZGVudGlmaWVyID0geyB9KTsKIAogICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rp
b248dm9pZCgpPiYmKTsKIApAQCAtMjczLDYgKzI3Niw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWdu
ZWQgbV9mcmFtZUNvdW50IHsgMCB9OwogI2VuZGlmCiAKKyAgICBQYWdlSWRlbnRpZmllciBtX3Bh
Z2VJZGVudGlmaWVyOwogICAgIFN0cmluZyBtX2lkSGFzaFNhbHQ7CiAgICAgU3RyaW5nIG1faGFz
aGVkSUQ7CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVudElEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcAppbmRleCA5NDUyNjMyNGJkNDhhYjIyZTE5NDBjMTEyMDhmNTNiMWI5MjFjMzRh
Li4wMDc0ZDE0NDk1ZTljZjEwY2UwNTRiOWVmMDliNDFiNzdkNmI4NmRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9n
Z2VyLCBOZQogCiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGF1ZGlvU291cmNlOwog
ICAgIGlmIChhdWRpb0RldmljZSkgewotICAgICAgICBhdXRvIHNvdXJjZSA9IGF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShhdWRpb0RldmljZSks
IFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOworICAgICAg
ICBhdXRvIHNvdXJjZSA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZShhdWRpb0RldmljZSksIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0
LmF1ZGlvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICBpZiAo
IXNvdXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQo
bWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIs
IHNvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04OSw5ICs4
OSw5IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0o
UmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAgICAgaWYgKHZpZGVvRGV2aWNlKSB7CiAg
ICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZTsKICAgICAgICAgaWYgKHZpZGVvRGV2
aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAg
ICAgICBzb3VyY2UgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJnJlcXVlc3Qudmlk
ZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBzb3VyY2UgPSB2aWRlb0NhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRp
Zmllcik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNvdXJjZSA9IGRpc3BsYXlDYXB0dXJl
RmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2Up
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAg
ICAgICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogCiAgICAgICAgIGlm
ICghc291cmNlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIHZpZGVvIHNvdXJjZTog
Iiwgc291cmNlLmVycm9yTWVzc2FnZSkpKTsKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldERpc3BsYXlNZWRpYURldmljZXMoY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JgogICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gZGlzcGxheUNhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0byBzb3VyY2VP
ckVycm9yID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRz
LCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYg
c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3Qu
dmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgZGlzcGxh
eURldmljZUluZm8uYXBwZW5kKHsgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNz
U2NvcmUoKSwgZGV2aWNlIH0pOwogCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVx
dWVzdCYgcmUKICAgICAgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7
IGhhc2hTYWx0IH0sIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBhdWRp
b0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5n
IHsgaGFzaFNhbHQgfSwgeyB9LCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgICAg
IGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9y
dHNDb25zdHJhaW50cyhyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50
KSkKICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVycm9y
LmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApAQCAtMjM1LDcgKzIz
NSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNl
cyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5l
bmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8g
c291cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0
byBzb3VyY2VPckVycm9yID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRl
bnRpZmllcik7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9y
LmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgdmlkZW9EZXZpY2VJbmZv
LmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2
aWNlfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZThlNTVkZjI3ZjRhM2Y2ODU4ZjEzYjU4NmE0OGU5NjU1YWZlNjFm
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
Ci0jaW5jbHVkZSAiQ2FwdHVyZURldmljZS5oIgotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0
ZS5oIgotI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKLSNpbmNsdWRlIDx3dGYvU0hB
MS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgU2luZ2xlU291cmNlRmFjdG9yeTo6
c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAo
bV9hY3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2Fj
dGl2ZVNvdXJjZSAmJiBtX2FjdGl2ZVNvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAg
IG1fYWN0aXZlU291cmNlLT5zZXRNdXRlZCh0cnVlKTsKLSAgICBtX2FjdGl2ZVNvdXJjZSA9ICZz
b3VyY2U7Ci19Ci0KLXZvaWQgU2luZ2xlU291cmNlRmFjdG9yeTo6dW5zZXRBY3RpdmVTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQotewotICAgIGlmIChtX2FjdGl2ZVNvdXJjZSA9
PSAmc291cmNlKQotICAgICAgICBtX2FjdGl2ZVNvdXJjZSA9IG51bGxwdHI7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRleCBiYTBkOTAzZTYyOWVkOGFiZWRmN2NmY2Yx
ZWY5NjUxMTNlMzg5MGJmLi42NjFkNTkyZWVjMjA3NjY4NjZlOWUyYWY4MDNjMjQyNzZmNmQ3MDk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSwyNyArNDIsMTAgQEAg
Y2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsK
IHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBTaW5nbGVT
b3VyY2VGYWN0b3J5IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TaW5nbGVTb3VyY2VGYWN0b3J5
KCkgPSBkZWZhdWx0OwotCi0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlJik7Ci0gICAgdmlydHVhbCB2b2lkIHVuc2V0QWN0aXZlU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2UmKTsKLQotICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0
aXZlU291cmNlKCkgeyByZXR1cm4gbV9hY3RpdmVTb3VyY2U7IH0KLQotcHJpdmF0ZToKLSAgICBS
ZWFsdGltZU1lZGlhU291cmNlKiBtX2FjdGl2ZVNvdXJjZSB7IG51bGxwdHIgfTsKLX07Ci0KLWNs
YXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIDog
cHVibGljIFNpbmdsZVNvdXJjZUZhY3RvcnkKLSNlbmRpZgoteworY2xhc3MgQXVkaW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0g
ZGVmYXVsdDsKLSAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqKSA9IDA7CisgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIENhcHR1
cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwogICAgIHZp
cnR1YWwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVNwZWFrZXJEZXZpY2VzKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykgY29uc3QgeyBjYWxsYmFjaygpOyB9CkBAIC03NCwy
OCArNTgsMjAgQEAgcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1
bHQ7CiB9OwogCi1jbGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNz
IFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigp
ID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7
CiB9OwogCi1jbGFzcyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkKLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgIDogcHVibGljIFNpbmdsZVNvdXJjZUZhY3RvcnkKLSNlbmRpZgoteworY2xhc3Mg
RGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EaXNwbGF5Q2Fw
dHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5n
JiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmlydHVhbCBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgRGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmlj
ZU1hbmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmNwcAppbmRleCA4MmRlMjU4YmJjN2IxYTE4NmRjYjU3MGRjYTA0NDBkOGFiNDAwOWUxLi4z
MGIwYTI1OGQzYWQwMDljODM3NzNhZDY5ZDZiMWNjNjM2YmFiYzViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNSwyNSArMzUsMTMgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6UmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQot
ICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQorUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBT
dHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGlk
KSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogewogfQogCiBSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZTo6flJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKCkKIHsKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0j
ZW5kaWYKLX0KLQotdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlcGFyZVRvUHJv
ZHVjZURhdGEoKQotewotICAgIEFTU0VSVChmcmFtZVJhdGUoKSk7Ci0KLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZp
ZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAK
IGNvbnN0IFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiYgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2U6OnByZXNldHMoKQpAQCAtMzY5LDYgKzM1Nyw3IEBAIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2U6OnNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBz
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9jdXJyZW50UHJlc2V0ID0gbWF0
Y2gtPmVuY29kaW5nUHJlc2V0OwogICAgIHNldEZyYW1lUmF0ZVdpdGhQcmVzZXQobWF0Y2gtPnJl
cXVlc3RlZEZyYW1lUmF0ZSwgbWF0Y2gtPmVuY29kaW5nUHJlc2V0KTsKIAogICAgIGlmICghbWF0
Y2gtPnJlcXVlc3RlZFNpemUuaXNFbXB0eSgpKQpAQCAtNDEyLDYgKzQwMSw3IEBAIHZvaWQgUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmNsaWVudFVwZGF0ZWRTaXplQW5kRnJhbWVSYXRlKHN0
ZDo6b3B0aW9uYWw8aW50CiAgICAgaWYgKCFtYXRjaCkKICAgICAgICAgcmV0dXJuOwogCisgICAg
bV9jdXJyZW50UHJlc2V0ID0gbWF0Y2gtPmVuY29kaW5nUHJlc2V0OwogICAgIHNldEZyYW1lUmF0
ZVdpdGhQcmVzZXQobWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSwgbWF0Y2gtPmVuY29kaW5nUHJl
c2V0KTsKICAgICBzZXRTaXplKG1hdGNoLT5lbmNvZGluZ1ByZXNldC0+c2l6ZSk7CiAgICAgc2V0
RnJhbWVSYXRlKG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmgKaW5kZXggNzAxNzJhYWU1NmNkNGZhNWY1ZWRmZjdmZDQ0OGI1ZjM5NWNkMThh
Yi4uZGMxYzNkNWVhYTc1MTE0ZTJhYmYxMDhhMTU4OGZjYTQ5YWVmOWZkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC01MywxMCArNTMsMTEgQEAgcHVibGljOgogCiAgICAg
dm9pZCBlbnN1cmVJbnRyaW5zaWNTaXplTWFpbnRhaW5zQXNwZWN0UmF0aW8oKTsKIAorICAgIGNv
bnN0IFZpZGVvUHJlc2V0KiBjdXJyZW50UHJlc2V0KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50
UHJlc2V0LmdldCgpOyB9CisKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAg
IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBT
dHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCi0gICAgdm9pZCBwcmVwYXJlVG9Q
cm9kdWNlRGF0YSgpOwogICAgIHZvaWQgc2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFs
PGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91
YmxlPikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgcHJlZmVyc1ByZXNldChWaWRlb1By
ZXNldCYpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTkwLDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UiOyB9CiAjZW5kaWYKIAorICAgIFJlZlB0cjxWaWRlb1ByZXNl
dD4gbV9jdXJyZW50UHJlc2V0OwogICAgIFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiBtX3ByZXNl
dHM7CiAgICAgRGVxdWU8ZG91YmxlPiBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzOwogICAgIGRv
dWJsZSBtX29ic2VydmVkRnJhbWVSYXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRl
eCBjZTZlMDAzNTk3YThiNWRiZDlkMWFhODVjNDU1NjJiMjJhOTNmNDNjLi4xZDRmOTliZjJiMTNh
YTY2YWZmYzI0OGJlY2U1OTgyZWIzMGQ0NjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAt
MzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWFsdGltZVZpZGVvU291cmNl
OjpSZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJiBz
b3VyY2UsIGJvb2wgc2hvdWxkVXNlSU9TdXJmYWNlKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShUeXBlOjpWaWRlbywgU3RyaW5nIHsgc291cmNlLT5uYW1lKCkgfSwgU3RyaW5nIHsgc291cmNl
LT5wZXJzaXN0ZW50SUQoKSB9LCBTdHJpbmcgeyBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSB9
KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgU3RyaW5nIHsgc291cmNl
LT5uYW1lKCkgfSwgU3RyaW5nIHsgc291cmNlLT5wZXJzaXN0ZW50SUQoKSB9LCBTdHJpbmcgeyBz
b3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSB9LCBzb3VyY2UtPnBhZ2VJZGVudGlmaWVyKCkpCiAg
ICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
LCBtX3Nob3VsZFVzZUlPU3VyZmFjZShzaG91bGRVc2VJT1N1cmZhY2UpCkBAIC05NSwxMiArOTUs
MTUgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6
b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHQKICAgICBBU1NFUlQoc291cmNlU2l6ZS5oZWln
aHQoKSk7CiAgICAgQVNTRVJUKHNvdXJjZVNpemUud2lkdGgoKSk7CiAKKyAgICBhdXRvKiBjdXJy
ZW50UHJlc2V0ID0gbV9zb3VyY2UtPmN1cnJlbnRQcmVzZXQoKTsKKyAgICBhdXRvIGludHJpbnNp
Y1NpemUgPSBjdXJyZW50UHJlc2V0ID8gY3VycmVudFByZXNldC0+c2l6ZSA6IHNvdXJjZVNpemU7
CisKICAgICBpZiAoIXdpZHRoKQotICAgICAgICB3aWR0aCA9IHNvdXJjZVNpemUud2lkdGgoKSAq
IGhlaWdodC52YWx1ZSgpIC8gc291cmNlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgd2lkdGggPSBp
bnRyaW5zaWNTaXplLndpZHRoKCkgKiBoZWlnaHQudmFsdWUoKSAvIGludHJpbnNpY1NpemUuaGVp
Z2h0KCk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0V2lkdGgoKndpZHRoKTsKIAogICAgIGlm
ICghaGVpZ2h0KQotICAgICAgICBoZWlnaHQgPSBzb3VyY2VTaXplLmhlaWdodCgpICogd2lkdGgu
dmFsdWUoKSAvIHNvdXJjZVNpemUud2lkdGgoKTsKKyAgICAgICAgaGVpZ2h0ID0gaW50cmluc2lj
U2l6ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBpbnRyaW5zaWNTaXplLndpZHRoKCk7CiAg
ICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0SGVpZ2h0KCpoZWlnaHQpOwogCiAgICAgaWYgKGZyYW1l
UmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nv
Y29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXgg
NTU0ZjhkZDI3YTRiZTVkZWQ2ZTVlMTZhNTJiY2Q0YWQ5MDZmNDJiNy4uMTY2YTUzMDc3MzJiMTE1
ZTQ1ZDYyMDcwZWZhMDBhMDEzODI4YmZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYS5jcHAKQEAgLTgzLDIzICs4MywyMyBAQCBzdGF0aWMgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRm9yRGV2aWNlKENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGUgdAogICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOwogfQogCi1D
YXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkg
ewogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogI2lmIFBMQVRG
T1JNKElPUykKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0dXJlU291cmNlOjpj
cmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gY3JlYXRlKFJlcGxheUtpdENhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2Vsc2UKICNpZiBIQVZFKFNDUkVF
Tl9DQVBUVVJFX0tJVCkKICAgICAgICAgaWYgKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNl
Ojppc0F2YWlsYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJl
S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRl
KFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50
cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmll
cik7CiAjZW5kaWYKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlTdHJlYW1TY3JlZW5D
YXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gY3JlYXRlKENHRGlz
cGxheVN0cmVhbVNjcmVlbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElk
KCkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogI2VuZGlmCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6
CiAjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJl
S2l0Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVh
dGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFp
bnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRl
dmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50
cywgcGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CkBAIC0xMTQsMTIgKzExNCwxMiBA
QCBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aQogICAgIHJldHVybiB7IH07CiB9CiAKLUNhcHR1cmVT
b3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShFeHBlY3RlZDxV
bmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXJlcj4sIFN0cmluZz4mJiBjYXB0dXJl
ciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQogewogICAgIGlmICghY2FwdHVyZXIuaGFzX3ZhbHVlKCkpCiAgICAgICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvciB7IFdURk1vdmUoY2FwdHVyZXIuZXJyb3IoKSkgfTsKIAotICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFdU
Rk1vdmUoY2FwdHVyZXIudmFsdWUoKSksIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFdURk1v
dmUoY2FwdHVyZXIudmFsdWUoKSksIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7
IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZp
ZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3Vy
Y2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdCkK
QEAgLTEyOSw4ICsxMjksOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cgogICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1EaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJl
cj4mJiBjYXB0dXJlciwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRm9yRGV2aWNl
KGNhcHR1cmVyLT5kZXZpY2VUeXBlKCkpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShoYXNoU2FsdCkpCitEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpEaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiBjYXB0dXJlciwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlw
ZUZvckRldmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1f
Y2FwdHVyZXIoV1RGTW92ZShjYXB0dXJlcikpCiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJl
bnQoKSwgdGhpcywgJkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRGcmFtZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAppbmRleCAwNDVjOGNjNDM1ZmNi
MjljNWRlZDBiMmYxYWVjYTUyNDJjNWFlOGMwLi5iOWViMDg1ZDQ3NDkzNGM1ZTA1MWE3NWFiMWRk
MDNjYzU0ZTdmODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5o
CkBAIC0xMTIsMTQgKzExMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIG1fbG9n
SWRlbnRpZmllcjsKICAgICB9OwogCi0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqKTsKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKEV4cGVjdGVkPFVu
aXF1ZVJlZjxDYXB0dXJlcj4sIFN0cmluZz4mJiwgY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNv
bnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBh
Z2VJZGVudGlmaWVyKTsKIAogICAgIFNlY29uZHMgZWxhcHNlZFRpbWUoKTsKICAgICB2b2lkIHVw
ZGF0ZUZyYW1lU2l6ZSgpOwogCiBwcml2YXRlOgotICAgIERpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EoVW5pcXVlUmVmPENhcHR1cmVyPiYmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoVW5p
cXVlUmVmPENhcHR1cmVyPiYmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hKCk7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDQ4
NmIwZTQ0ODZhM2M2NGUzYWMxM2YzNTdiZDAxNGRlMDMxODBkZjYuLjczZWNkMjQwM2JjMGY0OGJk
YTE5ZDUxOTkwMTQ3YTM1NzNiN2VhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lk
IGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIAogY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJl
U291cmNlRmFjdG9yeSA6IHB1YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRp
ZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGUxM2Q1M2IyYjI0ZGNlOWQ1MDI2
ZGEyMzcyODMzZTRlNDIxM2IxZTAuLjMwMWYwZWM0NjkxNDI2OTI3ZTY0MzBhNzA3NDgxMGYzMDM3
ZDEwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogY2xhc3MgR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5
IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBQYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElk
KCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CkBAIC03Miw3ICs3
Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlU291cmNlRmFj
dG9yeSBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAg
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRl
bnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIGF1dG8mIG1hbmFnZXIgPSBHU3RyZWFtZXJE
aXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOwogICAgICAgICByZXR1cm4g
bWFuYWdlci5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CkBAIC0xMjAsNyArMTIwLDcgQEAgRGlzcGxheUNhcHR1cmVGYWN0
b3J5JiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BsYXlGYWN0b3J5KCkKIH0KIAog
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBnY2hhciogc291cmNlRmFjdG9yeSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VU
eXBlLCBpbnQgZmQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgOiBSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RG
TW92ZShoYXNoU2FsdCksIHsgfSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVyPihzb3VyY2VGYWN0b3J5LCBkZXZpY2VUeXBlKSkKICAgICAsIG1fZGV2
aWNlVHlwZShkZXZpY2VUeXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYzc3ZGNhMjdjM2FjN2EyYzYw
NjI1YTMzMTYxMjNjNzk4ZTk2NDQ4NC4uN2I5MjJjOGZmNGEyMzhjNjkyOWUwMTg3OGJkMGJkODAy
NmExMTU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBjb25zdCBkb3Vi
bGUgc19IdW1Wb2x1bWUgPSAwLjE7CiBzdGF0aWMgY29uc3QgZG91YmxlIHNfTm9pc2VGcmVxdWVu
Y3kgPSAzMDAwOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNlVm9sdW1lID0gMC4wNTsKIAot
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQo
ZGV2aWNlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggOTY3NzcxZWYwYWM4NDhhODUxZDkyZGJlMzU5YzVl
YzFmZDA5MmMzYy4uMzdjMjBiNWI4N2UyYzAyNmFiMjljYmMzNjNjOTNhNzg0N2RjNGZhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3Ry
ZWFtZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQ
YWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2
aWNlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
aW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgKaW5kZXggNjY0ODVl
MzJiOTc0YjI2YjZkYjcwZWYzMWY0MTU0NTBjMGM2MzFmZi4uYjEwNWIzZTEwYzgwOTk5OGNhMTE1
OTU2ODBhNGFlODY2MzdiM2JiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5oCkBAIC00NSw3ICs0NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdpbkF1ZGlvU2Vzc2lv
bkludGVycnVwdGlvbigpIHsgYmVnaW5JbnRlcnJ1cHRpb24oKTsgfQogICAgIHZvaWQgZW5kQXVk
aW9TZXNzaW9uSW50ZXJydXB0aW9uKEF1ZGlvU2Vzc2lvbjo6TWF5UmVzdW1lKSB7IGVuZEludGVy
cnVwdGlvbigpOyB9CiAKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKikgZmluYWw7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGFkZEV4dGVuc2l2ZU9i
c2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVFeHRlbnNp
dmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZlciYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlSU9TLm1tCmluZGV4IDY3MDU5MmYzNTE2N2Y2YjA2MTk5NmIwMTY3NGVi
OWI1NDg0NDNhNTIuLmJiMzI5ZmUwZTFkODU3ZWZiNjE3MTc0YmM0OTkxMzZiYWM4M2UzY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tCkBAIC0xMTYsMTMgKzExNiwx
MyBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpyZW1vdmVFeHRlbnNp
dmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZlcgogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5kaXNhYmxlQWxsRGV2aWNlc1F1ZXJ5KCk7CiB9
CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9T
OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitD
YXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeUlPUzo6Y3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICAvLyBXZSBlbmFibGUgZXhoYXVzdGl2ZSBx
dWVyeSB0byBiZSBzdXJlIHRvIHN0YXJ0IGNhcHR1cmUgd2l0aCB0aGUgcmlnaHQgZGV2aWNlLgog
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3RvcCB0aGUgYXV4aWxpYXJ5IHNlc3Npb24gYWZ0ZXIg
c3RhcnRpbmcgY2FwdHVyZS4KICAgICBpZiAobV9vYnNlcnZlcnMuY29tcHV0ZXNFbXB0eSgpKQog
ICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5l
bmFibGVBbGxEZXZpY2VzUXVlcnkoKTsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSwgY29uc3RyYWludHMpOworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5oCmluZGV4IDhjNDEzOGU3MzM4Y2VmYzY5MTczNDIwNzQ0M2FhNDllNTYyZjlmZWYu
LjRiYWZiNTg5MjhhY2UwMWYzYmFlNTkzZTgwOWNiNGJiOGViMWJjZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ7CiAKIGNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlLCBwcml2YXRlIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYm
IGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIApA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlU3VzcGVuZGVk
RGlkQ2hhbmdlKCk7CiAKIHByaXZhdGU6Ci0gICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0
dXJlRGV2aWNlKiwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBBVlZpZGVv
Q2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFz
aFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJj
ZSgpOwogCiAgICAgdm9pZCBjbGVhclNlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbQppbmRleCA2ZTc0M2U1YTk0NTE5MzA3N2YyZTYwZTJlMWJkMzRjYWNmZmIzNTkyLi41YTBl
YTc3OGQ1MjhkM2IxNGI5ZjdmODNmODc3MDRiODc4NDVjNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCkBAIC0xMDgsMTMgKzEwOCwxMyBAQCBwdWJsaWM6CiAgICAgUmV0YWluUHRy
PEFWQ2FwdHVyZURldmljZUZvcm1hdD4gZm9ybWF0OwogfTsKIAotQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBBVkNhcHR1cmVEZXZpY2UgKmRldmljZSA9
IFtQQUw6OmdldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmlkXTsK
ICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5vIEFWVmlkZW9DYXB0dXJlU291
cmNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlk
ZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKSk7
CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRl
dmljZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwog
ICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBw
bHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwogICAgICAgICBpZiAocmVzdWx0KQpAQCAtMTI0
LDggKzEyNCw4IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0CiAgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSkp
KTsKIH0KIAotQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2Fw
dHVyZURldmljZSogZGV2aWNlLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAg
OiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UubG9jYWxpemVkTmFtZSwgV1RGTW92
ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQorQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9D
YXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSogZGV2aWNlLCBTdHJpbmcmJiBpZCwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLmxvY2FsaXplZE5hbWUsIFdURk1vdmUoaWQpLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX29iamNPYnNlcnZlcihh
ZG9wdE5TKFtbV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRX
aXRoQ2FsbGJhY2s6dGhpc10pKQogICAgICwgbV9kZXZpY2UoZGV2aWNlKQogICAgICwgbV92ZXJp
ZnlDYXB0dXJpbmdUaW1lcigqdGhpcywgJkFWVmlkZW9DYXB0dXJlU291cmNlOjp2ZXJpZnlJc0Nh
cHR1cmluZykKQEAgLTEzNyw5ICsxMzcsNiBAQCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6fkFWVmlk
ZW9DYXB0dXJlU291cmNlKCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJ
REVOVElGSUVSKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogICAgIFttX29iamNPYnNlcnZlciBkaXNjb25uZWN0
XTsKICAgICBbbV9kZXZpY2UgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9y
S2V5UGF0aDpAInN1c3BlbmRlZCJdOwogCkBAIC00NjksMTAgKzQ2Niw2IEBAIGJvb2wgQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogewogICAgIEFMV0FZU19MT0df
SUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotCiAgICAgTlNFcnJv
ciAqZXJyb3IgPSBuaWw7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUlucHV0PiB2aWRl
b0luID0gYWRvcHROUyhbUEFMOjphbGxvY0FWQ2FwdHVyZURldmljZUlucHV0SW5zdGFuY2UoKSBp
bml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjomZXJyb3JdKTsKICAgICBpZiAoZXJyb3IpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA5YTBiMjllZGIxZDE3ODE1
NjU0NTBmNThkZTkwOWY2OGM4NzNlYTAzLi5kMjRkNGIzMWZjNTQyMTBlZDhkNTg2MGFlNjc3ODM2
Y2M1NDBhOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC02Njgs
MjcgKzY2OCwyNyBAQCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgaW5pdGlhbGl6ZUNvcmVB
dWRpb0NhcHR1cmVTb3VyY2UoUmVmPENvcmVBdWRpb0NhcHR1cgogICAgIHJldHVybiBDYXB0dXJl
U291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJv
ciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1
cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiBQTEFURk9STShN
QUMpCiAgICAgYXV0byBkZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2lu
Z2xldG9uKCkuY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZp
Y2UpCiAgICAgICAgIHJldHVybiB7ICJObyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIGRldmljZSJf
cyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZpY2VJRCgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0
cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZp
Y2VJRCgpLCBudWxscHRyLCBwYWdlSWRlbnRpZmllcikpOwogI2VsaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBhdXRvIGRldmljZSA9IEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFn
ZXI6OnNpbmdsZXRvbigpLmF1ZGlvU2Vzc2lvbkRldmljZVdpdGhVSUQoV1RGTW92ZShkZXZpY2VJ
RCkpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyAiTm8gQVZBdWRpb1Nlc3Np
b25DYXB0dXJlRGV2aWNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7
IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCkpOworICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNl
SUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDAsIG51
bGxwdHIsIHBhZ2VJZGVudGlmaWVyKSk7CiAjZW5kaWYKICAgICByZXR1cm4gaW5pdGlhbGl6ZUNv
cmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShzb3VyY2UpLCBjb25zdHJhaW50cyk7CiB9CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRl
c3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIEJhc2VBdWRpb1NoYXJlZFVu
aXQmIG92ZXJyaWRlVW5pdCkKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVs
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJyaWRlVW5pdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgMCwgJm92ZXJyaWRlVW5pdCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGxh
YmVsKSwgV1RGTW92ZShoYXNoU2FsdCksIDAsICZvdmVycmlkZVVuaXQsIHBhZ2VJZGVudGlmaWVy
KSk7CiAgICAgcmV0dXJuIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUo
c291cmNlKSwgY29uc3RyYWludHMpOwogfQogCkBAIC03ODAsOCArNzgwLDggQEAgdm9pZCBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6d2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5p
bmcoRnVuY3Rpb248dm8KICAgICByZXR1cm4gQ29yZUF1ZGlvU2hhcmVkVW5pdDo6dW5pdCgpLndo
ZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5uaW5nKFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAot
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBjYXB0
dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqIG92ZXJyaWRlVW5pdCkKLSAgICA6IFJl
YWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1v
dmUobGFiZWwpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCitDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IGNhcHR1cmVEZXZp
Y2VJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCogb3ZlcnJpZGVVbml0LCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9jYXB0dXJlRGV2aWNlSUQo
Y2FwdHVyZURldmljZUlEKQogICAgICwgbV9vdmVycmlkZVVuaXQob3ZlcnJpZGVVbml0KQogewpA
QCAtODIxLDE5ICs4MjEsMTEgQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFs
aXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKQogCiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjp+Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBD
b3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkudW5zZXRBY3RpdmVTb3Vy
Y2UoKnRoaXMpOwotI2VuZGlmCi0KICAgICB1bml0KCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0K
IAogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAgIGlu
aXRpYWxpemVUb1N0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHVuaXQoKS5zdGFydFByb2R1Y2lu
Z0RhdGEoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDMzMDM2ZTk5
NmY2NzNlNTI3MDIzODViNDFlMGE5M2YxODAzNTFmOTkuLjBlYzY3MmJmOWYxYzM2MDU2MjQ5NzBj
MjQxZjZhMGExNTkzNTJkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAt
NTEsMTUgKzUxLDE1IEBAIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogCiBj
bGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2Ug
ewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7
Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUZvclRlc3RpbmcoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJyaWRlVW5pdCk7CisgICAg
c3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7
CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUZvclRlc3RpbmcoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJyaWRlVW5pdCwgUGFnZUlk
ZW50aWZpZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkmIGZhY3RvcnkoKTsKIAogICAgIENNQ2xvY2tSZWYgdGltZWJhc2VDbG9jaygpOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQsIEJh
c2VBdWRpb1NoYXJlZFVuaXQqID0gbnVsbHB0cik7CisgICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1
aW50MzJfdCBwZXJzaXN0ZW50SUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqLCBQYWdlSWRlbnRpZmll
cik7CiAgICAgdmlydHVhbCB+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpOwogICAgIEJhc2VBdWRp
b1NoYXJlZFVuaXQmIHVuaXQoKTsKICAgICBjb25zdCBCYXNlQXVkaW9TaGFyZWRVbml0JiB1bml0
KCkgY29uc3Q7CkBAIC0xMjksMTQgKzEyOSwxNCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB3aGVuQXVkaW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhGdW5jdGlvbjx2b2lkKCk+
JiYpOwogCiBwcml2YXRlOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqKSBvdmVycmlkZTsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRp
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogICAgIENhcHR1cmVEZXZp
Y2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWw7CiAgICAgY29uc3Qg
VmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsOwogfTsK
IAotaW5saW5lIENhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0
b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitpbmxpbmUgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQppbmRleCAwZGQzZDcxY2Fl
N2E2M2I2MzcyMDhmMjgzODIyMGU2NTllNDIxM2NlLi4zNDIyNzQyM2Q4OWIwYTA0OWRlNjlhY2Uz
NWY4ZjM4ZjNkMzBjMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpAQCAtODMsNyAr
ODMsNyBAQCBzdGF0aWMgdm9pZCBhZGRIdW0oZmxvYXQgYW1wbGl0dWRlLCBmbG9hdCBmcmVxdWVu
Y3ksIGZsb2F0IHNhbXBsZVJhdGUsIHVpbnQ2NF90CiAgICAgfQogfQogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKICAg
ICBBU1NFUlQoZGV2aWNlKTsKQEAgLTkxLDcgKzkxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1vY2sgbWljcm9waG9uZSBkZXZpY2UiX3MgfTsKIAog
ICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnNldERldmljZUlEKGRldmljZUlE
KTsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhX
VEZNb3ZlKGRldmljZUlEKSwgIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBjb25z
dHJhaW50cywgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkpOworICAgIHJldHVybiBD
b3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFdURk1vdmUoZGV2aWNlSUQp
LCAgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBNb2NrQXVk
aW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKSwgcGFnZUlkZW50aWZpZXIpOwogfQogCiBNb2NrQXVk
aW9TaGFyZWRVbml0JiBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAppbmRleCA5NWNmMzVjZDRlYjEzMThkODY4MzI3
M2E1ZDA5NmM3MzY0NDYwOGIwLi40ODI5NTc5ZDJmYTE2NTNjZWMwMDEyN2MwM2YyNGNhMzA5NzZj
ZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaApAQCAtNDcsMTMg
KzQ3LDEzIEBAIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKIGNsYXNzIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjIGZpbmFsIDogcHVibGljIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVh
dGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgc3RhdGljIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIH5N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYygpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKICAgICBm
cmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U7Ci0gICAgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KTsKKyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAog
ICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0
ZVNhbXBsZUJ1ZmZlcigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjLm1tCmluZGV4IGZkMTk0ZTYxOWE0NGI4ODExZGNiMTdlMDA0NjcxZjQ0NTM1ZTdhOTcuLjll
MjVmNmQyZDQzMTNmOTBkZTljMGZiMWQ2MGRkODhiMDk3ODVkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUyLDcgKzUyLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRl
ZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Ojptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC02MSw3ICs2MSw3IEBA
IENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIGNhbWVy
YSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0
cmFpbnRzKSB7CiAgICAgICAgIGlmIChhdXRvIGVycm9yID0gc291cmNlLT5hcHBseUNvbnN0cmFp
bnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvci0+bWVz
c2FnZSk7CkBAIC03MCwxMyArNzAsMTMgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICBy
ZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFdU
Rk1vdmUoc291cmNlKSkpOwogfQogCi1SZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKK1JlZjxNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZv
ck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiB9
CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
YyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0g
ICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3dvcmtRdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgUmVuZGVyIFF1ZXVlIiwg
V29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggZjM2N2RhMWJkNTg0ZmU0NTlkYTJi
NzVmMjE1M2QzYWRiNTlmOTY1Zi4uMmQ4Zjg0ZDRhNzMwZWYwMWQ5MDdmYTU5NGYxMjI0ZGJiNmQ4
YjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApA
QCAtNDUsMTAgKzQ1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9DYXB0
dXJlU291cmNlRmFjdG9yeU1hYyBmaW5hbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsK
IHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFT
U0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7
Ci0gICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwor
ICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNTcsOSArNTcsOSBAQCBwcml2YXRl
OgogCiBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMg
RGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykg
ZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAg
ICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShkZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIHByaXZh
dGU6CiAgICAgRGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFn
ZXIoKSB7IHJldHVybiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6c2luZ2xldG9uKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAKaW5kZXggZDA4OTRkNWQ0ZmU4MjVmOGIwNmQ2YzkyOGFhZjA5ODYzNzdj
YzRiMi4uOWU4OGFiMWU1OWU3YTcyYjc4Yzc1NWQ4MjQ3OGJhYmY5OTY0Y2UxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikK
LUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElE
KGRldmljZUlEKTsKQEAgLTYyLDggKzYyLDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKIH0K
ICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQot
ICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
bywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQor
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV93b3JrUXVldWUoV29y
a1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZUF1ZGlvU291cmNlIFJlbmRlciBRdWV1ZSIpKQog
ICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6dGljaykKIHsKQEAgLTc3LDkgKzc3LDYgQEAgTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6On5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgp
CiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2Uo
KnRoaXMpOwotI2VuZGlmCiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkKQEAgLTEzNiw3ICsxMzMsNiBAQCB2
b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8
UmVhbHRpbWVNZWRpYVNvdXJjZVNldAogdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3Rh
cnRQcm9kdWNpbmdEYXRhKCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5z
ZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAgQVNT
RVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5k
ZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBjNzliOTQyNDJkMDg2OGZmOC4uN2EwZjRkMTViOTUz
ZjBhMDhlODFmY2M0OTVkZjVlMzgyZjlhN2UwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTMgKzQy
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsQ291bnQodW5zaWduZWQpOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZW5kZXIoU2Vjb25kcykgPSAw
OwogICAgIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5nczo6RmxhZz4pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApp
bmRleCAwOTJkMmZlNjExOTM0OGY5ODY1YTg4ZmIyNzkxZTNhMmQ3MTRhNDAxLi42ZDEyYzZiZjA3
OGRhMmY1NGVmNDY3NTY3YTBmZDM1NWEwNjlkMTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcApAQCAtMTAxLDEzICsxMDEsMTMgQEAgc3RhdGljIGlubGluZSBWZWN0b3I8TW9ja01lZGlh
RGV2aWNlPiBkZWZhdWx0RGV2aWNlcygpCiAKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
RmFjdG9yeSA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgp
ID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7CiAgICAgICAgIGlmICghTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElE
KENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
KSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIGNhbWVyYSBkZXZp
Y2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKIAotICAgICAgICByZXR1cm4gTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0K
IAogcHJpdmF0ZToKQEAgLTExNyw3ICsxMTcsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1B
QykKIGNsYXNzIE1vY2tEaXNwbGF5Q2FwdHVyZXIgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXIgewogcHVibGljOgotICAgIGV4cGxpY2l0IE1vY2tEaXNw
bGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIE1vY2tEaXNwbGF5Q2FwdHVy
ZXIoY29uc3QgQ2FwdHVyZURldmljZSYsIFBhZ2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAg
ICBib29sIHN0YXJ0KCkgZmluYWw7CkBAIC0xMzQsOCArMTM0LDggQEAgcHJpdmF0ZToKICAgICBS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIH07CiAKLU1vY2tEaXNwbGF5
Q2FwdHVyZXI6Ok1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
KQotICAgIDogbV9zb3VyY2UoTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1v
Y2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmlu
ZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IH0pKQorTW9ja0Rpc3BsYXlDYXB0dXJlcjo6
TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9zb3VyY2UoTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IH0sIHBh
Z2VJZGVudGlmaWVyKSkKIHsKIH0KIApAQCAtMTc3LDcgKzE3Nyw3IEBAIEludFNpemUgTW9ja0Rp
c3BsYXlDYXB0dXJlcjo6aW50cmluc2ljU2l6ZSgpIGNvbnN0CiAKIGNsYXNzIE1vY2tSZWFsdGlt
ZURpc3BsYXlTb3VyY2VGYWN0b3J5IDogcHVibGljIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBw
dWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAg
aWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJz
aXN0ZW50SUQoZGV2aWNlLnR5cGUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAg
ICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIGRpc3BsYXkgZGV2aWNlIHdpdGggZ2l2
ZW4gcGVyc2lzdGVudElEIl9zIH07CkBAIC0xODYsMTEgKzE4NiwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1
ZVJlZjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxN
b2NrRGlzcGxheUNhcHR1cmVyPihkZXZpY2UpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2E6OmNyZWF0ZShVbmlxdWVSZWY8RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXI+
KG1ha2VVbmlxdWVSZWY8TW9ja0Rpc3BsYXlDYXB0dXJlcj4oZGV2aWNlLCBwYWdlSWRlbnRpZmll
cikpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogI2VsaWYgVVNFKEdTVFJFQU1FUikKICAgICAgICAgICAgIHJldHVybiBNb2NrRGlzcGxh
eUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7CiAjZWxzZQotICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmlu
ZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Cisg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
Ok1pY3JvcGhvbmU6CkBAIC0yMTEsMjAgKzIxMSwxNSBAQCBwcml2YXRlOgogCiBjbGFzcyBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAg
ICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpN
aWNyb3Bob25lKTsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7
ICJVbmFibGUgdG8gZmluZCBtb2NrIG1pY3JvcGhvbmUgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lz
dGVudElEIl9zIH07CiAKLSAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5s
YWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVy
biBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0
ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiBwcml2YXRlOgotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5n
bGV0b24oKS5zZXRBY3RpdmVTb3VyY2Uoc291cmNlKTsgfQotICAgIHZvaWQgdW5zZXRBY3RpdmVT
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1
cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4g
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgp
OyB9Ci0jZW5kaWYKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7IH0KICAgICBjb25zdCBWZWN0
b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNwZWFrZXJEZXZpY2VzKCk7IH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IDYwYzVhOGNkNmQ1MGU5MDBlNGMxZWJkMWZkOGUyZGRhZThiNmRi
OWQuLjNjZjc0NjBjODBlM2JlMWQ1YmEzZjBjZWQ3YzE5YjI1ZGYyOWFiZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwCkBAIC01MCw3ICs1MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVVTRShHU1RSRUFNRVIpCi1D
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBh
dXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0
aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC01OSw3ICs1OSw3IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIGNhbWVyYSBkZXZpY2UiX3MgfTsK
ICNlbmRpZgogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2Fs
dCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBw
bHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC03
Myw4ICs3Myw4IEBAIHN0YXRpYyBIYXNoU2V0PE1vY2tSZWFsdGltZVZpZGVvU291cmNlKj4mIGFs
bE1vY2tSZWFsdGltZVZpZGVvU291cmNlKCkKICAgICByZXR1cm4gdmlkZW9Tb3VyY2VzOwogfQog
Ci1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCks
IFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9lbWl0RnJhbWVUaW1lcihSdW5M
b29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVG
cmFtZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjM5LDcgKzIzOSw2IEBA
IHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0Q2FwdHVyZVRpbWVyKCkKIAogdm9p
ZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBw
cmVwYXJlVG9Qcm9kdWNlRGF0YSgpOwogICAgIHN0YXJ0Q2FwdHVyZVRpbWVyKCk7CiAgICAgbV9z
dGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCA5MzVj
NmRkZWNiOGQ0NThjOTE2NmY1YjI2N2FjNWM0OTRmZjM0M2I1Li5mYzVmYzdhYTFjYjc2ZmE2ZDk3
MzkwNTg2NWJmYWZlY2VkZTM2YmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00OCw3ICs0OCw3IEBAIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBw
dWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3Rp
Zmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAgICAg
fk1vY2tSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRJc0ludGVy
cnVwdGVkKGJvb2wpOwpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgSW1hZ2VCdWZmZXIq
IGltYWdlQnVmZmVyKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZlcigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAppbmRleCBhZDA3NTgyMTc1MTAxMzU3ZTA1NWIxMTQyNjg4OTJmYTdjNzNjOTQ2Li5k
N2FmOTE3NDk1YzBiMmNjZWE4YmUyMGFhZjE5OTVkOGQ2OWYzMGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcApAQCAtMjg5LDcgKzI4OSw3MCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9jb25uZWN0aW9u
UHJveHktPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1l
cywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK0NhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1pY3JvcGhvbmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogbWVkaWFDb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBzb3VyY2VPckVy
cm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJl
RmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VP
ckVycm9yKQorICAgICAgICByZXR1cm4gc291cmNlT3JFcnJvcjsKKworICAgIGF1dG8mIHBlclBh
Z2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5lbnN1cmUocGFnZUlkZW50aWZpZXIsIFtdIHsgcmV0
dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgLy8gRklYTUU6
IFN1cHBvcnQgbXVsdGlwbGUgbWljcm9waG9uZXMgc2ltdWx0YW5lb3VzbHkuCisgICAgaWYgKHBl
clBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2UpIHsKKyAgICAgICAgYXV0byYgbWljcm9waG9u
ZVNvdXJjZSA9ICpwZXJQYWdlU291cmNlcy5taWNyb3Bob25lU291cmNlOworICAgICAgICBpZiAo
bWljcm9waG9uZVNvdXJjZS5wZXJzaXN0ZW50SUQoKSAhPSBkZXZpY2UucGVyc2lzdGVudElkKCkg
JiYgIW1pY3JvcGhvbmVTb3VyY2UuY2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgLy8g
V2UgY2Fubm90IHJldXNlIHRoZSBzb3VyY2Ugc28gZmFpbCBpdC4KKyAgICAgICAgICAgIG1pY3Jv
cGhvbmVTb3VyY2UuY2FwdHVyZUZhaWxlZCgpOworICAgICAgICAgICAgbWljcm9waG9uZVNvdXJj
ZS5zdG9wKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9y
RXJyb3Iuc291cmNlKCk7CisgICAgcGVyUGFnZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZSA9IFdl
YWtQdHIgeyBzb3VyY2UuZ2V0KCkgfTsKKyAgICByZXR1cm4gc291cmNlOworI2Vsc2UKKyAgICBy
ZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJl
RmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CisjZW5kaWYKK30KKworQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlQ2Ft
ZXJhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIG1lZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQoreworICAgIGF1dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291
cmNlcy5lbnN1cmUocGFnZUlkZW50aWZpZXIsIFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsg
fSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGlmIChwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2Up
IHsKKyAgICAgICAgYXV0byYgY2FtZXJhU291cmNlID0gKnBlclBhZ2VTb3VyY2VzLmNhbWVyYVNv
dXJjZTsKKyAgICAgICAgLy8gRklYTUU6IE9wdGltaXplIG11bHRpcGxlIGNvbmN1cnJlbnQgY2Ft
ZXJhcy4KKyAgICAgICAgaWYgKHBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZS0+cGVyc2lzdGVu
dElEKCkgPT0gZGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmICFjYW1lcmFTb3VyY2UuY2FwdHVyZURp
ZEZhaWwoKSkgeworICAgICAgICAgICAgLy8gV2UgY2FuIHJldXNlIHRoZSBzb3VyY2UsIGxldCdz
IGRvIGl0LgorICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBjYW1lcmFTb3VyY2UuY2xvbmUoKTsK
KyAgICAgICAgICAgIGlmIChtZWRpYUNvbnN0cmFpbnRzKSB7CisgICAgICAgICAgICAgICAgYXV0
byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqbWVkaWFDb25zdHJhaW50cyk7Cisg
ICAgICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV1RG
TW92ZShlcnJvci0+bWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
c291cmNlOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgp
LmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRp
YUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQor
ICAgICAgICByZXR1cm4gc291cmNlT3JFcnJvcjsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgaWYgKHBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZSkgeworICAgICAgICAvLyBXZSBj
YW5ub3QgcmV1c2UgdGhlIHNvdXJjZSBzbyBmYWlsIGl0LgorICAgICAgICBwZXJQYWdlU291cmNl
cy5jYW1lcmFTb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcGVyUGFnZVNvdXJjZXMu
Y2FtZXJhU291cmNlLT5zdG9wKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9
IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgc291cmNlLT5tb25pdG9yT3JpZW50YXRpb24o
bV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2Ug
PSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vz
c1JlbW90ZUZyYW1lcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJj
ZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Q
cm94eS0+d2lsbFN0YXJ0Q2FwdHVyZShkZXZpY2UudHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlLCAiUmVxdWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCk7CkBAIC0yOTksMTYg
KzM2MiwxNCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAg
ICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
YXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBj
cmVhdGVNaWNyb3Bob25lU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBzb3VyY2VPckVycm9y
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChzb3VyY2VPckVycm9yKQotICAgICAgICAgICAg
c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRh
dGlvbk5vdGlmaWVyKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IGNyZWF0ZUNhbWVyYVNvdXJj
ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAg
ICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRl
dmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U3lzdGVtQXVkaW86CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTcGVha2VyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDY1OGI1YjdkMTg4NmM0
ODMwNmYxODAzYTM4ODA0Yjk1M2Q4NTRmNTQuLjViZWMxMDc1YzQ0ZjJhNjAxZWY1ODVjNTg0NzVi
Yjc1N2YyMmY0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTg0LDcgKzg0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdXNpbmcgQ3JlYXRlU291cmNlQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9Q
cmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYg
ZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9v
bCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYm
KTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKQEAgLTk0LDExICs5NCwyMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVz
dFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lk
IHNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbik7CiAKKyAgICAKKyAgICBXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVNaWNyb3Bob25lU291cmNlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYW1lcmFTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworCiAgICAgY2xhc3MgU291cmNlUHJveHk7
CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+
IG1fcHJveGllczsKICAgICBVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Q
cm94eTsKICAgICBXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3Rp
ZmllciB7IDAgfTsKKworICAgIHN0cnVjdCBQYWdlU291cmNlcyB7CisgICAgICAgIFdlYWtQdHI8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gbWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAg
V2Vha1B0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjYW1lcmFTb3VyY2U7CisgICAg
fTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBQYWdlU291cmNlcz4gbV9w
YWdlU291cmNlczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDdiY2E0NTNlNzM3NTM3NjlhN2ZjNThlMmU3MDczMmI4NTdkOWI4MjkuLmVk
N2Y0ZGFiMTZiZWE3OWI0MjFkOTY2MGVlMWU0OWMzZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
LCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQ
cm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0
b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNp
emUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5jCisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91
bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNv
cmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3Vi
bGUgZnJhbWVSYXRlKSBBc3luYwogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcAppbmRleCBmNWE2MTY0ZTgzMWM5Njg5OTVlMzMyZWYwMjY5YzBi
OGMxOGNmOWYyLi44OGZkYTg0OTE0NjBiNzc3NTBkN2RhMzUwMWJlYTA1ZTBmMDMzMDc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTM5LDEzICszOSwx
MyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFn
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitSZWY8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2
aWNlLCBwYWdlSWRlbnRpZmllcikpOwogfQogCi1TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQotICAgIDogV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1
cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0
dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQo
KSB9LCB7IH0sIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNzhiZmU1YjY0YjIwZGQwOTAxYjk5
YWE3M2MzNWM5MDcwMjFkOWIwNi4uOWFmZmYyODAzNWEwZDAzMjVmMjZjMGQyZTljNmRhZGRhZWJh
NWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTQ2LDkg
KzQ2LDkgQEAgY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwogbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwog
ICAgIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDog
cHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOwor
ICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVt
b3RlU291cmNlU3RvcHBlZCgpOwogCiBwcml2YXRlOgotICAgIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IDY4ZGMxMTVmMTY5ZjE5ZWY4OWY2NmZlNWM4ZjI0
MWM4NWI5NzhkNzEuLmUzYTcwNGUxYmMyMjZlZDQ4MWEwZDc1ZDE4NzA1ZmEzYjlhNTI5MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0CiAgICAgfQogI2VuZGlm
CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOworICAg
IHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlLCBzb3VyY2UucGFnZUlk
ZW50aWZpZXIoKSkpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDI1OWFlNzNlY2I5MjEzNWYwOWE5NjUwMWIzM2VkMmE0MWQzNTMzMTku
LmM5YWY1YzZmOTZjYjcxZGM4MjJjZTAzOTBiYTdjNDBkNDQyYWNkOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA5OTYsMTIgKzEwOTk2LDEyIEBAIFdl
YkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVN
ZWRpYVNvdXJjZUZvclNwZWVjaFJlCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
ciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OwogCiAgICAgaWYgKHBy
ZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQotICAgICAgICBy
ZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07Cisg
ICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmlj
ZSwgbV93ZWJQYWdlSUQpIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVy
biBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSkgfTsKKyAgICBy
ZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2Vi
UGFnZUlEKSB9OwogI2Vsc2UKLSAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlKCpjYXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJRCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKaW5kZXgg
YjgxZGJiMjNlZmY0NTMzYTA3MjU1Nzg4YTI2ZWVhN2MzM2UwNWFlMy4uOWYwOWY2MjI2MjgyNjgz
YzI2MGI1MzQ1MTZmOTgwOGRhNGI3YzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0yMDgsOSArMjA4LDkgQEAgdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5k
Ym94RXh0ZW5zaW9ucygpCiAKICNlbmRpZgogCi12b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8g
cmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlKGRldmljZSk7CisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLCBwYWdlSWRlbnRp
Zmllcik7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWEsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOwogICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKaW5kZXggMTg4NDc3MWE4N2I3
ZjY2OTkxOTBhNWRlNTY5MTE2Y2M0N2Y4NjFiMy4uNjIzNDQ4ZmJhOWRkN2Y4NWFiNzMzNTkwNmQ0
OGJhOTY5NDhmMzM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCi0gICAg
dm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGNyZWF0ZVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGRlbGV0ZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBz
dGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBz
dG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbgppbmRleCAyMzgyZGYxZDhlNTlmMGE4ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFkLi5h
YjVlOThlNDk3MTlhYWRlZDVlOTFiYmQzNzM4MDdlMTBkMDE3M2FlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVz
c2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RS
ZWZDb3VudGVkIHsKLSAgICBDcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisg
ICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKICAgICBEZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBTdGFydChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAgICBTdG9wKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwCmluZGV4IDJjZTk1NGY0OGJmZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2Ux
MzguLjg3Mjk2OTE2NjcyMTE5ZjFiYmQzOTI4YzYwMTgzMmUzNmNlMzRmOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAKQEAgLTQzLDI5ICs0MywyNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewot
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0
cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZp
ZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5h
Z2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVm
KCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4g
c291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92
ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpKQorUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1h
bmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVu
dElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94
eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFp
bnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7CiAgICAgQVNTRVJUKGRldmljZS50eXBl
KCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSk7Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgog
fQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291
cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFz
aFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2Nl
ZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJp
bGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1l
ZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9y
TWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1
dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJv
eHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtODcsMTAgKzg0LDYgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlm
CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCkBAIC0xMTksOSAr
MTEyLDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZTo6aGFzRW5kZWQoKQogewotICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKLSAgICBt
X21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7Ci0gICAgbV9tYW5hZ2VyLnJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAg
aWYgKG1fcHJveHkuaGFzRW5kZWQoKSkgeworICAgICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNl
KGlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIH0KIH0KIAogdm9pZCBSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCkBAIC0xNDksMTQgKzE0Myw2
IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25E
aWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvCiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBj
aGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFp
bGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5y
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29u
bmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVN
ZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggYTNjNDFkYzA0YWFjZTVkZDRl
YTczOWE2MGYyYTUzMGU1ZTNkMDc1ZS4uODhhYWJhMDhiNTY1YmVlOWFlNGZhNGE3M2E3ODg4NjU5
MDg3MWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgflJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsK
IAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNzEsNyArNzEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3Rp
ZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyos
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlLmNwcAppbmRleCBjNTUzMzUzM2FjNTViMWY1YzJhZGFlZTE4ODk2ZjM2
MTRmN2NlZTM1Li5iNDkwYTdhNTdmMTY0NzNiNzQ1Y2Q2YmYyMDZlMzFjMTA1YmU5MTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcApAQCAtMzgsMTcgKzM4LDE3IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1v
dmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJh
aW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlS
ZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJj
ZShzb3VyY2UuY29weVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNl
KCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
OjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAg
OiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBT
dHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCkpCitSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlm
aWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7CkBAIC01
Nyw3ICs1Nyw3IEBAIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVE
aXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVuCiAKIHZvaWQgUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94
eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1l
c3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRv
LCBhdXRvKSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhh
c2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0
aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAg
IGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShl
cnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMCw5ICsxMDAsMTAgQEAg
dm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWQKIAogdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2Vy
LnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3By
b3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlm
aWVyKCkpOworICAgICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5y
ZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgK
aW5kZXggNTJmNTM1YjNkNzNkNjg5Nzc4Yjk1ZjE5NDdmOGU3MmQ4Mjk4ZDZhMS4uOGQ4MmZiNTk3
NDllYTg1ZGMwYmQ0NjVjNDg1YzI0NzkyMDJjMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
aApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgflJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgp
OwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02NSw3ICs2NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5v
dGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1l
TWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94
eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNw
cAppbmRleCA0YTI5NGQ4YzU0MTcxZTZlMTAwNWIzYTQwNjY1NmIyNmMxNTljMDRkLi5iZTc1NDU1
ODE4YjUzNWU1ZWYyZDZjODg1NDYxNzQwMGIzYzBjOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5LmNwcApAQCAtNjgsOSArNjgsOSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEg
eyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFz
aFNhbHQsIENyZWF0ZUNhbGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJh
bWUpCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVk
aWFTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBz
aG91bGRVc2VSZW1vdGVGcmFtZSkKIHsKLSAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZp
Y2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29uc3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1l
KSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2Rldmlj
ZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25zdHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUs
IHBhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0
cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50
c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTk5LDkgKzk5LDE0IEBAIHZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpmYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tz
KGNvbnN0IFN0cmluZyYKICAgICAgICAgY2FsbGJhY2tzLnRha2VGaXJzdCgpKFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNFcnJvciB7IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwog
fQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6aGFzRW5kZWQoKQorYm9v
bCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6Omhhc0VuZGVkKCkKIHsKKyAgICBpZiAo
bV9pc0VuZGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2lzRW5kZWQgPSB0cnVl
OwogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6d2hlblJlYWR5KENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuaAppbmRleCAwM2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi4y
MDZmNmY5MTc4YWM5Yjg0YTM2N2YwMjcwNmEwNjNlNDRkNzU4ZTdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5oCkBAIC01MywxMyArNTMsMTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcgQ3JlYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0
b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUp
PjsKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYsIENyZWF0
ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CisgICAgdm9p
ZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9IGZh
bHNlKTsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAgICAgCi0gICAgdm9pZCBoYXNFbmRlZCgpOwor
ICAgIGJvb2wgaGFzRW5kZWQoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAg
IHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpOwpAQCAtNzUsMTIgKzc1LDE0IEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlm
aWVyOwogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CiAgICAgYm9vbCBtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fcGFnZUlkZW50aWZpZXI7CiAKICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
IG1fY29uc3RyYWludHM7CiAgICAgRGVxdWU8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFj
a3M7CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Cisg
ICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmNwcAppbmRleCBkMmQyNGFiYWI5ZWMzNGEwZGEyMmViNjVhOGFkM2NiNWYwMDdkOTdj
Li44OGI4ZWM3NmJhNDg3NjQ3YmVkZmUyOTk4MDg1YmU3MWM3NTM5OGQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCkBAIC00NSwyOSArNDUsMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwor
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0
cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNv
dXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRl
UmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
V1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUo
aGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZN
b3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2Us
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2Vy
KG1hbmFnZXIpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlw
ZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNl
dEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2Us
IGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1
dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11dGFibGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYg
ZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8m
JiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVy
cm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTMsMTEgKzg5LDYgQEAgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAg
ICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0
aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92
ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBp
ZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJl
RmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTQ3LDkgKzEzOCwxMCBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpjYXBhYmlsaXRpZXMoKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhh
c0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92
ZVNvdXJjZShpZGVudGlmaWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhh
c0VuZGVkKCkpIHsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkp
OworICAgICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVT
b3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQpAQCAtMjA0LDE0ICsxOTYsNiBAQCB2b2lkIFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJv
Y2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0VuZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgdGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsK
LSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5t
dXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBt
X3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlLmgKaW5kZXggMzJhOGExMTU0NjRiMGI2NWI3ZWFmM2JmMGRiODE3ZmUxYjhm
OWE5Ny4uZmIzMDFiNWE0MzFiM2VkMjc2M2MyYmEyMDQ1MzI0MjY5ZDk0OTljNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyCiAj
ZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7
CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90
aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcik7CiAKICAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGY2ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGEx
YTQ1YmQ0YzA0YzMuLjNjZjIyNzhmNGU5MzE1MTRiZGMyNmE3ZDc0OWEzZmE2Yzk2NzAyZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpCiAgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKLUNhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgIUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAo
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpAQCAtMjI1LDcgKzIyNSw3IEBAIENhcHR1cmVT
b3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVy
biBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywg
eyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2
aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKGJvb2wgdmFsdWUpCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJv
b2wgdmEKICAgICBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgPSB2YWx1ZTsKIH0KIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQog
ICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNDgsMTAgKzI0OCwxMCBA
QCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0
b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkoKSk7CiAKICAgICBib29sIHNob3VsZFVzZUlPU3VyZmFjZSA9ICFtX21hbmFn
ZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzOwotICAgIHJldHVybiBDYXB0dXJl
U291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNo
U2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSwgc2hvdWxkVXNl
SU9TdXJmYWNlKSk7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNl
LCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSwgc2hvdWxkVXNlSU9TdXJmYWNl
KSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpE
aXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAh
RU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
CkBAIC0yNjAsNyArMjYwLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAobV9z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkoKSk7CiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
OjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdl
ciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNo
U2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRp
Zmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5
OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
CmluZGV4IDhjYzViNGY5MjY5YjI0NGRiNTk5NWI3Yjc0NDRiOTE1OTdmMTZhODIuLjhkMjJjZDMw
MmI2Y2U4NjkwYTk4ODg0OTdlMzA5MGMyMDUzYTg5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03
NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1h
bmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFn
ZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KICAgICAgICAgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fc3BlYWtlckRldmljZXM7IH0KIApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAg
ICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0Nh
cHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKikgZmluYWw7CisgICAgICAgIFdl
YkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAg
ICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5h
Z2VyOyB9CiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAg
LTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIpIGZpbmFsOwogICAgICAgICBXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRp
c3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25v
T3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiBtX21hbmFnZXI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZhNmY5NTM2YTRmMzEwZjQ0NzE4MmEwZjYxYmQ2YjVj
NjBmNGQzZi4uNTIzYzI0Nzg4YTUzNTcwN2Y0Y2E3MDRlNmI5MmRkZDNkMzAxMzIxNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIyLTAzLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGVyIHBh
Z2Ugc291cmNlcworCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2
ZW50LTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXIt
bWVkaWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0wMSAgTWF0dGVvIEZsb3Jl
cyAgPG1hdHRlb19mbG9yZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIF0gcG9pbnRlcmV2
ZW50cy9tb3VzZS8qIDEwIHBvaW50ZXIgZXZlbnQgdGVzdHMgYXJlIGNvbnN0YW50IHRpbWVvdXRz
IG9yIGZhaWx1cmVzIG9uIGlPUy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLWV4cGVjdGVkLnR4dAppbmRleCAw
NDgzYzcwZGRiZDdkZTkxZmNkYTA1NjhkMjNmY2MwZjFlOGU5MzYzLi5kYWE2NzRhN2Y5Nzc2NWMy
NDEzZmUzOTVjMjhkNWYyODJkZmYzODkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5k
ZWQgZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJlCitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJl
YW1UcmFjayBlbmRlZCBkdWUgdG8gYSBjYXB0dXJlIGZhaWx1cmUKIAogUEFTUyAnZGV2aWNlY2hh
bmdlJyBldmVudCBmaXJlZCB3aGVuIGRldmljZSBsaXN0IGNoYW5nZXMKIFBBU1MgJ2RldmljZWNo
YW5nZScgZXZlbnRzIGZpcmVkIHF1aWNrbHkgYXJlIGNvYWxlc2NlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZp
Y2UtaWQtZXhwZWN0ZWQudHh0CmluZGV4IDUwMjRjZWY2NTNmMzZhNDZiNWFiNzg2MzAxOTg1NDEw
ZDMyMTA5ZDUuLmQyZmE2Njg3ZGY0NWVmY2IyODJmNjE5Y2JkMjQ4M2I4MWEzZDg0MWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNl
LWlkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11
c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw2IEBACitDT05TT0xF
IE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFjayBlbmRlZCBkdWUgdG8gYSBjYXB0dXJlIGZhaWx1
cmUKK0NPTlNPTEUgTUVTU0FHRTogQSBNZWRpYVN0cmVhbVRyYWNrIGVuZGVkIGR1ZSB0byBhIGNh
cHR1cmUgZmFpbHVyZQorQ09OU09MRSBNRVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQg
ZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJlCiAKIFBBU1MgRGV2aWNlIElEcyBzaG91bGQgYmUgZW1w
dHkgaW5pdGlhbGx5CiBQQVNTIENvbGxlY3QgZGV2aWNlIElEcwo=
</data>
<flag name="commit-queue"
          id="481015"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453591</attachid>
            <date>2022-03-02 05:25:46 -0800</date>
            <delta_ts>2022-03-02 06:17:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237359-20220302142544.patch</filename>
            <type>text/plain</type>
            <size>138174</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRkZTA1NWUzZGEyOGQx
ZTE3MmNlMDJjOTA4NmVlMTdiYjFiMDNlZi4uMDkyMGYyMzg4ZDNiNWMyODNlYTQ4OTk3NjMwOWEz
ZmIwMjlkMzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVuIGNyZWF0aW5nIGNhcHR1
cmUgc291cmNlcy4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGF0IFdlYktpdCBsYXllciB0byBiZXR0
ZXIgaGFuZGxlIGNyZWF0aW9uIG9mIG11bGl0cGxlIHNvdXJjZXMuCisgICAgICAgIFNpbmNlIHdl
IGFyZSBub3cgc29tZXRpbWVzIGFuc3dlcmluZyB0byBnZXRVc2VyTWVkaWEgYnkgY2xvbmluZyBz
b3VyY2VzIGRpcmVjdGx5LAorICAgICAgICBmaXggYSBidWcgaW4gUmVhbHRpbWVWaWRlb1NvdXJj
ZSB0byB1c2UgdGhlIHByZXNldCBhc3BlY3QgcmF0aW8gdG8gY29tcHV0ZSBtaXNzaW5nIHdpZHRo
IG9yIGhlaWdodC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW06CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwogMjAyMi0wMy0wMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVG
cm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFiZjAxMjQxMzcwZjRhN2FhZWRlNDBlZGQxZjI4
Yjg5MTY0ZmJmNC4uYmQ2OWZhZDVjODY5NjIzYTMyYzQ3MDFhMjZhNjRhZTM5ZWExZjIyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMi0wMy0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU2NvcGUgY2FwdHVyZSBzb3VyY2VzIGJ5IHBhZ2UgaWRl
bnRpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlcmUgYXBwcm9wcmlhdGUuCisgICAgICAgIE1ha2UgdXNl
IG9mIFBhZ2VJZGVudGlmaWVyIGluIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6CisgICAg
ICAgIC0gRm9yIG1pY3JvcGhvbmUsIGlmIHRoZXJlIGlzIGEgc291cmNlIHdpdGggYSBkaWZmZXJl
bnQgZGV2aWNlLAorICAgICAgICAgIGZhaWwgdGhlIHNvdXJjZSBhcyB3ZSBhcmUgbm90IHlldCBz
dXBwb3J0aW5nIGNvbmN1cnJlbnQgY2FwdHVyZXMuCisgICAgICAgIC0gRm9yIGNhbWVyYSwgaWYg
dGhlcmUgaXMgYSBzb3VyY2Ugd2l0aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAgICAgICAgZmFp
bCB0aGUgc291cmNlIGFzIHdlIGFyZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3VycmVudCBjYXB0
dXJlcyAob25seSBvbiBpT1MpLgorICAgICAgICAgIE90aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBt
YXRjaGluZyBzb3VyY2UsIGNsb25lIGl0IHNvIHRoYXQgd2UgcmVkdWNlIHRoZSBvdmVyaGVhZAor
ICAgICAgICAgIG9mIGNyZWF0aW5nIGEgbmV3IHNvdXJjZSAoc2V0dGluZyB1cCBhIGNhbWVyYSBj
YW4gYmUgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbikuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjIt
MDMtMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFt
ZSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHRvIE1lZGlhU2FtcGxlQVZG
T2JqQzo6Y3JlYXRlRnJvbVBpeGVsQnVmZmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzY2I0YTQ5
ZDk4NTE2YzljYmQ1MWRlZGNmYWMzNmFmMmRmZDVkMTUxLi45MmM2NjM4ODA4MWVkNDk5NjQyZjky
YTgwY2Q3NTk2YmI4YzU0M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExMzUsNyArMTEzNSw2
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmgKICAgICBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKICAgICBwYWdlL1Bh
Z2VHcm91cC5oCi0gICAgcGFnZS9QYWdlSWRlbnRpZmllci5oCiAgICAgcGFnZS9QYWdlSW5saW5l
cy5oCiAgICAgcGFnZS9QYWdlT3ZlcmxheS5oCiAgICAgcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaApAQCAtMTI5Miw2ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL1BPREludGVydmFsLmgKICAgICBwbGF0Zm9ybS9QT0RJbnRl
cnZhbFRyZWUuaAogICAgIHBsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oCisgICAgcGxhdGZvcm0v
UGFnZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaAogICAgIHBsYXRmb3Jt
L1Bhc3RlYm9hcmRDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKaW5kZXggNTA2ZjMzNzRiN2U2ZDc2ZDU5OGY0OTUzZDg0OWMzOGVhYWM3MjdlOS4uMGZh
YThiYjU1YTE5ODVlOTgwZjczNmI2MWRhMGQ2MzBkNmNhZTNjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMTQyLDcg
KzE0Miw3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYKICAgICAgICAgdmlkZW9Db25zdHJhaW50
cy5zZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cygpOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVz
dCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1
ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUo
dmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHBy
b21pc2UpKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRv
Y3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhLCBXVEZNb3ZlKGF1
ZGlvQ29uc3RyYWludHMpLCBXVEZNb3ZlKHZpZGVvQ29uc3RyYWludHMpLCBpc1VzZXJHZXN0dXJl
UHJpdmlsZWRnZWQsICpkb2N1bWVudC0+cGFnZUlEKCkgfSwgV1RGTW92ZShwcm9taXNlKSk7CiAK
ICAgICBpZiAoIWRvY3VtZW50LT5zZXR0aW5ncygpLmdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMo
KSkgewogICAgICAgICByZXF1ZXN0LT5zdGFydCgpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQg
TWVkaWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29u
c3RyYWludHMmIGNvbnN0cmFpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJl
cXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFt
UmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25zdHJhaW50
cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBh
dXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlh
U3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25z
dHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5wYWdlSUQoKSB9
LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCBhNDVkMTllNTQ3Mzk5NTZkYjc4MDYzYzdjYWJlOGE4ZTBmMTA0ZDRkLi5mYzE3
NjE1NmRkMGZjZDIyMWRmYjgyNzIzMTgxNDJkYTcwY2YwODhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAg
LTQ2OSw0NCArNDY5LDEyIEBAIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJl
YW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gc3Rh
dGU7CiB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIGJvb2wgaXNTb3VyY2VD
YXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBE
b2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAgZm9yIChhdXRvKiB0cmFjayA6IGFsbENhcHR1cmVU
cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPmRvY3VtZW50KCkgIT0gJmRvY3VtZW50IHx8
IHRyYWNrLT5lbmRlZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgaWYgKHRy
YWNrLT5zb3VyY2UoKS5pc1NhbWVBcyhzb3VyY2UpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCiB2b2lkIE1lZGlhU3RyZWFt
VHJhY2s6OnVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgYXV0byogcGFnZSA9IGRvY3Vt
ZW50LnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8q
IGFjdGl2ZUF1ZGlvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwotICAgIGlmIChhY3RpdmVB
dWRpb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudCgqYWN0aXZl
QXVkaW9Tb3VyY2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2Ut
Pm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0
dXJlSXNNdXRlZCk7Ci0gICAgICAgIGFjdGl2ZUF1ZGlvU291cmNlLT5zZXRNdXRlZChwYWdlTXV0
ZWQgfHwgKGRvY3VtZW50LmhpZGRlbigpICYmIGRvY3VtZW50LnNldHRpbmdzKCkuaW50ZXJydXB0
QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5hYmxlZCgpKSk7Ci0gICAgfQotCi0gICAgYXV0
byogYWN0aXZlVmlkZW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2
ZVZpZGVvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3Rp
dmVWaWRlb1NvdXJjZSwgZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFn
ZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0Nh
cHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0aXZlVmlkZW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VN
dXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7Ci0gICAgfQotI2Vsc2UKICAgICBmb3IgKGF1dG8q
IGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewogICAgICAgICBpZiAoY2FwdHVy
ZVRyYWNrLT5kb2N1bWVudCgpID09ICZkb2N1bWVudCAmJiAhY2FwdHVyZVRyYWNrLT5lbmRlZCgp
KQogICAgICAgICAgICAgY2FwdHVyZVRyYWNrLT51cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCk7CiAg
ICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdlTXV0
ZWRTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAppbmRleCAzNDlhZGY2YjQy
Y2NiM2NjMWQ2YzA3YTJlNTQ0YzJiYzU5M2FjYTRiLi5hZmJjZTdhOWY0NTZmN2Q1MDc2ODc4MDlj
YmUxNmUxMWJlNDBlMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTYy
LDkgKzYyLDkgQEAgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKICAgICByZXR1cm4gY2FwdHVyZURl
dmljZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UpCitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
Y2FwdHVyZURldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0
dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVjaElE
Il9zLCB7IH0pOworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1
cmVEZXZpY2UsICJTcGVlY2hJRCJfcywgeyB9LCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYg
c3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCBjYTkwM2IxMmI3ZjIyMTkzNWY1ZGZhMTk4
ZGJiMWE4YzRjNzlkMzQ5Li5lMzI4ZGMzYzdjZDMwZjY5OTMwMjdjYjdkOTg0YzY2MTdmYjk2YzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CiAgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxs
YmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgUGFn
ZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGExZDZi
NmZjNjNhZDI5MWYwNzI4ZDUxODk3ZThiOWMxNzk3Y2IzMDEuLmQ4NWYwZTczOGI2MGUxZjAzZTlm
NDc0YTM3MThkMWVhZjIwYjQzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMTkyLDcgKzIxOTIsNiBA
QCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKLXBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVhNTc2NWVmNjhkMzM4MWQ4
NzA2NDVmZjNlN2ZiNzVmYmNkNDRkZTMuLjM4ZmE2OGU2NzM2NjgxZmE2YWQxNzZlMGFkZTEzOTg5
NmE4NDdjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTExODIsNiArMTE4Miw3IEBACiAJCTQxOEZDQkU3MjcxNUEyOEYwMEY5
NkVDQSAvKiBSVENSdHBDb2RlY0NhcGFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTBBN0RDMjNCQjYzREIwMDU2MTA2MCAvKiBSVENSdHBD
b2RlY0NhcGFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MTkwRjNBNTI0QTBCNEVFMDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MEYzQTMy
NDlEMTUyODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRGQ0Yg
LyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyog
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi87IH07CisJCTQxOTJCQjEzMjdD
RjYzODYwMEYyOUE0NiAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QUNGOEUxRjk3
RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOUJDMkRGMTY4NTMyOTkwMEQ2NEQ2RCAv
KiBWaXNpdGVkTGlua1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTlCQzJERDE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5o
ICovOyB9OwogCQk0MTlCRTc1OTFCQzdGNDJCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QkU3
NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLzsgfTsKQEAgLTEz
NjMsNyArMTM2NCw2IEBACiAJCTQ2QTc4QjM0Mjc5OUJENzEwMDExNTRGRSAvKiBXb3JrZXJPcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzFC
MUQyNjI2RjE4QTRCMDA4ODJEQTIgLyogV29ya2VyT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQy
RiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDZBQUFBM0EyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJl
YWRlckNvY29hLmggKi87IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50
VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2QjY1MERE
MjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBh
Z2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDZCODU5M0MyNjE2NzIyNzAwMTlFREM2IC8qIFNjcmlwdEJ1ZmZlclNvdXJjZVBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkI4NTkzQTI2MTY3MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCAq
LzsgfTsKIAkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4QTIw
N0Q2MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI5NTE5NjIwN0Q2MzNBMDBBN0QyREQg
LyogQWJzdHJhY3RGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZCOTUxOEYyMDdENjMyQjAwQTdEMkREIC8qIEFic3RyYWN0RnJhbWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjEwMyw3ICs2
MTAzLDYgQEAKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMTE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVF
ODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc1NEE1RUIyMTVFQURGMzAwMkQzQTk5IC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRp
YVVzYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVVzYWdl
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5NzE4ODQ0ODcyMDBF
MTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04ODU4LDYgKzg4NTcsNyBAQAogCQk0MTkwRjNBMTI0OUQxNTI3MDA1MzFDNTcg
LyogRnJhbWVSYXRlTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGcmFtZVJhdGVNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVSYXRlTW9uaXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTQ1Njk0MjAzNTAyQTUwMDRCQTI3NyAv
KiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTYyMDM1MDJBNjAwNEJBMjc3IC8qIEFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJG
ZXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0
Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMTEsNyArOTMxMSw2IEBACiAJ
CTQ2QUFBQTNDMjVEMzYzMTQwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QUNEODExMjcwMTY1NkEwMEVGOENF
RCAvKiBOYXZpZ2F0aW9uUmVxdWVzdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5hdmlnYXRpb25SZXF1ZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2QjY1MERCMjI5NjI2MjcwMEZEOEFBNCAv
KiBQYWdlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI4NTkzQTI2MTY3
MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZCOTUxOEEyMDdENjMyODAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0RE9NV2luZG93Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1MThDMjA3RDYzMjkwMEE3RDJERCAvKiBSZW1v
dGVGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVG
cmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY5MCw3ICsxODY4OSw2
IEBACiAJCQkJNEE0RjY1NkQxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMuaCAqLywKIAkJCQk0QTBGRkE5RjFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgKi8sCiAJCQkJNEEwRkZBQTAxQUFGNUVBMjAwNjI4MDNC
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCAqLywKLQkJCQkwNzU0QTVFQjIxNUVBREYz
MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovLAogCQkJCTA3NTRB
NUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovLAog
CQkJCTQxQjg3NzYwMjNERTEwNDIwMDM2MzhCOCAvKiBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oICovLAogCQkJCTRBNEY2NTZFMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MuY3BwICovLApAQCAtMjQyNTUsNyArMjQyNTMsNiBAQAogCQkJCTkzMDJC
MEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLywKIAkJCQk3QTY3NEJEOTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJE
QTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCi0JCQkJNDZC
NjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJCQkJQ0RFRkRB
MEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3
QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJF
MDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCAqLywKQEAgLTMwMTAwLDYgKzMwMDk3LDcgQEAKIAkJ
CQk0MTc4RUYxNjI0MTI1QjZDMDAxOTNDNzQgLyogTm93UGxheWluZ01hbmFnZXIuY3BwICovLAog
CQkJCTQxNzhFRjE0MjQxMjVCNkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5oICovLAog
CQkJCTQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmaWVyLmggKi8s
CisJCQkJNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJ
CQkJMkVFMDJBMUUxRjczMjQyODAwMDZBRjcyIC8qIFBhc3RlYm9hcmQuY3BwICovLAogCQkJCTRC
MjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8sCiAJCQkJRjQwREFBRUIy
NUQ5RjI1RTAwMTFCNEZBIC8qIFBhc3RlYm9hcmRDb250ZXh0LmggKi8sCkBAIC0zNjU1Myw3ICsz
NjU1MSw3IEBACiAJCQkJOTMwMkIwQkYwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0E2NzRCREMwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExv
YWREZWZlcnJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQzQxRkFBNDRCQzAwMzdEMUU2
IC8qIFBhZ2VIZWFwQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2QjY1MEREMjI5NjI2Mjcw
MEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE5MkJCMTMy
N0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REVGREEwRTI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1Q0IwNTI0MUZCNTFGMzMwMDA4OUI5NyAvKiBQYWdlTmV0d29ya0FnZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRDVDOUQwMDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NGQ1ZjhkMjk3NTYzZWUwMjljNDEzZTljZGE3NDk0YzVmYTRk
OGFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBQYWdlSWRlbnRpZmll
clR5cGUgeyB9OwotdXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJ
ZGVudGlmaWVyVHlwZT47Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BhZ2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmll
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmll
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJ
ZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKaW5kZXgg
YTRkNGI1MjViZTg5OWMyOTIxNjQwOWMyODk0NzZlMTlmNDZlNzcxZC4uZDA3OTU2ZjQ5YWFjYThi
NWMzNTE5YTI5NzhiNjkyMGM4NDFhMTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJh
aW50cy5oIgorI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzksNiArNDAsNyBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICBN
ZWRpYUNvbnN0cmFpbnRzIGF1ZGlvQ29uc3RyYWludHM7CiAgICAgTWVkaWFDb25zdHJhaW50cyB2
aWRlb0NvbnN0cmFpbnRzOwogICAgIGJvb2wgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIHsgZmFs
c2UgfTsKKyAgICBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcjsKIAogICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
QEAgLTQ3LDE1ICs0OSwyMCBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICAgICAg
ZW5jb2RlciA8PCBhdWRpb0NvbnN0cmFpbnRzOwogICAgICAgICBlbmNvZGVyIDw8IHZpZGVvQ29u
c3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkOwor
ICAgICAgICBlbmNvZGVyIDw8IHBhZ2VJZGVudGlmaWVyOwogICAgIH0KIAogICAgIHRlbXBsYXRl
IDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVN0cmVhbVJlcXVlc3Q+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgTWVkaWFTdHJlYW1SZXF1
ZXN0IHJlcXVlc3Q7Ci0gICAgICAgIGlmIChkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnR5cGUpICYm
IGRlY29kZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykgJiYgZGVjb2Rlci5kZWNv
ZGUocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0Lmlz
VXNlckdlc3R1cmVQcml2aWxlZGdlZCkpCi0gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDsKLQot
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlcXVlc3QudHlwZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmF1
ZGlvQ29uc3RyYWludHMpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52
aWRlb0NvbnN0cmFpbnRzKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3Qu
aXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2Rl
KHJlcXVlc3QucGFnZUlkZW50aWZpZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICByZXR1cm4gcmVxdWVzdDsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCmluZGV4IGRlMGYxYTdhNGU2MzVhMTM5ZTQ4MjhiNTQ3ZmRjZjA2NjE5YjM1YWIuLmYx
YzllNjAyODEzYTNiZjZmYjMxNDE3ODhiNjYwNGNhNDNiMDliOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCkBAIC00OCw4ICs0OCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRp
bWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IG1faWRIYXNo
U2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVk
aWFTb3VyY2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9w
YWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllcikKKyAgICAsIG1faWRIYXNoU2FsdChXVEZNb3Zl
KGhhc2hTYWx0KSkKICAgICAsIG1fcGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAg
ICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJmZjQwZDUyNTExNDNiNjlhYjQ0Li5hYzRm
ZGU5MzViNzgwNGRhMmVkZTU5MzA5NTljNDJlMTJiOWY3MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CkBAIC02OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIAogY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6
Ok1haW5SdW5Mb29wPgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwdWJsaWMgTG9nZ2VySGVs
cGVyCiAjZW5kaWYKQEAgLTIyMSw4ICsyMjIsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAg
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSWRl
bnRpZmllcjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQg
PSB7IH0pOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9LCBQYWdlSWRlbnRp
ZmllciA9IHsgfSk7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZv
aWQoKT4mJik7CiAKQEAgLTI3Myw2ICsyNzYsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
ZnJhbWVDb3VudCB7IDAgfTsKICNlbmRpZgogCisgICAgUGFnZUlkZW50aWZpZXIgbV9wYWdlSWRl
bnRpZmllcjsKICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OwogICAgIFN0cmluZyBtX2hhc2hlZElE
OwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKaW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQwYzExMjA4ZjUzYjFiOTIxYzM0YS4uMDA3
NGQxNDQ5NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZiODZkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwg
TmUKIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJjZTsKICAgICBp
ZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0
b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJp
bmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0
byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRp
b0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKCFzb3Vy
Y2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1ha2VT
dHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNlOiAiLCBzb3Vy
Y2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODksOSArODksOSBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxj
b25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlmICh2aWRlb0RldmljZSkgewogICAgICAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAgIGlmICh2aWRlb0RldmljZS50
eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAg
c291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29u
c3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNo
U2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3Rv
cnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RG
TW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAg
c291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRl
b0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKIAogICAgICAgICBpZiAoIXNv
dXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFr
ZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSB2aWRlbyBzb3VyY2U6ICIsIHNv
dXJjZS5lcnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFt
UmVxdWVzdCYKICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQg
fSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRl
dmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVx
dWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJj
ZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAgICAgIGRpc3BsYXlEZXZp
Y2VJbmZvLmFwcGVuZCh7IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3Jl
KCksIGRldmljZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3Qm
IHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhh
c2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgICAgICBpZiAo
c291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29u
c3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAg
ICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0
dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxl
ZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJj
ZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJlcXVlc3QucGFnZUlkZW50aWZp
ZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0
dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25zdHJhaW50cywg
aW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlSW5mby5hcHBl
bmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZX0p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYxM2I1ODZhNDhlOTY1NWFmZTYxZmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2lu
Y2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
LSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL1NIQTEuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnNldEFj
dGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCi17Ci0gICAgaWYgKG1fYWN0
aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9hY3RpdmVT
b3VyY2UgJiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICBtX2Fj
dGl2ZVNvdXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAgbV9hY3RpdmVTb3VyY2UgPSAmc291cmNl
OwotfQotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnVuc2V0QWN0aXZlU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgPT0gJnNv
dXJjZSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBudWxscHRyOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYmEwZDkwM2U2MjllZDhhYmVkZjdjZmNmMWVmOTY1
MTEzZTM4OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTllMmFmODAzYzI0Mjc2ZjZkNzA5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsMjcgKzQyLDEwIEBAIGNsYXNz
IFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1
Y3QgTWVkaWFDb25zdHJhaW50czsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgU2luZ2xlU291cmNl
RmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U2luZ2xlU291cmNlRmFjdG9yeSgpID0g
ZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNv
dXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSogbV9hY3RpdmVTb3VyY2UgeyBudWxscHRyIH07Ci19OwotCi1jbGFzcyBB
dWRpb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1Ymxp
YyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1
bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2
aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKICAgICB2aXJ0dWFs
IGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTcGVha2VyRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spIGNvbnN0IHsgY2FsbGJhY2soKTsgfQpAQCAtNzQsMjggKzU4
LDIwIEBAIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0Owog
fTsKIAotY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2VuZGlmCi17CitjbGFzcyBWaWRl
b0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0
b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1
YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7
CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsK
IAotY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIERpc3Bs
YXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVG
YWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAg
ICB2aXJ0dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAKaW5kZXggODJkZTI1OGJiYzdiMWExODZkY2I1NzBkY2EwNDQwZDhhYjQwMDllMS4uMzBiMGEy
NThkM2FkMDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdU
Rk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKIHsKIH0KIAogUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U6On5SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlm
Ci19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXBhcmVUb1Byb2R1Y2VE
YXRhKCkKLXsKLSAgICBBU1NFUlQoZnJhbWVSYXRlKCkpOwotCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Nh
cHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiBjb25z
dCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpw
cmVzZXRzKCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgcwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5l
bmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0
ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAKICAgICBpZiAoIW1hdGNoLT5y
ZXF1ZXN0ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2ICs0MDEsNyBAQCB2b2lkIFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVkU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9w
dGlvbmFsPGludAogICAgIGlmICghbWF0Y2gpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fY3Vy
cmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRo
UHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7
CiAgICAgc2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVzZXQtPnNpemUpOwogICAgIHNldEZyYW1l
UmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZS5oCmluZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVkZmY3ZmQ0NDhiNWYzOTVjZDE4YWIuLmRj
MWMzZDVlYWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFlZjlmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZW5zdXJlSW50cmluc2ljU2l6ZU1haW50YWluc0FzcGVjdFJhdGlvKCk7CiAKKyAgICBjb25zdCBW
aWRlb1ByZXNldCogY3VycmVudFByZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFByZXNl
dC5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVj
ZURhdGEoKTsKICAgICB2b2lkIHNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+
IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4p
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQm
KSB7IHJldHVybiB0cnVlOyB9CkBAIC05MCw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qg
Y2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlIjsgfQogI2VuZGlmCiAKKyAgICBSZWZQdHI8VmlkZW9QcmVzZXQ+IG1f
Y3VycmVudFByZXNldDsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwog
ICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKICAgICBkb3VibGUg
bV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggY2U2
ZTAwMzU5N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkzZjQzYy4uMWQ0Zjk5YmYyYjEzYWE2NmFm
ZmMyNDhiZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM2LDcg
KzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVh
bHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNl
LCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlw
ZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVy
c2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSkKKyAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFt
ZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNl
LT5kZXZpY2VJREhhc2hTYWx0KCkgfSwgc291cmNlLT5wYWdlSWRlbnRpZmllcigpKQogICAgICwg
bV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV9z
aG91bGRVc2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJmYWNlKQpAQCAtOTUsMTIgKzk1LDE1IEBA
IHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlv
bmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNTRVJUKHNvdXJjZVNpemUuaGVpZ2h0KCkp
OwogICAgIEFTU0VSVChzb3VyY2VTaXplLndpZHRoKCkpOwogCisgICAgYXV0byogY3VycmVudFBy
ZXNldCA9IG1fc291cmNlLT5jdXJyZW50UHJlc2V0KCk7CisgICAgYXV0byBpbnRyaW5zaWNTaXpl
ID0gY3VycmVudFByZXNldCA/IGN1cnJlbnRQcmVzZXQtPnNpemUgOiBzb3VyY2VTaXplOworCiAg
ICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBzb3VyY2VTaXplLndpZHRoKCkgKiBoZWln
aHQudmFsdWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7CisgICAgICAgIHdpZHRoID0gaW50cmlu
c2ljU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBpbnRyaW5zaWNTaXplLmhlaWdodCgp
OwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKCp3aWR0aCk7CiAKICAgICBpZiAoIWhl
aWdodCkKLSAgICAgICAgaGVpZ2h0ID0gc291cmNlU2l6ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVl
KCkgLyBzb3VyY2VTaXplLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IGludHJpbnNpY1NpemUu
aGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50cmluc2ljU2l6ZS53aWR0aCgpOwogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0KTsKIAogICAgIGlmIChmcmFtZVJhdGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDU1NGY4
ZGQyN2E0YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQyYjcuLjE2NmE1MzA3NzMyYjExNWU0NWQ2
MjA3MGVmYTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EuY3BwCkBAIC04MywyMyArODMsMjMgQEAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUgc291cmNlVHlwZUZvckRldmljZShDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHQK
ICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKIH0KIAotQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICNpZiBQTEFURk9STShJ
T1MpCi0gICAgICAgIHJldHVybiBjcmVhdGUoUmVwbGF5S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0dXJlU291cmNlOjpj
cmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbHNlCiAjaWYgSEFWRShTQ1JFRU5fQ0FQ
VFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNB
dmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3Jl
ZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMpLCBk
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwog
I2VuZGlmCi0gICAgICAgIHJldHVybiBjcmVhdGUoQ0dEaXNwbGF5U3RyZWFtU2NyZWVuQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlT
dHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwg
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsK
ICNlbmRpZgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogI2lm
IEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAoU2NyZWVuQ2FwdHVyZUtpdENh
cHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gY3JlYXRlKFNj
cmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cyks
IGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBh
Z2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpAQCAtMTE0LDEyICsxMTQsMTIgQEAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICByZXR1cm4geyB9OwogfQogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVl
UmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNy
ZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikK
IHsKICAgICBpZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVyLmVycm9yKCkpIH07CiAKLSAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3Zl
KGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBk
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNh
cHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7
CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5h
cHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0x
MjksOCArMTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXIKICAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYg
Y2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNo
U2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZvckRldmljZShjYXB0
dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUoaGFzaFNhbHQpKQorRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGb3JE
ZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2NhcHR1
cmVyKFdURk1vdmUoY2FwdHVyZXIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCks
IHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXggMDQ1YzhjYzQzNWZjYjI5YzVk
ZWQwYjJmMWFlY2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0NzQ5MzRjNWUwNTFhNzVhYjFkZDAzY2M1
NGU3Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAt
MTEyLDE0ICsxMTIsMTQgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50
aWZpZXI7CiAgICAgfTsKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7
Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVS
ZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRl
bnRpZmllcik7CiAKICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCk7CiAgICAgdm9pZCB1cGRhdGVG
cmFtZVNpemUoKTsKIAogcHJpdmF0ZToKLSAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVu
aXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJl
ZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYSgpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1
ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA0ODZiMGU0
NDg2YTNjNjRlM2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2Li43M2VjZDI0MDNiYzBmNDhiZGExOWQ1
MTk5MDE0N2EzNTczYjdlYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBpbml0
aWFsaXplRGVidWdDYXRlZ29yeSgpCiAKIGNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIp
IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBlMTNkNTNiMmIyNGRjZTlkNTAyNmRhMjM3
MjgzM2U0ZTQyMTNiMWUwLi4zMDFmMGVjNDY5MTQyNjkyN2U2NDMwYTcwNzQ4MTBmMzAzN2QxMDlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBw
dWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
UGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpAQCAtNzIsNyArNzIsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3Rvcnkg
ZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNw
bGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZp
ZXIpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRvJiBtYW5hZ2VyID0gR1N0cmVhbWVyRGlzcGxh
eUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICAgICAgcmV0dXJuIG1hbmFn
ZXIuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYg
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFjdG9yeSgpCiB9CiAKIEdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2No
YXIqIHNvdXJjZUZhY3RvcnksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwg
aW50IGZkKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
aGFzaFNhbHQpLCB7IH0pCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlk
ZW9DYXB0dXJlcj4oc291cmNlRmFjdG9yeSwgZGV2aWNlVHlwZSkpCiAgICAgLCBtX2RldmljZVR5
cGUoZGV2aWNlVHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGM3N2RjYTI3YzNhYzdhMmM2MDYyNWEz
MzE2MTIzYzc5OGU5NjQ0ODQuLjdiOTIyYzhmZjRhMjM4YzY5MjllMDE4NzhiZDBiZDgwMjZhMTE1
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHNf
SHVtVm9sdW1lID0gMC4xOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNlRnJlcXVlbmN5ID0g
MzAwMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc19Ob2lzZVZvbHVtZSA9IDAuMDU7CiAKLUNhcHR1
cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFn
ZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmlj
ZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwCmluZGV4IDk2Nzc3MWVmMGFjODQ4YTg1MWQ5MmRiZTM1OWM1ZWMxZmQw
OTJjM2MuLjM3YzIwYjViODdlMmMwMjZhYjI5Y2JjMzYzYzkzYTc4NDdkYzRmYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlk
ZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCmluZGV4IDY2NDg1ZTMyYjk3
NGIyNmI2ZGI3MGVmMzFmNDE1NDUwYzBjNjMxZmYuLmIxMDViM2UxMGM4MDk5OThjYTExNTk1Njgw
YTRhZTg2NjM3YjNiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaApA
QCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYmVnaW5BdWRpb1Nlc3Npb25JbnRl
cnJ1cHRpb24oKSB7IGJlZ2luSW50ZXJydXB0aW9uKCk7IH0KICAgICB2b2lkIGVuZEF1ZGlvU2Vz
c2lvbkludGVycnVwdGlvbihBdWRpb1Nlc3Npb246Ok1heVJlc3VtZSkgeyBlbmRJbnRlcnJ1cHRp
b24oKTsgfQogCi0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyopIGZpbmFsOworICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqLCBQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBhZGRFeHRlbnNpdmVPYnNlcnZl
cihFeHRlbnNpdmVPYnNlcnZlciYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRXh0ZW5zaXZlT2Jz
ZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXImKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUlPUy5tbQppbmRleCA2NzA1OTJmMzUxNjdmNmIwNjE5OTZiMDE2NzRlYjliNTQ4
NDQzYTUyLi5iYjMyOWZlMGUxZDg1N2VmYjYxNzE3NGJjNDk5MTM2YmFjODNlM2NkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQpAQCAtMTE2LDEzICsxMTYsMTMgQEAg
dm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeUlPUzo6cmVtb3ZlRXh0ZW5zaXZlT2Jz
ZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXIKICAgICAgICAgQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZGlzYWJsZUFsbERldmljZXNRdWVyeSgpOwogfQogCi1D
YXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeUlPUzo6Y3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgLy8gV2UgZW5hYmxlIGV4aGF1c3RpdmUgcXVlcnkg
dG8gYmUgc3VyZSB0byBzdGFydCBjYXB0dXJlIHdpdGggdGhlIHJpZ2h0IGRldmljZS4KICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHN0b3AgdGhlIGF1eGlsaWFyeSBzZXNzaW9uIGFmdGVyIHN0YXJ0
aW5nIGNhcHR1cmUuCiAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbXB1dGVzRW1wdHkoKSkKICAgICAg
ICAgQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZW5hYmxl
QWxsRGV2aWNlc1F1ZXJ5KCk7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UuaAppbmRleCA4YzQxMzhlNzMzOGNlZmM2OTE3MzQyMDc0NDNhYTQ5ZTU2MmY5ZmVmLi40YmFm
YjU4OTI4YWNlMDFmM2JhZTU5M2U4MDljYjRiYjhlYjFiY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1
cmVTb3VyY2UuaApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
OwogCiBjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBpZCwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKQEAgLTcw
LDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZURldmljZVN1c3BlbmRlZERpZENo
YW5nZSgpOwogCiBwcml2YXRlOgotICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURl
dmljZSosIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgQVZWaWRlb0NhcHR1
cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0
LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKTsK
IAogICAgIHZvaWQgY2xlYXJTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0K
aW5kZXggNmU3NDNlNWE5NDUxOTMwNzdmMmU2MGUyZTFiZDM0Y2FjZmZiMzU5Mi4uNWEwZWE3Nzhk
NTI4ZDNiMTRiOWY3ZjgzZjg3NzA0Yjg3ODQ1YzczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5tbQpAQCAtMTA4LDEzICsxMDgsMTMgQEAgcHVibGljOgogICAgIFJldGFpblB0cjxBVkNh
cHR1cmVEZXZpY2VGb3JtYXQ+IGZvcm1hdDsKIH07CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVy
cm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgQVZDYXB0dXJlRGV2aWNlICpkZXZpY2UgPSBbUEFM
OjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDppZF07CiAgICAg
aWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJObyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBk
ZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2Us
IFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBp
ZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29u
c3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdCkKQEAgLTEyNCw4ICsx
MjQsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdAogICAgIHJldHVybiBDYXB0dXJlU291cmNl
T3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9
CiAKLUFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVE
ZXZpY2UqIGRldmljZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLmxvY2FsaXplZE5hbWUsIFdURk1vdmUoaWQp
LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK0FWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVy
ZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqIGRldmljZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhh
c2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlKGRldmljZS5sb2NhbGl6ZWROYW1lLCBXVEZNb3ZlKGlkKSwgV1RGTW92
ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHRO
UyhbW1dlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENh
bGxiYWNrOnRoaXNdKSkKICAgICAsIG1fZGV2aWNlKGRldmljZSkKICAgICAsIG1fdmVyaWZ5Q2Fw
dHVyaW5nVGltZXIoKnRoaXMsICZBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dmVyaWZ5SXNDYXB0dXJp
bmcpCkBAIC0xMzcsOSArMTM3LDYgQEAgQVZWaWRlb0NhcHR1cmVTb3VyY2U6On5BVlZpZGVvQ2Fw
dHVyZVNvdXJjZSgpCiB7CiAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJ
RklFUik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNv
dXJjZSgqdGhpcyk7Ci0jZW5kaWYKICAgICBbbV9vYmpjT2JzZXJ2ZXIgZGlzY29ubmVjdF07CiAg
ICAgW21fZGV2aWNlIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBh
dGg6QCJzdXNwZW5kZWQiXTsKIApAQCAtNDY5LDEwICs0NjYsNiBAQCBib29sIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKGxv
Z2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFj
dG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAgIE5TRXJyb3IgKmVy
cm9yID0gbmlsOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VJbnB1dD4gdmlkZW9JbiA9
IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVEZXZpY2VJbnB1dEluc3RhbmNlKCkgaW5pdFdp
dGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6JmVycm9yXSk7CiAgICAgaWYgKGVycm9yKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggOWEwYjI5ZWRiMWQxNzgxNTY1NDUw
ZjU4ZGU5MDlmNjhjODczZWEwMy4uZDI0ZDRiMzFmYzU0MjEwZWQ4ZDU4NjBhZTY3NzgzNmNjNTQw
YTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjY4LDI3ICs2
NjgsMjcgQEAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGluaXRpYWxpemVDb3JlQXVkaW9D
YXB0dXJlU291cmNlKFJlZjxDb3JlQXVkaW9DYXB0dXIKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291
cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRv
bigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNlKQog
ICAgICAgICByZXR1cm4geyAiTm8gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSBkZXZpY2UiX3MgfTsK
IAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcg
eyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQo
KSwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIpKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpz
aW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRoVUlEKFdURk1vdmUoZGV2aWNlSUQpKTsK
ICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5vIEFWQXVkaW9TZXNzaW9uQ2Fw
dHVyZURldmljZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZp
Y2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDApKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwg
U3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCAwLCBudWxscHRy
LCBwYWdlSWRlbnRpZmllcikpOwogI2VuZGlmCiAgICAgcmV0dXJuIGluaXRpYWxpemVDb3JlQXVk
aW9DYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSwgY29uc3RyYWludHMpOwogfQogCi1DYXB0
dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5n
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBv
dmVycmlkZVVuaXQpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBCYXNl
QXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJl
U291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShoYXNoU2Fs
dCksIDAsICZvdmVycmlkZVVuaXQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShsYWJlbCks
IFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVVbml0LCBwYWdlSWRlbnRpZmllcikpOwog
ICAgIHJldHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJj
ZSksIGNvbnN0cmFpbnRzKTsKIH0KIApAQCAtNzgwLDggKzc4MCw4IEBAIHZvaWQgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUZhY3Rvcnk6OndoZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5uaW5nKEZ1
bmN0aW9uPHZvCiAgICAgcmV0dXJuIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnVuaXQoKS53aGVuQXVk
aW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLUNvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgY2FwdHVyZURl
dmljZUlELCBCYXNlQXVkaW9TaGFyZWRVbml0KiBvdmVycmlkZVVuaXQpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxh
YmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBjYXB0dXJlRGV2aWNlSUQs
IEJhc2VBdWRpb1NoYXJlZFVuaXQqIG92ZXJyaWRlVW5pdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
aGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fY2FwdHVyZURldmljZUlEKGNhcHR1
cmVEZXZpY2VJRCkKICAgICAsIG1fb3ZlcnJpZGVVbml0KG92ZXJyaWRlVW5pdCkKIHsKQEAgLTgy
MSwxOSArODIxLDExIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZVRv
U3RhcnRQcm9kdWNpbmdEYXRhKCkKIAogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6fkNvcmVBdWRp
b0NhcHR1cmVTb3VyY2UoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0aXZlU291cmNlKCp0
aGlzKTsKLSNlbmRpZgotCiAgICAgdW5pdCgpLnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKIHZv
aWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5Ojpz
aW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0KICAgICBpbml0aWFs
aXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB1bml0KCkuc3RhcnRQcm9kdWNpbmdEYXRh
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAzMzAzNmU5OTZmNjcz
ZTUyNzAyMzg1YjQxZTBhOTNmMTgwMzUxZjk5Li4wZWM2NzJiZjlmMWMzNjA1NjI0OTcwYzI0MWY2
YTBhMTU5MzUyZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUxLDE1
ICs1MSwxNSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIAogY2xhc3Mg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwotICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQpOworICAgIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVudGlm
aWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBm
YWN0b3J5KCk7CiAKICAgICBDTUNsb2NrUmVmIHRpbWViYXNlQ2xvY2soKTsKIAogcHJvdGVjdGVk
OgotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElELCBCYXNlQXVk
aW9TaGFyZWRVbml0KiA9IG51bGxwdHIpOworICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMy
X3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRVbml0KiwgUGFnZUlkZW50aWZpZXIpOwog
ICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICBCYXNlQXVkaW9TaGFy
ZWRVbml0JiB1bml0KCk7CiAgICAgY29uc3QgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgdW5pdCgpIGNv
bnN0OwpAQCAtMTI5LDE0ICsxMjksMTQgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgd2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoRnVuY3Rpb248dm9pZCgpPiYmKTsK
IAogcHJpdmF0ZToKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKikgb3ZlcnJpZGU7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBvdmVycmlkZTsKICAgICBDYXB0dXJlRGV2aWNlTWFu
YWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOwogICAgIGNvbnN0IFZlY3Rv
cjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5hbDsKIH07CiAKLWlu
bGluZSBDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQoraW5s
aW5lIENhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5Ojpj
cmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggMGRkM2Q3MWNhZTdhNjNi
NjM3MjA4ZjI4MzgyMjBlNjU5ZTQyMTNjZS4uMzQyMjc0MjNkODliMGEwNDlkZTY5YWNlMzVmOGYz
OGYzZDMwYzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTgzLDcgKzgzLDcg
QEAgc3RhdGljIHZvaWQgYWRkSHVtKGZsb2F0IGFtcGxpdHVkZSwgZmxvYXQgZnJlcXVlbmN5LCBm
bG9hdCBzYW1wbGVSYXRlLCB1aW50NjRfdAogICAgIH0KIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CiAgICAgQVNT
RVJUKGRldmljZSk7CkBAIC05MSw3ICs5MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAg
ICAgICAgIHJldHVybiB7ICJObyBtb2NrIG1pY3JvcGhvbmUgZGV2aWNlIl9zIH07CiAKICAgICBN
b2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKS5zZXREZXZpY2VJRChkZXZpY2VJRCk7Ci0g
ICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoV1RGTW92
ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWlu
dHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpKTsKKyAgICByZXR1cm4gQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhXVEZNb3ZlKGRldmljZUlEKSwgIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgTW9ja0F1ZGlvU2hh
cmVkVW5pdDo6c2luZ2xldG9uKCksIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogTW9ja0F1ZGlvU2hh
cmVkVW5pdCYgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggOTVjZjM1Y2Q0ZWIxMzE4ZDg2ODMyNzNhNWQw
OTZjNzM2NDQ2MDhiMC4uNDgyOTU3OWQyZmExNjUzY2VjMDAxMjdjMDNmMjRjYTMwOTc2Y2QzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAgLTQ3LDEzICs0Nywx
MyBAQCBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogCiBjbGFzcyBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYyBmaW5hbCA6IHB1YmxpYyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlRm9y
TW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQpOworICAgIHN0YXRpYyBSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+
IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICB+TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwotICAgIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBQ
bGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVTYW1w
bGVCdWZmZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5t
bQppbmRleCBmZDE5NGU2MTlhNDRiODgxMWRjYjE3ZTAwNDY3MWY0NDUzNWU3YTk3Li45ZTI1ZjZk
MmQ0MzEzZjkwZGU5YzBmYjFkNjBkZDg4YjA5Nzg1ZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01Miw3ICs1Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRF
QlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9j
a0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNjEsNyArNjEsNyBAQCBDYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAiTm8gbW9jayBjYW1lcmEgZGV2
aWNlIl9zIH07CiAjZW5kaWYKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlmIChjb25zdHJhaW50
cykgewogICAgICAgICBpZiAoYXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygq
Y29uc3RyYWludHMpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3ItPm1lc3NhZ2Up
OwpAQCAtNzAsMTMgKzcwLDEzIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3Zl
KHNvdXJjZSkpKTsKIH0KIAotUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCitSZWY8TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2Nr
RGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogfQogCi1N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDog
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZVZpZGVvU291cmNlIFJlbmRlciBRdWV1ZSIsIFdvcmtR
dWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJN
YWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IGYzNjdkYTFiZDU4NGZlNDU5ZGEyYjc1ZjIx
NTNkM2FkYjU5Zjk2NWYuLjJkOGY4NGQ0YTczMGVmMDFkOTA3ZmE1OTRmMTIyNGRiYjZkOGI5YzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAgLTQ1
LDEwICs0NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZpZGVvQ2FwdHVyZVNv
dXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJs
aWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFn
ZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQo
ZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpOwotICAg
ICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAg
ICAgcmV0dXJuIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50
aWZpZXIpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTU3LDkgKzU3LDkgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgRGlzcGxheUNhcHR1cmVTb3VyY2VGYWN0b3J5TWFjIGZpbmFsIDogcHVibGljIERpc3Bs
YXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFs
CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBm
aW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNy
ZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJl
dHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiBwcml2YXRlOgog
ICAgIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkg
eyByZXR1cm4gRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNpbmdsZXRvbigpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCmluZGV4IGQwODk0ZDVkNGZlODI1ZjhiMDZkNmM5MjhhYWYwOTg2Mzc3Y2M0YjIu
LjllODhhYjFlNTllN2E3MmI3OGM3NTVkODI0NzhiYWJmOTk2NGNlMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
Y3BwCkBAIC00NSw3ICs0NSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZP
Uk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVVTRShHU1RSRUFNRVIpCi1DYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBh
Z2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZp
Y2VJRCk7CkBAIC02Miw4ICs2Miw4IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiB9CiAjZW5k
aWYKIAotTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1v
dmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSBSZW5kZXIgUXVldWUiKSkKICAgICAs
IG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OnRpY2spCiB7CkBAIC03Nyw5ICs3Nyw2IEBAIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtCiAK
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp+TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoKQogewot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlz
KTsKLSNlbmRpZgogfQogCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5ncygpCkBAIC0xMzYsNyArMTMzLDYgQEAgdm9pZCBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXQKIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnN0YXJ0UHJv
ZHVjaW5nRGF0YSgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5zZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwogICAgIEFTU0VSVChB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4IGYw
ZGFkZjcxZDJkMDM1MzVhNjgyZTUwYzc5Yjk0MjQyZDA4NjhmZjguLjdhMGY0ZDE1Yjk1M2YwYTA4
ZTgxZmNjNDk1ZGY1ZTM4MmY5YTdlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTQyLDEzICs0MiwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDog
cHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRp
Zmllcik7CiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhbm5lbENvdW50KHVuc2lnbmVkKTsKIAogcHJvdGVjdGVk
OgotICAgIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdl
SWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKFNlY29uZHMpID0gMDsKICAg
ICB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3M6OkZsYWc+KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXgg
MDkyZDJmZTYxMTkzNDhmOTg2NWE4OGZiMjc5MWUzYTJkNzE0YTQwMS4uNmQxMmM2YmYwNzhkYTJm
NTRlZjQ2NzU2N2EwZmQzNTVhMDY5ZDE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAK
QEAgLTEwMSwxMyArMTAxLDEzIEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9yPE1vY2tNZWRpYURldmlj
ZT4gZGVmYXVsdERldmljZXMoKQogCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3Rv
cnkgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpOwogICAgICAgICBpZiAoIU1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEsIGRldmljZS5wZXJzaXN0ZW50SWQoKSkpCiAg
ICAgICAgICAgICByZXR1cm4geyAiVW5hYmxlIHRvIGZpbmQgbW9jayBjYW1lcmEgZGV2aWNlIHdp
dGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CiAKLSAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0
cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7
CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7
IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiAKIHBy
aXZhdGU6CkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpCiBj
bGFzcyBNb2NrRGlzcGxheUNhcHR1cmVyIGZpbmFsIDogcHVibGljIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OkNhcHR1cmVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBNb2NrRGlzcGxheUNh
cHR1cmVyKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyAgICBNb2NrRGlzcGxheUNhcHR1cmVyKGNv
bnN0IENhcHR1cmVEZXZpY2UmLCBQYWdlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgYm9v
bCBzdGFydCgpIGZpbmFsOwpAQCAtMTM0LDggKzEzNCw4IEBAIHByaXZhdGU6CiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CiB9OwogCi1Nb2NrRGlzcGxheUNhcHR1
cmVyOjpNb2NrRGlzcGxheUNhcHR1cmVyKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSkKLSAg
ICA6IG1fc291cmNlKE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlz
cGxheUNhcHR1cmVyKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBk
ZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyB9KSkKK01vY2tEaXNwbGF5Q2FwdHVyZXI6Ok1vY2tE
aXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikKKyAgICA6IG1fc291cmNlKE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyB7IGRldmljZS5wZXJzaXN0
ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyB9LCBwYWdlSWRl
bnRpZmllcikpCiB7CiB9CiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBJbnRTaXplIE1vY2tEaXNwbGF5
Q2FwdHVyZXI6OmludHJpbnNpY1NpemUoKSBjb25zdAogCiBjbGFzcyBNb2NrUmVhbHRpbWVEaXNw
bGF5U291cmNlRmFjdG9yeSA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogcHVibGlj
OgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIGlmICgh
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVu
dElEKGRldmljZS50eXBlKCksIGRldmljZS5wZXJzaXN0ZW50SWQoKSkpCiAgICAgICAgICAgICBy
ZXR1cm4geyAiVW5hYmxlIHRvIGZpbmQgbW9jayBkaXNwbGF5IGRldmljZSB3aXRoIGdpdmVuIHBl
cnNpc3RlbnRJRCJfcyB9OwpAQCAtMTg2LDExICsxODYsMTEgQEAgcHVibGljOgogICAgICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAg
ICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShVbmlxdWVSZWY8
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXI+KG1ha2VVbmlxdWVSZWY8TW9ja0Rp
c3BsYXlDYXB0dXJlcj4oZGV2aWNlKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpj
cmVhdGUoVW5pcXVlUmVmPERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkNhcHR1cmVyPihtYWtl
VW5pcXVlUmVmPE1vY2tEaXNwbGF5Q2FwdHVyZXI+KGRldmljZSwgcGFnZUlkZW50aWZpZXIpKSwg
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsK
ICNlbGlmIFVTRShHU1RSRUFNRVIpCiAgICAgICAgICAgICByZXR1cm4gTW9ja0Rpc3BsYXlDYXB0
dXJlU291cmNlR1N0cmVhbWVyOjpjcmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOwogI2Vsc2UKLSAgICAgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBk
ZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNy
b3Bob25lOgpAQCAtMjExLDIwICsyMTEsMTUgQEAgcHJpdmF0ZToKIAogY2xhc3MgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VGYWN0b3J5IGZpbmFsIDogcHVibGljIEF1ZGlvQ2FwdHVyZUZhY3Rvcnkg
ewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAg
QVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9w
aG9uZSk7CiAgICAgICAgIGlmICghTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1
cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmUsIGRldmljZS5wZXJzaXN0ZW50SWQoKSkpCiAgICAgICAgICAgICByZXR1cm4geyAiVW5h
YmxlIHRvIGZpbmQgbW9jayBtaWNyb3Bob25lIGRldmljZSB3aXRoIGdpdmVuIHBlcnNpc3RlbnRJ
RCJfcyB9OwogCi0gICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwo
KSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElk
KCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogcHJpdmF0ZToKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIHZvaWQgc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2Um
IHNvdXJjZSkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9u
KCkuc2V0QWN0aXZlU291cmNlKHNvdXJjZSk7IH0KLSAgICB2b2lkIHVuc2V0QWN0aXZlU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkudW5zZXRBY3RpdmVTb3VyY2Uoc291cmNlKTsgfQotICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSgpIGZpbmFsIHsgcmV0dXJuIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5hY3RpdmVTb3VyY2UoKTsgfQot
I2VuZGlmCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpOyB9CiAgICAgY29uc3QgVmVjdG9yPENh
cHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzcGVha2VyRGV2aWNlcygpOyB9CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcAppbmRleCA2MGM1YThjZDZkNTBlOTAwZTRjMWViZDFmZDhlMmRkYWU4YjZkYjlkLi4z
Y2Y3NDYwYzgwZTNiZTFkNWJhM2YwY2VkN2MxOWIyNWRmMjlhYmYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNw
cApAQCAtNTAsNyArNTAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JN
KE1BQykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmICFVU0UoR1NUUkVBTUVSKQotQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBk
ZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJz
aXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNTksNyArNTksNyBAQCBDYXB0dXJlU291cmNlT3JFcnJv
ciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJgogICAgICAgICByZXR1cm4geyAiTm8gbW9jayBjYW1lcmEgZGV2aWNlIl9zIH07CiAjZW5k
aWYKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkp
KTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBw
YWdlSWRlbnRpZmllcikpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29u
c3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtNzMsOCAr
NzMsOCBAQCBzdGF0aWMgSGFzaFNldDxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSo+JiBhbGxNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZSgpCiAgICAgcmV0dXJuIHZpZGVvU291cmNlczsKIH0KIAotTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZN
b3ZlKGhhc2hTYWx0KSkKK01vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFz
aFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fZW1pdEZyYW1lVGltZXIoUnVuTG9vcDo6
Y3VycmVudCgpLCB0aGlzLCAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlRnJhbWUp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTIzOSw3ICsyMzksNiBAQCB2b2lk
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydENhcHR1cmVUaW1lcigpCiAKIHZvaWQgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7Ci0gICAgcHJlcGFy
ZVRvUHJvZHVjZURhdGEoKTsKICAgICBzdGFydENhcHR1cmVUaW1lcigpOwogICAgIG1fc3RhcnRU
aW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggOTM1YzZkZGVj
YjhkNDU4YzkxNjZmNWIyNjdhYzVjNDk0ZmYzNDNiNS4uZmM1ZmM3YWExY2I3NmZhNmQ5NzM5MDU4
NjViZmFmZWNlZGUzNmJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CiAKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIDogcHVibGlj
IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLCBwcml2YXRlIE9yaWVudGF0aW9uTm90aWZpZXI6
Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogICAgIH5Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0SXNJbnRlcnJ1cHRl
ZChib29sKTsKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIEltYWdlQnVmZmVyKiBpbWFn
ZUJ1ZmZlcigpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsK
KyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKaW5kZXggYWQwNzU4MjE3NTEwMTM1N2UwNTViMTE0MjY4ODkyZmE3YzczYzk0Ni4uODVhNDQ3
MDc0ZmI2N2E4Njg5ZGRkNWI5YzMxMGRhMDM3Yzc2Mzk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTI4OSw3ICsyODksNjYgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKQogICAgIG1fY29ubmVjdGlvblByb3h5
LT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBt
ZWRpYUNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMsIENy
ZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCitDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNaWNyb3Bob25lU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIG1lZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyKQoreworICAgIGF1dG8gc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWVkaWFDb25zdHJhaW50cywgcGFn
ZUlkZW50aWZpZXIpOworICAgIGlmICghc291cmNlT3JFcnJvcikKKyAgICAgICAgcmV0dXJuIHNv
dXJjZU9yRXJyb3I7CisKKyAgICBhdXRvJiBwZXJQYWdlU291cmNlcyA9IG1fcGFnZVNvdXJjZXMu
ZW5zdXJlKHBhZ2VJZGVudGlmaWVyLCBbXSB7IHJldHVybiBQYWdlU291cmNlcyB7IH07IH0pLml0
ZXJhdG9yLT52YWx1ZTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IG11bHRpcGxlIG1pY3JvcGhv
bmVzIHNpbXVsdGFuZW91c2x5LgorICAgIGlmIChwZXJQYWdlU291cmNlcy5taWNyb3Bob25lU291
cmNlKSB7CisgICAgICAgIGF1dG8mIG1pY3JvcGhvbmVTb3VyY2UgPSAqcGVyUGFnZVNvdXJjZXMu
bWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgaWYgKG1pY3JvcGhvbmVTb3VyY2UucGVyc2lzdGVu
dElEKCkgIT0gZGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmICFtaWNyb3Bob25lU291cmNlLmNhcHR1
cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAgIC8vIFdlIGNhbm5vdCByZXVzZSB0aGUgc291cmNl
IHNvIGZhaWwgaXQuCisgICAgICAgICAgICBtaWNyb3Bob25lU291cmNlLmNhcHR1cmVGYWlsZWQo
KTsKKyAgICAgICAgICAgIG1pY3JvcGhvbmVTb3VyY2Uuc3RvcCgpOworICAgICAgICB9CisgICAg
fQorCisgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOworICAgIHBlclBh
Z2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2UgPSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07Cisg
ICAgcmV0dXJuIHNvdXJjZTsKK30KKworQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlQ2FtZXJhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIG1lZGlh
Q29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQoreworICAgIGF1dG8m
IHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5lbnN1cmUocGFnZUlkZW50aWZpZXIsIFtd
IHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGlmIChw
ZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UpIHsKKyAgICAgICAgYXV0byYgY2FtZXJhU291cmNl
ID0gKnBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZTsKKyAgICAgICAgLy8gRklYTUU6IE9wdGlt
aXplIG11bHRpcGxlIGNvbmN1cnJlbnQgY2FtZXJhcy4KKyAgICAgICAgaWYgKHBlclBhZ2VTb3Vy
Y2VzLmNhbWVyYVNvdXJjZS0+cGVyc2lzdGVudElEKCkgPT0gZGV2aWNlLnBlcnNpc3RlbnRJZCgp
ICYmICFjYW1lcmFTb3VyY2UuY2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgLy8gV2Ug
Y2FuIHJldXNlIHRoZSBzb3VyY2UsIGxldCdzIGRvIGl0LgorICAgICAgICAgICAgYXV0byBzb3Vy
Y2UgPSBjYW1lcmFTb3VyY2UuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChtZWRpYUNvbnN0cmFp
bnRzKSB7CisgICAgICAgICAgICAgICAgYXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25zdHJh
aW50cygqbWVkaWFDb25zdHJhaW50cyk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvci0+bWVzc2FnZSk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9CisgICAgfQorCisg
ICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZp
Y2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7
CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQorICAgICAgICByZXR1cm4gc291cmNlT3JFcnJvcjsK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKHBlclBhZ2VTb3VyY2VzLmNhbWVy
YVNvdXJjZSkgeworICAgICAgICAvLyBXZSBjYW5ub3QgcmV1c2UgdGhlIHNvdXJjZSBzbyBmYWls
IGl0LgorICAgICAgICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UtPmNhcHR1cmVGYWlsZWQo
KTsKKyAgICAgICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlLT5zdG9wKCk7CisgICAgfQor
I2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAg
c291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICBw
ZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UgPSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07Cisg
ICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWlu
dHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Qcm94eS0+d2lsbFN0YXJ0Q2FwdHVyZShkZXZpY2Uu
dHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCAiUmVxdWVz
dCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgfSwgeyB9
LCB7IH0sIHsgfSwgMCk7CkBAIC0yOTksMTYgKzM1OCwxNCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaQogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dpdGNo
IChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7
CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVNaWNyb3Bob25lU291cmNlKGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2Ft
ZXJhOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJj
ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChz
b3VyY2VPckVycm9yKQotICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5t
b25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgc291cmNl
T3JFcnJvciA9IGNyZWF0ZUNhbWVyYVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBj
b25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgc291cmNlT3JF
cnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CiAgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oCmluZGV4IDY1OGI1YjdkMTg4NmM0ODMwNmYxODAzYTM4ODA0Yjk1M2Q4NTRmNTQuLjVi
ZWMxMDc1YzQ0ZjJhNjAxZWY1ODVjNTg0NzViYjc1N2YyMmY0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdXNp
bmcgQ3JlYXRlU291cmNlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3Vj
Y2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXpl
LCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJh
bWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0
cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VH
UFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlU291
cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZW5kKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKQEAgLTk0LDExICs5NCwyMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlv
bik7CiAKKyAgICAKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVNaWNy
b3Bob25lU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYW1lcmFT
b3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OworCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5
OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0
ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsKICAgICBVbmlxdWVSZWY8Q29u
bmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKICAgICBXZWJDb3JlOjpPcmllbnRhdGlv
bk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsKKworICAgIHN0cnVjdCBQYWdl
U291cmNlcyB7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
bWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgV2Vha1B0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlPiBjYW1lcmFTb3VyY2U7CisgICAgfTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBQYWdlU291cmNlcz4gbV9wYWdlU291cmNlczsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdiY2E0NTNlNzM3NTM3Njlh
N2ZjNThlMmU3MDczMmI4NTdkOWI4MjkuLmVkN2Y0ZGFiMTZiZWE3OWI0MjFkOTY2MGVlMWU0OWMz
ZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmlj
ZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25z
dHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAoYm9vbCBz
dWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiBw
cmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5jCisg
ICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2Vzcywg
U3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
IGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywg
V2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKSBBc3luYwogICAgIFN0YXJ0
UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkK
ICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBmNWE2
MTY0ZTgzMWM5Njg5OTVlMzMyZWYwMjY5YzBiOGMxOGNmOWYyLi44OGZkYTg0OTE0NjBiNzc3NTBk
N2RhMzUwMWJlYTA1ZTBmMDMzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
UmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmIGNhcHR1cmVEZXZpY2UpCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBwYWdlSWRlbnRpZmllcikpOwogfQogCi1T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBj
YXB0dXJlRGV2aWNlKQotICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmlj
ZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkKK1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorOiBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsg
Y2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9LCB7IH0sIHBhZ2VJZGVudGlmaWVyKQogICAg
ICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICNp
ZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgK
aW5kZXggNzhiZmU1YjY0YjIwZGQwOTAxYjk5YWE3M2MzNWM5MDcwMjFkOWIwNi4uOWFmZmYyODAz
NWEwZDAzMjVmMjZjMGQyZTljNmRhZGRhZWJhNWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgV2ViQXVkaW9CdWZmZXJM
aXN0OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwogICAgIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTYyLDcgKzYy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwogCiBwcml2YXRl
OgotICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
KTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IDY4
ZGMxMTVmMTY5ZjE5ZWY4OWY2NmZlNWM4ZjI0MWM4NWI5NzhkNzEuLmUzYTcwNGUxYmMyMjZlZDQ4
MWEwZDc1ZDE4NzA1ZmEzYjlhNTI5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNw
ZWVjaFJlY29nbml0CiAgICAgfQogI2VuZGlmCiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRlbnRp
ZmllciwgY2FwdHVyZURldmljZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVyLCBj
YXB0dXJlRGV2aWNlLCBzb3VyY2UucGFnZUlkZW50aWZpZXIoKSkpOwogfQogCiB2b2lkIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJj
ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI1OWFlNzNlY2I5MjEz
NWYwOWE5NjUwMWIzM2VkMmE0MWQzNTMzMTkuLmM5YWY1YzZmOTZjYjcxZGM4MjJjZTAzOTBiYTdj
NDBkNDQyYWNkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMTA5OTYsMTIgKzEwOTk2LDEyIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFdl
YlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlCiAgICAgICAg
IHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZv
ciBjYXB0dXJlIiB9OwogCiAgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQ
cm9jZXNzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nl
c3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JF
cnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSwgbV93ZWJQYWdlSUQpIH07CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+
ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigp
LCAqY2FwdHVyZURldmljZSkgfTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nl
c3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9OwogI2Vsc2UKLSAgICByZXR1cm4g
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNl
KCpjYXB0dXJlRGV2aWNlKTsKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJ
RCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKaW5kZXggYjgxZGJiMjNlZmY0NTMzYTA3MjU1Nzg4YTI2ZWVh
N2MzM2UwNWFlMy4uOWYwOWY2MjI2MjgyNjgzYzI2MGI1MzQ1MTZmOTgwOGRhNGI3YzQwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
Y3BwCkBAIC0yMDgsOSArMjA4LDkgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCiAKICNlbmRpZgogCi12
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7CisgICAgYXV0byBy
ZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2UoZGV2aWNlLCBwYWdlSWRlbnRpZmllcik7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1l
IHNvdXJjZSIpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50aWZp
ZXIpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgKaW5kZXggMTg4NDc3MWE4N2I3ZjY2OTkxOTBhNWRlNTY5MTE2Y2M0N2Y4NjFiMy4u
NjIzNDQ4ZmJhOWRkN2Y4NWFiNzMzNTkwNmQ0OGJhOTY5NDhmMzM2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCi0gICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
KTsKKyAgICB2b2lkIGNyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGRlbGV0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAyMzgyZGYxZDhlNTlmMGE4
ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFkLi5hYjVlOThlNDk3MTlhYWRlZDVlOTFiYmQzNzM4MDdl
MTBkMDE3M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKICAgICBE
ZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKICAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyKTsKICAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDJjZTk1NGY0OGJm
ZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2UxMzguLjg3Mjk2OTE2NjcyMTE5ZjFiYmQzOTI4YzYw
MTgzMmUzNmNlMzRmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQzLDI5ICs0Mywy
NiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRz
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShz
b3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
KCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3Rl
TWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUp
LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBh
Z2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIp
CiB7CiAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZSk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJl
bW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0
byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsK
KyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwg
cGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShi
b29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRv
JiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFzdWNj
ZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2Fn
ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcsMTAgKzg0LDYgQEAgUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKQogICAgICAgICBpZiAo
YXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgq
dGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRB
Y3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
JiBjYXBhYmlsaXRpZXMpCkBAIC0xMTksOSArMTEyLDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYg
dGltCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6aGFzRW5kZWQoKQogewotICAg
IG1fcHJveHkuaGFzRW5kZWQoKTsKLSAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZp
ZXIoKSk7Ci0gICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3Zl
U291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgaWYgKG1fcHJveHkuaGFzRW5kZWQoKSkgeworICAg
ICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fbWFu
YWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVy
KCkpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0dXJl
U3RvcHBlZCgpCkBAIC0xNDksMTQgKzE0Myw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvCiAg
ICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8g
VHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3Mg
ZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRp
ZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0
UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
LmgKaW5kZXggYTNjNDFkYzA0YWFjZTVkZDRlYTczOWE2MGYyYTUzMGU1ZTNkMDc1ZS4uODhhYWJh
MDhiNTY1YmVlOWFlNGZhNGE3M2E3ODg4NjU5MDg3MWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5o
CkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgflJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50
aWZpZXIoKTsgfQpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KIAogcHJp
dmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2Vzcyk7CisgICAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFy
dFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAppbmRleCBjNTUz
MzUzM2FjNTViMWY1YzJhZGFlZTE4ODk2ZjM2MTRmN2NlZTM1Li5iNDkwYTdhNTdmMTY0NzNiNzQ1
Y2Q2YmYyMDZlMzFjMTA1YmU5MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcApAQCAt
MzgsMTcgKzM4LDE3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCks
IGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFn
ZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgbWFu
YWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBzb3Vy
Y2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIAot
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCitSZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFs
dGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcg
eyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVy
LCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiB7CkBAIC01Nyw3ICs1Nyw3IEBAIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVuCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGVSZW1vdGVN
ZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZp
Y2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9v
bCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYm
IGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CisgICAgbV9wcm94eS5jcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8m
JiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0
byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAg
ICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTEwMCw5ICsxMDAsMTAgQEAgdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWQKIAogdm9p
ZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5
Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwot
ICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShp
ZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAgbV9t
YW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBtX21hbmFnZXIucmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAg
ICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjYXB0dXJlU3RvcHBl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKaW5kZXggNTJmNTM1YjNkNzNkNjg5Nzc4Yjk1ZjE5
NDdmOGU3MmQ4Mjk4ZDZhMS4uOGQ4MmZiNTk3NDllYTg1ZGMwYmQ0NjVjNDg1YzI0NzkyMDJjMGYz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwor
ICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgflJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgpOwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRl
bnRpZmllcigpOyB9CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQogCiBw
cml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAg
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJv
ZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA0YTI5NGQ4YzU0MTcxZTZlMTAwNWIz
YTQwNjY1NmIyNmMxNTljMDRkLi5iZTc1NDU1ODE4YjUzNWU1ZWYyZDZjODg1NDYxNzQwMGIzYzBj
OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNjgsOSArNjgsOSBA
QCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEo
KQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKLXZv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJj
ZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0ZUNhbGxiYWNrJiYgY2FsbGJh
Y2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
REhhc2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgQ3JlYXRl
Q2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSkKIHsKLSAgICBj
b25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29uc3Ry
YWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIGNv
bm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25zdHJh
aW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZShjYWxs
YmFjaykpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlD
b25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikK
QEAgLTk5LDkgKzk5LDE0IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojpm
YWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYKICAgICAgICAgY2FsbGJh
Y2tzLnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNFcnJv
ciB7IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eTo6aGFzRW5kZWQoKQorYm9vbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHk6Omhhc0VuZGVkKCkKIHsKKyAgICBpZiAobV9pc0VuZGVkKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0s
IDApOworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxs
YmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAppbmRleCAwM2MxZDcxMjIyN2NkNWI1
MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi4yMDZmNmY5MTc4YWM5Yjg0YTM2N2YwMjcwNmEwNjNl
NDRkNzU4ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCkBAIC01MywxMyArNTMs
MTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNvbnN0
IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcgQ3Jl
YXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYm
LCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKGNvbnN0IFN0cmluZyYsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVt
b3RlRnJhbWUgPSBmYWxzZSk7CisgICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwgYm9v
bCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9IGZhbHNlKTsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcm
JiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZmFp
bEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgCi0gICAgdm9pZCBoYXNFbmRlZCgpOworICAgIGJvb2wgaGFzRW5kZWQoKTsKICAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsKICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYp
OwpAQCAtNzUsMTIgKzc1LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgbV9kZXZpY2U7CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxz
ZSB9OworICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlkZW50aWZpZXI7CiAKICAg
ICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAgICAgRGVxdWU8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1fcGVu
ZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxz
ZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKICAg
ICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9Owog
fTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBkMmQyNGFiYWI5ZWMz
NGEwZGEyMmViNjVhOGFkM2NiNWYwMDdkOTdjLi44OGI4ZWM3NmJhNDg3NjQ3YmVkZmUyOTk4MDg1
YmU3MWM3NTM5OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00NSwyOSArNDUsMjUg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNv
bnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50
aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBt
YW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5
UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1
cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDog
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNl
LnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwg
bV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNv
bnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhh
c2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNj
ZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFi
aWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11dGFi
bGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2Fs
dCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3Ms
IGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8gZnJh
bWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAg
IG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtOTMsMTEgKzg5LDYgQEAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAg
ICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0
aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldENh
cGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVz
KQpAQCAtMTQ3LDkgKzEzOCwxMCBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogCiB2b2lkIFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0Vu
ZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwotICAgIG1f
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlm
aWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAgbV9tYW5hZ2Vy
LnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBtX21hbmFnZXIucmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICB9CiB9
CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQpAQCAt
MjA0LDE0ICsxOTYsNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nl
c3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0VuZGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYg
KGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgdGhp
cyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVG
YWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQgYW5k
IGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAgICBj
YXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1f
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5l
Y3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBjcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMzJhOGExMTU0
NjRiMGI2NWI3ZWFmM2JmMGRiODE3ZmUxYjhmOWE5Ny4uZmIzMDFiNWE0MzFiM2VkMjc2M2MyYmEy
MDQ1MzI0MjY5ZDk0OTljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC01NSw3ICs1NSw3IEBA
IGNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVu
dGlmaWVyKCk7IH0KQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc291cmNlTXV0
ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1f
cHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGY2
ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLjNjZjIyNzhmNGU5MzE1MTRi
ZGMyNmE3ZDc0OWEzZmE2Yzk2NzAyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMjEyLDcg
KzIxMiw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNG
YWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgfSwgW10oc3RkOjpudWxscHRy
X3QpIHsgfSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgIUVO
QUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpA
QCAtMjI1LDcgKzIyNSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERlcHJl
Y2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnko
dHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5h
Z2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHJldHVybiBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJ
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0
b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCkBAIC0yMzgsNyAr
MjM4LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpzZXRT
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmEKICAgICBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MgPSB2YWx1ZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
ICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpCkBAIC0yNDgsMTAgKzI0OCwxMCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogICAg
ICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKICAgICBib29sIHNo
b3VsZFVzZUlPU3VyZmFjZSA9ICFtX21hbmFnZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3Rl
RnJhbWVzOwotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29u
c3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CisgICAgcmV0dXJuIENhcHR1
cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVu
dGlmaWVyKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9y
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3Bs
YXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmICht
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNjAsNyArMjYwLDcgQEAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVh
dGVEaXNwbGF5Q2FwdHUKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAg
ICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKLSAgICByZXR1cm4g
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywg
V1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNl
LCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDhjYzViNGY5MjY5YjI0NGRiNTk5NWI3
Yjc0NDRiOTE1OTdmMTZhODIuLjhkMjJjZDMwMmI2Y2U4NjkwYTk4ODg0OTdlMzA5MGMyMDUzYTg5
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAgICAg
ICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7
IH0KICAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiBzcGVha2Vy
RGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3BlYWtlckRldmljZXM7IH0KIApAQCAt
ODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKikgZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VN
YW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5h
Z2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAgICAgICAgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgogICAg
ICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5
Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAgICBXZWJDb3Jl
OjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZp
bmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQogCiAg
ICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZhNmY5
NTM2YTRmMzEwZjQ0NzE4MmEwZjYxYmQ2YjVjNjBmNGQzZi4uZDY3YWUwNTg1ODdkNjdlMGFiOWMy
ZDdhMTZmNmIwYmZmYTFjYmM5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAzLTAyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJl
IHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgd2UgYXJlIGNhcHR1cmluZyB3aXRoIGRpZmZl
cmVudCBkZXZpY2VzLCB3ZSBoYXZlIGV4cGxpY2l0IGZhaWx1cmUgZm9yIGF1ZGlvIGNhcHR1cmUu
CisgICAgICAgIFJlYmFzZSB0ZXN0cyBhY2NvcmRpbmdseS4KKworICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3RlZC50eHQ6CisK
IDIwMjItMDMtMDEgIE1hdHRlbyBGbG9yZXMgIDxtYXR0ZW9fZmxvcmVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbIGlPUyBdIHBvaW50ZXJldmVudHMvbW91c2UvKiAxMCBwb2ludGVyIGV2ZW50IHRl
c3RzIGFyZSBjb25zdGFudCB0aW1lb3V0cyBvciBmYWlsdXJlcyBvbiBpT1MuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZl
bnQtMi1leHBlY3RlZC50eHQKaW5kZXggMDQ4M2M3MGRkYmQ3ZGU5MWZjZGEwNTY4ZDIzZmNjMGYx
ZThlOTM2My4uZGFhNjc0YTdmOTc3NjVjMjQxM2ZlMzk1YzI4ZDVmMjgyZGZmMzg5MyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNo
YW5nZS1ldmVudC0yLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FH
RTogQSBNZWRpYVN0cmVhbVRyYWNrIGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQorQ09O
U09MRSBNRVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVyZSBm
YWlsdXJlCiAKIFBBU1MgJ2RldmljZWNoYW5nZScgZXZlbnQgZmlyZWQgd2hlbiBkZXZpY2UgbGlz
dCBjaGFuZ2VzCiBQQVNTICdkZXZpY2VjaGFuZ2UnIGV2ZW50cyBmaXJlZCBxdWlja2x5IGFyZSBj
b2FsZXNjZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0LXVz
ZXItbWVkaWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4dAppbmRleCA1MDI0Y2Vm
NjUzZjM2YTQ2YjVhYjc4NjMwMTk4NTQxMGQzMjEwOWQ1Li5kMmZhNjY4N2RmNDVlZmNiMjgyZjYx
OWNiZDI0ODNiODFhM2Q4NDFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5k
ZWQgZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJlCitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJl
YW1UcmFjayBlbmRlZCBkdWUgdG8gYSBjYXB0dXJlIGZhaWx1cmUKK0NPTlNPTEUgTUVTU0FHRTog
QSBNZWRpYVN0cmVhbVRyYWNrIGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQogCiBQQVNT
IERldmljZSBJRHMgc2hvdWxkIGJlIGVtcHR5IGluaXRpYWxseQogUEFTUyBDb2xsZWN0IGRldmlj
ZSBJRHMK
</data>
<flag name="commit-queue"
          id="481022"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453592</attachid>
            <date>2022-03-02 05:34:40 -0800</date>
            <delta_ts>2022-03-02 06:51:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237359-20220302143438.patch</filename>
            <type>text/plain</type>
            <size>139054</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRkZTA1NWUzZGEyOGQx
ZTE3MmNlMDJjOTA4NmVlMTdiYjFiMDNlZi4uMDkyMGYyMzg4ZDNiNWMyODNlYTQ4OTk3NjMwOWEz
ZmIwMjlkMzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVuIGNyZWF0aW5nIGNhcHR1
cmUgc291cmNlcy4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGF0IFdlYktpdCBsYXllciB0byBiZXR0
ZXIgaGFuZGxlIGNyZWF0aW9uIG9mIG11bGl0cGxlIHNvdXJjZXMuCisgICAgICAgIFNpbmNlIHdl
IGFyZSBub3cgc29tZXRpbWVzIGFuc3dlcmluZyB0byBnZXRVc2VyTWVkaWEgYnkgY2xvbmluZyBz
b3VyY2VzIGRpcmVjdGx5LAorICAgICAgICBmaXggYSBidWcgaW4gUmVhbHRpbWVWaWRlb1NvdXJj
ZSB0byB1c2UgdGhlIHByZXNldCBhc3BlY3QgcmF0aW8gdG8gY29tcHV0ZSBtaXNzaW5nIHdpZHRo
IG9yIGhlaWdodC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW06CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwogMjAyMi0wMy0wMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVG
cm9tUGl4ZWxCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODFiZjAxMjQxMzcwZjRhN2FhZWRlNDBlZGQxZjI4
Yjg5MTY0ZmJmNC4uYmQ2OWZhZDVjODY5NjIzYTMyYzQ3MDFhMjZhNjRhZTM5ZWExZjIyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMi0wMy0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU2NvcGUgY2FwdHVyZSBzb3VyY2VzIGJ5IHBhZ2UgaWRl
bnRpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNzM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlcmUgYXBwcm9wcmlhdGUuCisgICAgICAgIE1ha2UgdXNl
IG9mIFBhZ2VJZGVudGlmaWVyIGluIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6CisgICAg
ICAgIC0gRm9yIG1pY3JvcGhvbmUsIGlmIHRoZXJlIGlzIGEgc291cmNlIHdpdGggYSBkaWZmZXJl
bnQgZGV2aWNlLAorICAgICAgICAgIGZhaWwgdGhlIHNvdXJjZSBhcyB3ZSBhcmUgbm90IHlldCBz
dXBwb3J0aW5nIGNvbmN1cnJlbnQgY2FwdHVyZXMuCisgICAgICAgIC0gRm9yIGNhbWVyYSwgaWYg
dGhlcmUgaXMgYSBzb3VyY2Ugd2l0aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAgICAgICAgZmFp
bCB0aGUgc291cmNlIGFzIHdlIGFyZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3VycmVudCBjYXB0
dXJlcyAob25seSBvbiBpT1MpLgorICAgICAgICAgIE90aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBt
YXRjaGluZyBzb3VyY2UsIGNsb25lIGl0IHNvIHRoYXQgd2UgcmVkdWNlIHRoZSBvdmVyaGVhZAor
ICAgICAgICAgIG9mIGNyZWF0aW5nIGEgbmV3IHNvdXJjZSAoc2V0dGluZyB1cCBhIGNhbWVyYSBj
YW4gYmUgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbikuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjIt
MDMtMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFt
ZSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHRvIE1lZGlhU2FtcGxlQVZG
T2JqQzo6Y3JlYXRlRnJvbVBpeGVsQnVmZmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzY2I0YTQ5
ZDk4NTE2YzljYmQ1MWRlZGNmYWMzNmFmMmRmZDVkMTUxLi45MmM2NjM4ODA4MWVkNDk5NjQyZjky
YTgwY2Q3NTk2YmI4YzU0M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExMzUsNyArMTEzNSw2
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmgKICAgICBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKICAgICBwYWdlL1Bh
Z2VHcm91cC5oCi0gICAgcGFnZS9QYWdlSWRlbnRpZmllci5oCiAgICAgcGFnZS9QYWdlSW5saW5l
cy5oCiAgICAgcGFnZS9QYWdlT3ZlcmxheS5oCiAgICAgcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaApAQCAtMTI5Miw2ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL1BPREludGVydmFsLmgKICAgICBwbGF0Zm9ybS9QT0RJbnRl
cnZhbFRyZWUuaAogICAgIHBsYXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oCisgICAgcGxhdGZvcm0v
UGFnZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaAogICAgIHBsYXRmb3Jt
L1Bhc3RlYm9hcmRDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKaW5kZXggNTA2ZjMzNzRiN2U2ZDc2ZDU5OGY0OTUzZDg0OWMzOGVhYWM3MjdlOS4uMGZh
YThiYjU1YTE5ODVlOTgwZjczNmI2MWRhMGQ2MzBkNmNhZTNjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMTQyLDcg
KzE0Miw3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpnZXRVc2VyTWVkaWEoY29uc3QgU3RyZWFtQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBQcm9taXNlJiYKICAgICAgICAgdmlkZW9Db25zdHJhaW50
cy5zZXREZWZhdWx0VmlkZW9Db25zdHJhaW50cygpOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVz
dCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1
ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUo
dmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHBy
b21pc2UpKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRv
Y3VtZW50LCB7IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhLCBXVEZNb3ZlKGF1
ZGlvQ29uc3RyYWludHMpLCBXVEZNb3ZlKHZpZGVvQ29uc3RyYWludHMpLCBpc1VzZXJHZXN0dXJl
UHJpdmlsZWRnZWQsICpkb2N1bWVudC0+cGFnZUlEKCkgfSwgV1RGTW92ZShwcm9taXNlKSk7CiAK
ICAgICBpZiAoIWRvY3VtZW50LT5zZXR0aW5ncygpLmdldFVzZXJNZWRpYVJlcXVpcmVzRm9jdXMo
KSkgewogICAgICAgICByZXF1ZXN0LT5zdGFydCgpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQg
TWVkaWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29u
c3RyYWludHMmIGNvbnN0cmFpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJl
cXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlhU3RyZWFt
UmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25zdHJhaW50
cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB9LCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBh
dXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlh
U3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCB7IH0sIFdURk1vdmUodmlkZW9Db25z
dHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5wYWdlSUQoKSB9
LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICByZXF1ZXN0LT5zdGFydCgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCBhNDVkMTllNTQ3Mzk5NTZkYjc4MDYzYzdjYWJlOGE4ZTBmMTA0ZDRkLi5mYzE3
NjE1NmRkMGZjZDIyMWRmYjgyNzIzMTgxNDJkYTcwY2YwODhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAg
LTQ2OSw0NCArNDY5LDEyIEBAIE1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJl
YW1UcmFjazo6Y2FwdHVyZVN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gc3Rh
dGU7CiB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIGJvb2wgaXNTb3VyY2VD
YXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBE
b2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAgZm9yIChhdXRvKiB0cmFjayA6IGFsbENhcHR1cmVU
cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPmRvY3VtZW50KCkgIT0gJmRvY3VtZW50IHx8
IHRyYWNrLT5lbmRlZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgaWYgKHRy
YWNrLT5zb3VyY2UoKS5pc1NhbWVBcyhzb3VyY2UpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCiB2b2lkIE1lZGlhU3RyZWFt
VHJhY2s6OnVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVkU3RhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgYXV0byogcGFnZSA9IGRvY3Vt
ZW50LnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8q
IGFjdGl2ZUF1ZGlvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwotICAgIGlmIChhY3RpdmVB
dWRpb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudCgqYWN0aXZl
QXVkaW9Tb3VyY2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2Ut
Pm11dGVkU3RhdGUoKS5jb250YWlucyhNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZTo6QXVkaW9DYXB0
dXJlSXNNdXRlZCk7Ci0gICAgICAgIGFjdGl2ZUF1ZGlvU291cmNlLT5zZXRNdXRlZChwYWdlTXV0
ZWQgfHwgKGRvY3VtZW50LmhpZGRlbigpICYmIGRvY3VtZW50LnNldHRpbmdzKCkuaW50ZXJydXB0
QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5hYmxlZCgpKSk7Ci0gICAgfQotCi0gICAgYXV0
byogYWN0aXZlVmlkZW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2
ZVZpZGVvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3Rp
dmVWaWRlb1NvdXJjZSwgZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFn
ZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0Nh
cHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0aXZlVmlkZW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VN
dXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7Ci0gICAgfQotI2Vsc2UKICAgICBmb3IgKGF1dG8q
IGNhcHR1cmVUcmFjayA6IGFsbENhcHR1cmVUcmFja3MoKSkgewogICAgICAgICBpZiAoY2FwdHVy
ZVRyYWNrLT5kb2N1bWVudCgpID09ICZkb2N1bWVudCAmJiAhY2FwdHVyZVRyYWNrLT5lbmRlZCgp
KQogICAgICAgICAgICAgY2FwdHVyZVRyYWNrLT51cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCk7CiAg
ICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdlTXV0
ZWRTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAppbmRleCAzNDlhZGY2YjQy
Y2NiM2NjMWQ2YzA3YTJlNTQ0YzJiYzU5M2FjYTRiLi5hZmJjZTdhOWY0NTZmN2Q1MDc2ODc4MDlj
YmUxNmUxMWJlNDBlMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTYy
LDkgKzYyLDkgQEAgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKICAgICByZXR1cm4gY2FwdHVyZURl
dmljZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UpCitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
Y2FwdHVyZURldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0
dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVjaElE
Il9zLCB7IH0pOworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1
cmVEZXZpY2UsICJTcGVlY2hJRCJfcywgeyB9LCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYg
c3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCBjYTkwM2IxMmI3ZjIyMTkzNWY1ZGZhMTk4
ZGJiMWE4YzRjNzlkMzQ5Li5lMzI4ZGMzYzdjZDMwZjY5OTMwMjdjYjdkOTg0YzY2MTdmYjk2YzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CiAgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxs
YmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgUGFn
ZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGExZDZi
NmZjNjNhZDI5MWYwNzI4ZDUxODk3ZThiOWMxNzk3Y2IzMDEuLmQ4NWYwZTczOGI2MGUxZjAzZTlm
NDc0YTM3MThkMWVhZjIwYjQzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMTkyLDcgKzIxOTIsNiBA
QCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKLXBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVhNTc2NWVmNjhkMzM4MWQ4
NzA2NDVmZjNlN2ZiNzVmYmNkNDRkZTMuLjM4ZmE2OGU2NzM2NjgxZmE2YWQxNzZlMGFkZTEzOTg5
NmE4NDdjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTExODIsNiArMTE4Miw3IEBACiAJCTQxOEZDQkU3MjcxNUEyOEYwMEY5
NkVDQSAvKiBSVENSdHBDb2RlY0NhcGFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTBBN0RDMjNCQjYzREIwMDU2MTA2MCAvKiBSVENSdHBD
b2RlY0NhcGFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MTkwRjNBNTI0QTBCNEVFMDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MEYzQTMy
NDlEMTUyODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRGQ0Yg
LyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyog
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi87IH07CisJCTQxOTJCQjEzMjdD
RjYzODYwMEYyOUE0NiAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QUNGOEUxRjk3
RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOUJDMkRGMTY4NTMyOTkwMEQ2NEQ2RCAv
KiBWaXNpdGVkTGlua1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTlCQzJERDE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5o
ICovOyB9OwogCQk0MTlCRTc1OTFCQzdGNDJCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QkU3
NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLzsgfTsKQEAgLTEz
NjMsNyArMTM2NCw2IEBACiAJCTQ2QTc4QjM0Mjc5OUJENzEwMDExNTRGRSAvKiBXb3JrZXJPcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzFC
MUQyNjI2RjE4QTRCMDA4ODJEQTIgLyogV29ya2VyT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQy
RiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDZBQUFBM0EyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJl
YWRlckNvY29hLmggKi87IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50
VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2QjY1MERE
MjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBh
Z2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDZCODU5M0MyNjE2NzIyNzAwMTlFREM2IC8qIFNjcmlwdEJ1ZmZlclNvdXJjZVBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkI4NTkzQTI2MTY3MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCAq
LzsgfTsKIAkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4QTIw
N0Q2MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI5NTE5NjIwN0Q2MzNBMDBBN0QyREQg
LyogQWJzdHJhY3RGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZCOTUxOEYyMDdENjMyQjAwQTdEMkREIC8qIEFic3RyYWN0RnJhbWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjEwMyw3ICs2
MTAzLDYgQEAKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMTE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVF
ODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc1NEE1RUIyMTVFQURGMzAwMkQzQTk5IC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRp
YVVzYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVVzYWdl
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5NzE4ODQ0ODcyMDBF
MTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04ODU4LDYgKzg4NTcsNyBAQAogCQk0MTkwRjNBMTI0OUQxNTI3MDA1MzFDNTcg
LyogRnJhbWVSYXRlTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGcmFtZVJhdGVNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVSYXRlTW9uaXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTQ1Njk0MjAzNTAyQTUwMDRCQTI3NyAv
KiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTYyMDM1MDJBNjAwNEJBMjc3IC8qIEFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJG
ZXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0
Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMTEsNyArOTMxMSw2IEBACiAJ
CTQ2QUFBQTNDMjVEMzYzMTQwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QUNEODExMjcwMTY1NkEwMEVGOENF
RCAvKiBOYXZpZ2F0aW9uUmVxdWVzdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5hdmlnYXRpb25SZXF1ZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2QjY1MERCMjI5NjI2MjcwMEZEOEFBNCAv
KiBQYWdlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI4NTkzQTI2MTY3
MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZCOTUxOEEyMDdENjMyODAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0RE9NV2luZG93Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1MThDMjA3RDYzMjkwMEE3RDJERCAvKiBSZW1v
dGVGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVG
cmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY5MCw3ICsxODY4OSw2
IEBACiAJCQkJNEE0RjY1NkQxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMuaCAqLywKIAkJCQk0QTBGRkE5RjFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgKi8sCiAJCQkJNEEwRkZBQTAxQUFGNUVBMjAwNjI4MDNC
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCAqLywKLQkJCQkwNzU0QTVFQjIxNUVBREYz
MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovLAogCQkJCTA3NTRB
NUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovLAog
CQkJCTQxQjg3NzYwMjNERTEwNDIwMDM2MzhCOCAvKiBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oICovLAogCQkJCTRBNEY2NTZFMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MuY3BwICovLApAQCAtMjQyNTUsNyArMjQyNTMsNiBAQAogCQkJCTkzMDJC
MEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLywKIAkJCQk3QTY3NEJEOTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJE
QTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCi0JCQkJNDZC
NjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJCQkJQ0RFRkRB
MEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3
QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJF
MDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCAqLywKQEAgLTMwMTAwLDYgKzMwMDk3LDcgQEAKIAkJ
CQk0MTc4RUYxNjI0MTI1QjZDMDAxOTNDNzQgLyogTm93UGxheWluZ01hbmFnZXIuY3BwICovLAog
CQkJCTQxNzhFRjE0MjQxMjVCNkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5oICovLAog
CQkJCTQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmaWVyLmggKi8s
CisJCQkJNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJ
CQkJMkVFMDJBMUUxRjczMjQyODAwMDZBRjcyIC8qIFBhc3RlYm9hcmQuY3BwICovLAogCQkJCTRC
MjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8sCiAJCQkJRjQwREFBRUIy
NUQ5RjI1RTAwMTFCNEZBIC8qIFBhc3RlYm9hcmRDb250ZXh0LmggKi8sCkBAIC0zNjU1Myw3ICsz
NjU1MSw3IEBACiAJCQkJOTMwMkIwQkYwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0E2NzRCREMwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExv
YWREZWZlcnJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQzQxRkFBNDRCQzAwMzdEMUU2
IC8qIFBhZ2VIZWFwQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2QjY1MEREMjI5NjI2Mjcw
MEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE5MkJCMTMy
N0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REVGREEwRTI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1Q0IwNTI0MUZCNTFGMzMwMDA4OUI5NyAvKiBQYWdlTmV0d29ya0FnZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRDVDOUQwMDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NGQ1ZjhkMjk3NTYzZWUwMjljNDEzZTljZGE3NDk0YzVmYTRk
OGFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBQYWdlSWRlbnRpZmll
clR5cGUgeyB9OwotdXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJ
ZGVudGlmaWVyVHlwZT47Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BhZ2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmll
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmll
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJ
ZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKaW5kZXgg
YTRkNGI1MjViZTg5OWMyOTIxNjQwOWMyODk0NzZlMTlmNDZlNzcxZC4uZDA3OTU2ZjQ5YWFjYThi
NWMzNTE5YTI5NzhiNjkyMGM4NDFhMTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJh
aW50cy5oIgorI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzksNiArNDAsNyBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICBN
ZWRpYUNvbnN0cmFpbnRzIGF1ZGlvQ29uc3RyYWludHM7CiAgICAgTWVkaWFDb25zdHJhaW50cyB2
aWRlb0NvbnN0cmFpbnRzOwogICAgIGJvb2wgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIHsgZmFs
c2UgfTsKKyAgICBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcjsKIAogICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
QEAgLTQ3LDE1ICs0OSwyMCBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICAgICAg
ZW5jb2RlciA8PCBhdWRpb0NvbnN0cmFpbnRzOwogICAgICAgICBlbmNvZGVyIDw8IHZpZGVvQ29u
c3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkOwor
ICAgICAgICBlbmNvZGVyIDw8IHBhZ2VJZGVudGlmaWVyOwogICAgIH0KIAogICAgIHRlbXBsYXRl
IDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVN0cmVhbVJlcXVlc3Q+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgTWVkaWFTdHJlYW1SZXF1
ZXN0IHJlcXVlc3Q7Ci0gICAgICAgIGlmIChkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnR5cGUpICYm
IGRlY29kZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykgJiYgZGVjb2Rlci5kZWNv
ZGUocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0Lmlz
VXNlckdlc3R1cmVQcml2aWxlZGdlZCkpCi0gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDsKLQot
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlcXVlc3QudHlwZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmF1
ZGlvQ29uc3RyYWludHMpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52
aWRlb0NvbnN0cmFpbnRzKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3Qu
aXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2Rl
KHJlcXVlc3QucGFnZUlkZW50aWZpZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICByZXR1cm4gcmVxdWVzdDsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCmluZGV4IGRlMGYxYTdhNGU2MzVhMTM5ZTQ4MjhiNTQ3ZmRjZjA2NjE5YjM1YWIuLmYx
YzllNjAyODEzYTNiZjZmYjMxNDE3ODhiNjYwNGNhNDNiMDliOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCkBAIC00OCw4ICs0OCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRp
bWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IG1faWRIYXNo
U2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVk
aWFTb3VyY2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9w
YWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllcikKKyAgICAsIG1faWRIYXNoU2FsdChXVEZNb3Zl
KGhhc2hTYWx0KSkKICAgICAsIG1fcGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAg
ICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJmZjQwZDUyNTExNDNiNjlhYjQ0Li5hYzRm
ZGU5MzViNzgwNGRhMmVkZTU5MzA5NTljNDJlMTJiOWY3MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CkBAIC02OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIAogY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6
Ok1haW5SdW5Mb29wPgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwdWJsaWMgTG9nZ2VySGVs
cGVyCiAjZW5kaWYKQEAgLTIyMSw4ICsyMjIsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAg
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSWRl
bnRpZmllcjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQg
PSB7IH0pOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9LCBQYWdlSWRlbnRp
ZmllciA9IHsgfSk7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZv
aWQoKT4mJik7CiAKQEAgLTI3Myw2ICsyNzYsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
ZnJhbWVDb3VudCB7IDAgfTsKICNlbmRpZgogCisgICAgUGFnZUlkZW50aWZpZXIgbV9wYWdlSWRl
bnRpZmllcjsKICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OwogICAgIFN0cmluZyBtX2hhc2hlZElE
OwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKaW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQwYzExMjA4ZjUzYjFiOTIxYzM0YS4uMDA3
NGQxNDQ5NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZiODZkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwg
TmUKIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJjZTsKICAgICBp
ZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0
b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJp
bmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0
byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRp
b0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKCFzb3Vy
Y2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1ha2VT
dHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNlOiAiLCBzb3Vy
Y2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODksOSArODksOSBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxj
b25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlmICh2aWRlb0RldmljZSkgewogICAgICAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAgIGlmICh2aWRlb0RldmljZS50
eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAg
c291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29u
c3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNo
U2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3Rv
cnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RG
TW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAg
c291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRl
b0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKIAogICAgICAgICBpZiAoIXNv
dXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFr
ZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSB2aWRlbyBzb3VyY2U6ICIsIHNv
dXJjZS5lcnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFt
UmVxdWVzdCYKICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQg
fSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRl
dmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVx
dWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJj
ZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAgICAgIGRpc3BsYXlEZXZp
Y2VJbmZvLmFwcGVuZCh7IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3Jl
KCksIGRldmljZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3Qm
IHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhh
c2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgICAgICBpZiAo
c291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29u
c3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAg
ICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0
dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxl
ZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJj
ZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJlcXVlc3QucGFnZUlkZW50aWZp
ZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0
dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25zdHJhaW50cywg
aW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlSW5mby5hcHBl
bmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZX0p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYxM2I1ODZhNDhlOTY1NWFmZTYxZmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2lu
Y2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
LSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL1NIQTEuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnNldEFj
dGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCi17Ci0gICAgaWYgKG1fYWN0
aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9hY3RpdmVT
b3VyY2UgJiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICBtX2Fj
dGl2ZVNvdXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAgbV9hY3RpdmVTb3VyY2UgPSAmc291cmNl
OwotfQotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnVuc2V0QWN0aXZlU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgPT0gJnNv
dXJjZSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBudWxscHRyOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYmEwZDkwM2U2MjllZDhhYmVkZjdjZmNmMWVmOTY1
MTEzZTM4OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTllMmFmODAzYzI0Mjc2ZjZkNzA5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsMjcgKzQyLDEwIEBAIGNsYXNz
IFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1
Y3QgTWVkaWFDb25zdHJhaW50czsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgU2luZ2xlU291cmNl
RmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U2luZ2xlU291cmNlRmFjdG9yeSgpID0g
ZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNv
dXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSogbV9hY3RpdmVTb3VyY2UgeyBudWxscHRyIH07Ci19OwotCi1jbGFzcyBB
dWRpb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1Ymxp
YyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1
bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2
aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKICAgICB2aXJ0dWFs
IGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTcGVha2VyRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spIGNvbnN0IHsgY2FsbGJhY2soKTsgfQpAQCAtNzQsMjggKzU4
LDIwIEBAIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0Owog
fTsKIAotY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2VuZGlmCi17CitjbGFzcyBWaWRl
b0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0
b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1
YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7
CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsK
IAotY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIERpc3Bs
YXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVG
YWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAg
ICB2aXJ0dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAKaW5kZXggODJkZTI1OGJiYzdiMWExODZkY2I1NzBkY2EwNDQwZDhhYjQwMDllMS4uMzBiMGEy
NThkM2FkMDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdU
Rk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKIHsKIH0KIAogUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U6On5SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlm
Ci19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXBhcmVUb1Byb2R1Y2VE
YXRhKCkKLXsKLSAgICBBU1NFUlQoZnJhbWVSYXRlKCkpOwotCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Nh
cHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiBjb25z
dCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpw
cmVzZXRzKCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgcwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5l
bmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0
ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAKICAgICBpZiAoIW1hdGNoLT5y
ZXF1ZXN0ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2ICs0MDEsNyBAQCB2b2lkIFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVkU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9w
dGlvbmFsPGludAogICAgIGlmICghbWF0Y2gpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fY3Vy
cmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRo
UHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7
CiAgICAgc2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVzZXQtPnNpemUpOwogICAgIHNldEZyYW1l
UmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZS5oCmluZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVkZmY3ZmQ0NDhiNWYzOTVjZDE4YWIuLmRj
MWMzZDVlYWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFlZjlmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZW5zdXJlSW50cmluc2ljU2l6ZU1haW50YWluc0FzcGVjdFJhdGlvKCk7CiAKKyAgICBjb25zdCBW
aWRlb1ByZXNldCogY3VycmVudFByZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFByZXNl
dC5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVj
ZURhdGEoKTsKICAgICB2b2lkIHNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+
IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4p
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQm
KSB7IHJldHVybiB0cnVlOyB9CkBAIC05MCw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qg
Y2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlIjsgfQogI2VuZGlmCiAKKyAgICBSZWZQdHI8VmlkZW9QcmVzZXQ+IG1f
Y3VycmVudFByZXNldDsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwog
ICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKICAgICBkb3VibGUg
bV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggY2U2
ZTAwMzU5N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkzZjQzYy4uMWQ0Zjk5YmYyYjEzYWE2NmFm
ZmMyNDhiZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM2LDcg
KzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVh
bHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNl
LCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlw
ZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVy
c2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSkKKyAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFt
ZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNl
LT5kZXZpY2VJREhhc2hTYWx0KCkgfSwgc291cmNlLT5wYWdlSWRlbnRpZmllcigpKQogICAgICwg
bV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV9z
aG91bGRVc2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJmYWNlKQpAQCAtOTUsMTIgKzk1LDE1IEBA
IHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlv
bmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNTRVJUKHNvdXJjZVNpemUuaGVpZ2h0KCkp
OwogICAgIEFTU0VSVChzb3VyY2VTaXplLndpZHRoKCkpOwogCisgICAgYXV0byogY3VycmVudFBy
ZXNldCA9IG1fc291cmNlLT5jdXJyZW50UHJlc2V0KCk7CisgICAgYXV0byBpbnRyaW5zaWNTaXpl
ID0gY3VycmVudFByZXNldCA/IGN1cnJlbnRQcmVzZXQtPnNpemUgOiBzb3VyY2VTaXplOworCiAg
ICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBzb3VyY2VTaXplLndpZHRoKCkgKiBoZWln
aHQudmFsdWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7CisgICAgICAgIHdpZHRoID0gaW50cmlu
c2ljU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBpbnRyaW5zaWNTaXplLmhlaWdodCgp
OwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKCp3aWR0aCk7CiAKICAgICBpZiAoIWhl
aWdodCkKLSAgICAgICAgaGVpZ2h0ID0gc291cmNlU2l6ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVl
KCkgLyBzb3VyY2VTaXplLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IGludHJpbnNpY1NpemUu
aGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50cmluc2ljU2l6ZS53aWR0aCgpOwogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0KTsKIAogICAgIGlmIChmcmFtZVJhdGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDU1NGY4
ZGQyN2E0YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQyYjcuLjE2NmE1MzA3NzMyYjExNWU0NWQ2
MjA3MGVmYTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EuY3BwCkBAIC04MywyMyArODMsMjMgQEAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUgc291cmNlVHlwZUZvckRldmljZShDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHQK
ICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKIH0KIAotQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICNpZiBQTEFURk9STShJ
T1MpCi0gICAgICAgIHJldHVybiBjcmVhdGUoUmVwbGF5S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0dXJlU291cmNlOjpj
cmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbHNlCiAjaWYgSEFWRShTQ1JFRU5fQ0FQ
VFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNB
dmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3Jl
ZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMpLCBk
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwog
I2VuZGlmCi0gICAgICAgIHJldHVybiBjcmVhdGUoQ0dEaXNwbGF5U3RyZWFtU2NyZWVuQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlT
dHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwg
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsK
ICNlbmRpZgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogI2lm
IEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAoU2NyZWVuQ2FwdHVyZUtpdENh
cHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gY3JlYXRlKFNj
cmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cyks
IGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBh
Z2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpAQCAtMTE0LDEyICsxMTQsMTIgQEAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICByZXR1cm4geyB9OwogfQogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVl
UmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNy
ZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikK
IHsKICAgICBpZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVyLmVycm9yKCkpIH07CiAKLSAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3Zl
KGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBk
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNh
cHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7
CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5h
cHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0x
MjksOCArMTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXIKICAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYg
Y2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNo
U2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZvckRldmljZShjYXB0
dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUoaGFzaFNhbHQpKQorRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGb3JE
ZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2NhcHR1
cmVyKFdURk1vdmUoY2FwdHVyZXIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCks
IHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXggMDQ1YzhjYzQzNWZjYjI5YzVk
ZWQwYjJmMWFlY2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0NzQ5MzRjNWUwNTFhNzVhYjFkZDAzY2M1
NGU3Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAt
MTEyLDE0ICsxMTIsMTQgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50
aWZpZXI7CiAgICAgfTsKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7
Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVS
ZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRl
bnRpZmllcik7CiAKICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCk7CiAgICAgdm9pZCB1cGRhdGVG
cmFtZVNpemUoKTsKIAogcHJpdmF0ZToKLSAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVu
aXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJl
ZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYSgpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1
ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA0ODZiMGU0
NDg2YTNjNjRlM2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2Li43M2VjZDI0MDNiYzBmNDhiZGExOWQ1
MTk5MDE0N2EzNTczYjdlYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBpbml0
aWFsaXplRGVidWdDYXRlZ29yeSgpCiAKIGNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIp
IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBlMTNkNTNiMmIyNGRjZTlkNTAyNmRhMjM3
MjgzM2U0ZTQyMTNiMWUwLi4zMDFmMGVjNDY5MTQyNjkyN2U2NDMwYTcwNzQ4MTBmMzAzN2QxMDlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBw
dWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
UGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpAQCAtNzIsNyArNzIsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3Rvcnkg
ZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNw
bGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZp
ZXIpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRvJiBtYW5hZ2VyID0gR1N0cmVhbWVyRGlzcGxh
eUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICAgICAgcmV0dXJuIG1hbmFn
ZXIuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYg
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFjdG9yeSgpCiB9CiAKIEdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2No
YXIqIHNvdXJjZUZhY3RvcnksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwg
aW50IGZkKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
aGFzaFNhbHQpLCB7IH0pCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlk
ZW9DYXB0dXJlcj4oc291cmNlRmFjdG9yeSwgZGV2aWNlVHlwZSkpCiAgICAgLCBtX2RldmljZVR5
cGUoZGV2aWNlVHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGM3N2RjYTI3YzNhYzdhMmM2MDYyNWEz
MzE2MTIzYzc5OGU5NjQ0ODQuLjVjZjYyN2M5M2E0MmQ3ODExYmQ3MGIxMTU4MGNkYjE3NmQ0YjYx
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHNf
SHVtVm9sdW1lID0gMC4xOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNlRnJlcXVlbmN5ID0g
MzAwMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc19Ob2lzZVZvbHVtZSA9IDAuMDU7CiAKLUNhcHR1
cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFn
ZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmlj
ZUlEKTsKQEAgLTYzLDcgKzYzLDcgQEAgUmVmPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlRm9yTW9ja0F1ZGkKIH0KIAogTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0
cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCkKLSAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
eyB9KQogewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcApp
bmRleCA5Njc3NzFlZjBhYzg0OGE4NTFkOTJkYmUzNTljNWVjMWZkMDkyYzNjLi44ZGI3NjgwZTJi
YTgyZjFjMjkwMmEyM2U2NjU4M2RkYTBiYmM4OWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMyLDcgKzMy
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKQogewogI2lm
bmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC0xNDcsNyArMTQ3
LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrRGlzcGxheUNhcHR1
cmVTb3VyY2VHU3RyZWFtZXI6OnNldHRpbmdzKCkKIH0KIAogTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFs
dGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNl
SUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQogewogICAgIGVuc3Vy
ZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VJT1MuaAppbmRleCA2NjQ4NWUzMmI5NzRiMjZiNmRiNzBlZjMxZjQxNTQ1MGMwYzYzMWZmLi5i
MTA1YjNlMTBjODA5OTk4Y2ExMTU5NTY4MGE0YWU4NjYzN2IzYmJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlSU9TLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGJlZ2luQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKCkgeyBiZWdpbkludGVycnVwdGlvbigp
OyB9CiAgICAgdm9pZCBlbmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oQXVkaW9TZXNzaW9uOjpN
YXlSZXN1bWUpIHsgZW5kSW50ZXJydXB0aW9uKCk7IH0KIAotICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5n
JiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAg
IHZvaWQgYWRkRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXImKSBmaW5hbDsKICAg
ICB2b2lkIHJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyJikgZmluYWw7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5kZXggNjcwNTkyZjM1
MTY3ZjZiMDYxOTk2YjAxNjc0ZWI5YjU0ODQ0M2E1Mi4uYmIzMjlmZTBlMWQ4NTdlZmI2MTcxNzRi
YzQ5OTEzNmJhYzgzZTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1Mu
bW0KQEAgLTExNiwxMyArMTE2LDEzIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnlJT1M6OnJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyCiAgICAgICAg
IEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRpc2FibGVB
bGxEZXZpY2VzUXVlcnkoKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIC8vIFdl
IGVuYWJsZSBleGhhdXN0aXZlIHF1ZXJ5IHRvIGJlIHN1cmUgdG8gc3RhcnQgY2FwdHVyZSB3aXRo
IHRoZSByaWdodCBkZXZpY2UuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdG9wIHRoZSBhdXhp
bGlhcnkgc2Vzc2lvbiBhZnRlciBzdGFydGluZyBjYXB0dXJlLgogICAgIGlmIChtX29ic2VydmVy
cy5jb21wdXRlc0VtcHR5KCkpCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1h
bmFnZXI6OnNpbmdsZXRvbigpLmVuYWJsZUFsbERldmljZXNRdWVyeSgpOwotICAgIHJldHVybiBD
b3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0dXJuIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggOGM0MTM4ZTczMzhjZWZjNjkxNzM0
MjA3NDQzYWE0OWU1NjJmOWZlZi4uNGJhZmI1ODkyOGFjZTAxZjNiYWU1OTNlODA5Y2I0YmI4ZWIx
YmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xh
c3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKIAogY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2Ug
OiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25O
b3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJp
bmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdl
SWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFj
dG9yeSYgZmFjdG9yeSgpOwogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNh
cHR1cmVEZXZpY2VTdXNwZW5kZWREaWRDaGFuZ2UoKTsKIAogcHJpdmF0ZToKLSAgICBBVlZpZGVv
Q2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFz
aFNhbHQpOworICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIFN0cmlu
ZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwg
fkFWVmlkZW9DYXB0dXJlU291cmNlKCk7CiAKICAgICB2b2lkIGNsZWFyU2Vzc2lvbigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDZlNzQzZTVhOTQ1MTkzMDc3ZjJlNjBlMmUx
YmQzNGNhY2ZmYjM1OTIuLjVhMGVhNzc4ZDUyOGQzYjE0YjlmN2Y4M2Y4NzcwNGI4Nzg0NWM3M2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1
YmxpYzoKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlRm9ybWF0PiBmb3JtYXQ7CiB9Owog
Ci1DYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIEFWQ2Fw
dHVyZURldmljZSAqZGV2aWNlID0gW1BBTDo6Z2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBkZXZp
Y2VXaXRoVW5pcXVlSUQ6aWRdOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyAi
Tm8gQVZWaWRlb0NhcHR1cmVTb3VyY2UgZGV2aWNlIl9zIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGlkKSwg
V1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCks
IHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8g
cmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAg
IGlmIChyZXN1bHQpCkBAIC0xMjQsOCArMTI0LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQK
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3Jl
YXRlKFdURk1vdmUoc291cmNlKSkpOwogfQogCi1BVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiBkZXZpY2UsIFN0cmluZyYmIGlkLCBTdHJp
bmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKGRldmljZS5s
b2NhbGl6ZWROYW1lLCBXVEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCkpCitBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiBkZXZpY2Us
IFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UubG9jYWxpemVk
TmFtZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAg
ICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VP
YnNlcnZlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2RldmljZShk
ZXZpY2UpCiAgICAgLCBtX3ZlcmlmeUNhcHR1cmluZ1RpbWVyKCp0aGlzLCAmQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnZlcmlmeUlzQ2FwdHVyaW5nKQpAQCAtMTM3LDkgKzEzNyw2IEBAIEFWVmlkZW9D
YXB0dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKQogewogICAgIEFMV0FZU19MT0df
SUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiAgICAgW21fb2Jq
Y09ic2VydmVyIGRpc2Nvbm5lY3RdOwogICAgIFttX2RldmljZSByZW1vdmVPYnNlcnZlcjptX29i
amNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAic3VzcGVuZGVkIl07CiAKQEAgLTQ2OSwxMCAr
NDY2LDYgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbigp
CiB7CiAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUik7CiAKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwot
I2VuZGlmCi0KICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICBSZXRhaW5QdHI8QVZDYXB0
dXJlRGV2aWNlSW5wdXQ+IHZpZGVvSW4gPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZDYXB0dXJlRGV2
aWNlSW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoRGV2aWNlOmRldmljZSgpIGVycm9yOiZlcnJvcl0p
OwogICAgIGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmlu
ZGV4IDlhMGIyOWVkYjFkMTc4MTU2NTQ1MGY1OGRlOTA5ZjY4Yzg3M2VhMDMuLmQyNGQ0YjMxZmM1
NDIxMGVkOGQ1ODYwYWU2Nzc4MzZjYzU0MGE5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAKQEAgLTY2OCwyNyArNjY4LDI3IEBAIHN0YXRpYyBDYXB0dXJlU291cmNlT3JF
cnJvciBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShSZWY8Q29yZUF1ZGlvQ2FwdHVy
CiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmlj
ZUlEKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5vIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UgZGV2aWNlIl9zIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2
aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBkZXZpY2UtPmRldmljZUlEKCkpKTsK
KyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpLCBkZXZpY2UtPmRldmljZUlEKCksIG51bGxwdHIsIHBhZ2VJZGVudGlmaWVyKSk7CiAj
ZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGF1dG8gZGV2aWNlID0gQVZBdWRpb1Nlc3Np
b25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYXVkaW9TZXNzaW9uRGV2aWNlV2l0
aFVJRChXVEZNb3ZlKGRldmljZUlEKSk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVy
biB7ICJObyBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2UgZGV2aWNlIl9zIH07CiAKLSAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCAwKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgMCwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIpKTsKICNlbmRpZgogICAg
IHJldHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSks
IGNvbnN0cmFpbnRzKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFi
ZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgb3ZlcnJpZGVVbml0KQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgb3ZlcnJpZGVVbml0LCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShsYWJlbCksIFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVVbml0KSk7CisgICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCwgJm92ZXJyaWRl
VW5pdCwgcGFnZUlkZW50aWZpZXIpKTsKICAgICByZXR1cm4gaW5pdGlhbGl6ZUNvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UoV1RGTW92ZShzb3VyY2UpLCBjb25zdHJhaW50cyk7CiB9CiAKQEAgLTc4MCw4
ICs3ODAsOCBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5Ojp3aGVuQXVkaW9D
YXB0dXJlVW5pdElzTm90UnVubmluZyhGdW5jdGlvbjx2bwogICAgIHJldHVybiBDb3JlQXVkaW9T
aGFyZWRVbml0Ojp1bml0KCkud2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoV1RGTW92
ZShjYWxsYmFjaykpOwogfQogCi1Db3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0
dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFz
aFNhbHQsIHVpbnQzMl90IGNhcHR1cmVEZXZpY2VJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCogb3Zl
cnJpZGVVbml0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3Zl
KGhhc2hTYWx0KSkKK0NvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwg
dWludDMyX3QgY2FwdHVyZURldmljZUlELCBCYXNlQXVkaW9TaGFyZWRVbml0KiBvdmVycmlkZVVu
aXQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCksIFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAg
LCBtX2NhcHR1cmVEZXZpY2VJRChjYXB0dXJlRGV2aWNlSUQpCiAgICAgLCBtX292ZXJyaWRlVW5p
dChvdmVycmlkZVVuaXQpCiB7CkBAIC04MjEsMTkgKzgyMSwxMSBAQCB2b2lkIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmluaXRpYWxpemVUb1N0YXJ0UHJvZHVjaW5nRGF0YSgpCiAKIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6On5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCkKIHsKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0
b24oKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAgIHVuaXQoKS5yZW1v
dmVDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnN0YXJ0
UHJvZHVjaW5nRGF0YSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuc2V0QWN0aXZlU291cmNlKCp0aGlz
KTsKLSNlbmRpZgotCiAgICAgaW5pdGlhbGl6ZVRvU3RhcnRQcm9kdWNpbmdEYXRhKCk7CiAgICAg
dW5pdCgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmgKaW5kZXggMzMwMzZlOTk2ZjY3M2U1MjcwMjM4NWI0MWUwYTkzZjE4MDM1MWY5OS4uMGVj
NjcyYmY5ZjFjMzYwNTYyNDk3MGMyNDFmNmEwYTE1OTM1MmQ5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCkBAIC01MSwxNSArNTEsMTUgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM7CiAKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKTsKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgQmFzZUF1ZGlvU2hhcmVkVW5pdCYg
b3ZlcnJpZGVVbml0KTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyosIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgQmFzZUF1ZGlvU2hhcmVkVW5pdCYg
b3ZlcnJpZGVVbml0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAgQ01DbG9ja1JlZiB0aW1l
YmFzZUNsb2NrKCk7CiAKIHByb3RlY3RlZDoKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQz
Ml90IHBlcnNpc3RlbnRJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCogPSBudWxscHRyKTsKKyAgICBD
b3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwg
U3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCwgQmFzZUF1ZGlvU2hhcmVk
VW5pdCosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5Db3JlQXVkaW9DYXB0dXJlU291
cmNlKCk7CiAgICAgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgdW5pdCgpOwogICAgIGNvbnN0IEJhc2VB
dWRpb1NoYXJlZFVuaXQmIHVuaXQoKSBjb25zdDsKQEAgLTEyOSwxNCArMTI5LDE0IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5u
aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6Ci0gICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopIG92ZXJyaWRlOworICAgIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgb3ZlcnJp
ZGU7CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KSBmaW5hbDsKICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2Vz
KCkgY29uc3QgZmluYWw7CiB9OwogCi1pbmxpbmUgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK2lubGluZSBDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAg
ICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgIHJl
dHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0
Lm1tCmluZGV4IDBkZDNkNzFjYWU3YTYzYjYzNzIwOGYyODM4MjIwZTY1OWU0MjEzY2UuLjM0MjI3
NDIzZDg5YjBhMDQ5ZGU2OWFjZTM1ZjhmMzhmM2QzMGMzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFy
ZWRVbml0Lm1tCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBs
aXR1ZGUsIGZsb2F0IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9
CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9y
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBkZXZp
Y2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0
ZW50SUQoZGV2aWNlSUQpOwogICAgIEFTU0VSVChkZXZpY2UpOwpAQCAtOTEsNyArOTEsNyBAQCBD
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAiTm8gbW9jayBtaWNyb3Bo
b25lIGRldmljZSJfcyB9OwogCiAgICAgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCku
c2V0RGV2aWNlSUQoZGV2aWNlSUQpOwotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGVGb3JUZXN0aW5nKFdURk1vdmUoZGV2aWNlSUQpLCAgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0
b24oKSk7CisgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3Rp
bmcoV1RGTW92ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLCBwYWdlSWRlbnRp
Zmllcik7CiB9CiAKIE1vY2tBdWRpb1NoYXJlZFVuaXQmIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNp
bmdsZXRvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCmluZGV4IDk1
Y2YzNWNkNGViMTMxOGQ4NjgzMjczYTVkMDk2YzczNjQ0NjA4YjAuLjQ4Mjk1NzlkMmZhMTY1M2Nl
YzAwMTI3YzAzZjI0Y2EzMDk3NmNkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5oCkBAIC00NywxMyArNDcsMTMgQEAgY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDsKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBzdGF0aWMgUmVm
PE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlk
ZW50aWZpZXIpOwogCiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKCkgPSBkZWZhdWx0
OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTsK
LSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
UGFnZUlkZW50aWZpZXIpOwogCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0OwogICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggZmQxOTRlNjE5YTQ0Yjg4MTFkY2IxN2Uw
MDQ2NzFmNDQ1MzVlN2E5Ny4uOWUyNWY2ZDJkNDMxM2Y5MGRlOWMwZmIxZDYwZGQ4OGIwOTc4NWQ2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtNTIsNyAr
NTIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlE
KTsKQEAgLTYxLDcgKzYxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0
dXJuIHsgIk5vIG1vY2sgY2FtZXJhIGRldmljZSJfcyB9OwogI2VuZGlmCiAKLSAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZp
ZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBz
b3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgICAgIHJldHVy
biBXVEZNb3ZlKGVycm9yLT5tZXNzYWdlKTsKQEAgLTcwLDEzICs3MCwxMyBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLVJlZjxNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tE
aXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KQorUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
cGFnZUlkZW50aWZpZXIpKTsKIH0KIAotTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikK
ICAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZSBSZW5kZXIgUXVldWUiLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKSkKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRleCBm
MzY3ZGExYmQ1ODRmZTQ1OWRhMmI3NWYyMTUzZDNhZGI1OWY5NjVmLi4yZDhmODRkNGE3MzBlZjAx
ZDkwN2ZhNTk0ZjEyMjRkYmI2ZDhiOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuY3BwCkBAIC00NSwxMCArNDUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5TWFjIGZpbmFsIDogcHVibGljIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5h
bAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6Q2FtZXJhKTsKLSAgICAgICAgcmV0dXJuIEFWVmlkZW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC01
Nyw5ICs1Nyw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIERpc3BsYXlDYXB0dXJlU291cmNlRmFjdG9y
eU1hYyBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAg
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBEaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRp
Zmllcik7CiAgICAgfQogcHJpdmF0ZToKICAgICBEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3Bs
YXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIERpc3BsYXlDYXB0dXJlTWFuYWdlckNv
Y29hOjpzaW5nbGV0b24oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBkMDg5NGQ1ZDRmZTgyNWY4
YjA2ZDZjOTI4YWFmMDk4NjM3N2NjNGIyLi45ZTg4YWIxZTU5ZTdhNzJiNzhjNzU1ZDgyNDc4YmFi
Zjk5NjRjZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDUsNyArNDUsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkp
ICYmICFVU0UoR1NUUkVBTUVSKQotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVH
CiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rl
dmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNjIsOCArNjIsOCBAQCBDYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJgogfQogI2VuZGlmCiAKLU1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVk
aWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSks
IFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAg
ICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UgUmVuZGVyIFF1ZXVlIikpCiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhp
cywgJk1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp0aWNrKQogewpAQCAtNzcsOSArNzcsNiBAQCBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbQogCiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6fk1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlKCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3MoKQpA
QCAtMTM2LDcgKzEzMyw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdz
RGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGltZU1lZGlhU291cmNlU2V0CiB2b2lkIE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CiAgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRp
b0NoYW5nZWQoKTsKICAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaAppbmRleCBmMGRhZGY3MWQyZDAzNTM1YTY4MmU1MGM3OWI5NDI0MmQw
ODY4ZmY4Li43YTBmNGQxNWI5NTNmMGEwOGU4MWZjYzQ5NWRmNWUzODJmOWE3ZTA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oCkBAIC00MiwxMyArNDIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfk1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENoYW5uZWxDb3Vu
dCh1bnNpZ25lZCk7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAg
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lk
IHJlbmRlcihTZWNvbmRzKSA9IDA7CiAgICAgdm9pZCBzZXR0aW5nc0RpZENoYW5nZShPcHRpb25T
ZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDA5MmQyZmU2MTE5MzQ4Zjk4NjVhODhmYjI3OTFlM2Ey
ZDcxNGE0MDEuLjZkMTJjNmJmMDc4ZGEyZjU0ZWY0Njc1NjdhMGZkMzU1YTA2OWQxNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0xMDEsMTMgKzEwMSwxMyBAQCBzdGF0aWMgaW5s
aW5lIFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKIAogY2xhc3MgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFZpZGVvQ2FwdHVyZUZhY3Rvcnkg
ewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAg
QVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
KTsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURl
dmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhLCBk
ZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBm
aW5kIG1vY2sgY2FtZXJhIGRldmljZSB3aXRoIGdpdmVuIHBlcnNpc3RlbnRJRCJfcyB9OwogCi0g
ICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5n
IHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oTUFDKQogY2xhc3MgTW9ja0Rpc3BsYXlDYXB0dXJlciBmaW5hbCA6
IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJlciB7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJik7Cisg
ICAgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiwgUGFnZUlkZW50aWZp
ZXIpOwogCiBwcml2YXRlOgogICAgIGJvb2wgc3RhcnQoKSBmaW5hbDsKQEAgLTEzNCw4ICsxMzQs
OCBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdz
OwogfTsKIAotTW9ja0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UpCi0gICAgOiBtX3NvdXJjZShNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgfSkpCitN
b2NrRGlzcGxheUNhcHR1cmVyOjpNb2NrRGlzcGxheUNhcHR1cmVyKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBtX3NvdXJj
ZShNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJl
cihTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVs
KCkgfSwgU3RyaW5nIHsgfSwgcGFnZUlkZW50aWZpZXIpKQogewogfQogCkBAIC0xNzcsNyArMTc3
LDcgQEAgSW50U2l6ZSBNb2NrRGlzcGxheUNhcHR1cmVyOjppbnRyaW5zaWNTaXplKCkgY29uc3QK
IAogY2xhc3MgTW9ja1JlYWx0aW1lRGlzcGxheVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgRGlzcGxh
eUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZp
bmFsCiAgICAgewogICAgICAgICBpZiAoIU1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpj
YXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2UudHlwZSgpLCBkZXZpY2UucGVyc2lz
dGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgZGlz
cGxheSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKQEAgLTE4NiwxMSArMTg2
LDExIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
Y3JlZW46CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93Ogog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hOjpjcmVhdGUoVW5pcXVlUmVmPERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkNhcHR1
cmVyPihtYWtlVW5pcXVlUmVmPE1vY2tEaXNwbGF5Q2FwdHVyZXI+KGRldmljZSkpLCBkZXZpY2Us
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihk
ZXZpY2UsIHBhZ2VJZGVudGlmaWVyKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZWxpZiBVU0UoR1NUUkVBTUVSKQogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tEaXNwbGF5Q2FwdHVyZVNvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlKGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICNlbHNlCi0gICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBk
ZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVu
dGlmaWVyKTsKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKQEAgLTIxMSwyMCArMjExLDE1IEBAIHBy
aXZhdGU6CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1
YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
IGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwogICAgICAgICBpZiAoIU1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQog
ICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgbWljcm9waG9uZSBkZXZp
Y2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKIAotICAgICAgICByZXR1cm4gTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0K
IHByaXZhdGU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldEFjdGl2ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9Ci0g
ICAgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZp
bmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0
aXZlU291cmNlKHNvdXJjZSk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlKiBhY3RpdmVTb3Vy
Y2UoKSBmaW5hbCB7IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xl
dG9uKCkuYWN0aXZlU291cmNlKCk7IH0KLSNlbmRpZgogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2Vy
JiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KTsgfQogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c3BlYWtl
ckRldmljZXMoKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggNjBjNWE4Y2Q2ZDUwZTkwMGU0
YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZC4uM2NmNzQ2MGM4MGUzYmUxZDViYTNmMGNlZDdjMTliMjVk
ZjI5YWJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAm
JiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAj
aWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTU5LDcgKzU5
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1vY2sg
Y2FtZXJhIGRldmljZSJfcyB9OwogI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3Ry
YWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAg
IHJldHVybiB7IH07CiAKQEAgLTczLDggKzczLDggQEAgc3RhdGljIEhhc2hTZXQ8TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UqPiYgYWxsTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgIHJldHVy
biB2aWRlb1NvdXJjZXM7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFdURk1v
dmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBt
X2VtaXRGcmFtZVRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJk1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpnZW5lcmF0ZUZyYW1lKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CkBAIC0yMzksNyArMjM5LDYgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRD
YXB0dXJlVGltZXIoKQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydFByb2R1
Y2luZ0RhdGEoKQogewotICAgIHByZXBhcmVUb1Byb2R1Y2VEYXRhKCk7CiAgICAgc3RhcnRDYXB0
dXJlVGltZXIoKTsKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCmluZGV4IDkzNWM2ZGRlY2I4ZDQ1OGM5MTY2ZjViMjY3YWM1YzQ5NGZmMzQzYjUu
LmZjNWZjN2FhMWNiNzZmYTZkOTczOTA1ODY1YmZhZmVjZWRlMzZiYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogCiBjbGFzcyBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSwgcHJp
dmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBz
dGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBh
Z2VJZGVudGlmaWVyKTsKICAgICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAogICAgIHN0
YXRpYyB2b2lkIHNldElzSW50ZXJydXB0ZWQoYm9vbCk7CkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIoKSBjb25zdDsKIAogcHJvdGVjdGVkOgot
ICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRl
bnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGFkMDc1ODIxNzUxMDEzNTdlMDU1YjEx
NDI2ODg5MmZhN2M3M2M5NDYuLjg1YTQ0NzA3NGZiNjdhODY4OWRkZDViOWMzMTBkYTAzN2M3NjM5
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0yODksNyArMjg5LDY2IEBAIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KCkKICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwog
fQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgbWVkaWFDb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VH
UFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWljcm9waG9uZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBtZWRpYUNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHNvdXJjZU9yRXJy
b3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2Fs
dCksIG1lZGlhQ29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZU9y
RXJyb3IpCisgICAgICAgIHJldHVybiBzb3VyY2VPckVycm9yOworCisgICAgYXV0byYgcGVyUGFn
ZVNvdXJjZXMgPSBtX3BhZ2VTb3VyY2VzLmVuc3VyZShwYWdlSWRlbnRpZmllciwgW10geyByZXR1
cm4gUGFnZVNvdXJjZXMgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICAvLyBGSVhNRTog
U3VwcG9ydCBtdWx0aXBsZSBtaWNyb3Bob25lcyBzaW11bHRhbmVvdXNseS4KKyAgICBpZiAocGVy
UGFnZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZSkgeworICAgICAgICBhdXRvJiBtaWNyb3Bob25l
U291cmNlID0gKnBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2U7CisgICAgICAgIGlmICht
aWNyb3Bob25lU291cmNlLnBlcnNpc3RlbnRJRCgpICE9IGRldmljZS5wZXJzaXN0ZW50SWQoKSAm
JiAhbWljcm9waG9uZVNvdXJjZS5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgICAgICAvLyBX
ZSBjYW5ub3QgcmV1c2UgdGhlIHNvdXJjZSBzbyBmYWlsIGl0LgorICAgICAgICAgICAgbWljcm9w
aG9uZVNvdXJjZS5jYXB0dXJlRmFpbGVkKCk7CisgICAgICAgICAgICBtaWNyb3Bob25lU291cmNl
LnN0b3AoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gc291cmNlID0gc291cmNlT3JF
cnJvci5zb3VyY2UoKTsKKyAgICBwZXJQYWdlU291cmNlcy5taWNyb3Bob25lU291cmNlID0gV2Vh
a1B0ciB7IHNvdXJjZS5nZXQoKSB9OworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK0NhcHR1cmVT
b3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZUNhbWVyYVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBtZWRpYUNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKK3sKKyAgICBhdXRvJiBwZXJQYWdlU291cmNlcyA9IG1fcGFnZVNvdXJjZXMu
ZW5zdXJlKHBhZ2VJZGVudGlmaWVyLCBbXSB7IHJldHVybiBQYWdlU291cmNlcyB7IH07IH0pLml0
ZXJhdG9yLT52YWx1ZTsKKyAgICBpZiAocGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlKSB7Cisg
ICAgICAgIGF1dG8mIGNhbWVyYVNvdXJjZSA9ICpwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2U7
CisgICAgICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSBtdWx0aXBsZSBjb25jdXJyZW50IGNhbWVyYXMu
CisgICAgICAgIGlmIChwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UtPnBlcnNpc3RlbnRJRCgp
ID09IGRldmljZS5wZXJzaXN0ZW50SWQoKSAmJiAhY2FtZXJhU291cmNlLmNhcHR1cmVEaWRGYWls
KCkpIHsKKyAgICAgICAgICAgIC8vIFdlIGNhbiByZXVzZSB0aGUgc291cmNlLCBsZXQncyBkbyBp
dC4KKyAgICAgICAgICAgIGF1dG8gc291cmNlID0gY2FtZXJhU291cmNlLmNsb25lKCk7CisgICAg
ICAgICAgICBpZiAobWVkaWFDb25zdHJhaW50cykgeworICAgICAgICAgICAgICAgIGF1dG8gZXJy
b3IgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKm1lZGlhQ29uc3RyYWludHMpOworICAgICAg
ICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUo
ZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHNvdXJj
ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVh
dGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWVkaWFDb25z
dHJhaW50cywgcGFnZUlkZW50aWZpZXIpOworICAgIGlmICghc291cmNlT3JFcnJvcikKKyAgICAg
ICAgcmV0dXJuIHNvdXJjZU9yRXJyb3I7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IGlmIChwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UpIHsKKyAgICAgICAgLy8gV2UgY2Fubm90
IHJldXNlIHRoZSBzb3VyY2Ugc28gZmFpbCBpdC4KKyAgICAgICAgcGVyUGFnZVNvdXJjZXMuY2Ft
ZXJhU291cmNlLT5jYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHBlclBhZ2VTb3VyY2VzLmNhbWVy
YVNvdXJjZS0+c3RvcCgpOworICAgIH0KKyNlbmRpZgorCisgICAgYXV0byBzb3VyY2UgPSBzb3Vy
Y2VPckVycm9yLnNvdXJjZSgpOworICAgIHNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3Jp
ZW50YXRpb25Ob3RpZmllcik7CisgICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlID0gV2Vh
a1B0ciB7IHNvdXJjZS5nZXQoKSB9OworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3ZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1v
dGVGcmFtZXMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBDcmVhdGVTb3VyY2VDYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uUHJveHkt
PndpbGxTdGFydENhcHR1cmUoZGV2aWNlLnR5cGUoKSkpCiAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSwgIlJlcXVlc3QgaXMgbm90IGFsbG93ZWQiX3MsIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyB7IH0sIHsgfSwgeyB9LCB7IH0sIDApOwpAQCAtMjk5LDE2ICszNTgs
MTQgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBz
b3VyY2VPckVycm9yOwogICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgIGNhc2UgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgc291
cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICBzb3VyY2VPckVycm9yID0gY3JlYXRl
TWljcm9waG9uZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOwotICAgICAgICBpZiAoc291cmNlT3JFcnJvcikKLSAgICAgICAgICAgIHNvdXJj
ZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25O
b3RpZmllcik7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVDYW1lcmFTb3VyY2UoZGV2
aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpTY3JlZW46CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpX
aW5kb3c6Ci0gICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAg
IHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5k
aXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2Us
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5
c3RlbUF1ZGlvOgogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
U3BlYWtlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA2NThiNWI3ZDE4ODZjNDgzMDZm
MTgwM2EzODgwNGI5NTNkODU0ZjU0Li41YmVjMTA3NWM0NGYyYTYwMWVmNTg1YzU4NDc1YmI3NTdm
MjJmNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKIAogICAgIHVzaW5nIENyZWF0ZVNvdXJjZUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50
cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0
RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47Ci0gICAgdm9pZCBjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmlj
ZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hv
dWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7Cisg
ICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllcik7CkBAIC05NCwxMSArOTQsMjEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RUb0Vu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXRT
aG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pOwogCisgICAgCisgICAgV2ViQ29yZTo6Q2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlTWljcm9waG9uZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQ2FtZXJhU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyos
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKwogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAg
IGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U291cmNlUHJveHk+PiBtX3By
b3hpZXM7CiAgICAgVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4gbV9jb25uZWN0aW9uUHJveHk7
CiAgICAgV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXIg
eyAwIH07CisKKyAgICBzdHJ1Y3QgUGFnZVNvdXJjZXMgeworICAgICAgICBXZWFrUHRyPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1pY3JvcGhvbmVTb3VyY2U7CisgICAgICAgIFdlYWtQ
dHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FtZXJhU291cmNlOworICAgIH07Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUGFnZVNvdXJjZXM+IG1fcGFnZVNv
dXJjZXM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA3YmNhNDUzZTczNzUzNzY5YTdmYzU4ZTJlNzA3MzJiODU3ZDliODI5Li5lZDdmNGRh
YjE2YmVhNzliNDIxZDk2NjBlZTFlNDljM2Y2OTAxMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5v
dFJlZkNvdW50ZWQgewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vz
c1JlbW90ZUZyYW1lcykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50
cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdl
YkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBk
b3VibGUgZnJhbWVSYXRlKSBBc3luYworICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3Ry
dWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNl
R1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMsIFZlY3RvcjxXZWJDb3JlOjpW
aWRlb1ByZXNldERhdGE+IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgZG91YmxlIGZy
YW1lUmF0ZSkgQXN5bmMKICAgICBTdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgRW5kKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKaW5kZXggZjVhNjE2NGU4MzFjOTY4OTk1ZTMzMmVmMDI2OWMwYjhjMThj
ZjlmMi4uODhmZGE4NDkxNDYwYjc3NzUwZDdkYTM1MDFiZWEwNWUwZjAzMzA3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zOSwxMyArMzksMTMgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQorUmVmPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwg
bWFuYWdlciwgY2FwdHVyZURldmljZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSwg
cGFnZUlkZW50aWZpZXIpKTsKIH0KIAotU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKLSAgICA6IFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBjYXB0dXJlRGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0pCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKKzogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURl
dmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
eyB9LCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAg
ICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDc4YmZlNWI2NGIyMGRkMDkwMWI5OWFhNzNj
MzVjOTA3MDIxZDliMDYuLjlhZmZmMjgwMzVhMGQwMzI1ZjI2YzBkMmU5YzZkYWRkYWViYTVjMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00Niw5ICs0Niw5
IEBAIGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICAgICAK
LWNsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1Ymxp
YyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiB7CitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW90ZVNv
dXJjZVN0b3BwZWQoKTsKIAogcHJpdmF0ZToKLSAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAog
ICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcAppbmRleCA2OGRjMTE1ZjE2OWYxOWVmODlmNjZmZTVjOGYyNDFjODVi
OTc4ZDcxLi5lM2E3MDRlMWJjMjI2ZWQ0ODFhMGQ3NWQxODcwNWZhM2I5YTUyOTJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAt
NTksNyArNTksNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdAogICAgIH0KICNlbmRpZgogCi0g
ICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6Q3JlYXRlU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpD
cmVhdGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSwgc291cmNlLnBhZ2VJZGVudGlm
aWVyKCkpKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCAyNTlhZTczZWNiOTIxMzVmMDlhOTY1MDFiMzNlZDJhNDFkMzUzMzE5Li5jOWFm
NWM2Zjk2Y2I3MWRjODIyY2UwMzkwYmE3YzQwZDQ0MmFjZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwOTk2LDEyICsxMDk5NiwxMiBAQCBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFT
b3VyY2VGb3JTcGVlY2hSZQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAi
Tm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKIAogICAgIGlmIChwcmVmZXJl
bmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlKSB9OworICAgICAg
ICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1f
d2ViUGFnZUlEKSB9OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJ
RCkgfTsKICNlbHNlCi0gICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7CisgICAgcmV0dXJuIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgq
Y2FwdHVyZURldmljZSwgbV93ZWJQYWdlSUQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IGI4MWRi
YjIzZWZmNDUzM2EwNzI1NTc4OGEyNmVlYTdjMzNlMDVhZTMuLjlmMDlmNjIyNjI4MjY4M2MyNjBi
NTM0NTE2Zjk4MDhkYTRiN2M0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMjA4LDkgKzIwOCw5IEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMoKQogCiAjZW5kaWYKIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHJlc3Vs
dCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNv
dXJjZShkZXZpY2UpOworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSwgcGFnZUlkZW50aWZpZXIp
OwogICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAi
RmFpbGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3VyY2UiKTsKICAgICAgICAgc2VuZChNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVt
b3RlQ2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCmluZGV4IDE4ODQ3NzFhODdiN2Y2Njk5
MTkwYTVkZTU2OTExNmNjNDdmODYxYjMuLjYyMzQ0OGZiYTlkZDdmODVhYjczMzU5MDZkNDhiYTk2
OTQ4ZjMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNp
b24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgotICAgIHZvaWQg
Y3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkZWxldGVTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RhcnQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4KaW5kZXggMjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBkNjYxZC4uYWI1ZTk4
ZTQ5NzE5YWFkZWQ1ZTkxYmJkMzczODA3ZTEwZDAxNzNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2Vz
IC0+IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291
bnRlZCB7Ci0gICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIENy
ZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCiAgICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CiAgICAgU3RvcChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmNwcAppbmRleCAyY2U5NTRmNDhiZmZlMWY5NDEwNTU1YzVlNDljNjU2YWVkOTdlMTM4Li44
NzI5NjkxNjY3MjExOWYxYmJkMzkyOGM2MDE4MzJlMzZjZTM0ZjkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCkBAIC00MywyOSArNDMsMjYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50
cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJh
dGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2Fs
dCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7
CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5y
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsK
ICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJj
ZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
IG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1l
TWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFt
ZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkK
K1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRl
bnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykK
ICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewogICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgp
CiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0
KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQs
IGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGll
cywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3Nh
Z2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBh
dXRvKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRp
ZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg3
LDEwICs4NCw2IEBAIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6On5SZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlKCkKICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICBj
b25uZWN0aW9uLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIH0KLQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQog
CiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTE5LDkgKzExMiwx
MCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5h
Z2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmICht
X3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVu
dGlmaWVyKCkpOworICAgICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIo
KS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQpAQCAtMTQ5LDE0ICsxNDMsNiBAQCB2
b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xv
c2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0VuZGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKHRoaXMgIT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2
ZVNvdXJjZSgpKSB7Ci0gICAgICAgIC8vIFRyYWNrIGlzIG11dGVkIGFuZCBoYXMgbm8gY2hhbmNl
IG9mIGJlaW5nIHVubXV0ZWQsIGxldCdzIGVuZCBpdC4KLSAgICAgICAgY2FwdHVyZUZhaWxlZCgp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX21hbmFnZXIucmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKGNvbm5lY3Rp
b24oKSk7CiAgICAgbV9wcm94eS5yZXNldFJlYWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFT
b3VyY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4IGEzYzQxZGMwNGFhY2U1ZGQ0ZWE3Mzlh
NjBmMmE1MzBlNWUzZDA3NWUuLjg4YWFiYTA4YjU2NWJlZTlhZTRmYTRhNzNhNzg4ODY1OTA4NzFl
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2UKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNy
ZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKCk7CiAKICAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTcxLDcgKzcxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0
ZWRDaGFuZ2UodmFsdWUpOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7
CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZS5jcHAKaW5kZXggYzU1MzM1MzNhYzU1YjFmNWMyYWRhZWUxODg5NmYzNjE0Zjdj
ZWUzNS4uYjQ5MGE3YTU3ZjE2NDczYjc0NWNkNmJmMjA2ZTMxYzEwNWJlOTEyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZS5jcHAKQEAgLTM4LDE3ICszOCwxNyBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMs
IFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBw
YWdlSWRlbnRpZmllcikpOwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkp
OwogICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3VyY2Uoc291
cmNlLmNvcHlSZWYoKSk7CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwog
ICAgIHJldHVybiBzb3VyY2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6UmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5n
IHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdU
Rk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
YW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikK
ICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewpAQCAtNTcsNyAr
NTcsNyBAQCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbgogCiB2b2lkIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIG1fcHJveHkuY3Jl
YXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdl
LCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0
bykgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2Fs
dCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3Ms
IGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgewogICAgICAgICBpZiAo
IXN1Y2NlZWRlZCkgewogICAgICAgICAgICAgbV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JN
ZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDAsOSArMTAwLDEwIEBAIHZvaWQg
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpo
YXNFbmRlZCgpCiB7Ci0gICAgbV9wcm94eS5oYXNFbmRlZCgpOwotICAgIG1fbWFuYWdlci5yZW1v
dmVTb3VyY2UoaWRlbnRpZmllcigpKTsKLSAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICBpZiAobV9wcm94eS5o
YXNFbmRlZCgpKSB7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigp
KTsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3Zl
U291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCmluZGV4
IDUyZjUzNWIzZDczZDY4OTc3OGI5NWYxOTQ3ZjhlNzJkODI5OGQ2YTEuLjhkODJmYjU5NzQ5ZWE4
NWRjMGJkNDY1YzQ4NWMyNDc5MjAyYzBmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgY2xhc3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlIGZpbmFsIDog
cHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICNlbmRpZgogewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoKTsKIAog
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNjUsNyArNjUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlN
dXRlZENoYW5nZSh2YWx1ZSk7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFz
aFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBSZWFsdGltZU1lZGlh
U291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3Rh
cnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5k
ZXggNGEyOTRkOGM1NDE3MWU2ZTEwMDViM2E0MDY2NTZiMjZjMTU5YzA0ZC4uYmU3NTQ1NTgxOGI1
MzVlNWVmMmQ2Yzg4NTQ2MTc0MDBiM2MwYzk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5jcHAKQEAgLTY4LDkgKzY4LDkgQEAgdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9p
ZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0
LCBDcmVhdGVDYWxsYmFjayYmIGNhbGxiYWNrLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lKQor
dm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNyZWF0ZVJlbW90ZU1lZGlhU291
cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wgc2hvdWxk
VXNlUmVtb3RlRnJhbWUpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBk
ZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFpbnRzLCBzaG91bGRVc2VSZW1vdGVGcmFtZSksIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRl
dmljZUlESGFzaFNhbHQsIG1fY29uc3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lLCBwYWdl
SWRlbnRpZmllciksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHk6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5k
bGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05OSw5ICs5OSwxNCBAQCB2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6ZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25z
dCBTdHJpbmcmCiAgICAgICAgIGNhbGxiYWNrcy50YWtlRmlyc3QoKShSZWFsdGltZU1lZGlhU291
cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyB7IH0sIGVycm9yTWVzc2FnZSB9KTsKIH0KIAot
dm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6Omhhc0VuZGVkKCkKK2Jvb2wgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpoYXNFbmRlZCgpCiB7CisgICAgaWYgKG1faXNF
bmRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9pc0VuZGVkID0gdHJ1ZTsKICAg
ICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OndoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
LmgKaW5kZXggMDNjMWQ3MTIyMjdjZDViNTFhODA0MTk4ZjQ5NTljMjI5OGZkYTM2Mi4uMjA2ZjZm
OTE3OGFjOWI4NGEzNjdmMDI3MDZhMDYzZTQ0ZDc1OGU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuaApAQCAtNTMsMTMgKzUzLDEzIEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3M7IH0KIAogICAgIHVzaW5nIENyZWF0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sLCBTdHJpbmcmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdl
YkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47Ci0g
ICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBDcmVhdGVDYWxs
YmFjayYmLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lID0gZmFsc2UpOworICAgIHZvaWQgY3Jl
YXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7
CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoKTsKICAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKTsKICAgICB2b2lkIGZhaWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3MoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIAotICAgIHZvaWQgaGFzRW5kZWQoKTsKKyAgICBi
b29sIGhhc0VuZGVkKCk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lk
IHN0b3BQcm9kdWNpbmdEYXRhKCk7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpB
cHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKTsKQEAgLTc1LDEyICs3NSwxNCBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsK
ICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwogICAgIGJvb2wgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBtX3BhZ2VJZGVudGlmaWVyOwogCiAgICAgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBtX2Nv
bnN0cmFpbnRzOwogICAgIERlcXVlPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5
Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOwog
ICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyk+IG1fY2FsbGJhY2s7CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOworICAgIGJv
b2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKaW5kZXggZDJkMjRhYmFiOWVjMzRhMGRhMjJlYjY1YThhZDNjYjVmMDA3ZDk3Yy4uODhi
OGVjNzZiYTQ4NzY0N2JlZGZlMjk5ODA4NWJlNzFjNzUzOThkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlLmNwcApAQCAtNDUsMjkgKzQ1LDI1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8UmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50
cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uo
c291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90
ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1v
dmUobmFtZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSkKK1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
YW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShu
YW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5h
Z2VyKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKGRldmljZVR5cGUoKSA9
PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIG1fcHJveHkuY3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRv
JiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNp
emUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1l
ZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9y
TWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJl
c2V0cywgYXV0byBzaXplLCBhdXRvIGZyYW1lUmF0ZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICgh
c3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1l
c3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTkzLDExICs4OSw2IEBAIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6On5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCkKICAgICAgICAg
aWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ0dQ
VVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICBjb25uZWN0aW9uLT5yZW1vdmVDbGll
bnQoKnRoaXMpOwogICAgIH0KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKGRl
dmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKQEAgLTE0Nyw5ICsxMzgsMTAgQEAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkKIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRl
ZCgpCiB7Ci0gICAgbV9wcm94eS5oYXNFbmRlZCgpOwotICAgIG1fbWFuYWdlci5yZW1vdmVTb3Vy
Y2UoaWRlbnRpZmllcigpKTsKLSAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICBpZiAobV9wcm94eS5oYXNFbmRl
ZCgpKSB7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAg
ICAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNl
KGlkZW50aWZpZXIoKSk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNhcHR1cmVTdG9wcGVkKCkKQEAgLTIwNCwxNCArMTk2LDYgQEAgdm9pZCBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3ND
b25uZWN0aW8KICAgICBpZiAoaXNFbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6Q2FtZXJhICYmIHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpKSB7Ci0gICAg
ICAgIC8vIFRyYWNrIGlzIG11dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0ZWQs
IGxldCdzIGVuZCBpdC4KLSAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKGNvbm5lY3Rpb24oKSk7CiAgICAgbV9wcm94
eS5yZXNldFJlYWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCmluZGV4IDMyYThhMTE1NDY0YjBiNjViN2VhZjNiZjBkYjgxN2ZlMWI4ZjlhOTcu
LmZiMzAxYjVhNDMxYjNlZDI3NjNjMmJhMjA0NTMyNDI2OWQ5NDk5YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UuaApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cgogI2VuZGlm
CiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBj
cmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC03MCw3ICs3MCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11
dGVkQ2hhbmdlKHZhbHVlKTsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcAppbmRleCBmNjg3ZDhkOWZiZTAzMDIzN2Y0ZmNhNDA3MzBhMWE0NWJk
NGMwNGMzLi4zY2YyMjc4ZjRlOTMxNTE0YmRjMjZhN2Q3NDlhM2ZhNmM5NjcwMmVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aQogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCi1DYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTIyNSw3ICsyMjUsNyBAQCBDYXB0dXJlU291cmNl
T3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRp
b0NhcHR1cmVTbwogICAgICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1h
bmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwg
V1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwg
Y29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyhib29sIHZhbHVlKQpAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlZpZGVvRmFjdG9yeTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZh
CiAgICAgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gdmFsdWU7CiB9CiAKLUNhcHR1cmVT
b3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVT
b3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgIUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBp
ZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpAQCAtMjQ4LDEwICsyNDgsMTAgQEAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6
Y3JlYXRlVmlkZW9DYXB0dXJlU28KICAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS52aWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5KCkpOwogCiAgICAgYm9vbCBzaG91bGRVc2VJT1N1cmZhY2UgPSAhbV9tYW5hZ2VyLm1f
c2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lczsKLSAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyksIHNob3VsZFVzZUlPU3Vy
ZmFjZSkpOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29u
c3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllciksIHNob3VsZFVzZUlPU3VyZmFjZSkpOwog
fQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxh
eUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRp
c3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgIUVOQUJM
RShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpAQCAt
MjYwLDcgKzI2MCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1CiAgICAgaWYgKG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKICAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS52aWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5KCkpOwogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQp
LCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIp
OwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6c2V0
U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRl
eCA4Y2M1YjRmOTI2OWIyNDRkYjU5OTViN2I3NDQ0YjkxNTk3ZjE2YTgyLi44ZDIyY2QzMDJiNmNl
ODY5MGE5ODg4NDk3ZTMwOTBjMjA1M2E4OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNzQsNyAr
NzQsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KikgZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
JiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1f
bm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAgICAgICAgIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3NwZWFrZXJEZXZpY2VzOyB9CiAKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
dm9pZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wpOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJl
U291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAg
ICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsg
fQogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CkBAIC0xMDAs
NyArMTAwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKGJvb2wpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKikg
ZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3Bs
YXlDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
KSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2Fw
dHVyZURldmljZU1hbmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYg
bV9tYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGRmYTZmOTUzNmE0ZjMxMGY0NDcxODJhMGY2MWJkNmI1YzYwZjRk
M2YuLmQ2N2FlMDU4NTg3ZDY3ZTBhYjljMmQ3YTE2ZjZiMGJmZmExY2JjOWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMi0wMy0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgU2NvcGUgY2FwdHVyZSBzb3VyY2VzIGJ5IHBhZ2UgaWRlbnRpZmllcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzM1OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IHdl
IGFyZSBjYXB0dXJpbmcgd2l0aCBkaWZmZXJlbnQgZGV2aWNlcywgd2UgaGF2ZSBleHBsaWNpdCBm
YWlsdXJlIGZvciBhdWRpbyBjYXB0dXJlLgorICAgICAgICBSZWJhc2UgdGVzdHMgYWNjb3JkaW5n
bHkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1k
ZXZpY2UtaWQtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAzLTAxICBNYXR0ZW8gRmxvcmVzICA8bWF0
dGVvX2Zsb3Jlc0BhcHBsZS5jb20+CiAKICAgICAgICAgWyBpT1MgXSBwb2ludGVyZXZlbnRzL21v
dXNlLyogMTAgcG9pbnRlciBldmVudCB0ZXN0cyBhcmUgY29uc3RhbnQgdGltZW91dHMgb3IgZmFp
bHVyZXMgb24gaU9TLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9k
ZXZpY2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0CmluZGV4IDA0ODNjNzBk
ZGJkN2RlOTFmY2RhMDU2OGQyM2ZjYzBmMWU4ZTkzNjMuLmRhYTY3NGE3Zjk3NzY1YzI0MTNmZTM5
NWMyOGQ1ZjI4MmRmZjM4OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSw1IEBACitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFjayBlbmRlZCBkdWUg
dG8gYSBjYXB0dXJlIGZhaWx1cmUKK0NPTlNPTEUgTUVTU0FHRTogQSBNZWRpYVN0cmVhbVRyYWNr
IGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQogCiBQQVNTICdkZXZpY2VjaGFuZ2UnIGV2
ZW50IGZpcmVkIHdoZW4gZGV2aWNlIGxpc3QgY2hhbmdlcwogUEFTUyAnZGV2aWNlY2hhbmdlJyBl
dmVudHMgZmlyZWQgcXVpY2tseSBhcmUgY29hbGVzY2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1pZC1l
eHBlY3RlZC50eHQKaW5kZXggNTAyNGNlZjY1M2YzNmE0NmI1YWI3ODYzMDE5ODU0MTBkMzIxMDlk
NS4uZDJmYTY2ODdkZjQ1ZWZjYjI4MmY2MTljYmQyNDgzYjgxYTNkODQxYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVk
aWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FH
RTogQSBNZWRpYVN0cmVhbVRyYWNrIGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQorQ09O
U09MRSBNRVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVyZSBm
YWlsdXJlCitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFjayBlbmRlZCBkdWUgdG8g
YSBjYXB0dXJlIGZhaWx1cmUKIAogUEFTUyBEZXZpY2UgSURzIHNob3VsZCBiZSBlbXB0eSBpbml0
aWFsbHkKIFBBU1MgQ29sbGVjdCBkZXZpY2UgSURzCg==
</data>
<flag name="commit-queue"
          id="481030"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453596</attachid>
            <date>2022-03-02 06:09:01 -0800</date>
            <delta_ts>2022-03-04 03:05:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237359-20220302150859.patch</filename>
            <type>text/plain</type>
            <size>139752</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU2NTIyYzYwNDUzMTVj
MWMxM2FhYjkzYTNjN2I2ZmNmZGVhZDgzMy4uZDkxY2RlZmZlMTgwNDA1NzA5MjUxNzg0Y2JhYTc5
MWYxNTkzMmFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVuIGNyZWF0aW5nIGNhcHR1
cmUgc291cmNlcy4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGF0IFdlYktpdCBsYXllciB0byBiZXR0
ZXIgaGFuZGxlIGNyZWF0aW9uIG9mIG11bGl0cGxlIHNvdXJjZXMuCisgICAgICAgIFNpbmNlIHdl
IGFyZSBub3cgc29tZXRpbWVzIGFuc3dlcmluZyB0byBnZXRVc2VyTWVkaWEgYnkgY2xvbmluZyBz
b3VyY2VzIGRpcmVjdGx5LAorICAgICAgICBmaXggYSBidWcgaW4gUmVhbHRpbWVWaWRlb1NvdXJj
ZSB0byB1c2UgdGhlIHByZXNldCBhc3BlY3QgcmF0aW8gdG8gY29tcHV0ZSBtaXNzaW5nIHdpZHRo
IG9yIGhlaWdodC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW06CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVk
aW9TaGFyZWRVbml0Lm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKworMjAyMi0wMy0wMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgUmVuYW1lIE1lZGlhU2FtcGxl
QVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVG
cm9tUGl4ZWxCdWZmZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzM1NAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU3ZjRiYjUwNDA3MmMyMGZhOTllNzZlNDc0MDNk
MGIwNjJhZDQzNDAuLmRmMzc5ODQ1NWVlMDhkYjg0ZWQxMmFmNDRiYTMwMDRiMTRhYjhjZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNDIgQEAKIDIwMjItMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCisgICAgICAgIFNjb3BlIGNhcHR1cmUgc291cmNlcyBieSBwYWdlIGlk
ZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzczNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYXNzIFBhZ2VJZGVudGlmaWVyIHdoZXJlIGFwcHJvcHJpYXRlLgorICAgICAgICBNYWtlIHVz
ZSBvZiBQYWdlSWRlbnRpZmllciBpbiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OgorICAg
ICAgICAtIEZvciBtaWNyb3Bob25lLCBpZiB0aGVyZSBpcyBhIHNvdXJjZSB3aXRoIGEgZGlmZmVy
ZW50IGRldmljZSwKKyAgICAgICAgICBmYWlsIHRoZSBzb3VyY2UgYXMgd2UgYXJlIG5vdCB5ZXQg
c3VwcG9ydGluZyBjb25jdXJyZW50IGNhcHR1cmVzLgorICAgICAgICAtIEZvciBjYW1lcmEsIGlm
IHRoZXJlIGlzIGEgc291cmNlIHdpdGggYSBkaWZmZXJlbnQgZGV2aWNlLAorICAgICAgICAgIGZh
aWwgdGhlIHNvdXJjZSBhcyB3ZSBhcmUgbm90IHlldCBzdXBwb3J0aW5nIGNvbmN1cnJlbnQgY2Fw
dHVyZXMgKG9ubHkgb24gaU9TKS4KKyAgICAgICAgICBPdGhlcndpc2UsIGlmIHRoZXJlIGlzIGEg
bWF0Y2hpbmcgc291cmNlLCBjbG9uZSBpdCBzbyB0aGF0IHdlIHJlZHVjZSB0aGUgb3ZlcmhlYWQK
KyAgICAgICAgICBvZiBjcmVhdGluZyBhIG5ldyBzb3VyY2UgKHNldHRpbmcgdXAgYSBjYW1lcmEg
Y2FuIGJlIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24pLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCisyMDIy
LTAzLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW5h
bWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZSB0byBNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDNjYjRh
NDlkOTg1MTZjOWNiZDUxZGVkY2ZhYzM2YWYyZGZkNWQxNTEuLjkyYzY2Mzg4MDgxZWQ0OTk2NDJm
OTJhODBjZDc1OTZiYjhjNTQzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNSw3ICsxMTM1
LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2Uv
UGFnZUdyb3VwLmgKLSAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJbmxp
bmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJv
bGxlci5oCkBAIC0xMjkyLDYgKzEyOTEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BPRElu
dGVydmFsVHJlZS5oCiAgICAgcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0Zm9y
bS9QYWdlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxhdGZv
cm0vUGFzdGVib2FyZENvbnRleHQuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRh
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLmNwcAppbmRleCA1MDZmMzM3NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4w
ZmFhOGJiNTVhMTk4NWU5ODBmNzM2YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIs
NyArMTQyLDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1D
b25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFp
bnRzLnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1
ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJl
cXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92
ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUo
cHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgq
ZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUo
YXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1
cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsK
IAogICAgIGlmICghZG9jdW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1
cygpKSB7CiAgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9p
ZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1D
b25zdHJhaW50cyYgY29uc3RyYWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8g
cmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJl
YW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFp
bnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAg
IGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVk
aWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0Nv
bnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgp
IH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCmluZGV4IGE0NWQxOWU1NDczOTk1NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQuLmZj
MTc2MTU2ZGQwZmNkMjIxZGZiODI3MjMxODE0MmRhNzBjZjA4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApA
QCAtNDY5LDQ0ICs0NjksMTIgQEAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0
cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBz
dGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJj
ZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2Us
IERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVy
ZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQg
fHwgdHJhY2stPmVuZGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAo
dHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJl
YW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0
byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2
ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3Rp
dmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFn
ZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0Nh
cHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VN
dXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1
cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBh
dXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0
aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFj
dGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBw
YWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVv
Q2FwdHVyZUlzTXV0ZWQpOwotICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFn
ZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0
byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0
dXJlVHJhY2stPmRvY3VtZW50KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVk
KCkpCiAgICAgICAgICAgICBjYXB0dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsK
ICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VN
dXRlZFN0YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDM0OWFkZjZi
NDJjY2IzY2MxZDZjMDdhMmU1NDRjMmJjNTkzYWNhNGIuLmFmYmNlN2E5ZjQ1NmY3ZDUwNzY4Nzgw
OWNiZTE2ZTExYmU0MGUyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAt
NjIsOSArNjIsOSBAQCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQogICAgIHJldHVybiBjYXB0dXJl
RGV2aWNlOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
Y2FwdHVyZURldmljZSkKK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBy
ZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJl
RmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAiU3BlZWNo
SUQiX3MsIHsgfSk7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2Fw
dHVyZURldmljZSwgIlNwZWVjaElEIl9zLCB7IH0sIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2sm
JiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGNhOTAzYjEyYjdmMjIxOTM1ZjVkZmEx
OThkYmIxYThjNGM3OWQzNDkuLmUzMjhkYzNjN2NkMzBmNjk5MzAyN2NiN2Q5ODRjNjYxN2ZiOTZj
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNh
bGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBQ
YWdlSWRlbnRpZmllcik7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTFk
NmI2ZmM2M2FkMjkxZjA3MjhkNTE4OTdlOGI5YzE3OTdjYjMwMS4uZDg1ZjBlNzM4YjYwZTFmMDNl
OWY0NzRhMzcxOGQxZWFmMjBiNDMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIxOTIsNyArMjE5Miw2
IEBAIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAK
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAotcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWE1NzY1ZWY2OGQzMzgx
ZDg3MDY0NWZmM2U3ZmI3NWZiY2Q0NGRlMy4uMzhmYTY4ZTY3MzY2ODFmYTZhZDE3NmUwYWRlMTM5
ODk2YTg0N2NkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTE4Miw2ICsxMTgyLDcgQEAKIAkJNDE4RkNCRTcyNzE1QTI4RjAw
Rjk2RUNBIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJUQ1J0
cENvZGVjQ2FwYWJpbGl0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQxOTBGM0E1MjRBMEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNB
MzI0OUQxNTI4MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZD
RiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAv
KiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLzsgfTsKKwkJNDE5MkJCMTMy
N0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFn
ZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTlBQ0Y5MjFGOTdFN0RBMDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlBQ0Y4RTFG
OTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZE
IC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOUJDMkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRl
LmggKi87IH07CiAJCTQxOUJFNzU5MUJDN0Y0MkIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRpbk5h
bWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlC
RTc1MjFCQzdGM0RCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5oICovOyB9OwpAQCAt
MTM2Myw3ICsxMzY0LDYgQEAKIAkJNDZBNzhCMzQyNzk5QkQ3MTAwMTE1NEZFIC8qIFdvcmtlck9w
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
MUIxRDI2MjZGMThBNEIwMDg4MkRBMiAvKiBXb3JrZXJPcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZBQUFBM0QyNUQzNjMyMDAwQkFG
NDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkFBQUEzQTI1RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9GaWxl
UmVhZGVyQ29jb2EuaCAqLzsgfTsKIAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZl
bnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDZCNjUw
REQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyog
UGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NkI4NTkzQzI2MTY3MjI3MDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNl
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5o
ICovOyB9OwogCQk0NkI5NTE5NTIwN0Q2MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjk1MThB
MjA3RDYzMjgwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2Qjk1MTk2MjA3RDYzM0EwMEE3RDJE
RCAvKiBBYnN0cmFjdEZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkI5NTE4RjIwN0Q2MzJCMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MTAzLDcg
KzYxMDMsNiBAQAogCQkwNzUzODYwMDE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNr
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRUcmFj
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3
ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRB
NUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9QcmVz
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1l
ZGlhVXNhZ2VJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXNh
Z2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIw
MEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTg4NTgsNiArODg1Nyw3IEBACiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1
NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTQyMDM1MDJBNTAwNEJBMjc3
IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTk0NTY5NjIwMzUwMkE2MDA0QkEyNzcgLyog
QXBwbGljYXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtl
ckZldGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJG
ZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTMxMSw3ICs5MzExLDYgQEAK
IAkJNDZBQUFBM0MyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlckNvY29h
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBQ0Q4MTEyNzAxNjU2QTAwRUY4
Q0VEIC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTmF2aWdhdGlvblJlcXVlc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2QjYzRjZCMUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9t
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRDdXN0b20u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0
IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
Z2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjg1OTNBMjYx
NjcyMEMwMDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkI5NTE4QTIwN0Q2MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWJzdHJhY3RET01XaW5kb3cuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZCOTUxOEMyMDdENjMyOTAwQTdEMkREIC8qIFJl
bW90ZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjkwLDcgKzE4Njg5
LDYgQEAKIAkJCQk0QTRGNjU2RDFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oICovLAogCQkJCTRBMEZGQTlGMUFBRjVFQTIwMDYyODAzQiAvKiBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCAqLywKIAkJCQk0QTBGRkFBMDFBQUY1RUEyMDA2Mjgw
M0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oICovLAotCQkJCTA3NTRBNUVCMjE1RUFE
RjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8sCiAJCQkJMDc1
NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8s
CiAJCQkJNDFCODc3NjAyM0RFMTA0MjAwMzYzOEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmggKi8sCiAJCQkJNEE0RjY1NkUxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncy5jcHAgKi8sCkBAIC0yNDI1NSw3ICsyNDI1Myw2IEBACiAJCQkJOTMw
MkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5
RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdBNjc0
QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJCQk0
NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDREVG
REEwRDI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNGQjE5
QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlDN0I1
MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oICovLApAQCAtMzAxMDAsNiArMzAwOTcsNyBAQAog
CQkJCTQxNzhFRjE2MjQxMjVCNkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5jcHAgKi8s
CiAJCQkJNDE3OEVGMTQyNDEyNUI2QzAwMTkzQzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmggKi8s
CiAJCQkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIuaCAq
LywKKwkJCQk0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLywK
IAkJCQkyRUUwMkExRTFGNzMyNDI4MDAwNkFGNzIgLyogUGFzdGVib2FyZC5jcHAgKi8sCiAJCQkJ
NEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQuaCAqLywKIAkJCQlGNDBEQUFF
QjI1RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVib2FyZENvbnRleHQuaCAqLywKQEAgLTM2NTUzLDcg
KzM2NTUxLDcgQEAKIAkJCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QTY3NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDNDFGQUE0NEJDMDAzN0Qx
RTYgLyogUGFnZUhlYXBBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDZCNjUwREQyMjk2MjYy
NzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTkyQkIx
MzI3Q0Y2Mzg2MDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNERUZEQTBFMjcxMjI5QkEwMDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTVDQjA1MjQxRkI1MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJENUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJZGVu
dGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZh
NGQ4YWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVj
dElkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIFBhZ2VJZGVudGlm
aWVyVHlwZSB7IH07Ci11c2luZyBQYWdlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UGFn
ZUlkZW50aWZpZXJUeXBlPjsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGFnZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlm
aWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDRkNWY4ZDI5NzU2M2VlMDI5YzQxM2U5Y2RhNzQ5NGM1ZmE0ZDhh
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlm
aWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIFBhZ2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBQYWdlSWRlbnRpZmllciA9IE9iamVj
dElkZW50aWZpZXI8UGFnZUlkZW50aWZpZXJUeXBlPjsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaAppbmRl
eCBhNGQ0YjUyNWJlODk5YzI5MjE2NDA5YzI4OTQ3NmUxOWY0NmU3NzFkLi5kMDc5NTZmNDlhYWNh
OGI1YzM1MTlhMjk3OGI2OTIwYzg0MWExNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJNZWRpYUNvbnN0
cmFpbnRzLmgiCisjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0zOSw2ICs0MCw3IEBAIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAg
IE1lZGlhQ29uc3RyYWludHMgYXVkaW9Db25zdHJhaW50czsKICAgICBNZWRpYUNvbnN0cmFpbnRz
IHZpZGVvQ29uc3RyYWludHM7CiAgICAgYm9vbCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgeyBm
YWxzZSB9OworICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dApAQCAtNDcsMTUgKzQ5LDIwIEBAIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAgICAg
ICBlbmNvZGVyIDw8IGF1ZGlvQ29uc3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgdmlkZW9D
b25zdHJhaW50czsKICAgICAgICAgZW5jb2RlciA8PCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQ7
CisgICAgICAgIGVuY29kZXIgPDwgcGFnZUlkZW50aWZpZXI7CiAgICAgfQogCiAgICAgdGVtcGxh
dGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhU3RyZWFtUmVxdWVz
dD4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBNZWRpYVN0cmVhbVJl
cXVlc3QgcmVxdWVzdDsKLSAgICAgICAgaWYgKGRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlwZSkg
JiYgZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRl
Y29kZShyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3Qu
aXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkKSkKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Owot
Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVxdWVzdC50eXBlKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3Qu
YXVkaW9Db25zdHJhaW50cykKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVz
dC5pc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNv
ZGUocmVxdWVzdC5wYWdlSWRlbnRpZmllcikpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgICAgIHJldHVybiByZXF1ZXN0OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKaW5kZXggZGUwZjFhN2E0ZTYzNWExMzllNDgyOGI1NDdmZGNmMDY2MTliMzVhYi4u
ZjFjOWU2MDI4MTNhM2JmNmZiMzE0MTc4OGI2NjA0Y2E0M2IwOWI5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKQEAgLTQ4LDggKzQ4LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWFs
dGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogbV9pZEhh
c2hTYWx0KFdURk1vdmUoaGFzaFNhbHQpKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBt
X3BhZ2VJZGVudGlmaWVyKHBhZ2VJZGVudGlmaWVyKQorICAgICwgbV9pZEhhc2hTYWx0KFdURk1v
dmUoaGFzaFNhbHQpKQogICAgICwgbV9wZXJzaXN0ZW50SUQoV1RGTW92ZShkZXZpY2VJRCkpCiAg
ICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5oCmluZGV4IGIyNTkzNzY3OWFiOTI3MGYxOWI2MmZmNDBkNTI1MTE0M2I2OWFiNDQuLmFj
NGZkZTkzNWI3ODA0ZGEyZWRlNTkzMDk1OWM0MmUxMmI5ZjcwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
LmgKQEAgLTY5LDYgKzY5LDcgQEAgc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogCiBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVh
ZDo6TWFpblJ1bkxvb3A+CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHB1YmxpYyBMb2dnZXJI
ZWxwZXIKICNlbmRpZgpAQCAtMjIxLDggKzIyMiwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sKSB7IHJldHVybiBmYWxzZTsgfQogCisg
ICAgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJ
ZGVudGlmaWVyOyB9CisKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZU1lZGlhU291cmNlKFR5cGUs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0geyB9LCBTdHJpbmcmJiBoYXNoU2Fs
dCA9IHsgfSk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0sIFBhZ2VJZGVu
dGlmaWVyID0geyB9KTsKIAogICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248
dm9pZCgpPiYmKTsKIApAQCAtMjczLDYgKzI3Niw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bV9mcmFtZUNvdW50IHsgMCB9OwogI2VuZGlmCiAKKyAgICBQYWdlSWRlbnRpZmllciBtX3BhZ2VJ
ZGVudGlmaWVyOwogICAgIFN0cmluZyBtX2lkSGFzaFNhbHQ7CiAgICAgU3RyaW5nIG1faGFzaGVk
SUQ7CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVudElEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcAppbmRleCA5NDUyNjMyNGJkNDhhYjIyZTE5NDBjMTEyMDhmNTNiMWI5MjFjMzRhLi4w
MDc0ZDE0NDk1ZTljZjEwY2UwNTRiOWVmMDliNDFiNzdkNmI4NmRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2Vy
LCBOZQogCiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGF1ZGlvU291cmNlOwogICAg
IGlmIChhdWRpb0RldmljZSkgewotICAgICAgICBhdXRvIHNvdXJjZSA9IGF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShhdWRpb0RldmljZSksIFN0
cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOworICAgICAgICBh
dXRvIHNvdXJjZSA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoV1RGTW92ZShhdWRpb0RldmljZSksIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1
ZGlvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICBpZiAoIXNv
dXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFr
ZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6ICIsIHNv
dXJjZS5lcnJvck1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04OSw5ICs4OSw5
IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0oUmVm
PGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAgICAgaWYgKHZpZGVvRGV2aWNlKSB7CiAgICAg
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZTsKICAgICAgICAgaWYgKHZpZGVvRGV2aWNl
LnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgICAg
ICBzb3VyY2UgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJnJlcXVlc3QudmlkZW9D
b25zdHJhaW50cyk7CisgICAgICAgICAgICBzb3VyY2UgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCku
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmll
cik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNvdXJjZSA9IGRpc3BsYXlDYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgICAg
ICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNv
dXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZp
ZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogCiAgICAgICAgIGlmICgh
c291cmNlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIHZpZGVvIHNvdXJjZTogIiwg
c291cmNlLmVycm9yTWVzc2FnZSkpKTsKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OmdldERpc3BsYXlNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJl
YW1SZXF1ZXN0JgogICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gZGlzcGxheUNhcHR1cmVGYWN0
b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2Fs
dCB9LCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0byBzb3VyY2VPckVy
cm9yID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2Uo
ZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCBy
ZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291
cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3Qudmlk
ZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgZGlzcGxheURl
dmljZUluZm8uYXBwZW5kKHsgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2Nv
cmUoKSwgZGV2aWNlIH0pOwogCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVz
dCYgcmUKICAgICAgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhh
c2hTYWx0IH0sIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBhdWRpb0Nh
cHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsg
aGFzaFNhbHQgfSwgeyB9LCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgICAgIGlm
IChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHND
b25zdHJhaW50cyhyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkK
ICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVycm9yLmNh
cHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApAQCAtMjM1LDcgKzIzNSw3
IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhj
b25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5lbmFi
bGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0byBz
b3VyY2VPckVycm9yID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRp
Zmllcik7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNh
cHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRz
LCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgdmlkZW9EZXZpY2VJbmZvLmFw
cGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNl
fSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZThlNTVkZjI3ZjRhM2Y2ODU4ZjEzYjU4NmE0OGU5NjU1YWZlNjFmZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlYWx0
aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0j
aW5jbHVkZSAiQ2FwdHVyZURldmljZS5oIgotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5o
IgotI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKLSNpbmNsdWRlIDx3dGYvU0hBMS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgU2luZ2xlU291cmNlRmFjdG9yeTo6c2V0
QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9h
Y3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2FjdGl2
ZVNvdXJjZSAmJiBtX2FjdGl2ZVNvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAgIG1f
YWN0aXZlU291cmNlLT5zZXRNdXRlZCh0cnVlKTsKLSAgICBtX2FjdGl2ZVNvdXJjZSA9ICZzb3Vy
Y2U7Ci19Ci0KLXZvaWQgU2luZ2xlU291cmNlRmFjdG9yeTo6dW5zZXRBY3RpdmVTb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQotewotICAgIGlmIChtX2FjdGl2ZVNvdXJjZSA9PSAm
c291cmNlKQotICAgICAgICBtX2FjdGl2ZVNvdXJjZSA9IG51bGxwdHI7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRleCBiYTBkOTAzZTYyOWVkOGFiZWRmN2NmY2YxZWY5
NjUxMTNlMzg5MGJmLi42NjFkNTkyZWVjMjA3NjY4NjZlOWUyYWY4MDNjMjQyNzZmNmQ3MDk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSwyNyArNDIsMTAgQEAgY2xh
c3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIHN0
cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBTaW5nbGVTb3Vy
Y2VGYWN0b3J5IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TaW5nbGVTb3VyY2VGYWN0b3J5KCkg
PSBkZWZhdWx0OwotCi0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlJik7Ci0gICAgdmlydHVhbCB2b2lkIHVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2UmKTsKLQotICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZl
U291cmNlKCkgeyByZXR1cm4gbV9hY3RpdmVTb3VyY2U7IH0KLQotcHJpdmF0ZToKLSAgICBSZWFs
dGltZU1lZGlhU291cmNlKiBtX2FjdGl2ZVNvdXJjZSB7IG51bGxwdHIgfTsKLX07Ci0KLWNsYXNz
IEF1ZGlvQ2FwdHVyZUZhY3RvcnkKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIDogcHVi
bGljIFNpbmdsZVNvdXJjZUZhY3RvcnkKLSNlbmRpZgoteworY2xhc3MgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVm
YXVsdDsKLSAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqKSA9IDA7CisgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRp
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIENhcHR1cmVE
ZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwogICAgIHZpcnR1
YWwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVNwZWFrZXJEZXZpY2VzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjYWxsYmFjaykgY29uc3QgeyBjYWxsYmFjaygpOyB9CkBAIC03NCwyOCAr
NTgsMjAgQEAgcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7
CiB9OwogCi1jbGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvQ2FwdHVyZUZh
Y3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmly
dHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0g
MDsKIAogcHJvdGVjdGVkOgogICAgIFZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiB9
OwogCi1jbGFzcyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIDogcHVibGljIFNpbmdsZVNvdXJjZUZhY3RvcnkKLSNlbmRpZgoteworY2xhc3MgRGlz
cGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EaXNwbGF5Q2FwdHVy
ZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmlydHVhbCBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgRGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1h
bmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNl
LmNwcAppbmRleCA4MmRlMjU4YmJjN2IxYTE4NmRjYjU3MGRjYTA0NDBkOGFiNDAwOWUxLi4zMGIw
YTI1OGQzYWQwMDljODM3NzNhZDY5ZDZiMWNjNjM2YmFiYzViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNSwyNSArMzUsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQotICAg
IDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQorUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJp
bmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFs
dGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGlkKSwg
V1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogewogfQogCiBSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZTo6flJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKCkKIHsKLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5k
aWYKLX0KLQotdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlcGFyZVRvUHJvZHVj
ZURhdGEoKQotewotICAgIEFTU0VSVChmcmFtZVJhdGUoKSk7Ci0KLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIGNv
bnN0IFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiYgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OnByZXNldHMoKQpAQCAtMzY5LDYgKzM1Nyw3IEBAIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2U6OnNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9jdXJyZW50UHJlc2V0ID0gbWF0Y2gt
PmVuY29kaW5nUHJlc2V0OwogICAgIHNldEZyYW1lUmF0ZVdpdGhQcmVzZXQobWF0Y2gtPnJlcXVl
c3RlZEZyYW1lUmF0ZSwgbWF0Y2gtPmVuY29kaW5nUHJlc2V0KTsKIAogICAgIGlmICghbWF0Y2gt
PnJlcXVlc3RlZFNpemUuaXNFbXB0eSgpKQpAQCAtNDEyLDYgKzQwMSw3IEBAIHZvaWQgUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2U6OmNsaWVudFVwZGF0ZWRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6
b3B0aW9uYWw8aW50CiAgICAgaWYgKCFtYXRjaCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9j
dXJyZW50UHJlc2V0ID0gbWF0Y2gtPmVuY29kaW5nUHJlc2V0OwogICAgIHNldEZyYW1lUmF0ZVdp
dGhQcmVzZXQobWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSwgbWF0Y2gtPmVuY29kaW5nUHJlc2V0
KTsKICAgICBzZXRTaXplKG1hdGNoLT5lbmNvZGluZ1ByZXNldC0+c2l6ZSk7CiAgICAgc2V0RnJh
bWVSYXRlKG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlLmgKaW5kZXggNzAxNzJhYWU1NmNkNGZhNWY1ZWRmZjdmZDQ0OGI1ZjM5NWNkMThhYi4u
ZGMxYzNkNWVhYTc1MTE0ZTJhYmYxMDhhMTU4OGZjYTQ5YWVmOWZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC01MywxMCArNTMsMTEgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBlbnN1cmVJbnRyaW5zaWNTaXplTWFpbnRhaW5zQXNwZWN0UmF0aW8oKTsKIAorICAgIGNvbnN0
IFZpZGVvUHJlc2V0KiBjdXJyZW50UHJlc2V0KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UHJl
c2V0LmdldCgpOyB9CisKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJp
bmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCi0gICAgdm9pZCBwcmVwYXJlVG9Qcm9k
dWNlRGF0YSgpOwogICAgIHZvaWQgc2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGlu
dD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91Ymxl
Pikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgcHJlZmVyc1ByZXNldChWaWRlb1ByZXNl
dCYpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTkwLDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBjb25z
dCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2UiOyB9CiAjZW5kaWYKIAorICAgIFJlZlB0cjxWaWRlb1ByZXNldD4g
bV9jdXJyZW50UHJlc2V0OwogICAgIFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiBtX3ByZXNldHM7
CiAgICAgRGVxdWU8ZG91YmxlPiBtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzOwogICAgIGRvdWJs
ZSBtX29ic2VydmVkRnJhbWVSYXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBj
ZTZlMDAzNTk3YThiNWRiZDlkMWFhODVjNDU1NjJiMjJhOTNmNDNjLi4xZDRmOTliZjJiMTNhYTY2
YWZmYzI0OGJlY2U1OTgyZWIzMGQ0NjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtMzYs
NyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWFsdGltZVZpZGVvU291cmNlOjpS
ZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJiBzb3Vy
Y2UsIGJvb2wgc2hvdWxkVXNlSU9TdXJmYWNlKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShU
eXBlOjpWaWRlbywgU3RyaW5nIHsgc291cmNlLT5uYW1lKCkgfSwgU3RyaW5nIHsgc291cmNlLT5w
ZXJzaXN0ZW50SUQoKSB9LCBTdHJpbmcgeyBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSB9KQor
ICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgU3RyaW5nIHsgc291cmNlLT5u
YW1lKCkgfSwgU3RyaW5nIHsgc291cmNlLT5wZXJzaXN0ZW50SUQoKSB9LCBTdHJpbmcgeyBzb3Vy
Y2UtPmRldmljZUlESGFzaFNhbHQoKSB9LCBzb3VyY2UtPnBhZ2VJZGVudGlmaWVyKCkpCiAgICAg
LCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLCBt
X3Nob3VsZFVzZUlPU3VyZmFjZShzaG91bGRVc2VJT1N1cmZhY2UpCkBAIC05NSwxMiArOTUsMTUg
QEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0
aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHQKICAgICBBU1NFUlQoc291cmNlU2l6ZS5oZWlnaHQo
KSk7CiAgICAgQVNTRVJUKHNvdXJjZVNpemUud2lkdGgoKSk7CiAKKyAgICBhdXRvKiBjdXJyZW50
UHJlc2V0ID0gbV9zb3VyY2UtPmN1cnJlbnRQcmVzZXQoKTsKKyAgICBhdXRvIGludHJpbnNpY1Np
emUgPSBjdXJyZW50UHJlc2V0ID8gY3VycmVudFByZXNldC0+c2l6ZSA6IHNvdXJjZVNpemU7CisK
ICAgICBpZiAoIXdpZHRoKQotICAgICAgICB3aWR0aCA9IHNvdXJjZVNpemUud2lkdGgoKSAqIGhl
aWdodC52YWx1ZSgpIC8gc291cmNlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgd2lkdGggPSBpbnRy
aW5zaWNTaXplLndpZHRoKCkgKiBoZWlnaHQudmFsdWUoKSAvIGludHJpbnNpY1NpemUuaGVpZ2h0
KCk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0V2lkdGgoKndpZHRoKTsKIAogICAgIGlmICgh
aGVpZ2h0KQotICAgICAgICBoZWlnaHQgPSBzb3VyY2VTaXplLmhlaWdodCgpICogd2lkdGgudmFs
dWUoKSAvIHNvdXJjZVNpemUud2lkdGgoKTsKKyAgICAgICAgaGVpZ2h0ID0gaW50cmluc2ljU2l6
ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBpbnRyaW5zaWNTaXplLndpZHRoKCk7CiAgICAg
bV9jdXJyZW50U2V0dGluZ3Muc2V0SGVpZ2h0KCpoZWlnaHQpOwogCiAgICAgaWYgKGZyYW1lUmF0
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29h
L0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggNTU0
ZjhkZDI3YTRiZTVkZWQ2ZTVlMTZhNTJiY2Q0YWQ5MDZmNDJiNy4uMTY2YTUzMDc3MzJiMTE1ZTQ1
ZDYyMDcwZWZhMDBhMDEzODI4YmZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYS5jcHAKQEAgLTgzLDIzICs4MywyMyBAQCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZSBzb3VyY2VUeXBlRm9yRGV2aWNlKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUg
dAogICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOwogfQogCi1DYXB0
dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogI2lmIFBMQVRGT1JN
KElPUykKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0dXJlU291cmNlOjpjcmVh
dGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOworICAgICAgICByZXR1cm4gY3JlYXRlKFJlcGxheUtpdENhcHR1cmVTb3VyY2U6
OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2Vsc2UKICNpZiBIQVZFKFNDUkVFTl9D
QVBUVVJFX0tJVCkKICAgICAgICAgaWYgKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpp
c0F2YWlsYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlKFNj
cmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cyks
IGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7
CiAjZW5kaWYKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlTdHJlYW1TY3JlZW5DYXB0
dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gY3JlYXRlKENHRGlzcGxh
eVN0cmVhbVNjcmVlbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCkp
LCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIp
OwogI2VuZGlmCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAj
aWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0
Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUo
U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRz
KSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAg
cmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmlj
ZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CkBAIC0xMTQsMTIgKzExNCwxMiBAQCBD
YXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aQogICAgIHJldHVybiB7IH07CiB9CiAKLUNhcHR1cmVTb3Vy
Y2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShFeHBlY3RlZDxVbmlx
dWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXJlcj4sIFN0cmluZz4mJiBjYXB0dXJlciwg
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewogICAgIGlmICghY2FwdHVyZXIuaGFzX3ZhbHVlKCkpCiAgICAgICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvciB7IFdURk1vdmUoY2FwdHVyZXIuZXJyb3IoKSkgfTsKIAotICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFdURk1v
dmUoY2FwdHVyZXIudmFsdWUoKSksIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7
IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFdURk1vdmUo
Y2FwdHVyZXIudmFsdWUoKSksIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIp
KTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3VyY2Ut
PmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdCkKQEAg
LTEyOSw4ICsxMjksOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cgogICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4m
JiBjYXB0dXJlciwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhh
c2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRm9yRGV2aWNlKGNh
cHR1cmVyLT5kZXZpY2VUeXBlKCkpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShoYXNoU2FsdCkpCitEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiBjYXB0dXJlciwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZv
ckRldmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fY2Fw
dHVyZXIoV1RGTW92ZShjYXB0dXJlcikpCiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQo
KSwgdGhpcywgJkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRGcmFtZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAppbmRleCAwNDVjOGNjNDM1ZmNiMjlj
NWRlZDBiMmYxYWVjYTUyNDJjNWFlOGMwLi5iOWViMDg1ZDQ3NDkzNGM1ZTA1MWE3NWFiMWRkMDNj
YzU0ZTdmODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCkBA
IC0xMTIsMTQgKzExMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRl
bnRpZmllcjsKICAgICB9OwogCi0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
KTsKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKEV4cGVjdGVkPFVuaXF1
ZVJlZjxDYXB0dXJlcj4sIFN0cmluZz4mJiwgY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYm
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0
IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJ
ZGVudGlmaWVyKTsKIAogICAgIFNlY29uZHMgZWxhcHNlZFRpbWUoKTsKICAgICB2b2lkIHVwZGF0
ZUZyYW1lU2l6ZSgpOwogCiBwcml2YXRlOgotICAgIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2Eo
VW5pcXVlUmVmPENhcHR1cmVyPiYmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgaGFzaFNhbHQpOworICAgIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoVW5pcXVl
UmVmPENhcHR1cmVyPiYmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hKCk7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDQ4NmIw
ZTQ0ODZhM2M2NGUzYWMxM2YzNTdiZDAxNGRlMDMxODBkZjYuLjczZWNkMjQwM2JjMGY0OGJkYTE5
ZDUxOTkwMTQ3YTM1NzNiN2VhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIGlu
aXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIAogY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeSA6IHB1YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmll
cikgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGUxM2Q1M2IyYjI0ZGNlOWQ1MDI2ZGEy
MzcyODMzZTRlNDIxM2IxZTAuLjY5ZGEyMGI2ODBlODU5ZmQ3NmY2MjBiOTMzYTVlYTZmMGViYmM0
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogY2xhc3MgR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsK
IHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBHU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CkBAIC03Miw3ICs3Miw3
IEBAIHByaXZhdGU6CiAKIGNsYXNzIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlU291cmNlRmFjdG9y
eSBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURp
c3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRp
ZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIGF1dG8mIG1hbmFnZXIgPSBHU3RyZWFtZXJEaXNw
bGF5Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOwogICAgICAgICByZXR1cm4gbWFu
YWdlci5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7CkBAIC0xMjAsNyArMTIwLDcgQEAgRGlzcGxheUNhcHR1cmVGYWN0b3J5
JiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BsYXlGYWN0b3J5KCkKIH0KIAogR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBn
Y2hhciogc291cmNlRmFjdG9yeSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBl
LCBpbnQgZmQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgOiBSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShoYXNoU2FsdCksIHsgfSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFtZXJW
aWRlb0NhcHR1cmVyPihzb3VyY2VGYWN0b3J5LCBkZXZpY2VUeXBlKSkKICAgICAsIG1fZGV2aWNl
VHlwZShkZXZpY2VUeXBlKQogewpAQCAtMTMwLDcgKzEzMCw3IEBAIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpCiB9CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCkKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSkKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSwgeyB9KQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZXI+KGRldmljZSkpCiAgICAgLCBtX2RldmljZVR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6Q2FtZXJhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYzc3ZGNhMjdjM2FjN2EyYzYwNjI1YTMz
MTYxMjNjNzk4ZTk2NDQ4NC4uNWNmNjI3YzkzYTQyZDc4MTFiZDcwYjExNTgwY2RiMTc2ZDRiNjEy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBjb25zdCBkb3VibGUgc19I
dW1Wb2x1bWUgPSAwLjE7CiBzdGF0aWMgY29uc3QgZG91YmxlIHNfTm9pc2VGcmVxdWVuY3kgPSAz
MDAwOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNlVm9sdW1lID0gMC4wNTsKIAotQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNl
SUQpOwpAQCAtNjMsNyArNjMsNyBAQCBSZWY8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+IE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpjcmVhdGVGb3JNb2NrQXVkaQogfQogCiBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3Ry
ZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
KQotICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1v
dmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCB7
IH0pCiB7CiAgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmlu
ZGV4IDk2Nzc3MWVmMGFjODQ4YTg1MWQ5MmRiZTM1OWM1ZWMxZmQwOTJjM2MuLjhkYjc2ODBlMmJh
ODJmMWMyOTAyYTIzZTY2NTgzZGRhMGJiYzg5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzIsNyArMzIs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTE0Nyw3ICsxNDcs
NyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIE1vY2tEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUdTdHJlYW1lcjo6c2V0dGluZ3MoKQogfQogCiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aGFzaFNhbHQpKQorICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCB7IH0pCiB7CiAgICAgZW5zdXJl
R1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUlPUy5oCmluZGV4IDY2NDg1ZTMyYjk3NGIyNmI2ZGI3MGVmMzFmNDE1NDUwYzBjNjMxZmYuLmIx
MDViM2UxMGM4MDk5OThjYTExNTk1NjgwYTRhZTg2NjM3YjNiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
SU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2VJT1MuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgYmVnaW5BdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oKSB7IGJlZ2luSW50ZXJydXB0aW9uKCk7
IH0KICAgICB2b2lkIGVuZEF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbihBdWRpb1Nlc3Npb246Ok1h
eVJlc3VtZSkgeyBlbmRJbnRlcnJ1cHRpb24oKTsgfQogCi0gICAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5n
JiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAg
dm9pZCBhZGRFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZlciYpIGZpbmFsOwogICAg
IHZvaWQgcmVtb3ZlRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXImKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQppbmRleCA2NzA1OTJmMzUx
NjdmNmIwNjE5OTZiMDE2NzRlYjliNTQ4NDQzYTUyLi5iYjMyOWZlMGUxZDg1N2VmYjYxNzE3NGJj
NDk5MTM2YmFjODNlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5t
bQpAQCAtMTE2LDEzICsxMTYsMTMgQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9y
eUlPUzo6cmVtb3ZlRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXIKICAgICAgICAg
QVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZGlzYWJsZUFs
bERldmljZXNRdWVyeSgpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0
dXJlU291cmNlRmFjdG9yeUlPUzo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgLy8gV2Ug
ZW5hYmxlIGV4aGF1c3RpdmUgcXVlcnkgdG8gYmUgc3VyZSB0byBzdGFydCBjYXB0dXJlIHdpdGgg
dGhlIHJpZ2h0IGRldmljZS4KICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN0b3AgdGhlIGF1eGls
aWFyeSBzZXNzaW9uIGFmdGVyIHN0YXJ0aW5nIGNhcHR1cmUuCiAgICAgaWYgKG1fb2JzZXJ2ZXJz
LmNvbXB1dGVzRW1wdHkoKSkKICAgICAgICAgQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFu
YWdlcjo6c2luZ2xldG9uKCkuZW5hYmxlQWxsRGV2aWNlc1F1ZXJ5KCk7Ci0gICAgcmV0dXJuIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElk
KCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICByZXR1cm4gQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCA4YzQxMzhlNzMzOGNlZmM2OTE3MzQy
MDc0NDNhYTQ5ZTU2MmY5ZmVmLi40YmFmYjU4OTI4YWNlMDFmM2JhZTU5M2U4MDljYjRiYjhlYjFi
Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTQsNyArNTQsNyBAQCBjbGFz
cyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogCiBjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6
IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5v
dGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmlu
ZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJ
ZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0
b3J5JiBmYWN0b3J5KCk7CiAKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2Fw
dHVyZURldmljZVN1c3BlbmRlZERpZENoYW5nZSgpOwogCiBwcml2YXRlOgotICAgIEFWVmlkZW9D
YXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNo
U2FsdCk7CisgICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgU3RyaW5n
JiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+
QVZWaWRlb0NhcHR1cmVTb3VyY2UoKTsKIAogICAgIHZvaWQgY2xlYXJTZXNzaW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggNmU3NDNlNWE5NDUxOTMwNzdmMmU2MGUyZTFi
ZDM0Y2FjZmZiMzU5Mi4uNWEwZWE3NzhkNTI4ZDNiMTRiOWY3ZjgzZjg3NzA0Yjg3ODQ1YzczYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtMTA4LDEzICsxMDgsMTMgQEAgcHVi
bGljOgogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VGb3JtYXQ+IGZvcm1hdDsKIH07CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5n
JiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
U3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgQVZDYXB0
dXJlRGV2aWNlICpkZXZpY2UgPSBbUEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGRldmlj
ZVdpdGhVbmlxdWVJRDppZF07CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJO
byBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaWQpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
cGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byBy
ZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAg
aWYgKHJlc3VsdCkKQEAgLTEyNCw4ICsxMjQsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdAog
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLUFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqIGRldmljZSwgU3RyaW5nJiYgaWQsIFN0cmlu
ZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLmxv
Y2FsaXplZE5hbWUsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK0FWVmlkZW9DYXB0
dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqIGRldmljZSwg
U3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKGRldmljZS5sb2NhbGl6ZWRO
YW1lLCBXVEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAg
ICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9i
c2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKICAgICAsIG1fZGV2aWNlKGRl
dmljZSkKICAgICAsIG1fdmVyaWZ5Q2FwdHVyaW5nVGltZXIoKnRoaXMsICZBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6dmVyaWZ5SXNDYXB0dXJpbmcpCkBAIC0xMzcsOSArMTM3LDYgQEAgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6On5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7CiAgICAgQUxXQVlTX0xPR19J
Rihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKICAgICBbbV9vYmpj
T2JzZXJ2ZXIgZGlzY29ubmVjdF07CiAgICAgW21fZGV2aWNlIHJlbW92ZU9ic2VydmVyOm1fb2Jq
Y09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJzdXNwZW5kZWQiXTsKIApAQCAtNDY5LDEwICs0
NjYsNiBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCkK
IHsKICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0j
ZW5kaWYKLQogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwogICAgIFJldGFpblB0cjxBVkNhcHR1
cmVEZXZpY2VJbnB1dD4gdmlkZW9JbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVEZXZp
Y2VJbnB1dEluc3RhbmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6JmVycm9yXSk7
CiAgICAgaWYgKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5k
ZXggOWEwYjI5ZWRiMWQxNzgxNTY1NDUwZjU4ZGU5MDlmNjhjODczZWEwMy4uZDI0ZDRiMzFmYzU0
MjEwZWQ4ZDU4NjBhZTY3NzgzNmNjNTQwYTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcApAQCAtNjY4LDI3ICs2NjgsMjcgQEAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFJlZjxDb3JlQXVkaW9DYXB0dXIK
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAot
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNl
SUQpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyAiTm8gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZp
Y2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSkpOwor
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdU
Rk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIpKTsKICNl
bGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lv
bkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRo
VUlEKFdURk1vdmUoZGV2aWNlSUQpKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJu
IHsgIk5vIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IDApKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpLCAwLCBudWxscHRyLCBwYWdlSWRlbnRpZmllcikpOwogI2VuZGlmCiAgICAg
cmV0dXJuIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSwg
Y29uc3RyYWludHMpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJl
bCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQpCitDYXB0dXJlU291cmNlT3JFcnJv
ciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3Zl
KGxhYmVsKSwgV1RGTW92ZShoYXNoU2FsdCksIDAsICZvdmVycmlkZVVuaXQpKTsKKyAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVV
bml0LCBwYWdlSWRlbnRpZmllcikpOwogICAgIHJldHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSksIGNvbnN0cmFpbnRzKTsKIH0KIApAQCAtNzgwLDgg
Kzc4MCw4IEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OndoZW5BdWRpb0Nh
cHR1cmVVbml0SXNOb3RSdW5uaW5nKEZ1bmN0aW9uPHZvCiAgICAgcmV0dXJuIENvcmVBdWRpb1No
YXJlZFVuaXQ6OnVuaXQoKS53aGVuQXVkaW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhXVEZNb3Zl
KGNhbGxiYWNrKSk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1
cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNo
U2FsdCwgdWludDMyX3QgY2FwdHVyZURldmljZUlELCBCYXNlQXVkaW9TaGFyZWRVbml0KiBvdmVy
cmlkZVVuaXQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
aGFzaFNhbHQpKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1
aW50MzJfdCBjYXB0dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqIG92ZXJyaWRlVW5p
dCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAs
IG1fY2FwdHVyZURldmljZUlEKGNhcHR1cmVEZXZpY2VJRCkKICAgICAsIG1fb3ZlcnJpZGVVbml0
KG92ZXJyaWRlVW5pdCkKIHsKQEAgLTgyMSwxOSArODIxLDExIEBAIHZvaWQgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6aW5pdGlhbGl6ZVRvU3RhcnRQcm9kdWNpbmdEYXRhKCkKIAogQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6fkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKQogewotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRv
bigpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotCiAgICAgdW5pdCgpLnJlbW92
ZUNsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c3RhcnRQ
cm9kdWNpbmdEYXRhKCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMp
OwotI2VuZGlmCi0KICAgICBpbml0aWFsaXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB1
bml0KCkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuaAppbmRleCAzMzAzNmU5OTZmNjczZTUyNzAyMzg1YjQxZTBhOTNmMTgwMzUxZjk5Li4wZWM2
NzJiZjlmMWMzNjA1NjI0OTcwYzI0MWY2YTBhMTU5MzUyZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmgKQEAgLTUxLDE1ICs1MSwxNSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzsKIAogY2xhc3MgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyopOwotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBv
dmVycmlkZVVuaXQpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBv
dmVycmlkZVVuaXQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBDTUNsb2NrUmVmIHRpbWVi
YXNlQ2xvY2soKTsKIAogcHJvdGVjdGVkOgotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMy
X3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRVbml0KiA9IG51bGxwdHIpOworICAgIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBT
dHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRV
bml0KiwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoKTsKICAgICBCYXNlQXVkaW9TaGFyZWRVbml0JiB1bml0KCk7CiAgICAgY29uc3QgQmFzZUF1
ZGlvU2hhcmVkVW5pdCYgdW5pdCgpIGNvbnN0OwpAQCAtMTI5LDE0ICsxMjksMTQgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5p
bmcoRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgb3ZlcnJpZGU7CisgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBT
dHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBvdmVycmlk
ZTsKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigp
IGZpbmFsOwogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMo
KSBjb25zdCBmaW5hbDsKIH07CiAKLWlubGluZSBDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQoraW5saW5lIENhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAg
IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0
dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lz
dGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmll
cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQu
bW0KaW5kZXggMGRkM2Q3MWNhZTdhNjNiNjM3MjA4ZjI4MzgyMjBlNjU5ZTQyMTNjZS4uMzQyMjc0
MjNkODliMGEwNDlkZTY5YWNlMzVmOGYzOGYzZDMwYzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJl
ZFVuaXQubW0KQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIHZvaWQgYWRkSHVtKGZsb2F0IGFtcGxp
dHVkZSwgZmxvYXQgZnJlcXVlbmN5LCBmbG9hdCBzYW1wbGVSYXRlLCB1aW50NjRfdAogICAgIH0K
IH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGRldmlj
ZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRChkZXZpY2VJRCk7CiAgICAgQVNTRVJUKGRldmljZSk7CkBAIC05MSw3ICs5MSw3IEBAIENh
cHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIG1pY3JvcGhv
bmUgZGV2aWNlIl9zIH07CiAKICAgICBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKS5z
ZXREZXZpY2VJRChkZXZpY2VJRCk7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZUZvclRlc3RpbmcoV1RGTW92ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRv
bigpKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGlu
ZyhXVEZNb3ZlKGRldmljZUlEKSwgIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBj
b25zdHJhaW50cywgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCksIHBhZ2VJZGVudGlm
aWVyKTsKIH0KIAogTW9ja0F1ZGlvU2hhcmVkVW5pdCYgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2lu
Z2xldG9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggOTVj
ZjM1Y2Q0ZWIxMzE4ZDg2ODMyNzNhNWQwOTZjNzM2NDQ2MDhiMC4uNDgyOTU3OWQyZmExNjUzY2Vj
MDAxMjdjMDNmMjRjYTMwOTc2Y2QzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLmgKQEAgLTQ3LDEzICs0NywxMyBAQCBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
OwogCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyBmaW5hbCA6IHB1YmxpYyBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIHN0YXRpYyBSZWY8
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRl
bnRpZmllcik7CiAKICAgICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwot
ICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQ
YWdlSWRlbnRpZmllcik7CiAKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3Q7CiAgICAgdm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQppbmRleCBmZDE5NGU2MTlhNDRiODgxMWRjYjE3ZTAw
NDY3MWY0NDUzNWU3YTk3Li45ZTI1ZjZkMmQ0MzEzZjkwZGU5YzBmYjFkNjBkZDg4YjA5Nzg1ZDZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01Miw3ICs1
Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQp
OwpAQCAtNjEsNyArNjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1
cm4geyAiTm8gbW9jayBjYW1lcmEgZGV2aWNlIl9zIH07CiAjZW5kaWYKIAotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmll
cikpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBpZiAoYXV0byBlcnJvciA9IHNv
dXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICAgICAgcmV0dXJu
IFdURk1vdmUoZXJyb3ItPm1lc3NhZ2UpOwpAQCAtNzAsMTMgKzcwLDEzIEBAIENhcHR1cmVTb3Vy
Y2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotUmVmPE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rp
c3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpCitSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNh
bHQpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBw
YWdlSWRlbnRpZmllcikpOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0KQotICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCisgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmlj
ZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQog
ICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZVZpZGVvU291
cmNlIFJlbmRlciBRdWV1ZSIsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IGYz
NjdkYTFiZDU4NGZlNDU5ZGEyYjc1ZjIxNTNkM2FkYjU5Zjk2NWYuLjJkOGY4NGQ0YTczMGVmMDFk
OTA3ZmE1OTRmMTIyNGRiYjZkOGI5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYy5jcHAKQEAgLTQ1LDEwICs0NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgVmlk
ZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAor
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpDYW1lcmEpOwotICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIEFWVmlkZW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTU3
LDkgKzU3LDkgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGlzcGxheUNhcHR1cmVTb3VyY2VGYWN0b3J5
TWFjIGZpbmFsIDogcHVibGljIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBj
b25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpj
cmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlm
aWVyKTsKICAgICB9CiBwcml2YXRlOgogICAgIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxh
eUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29j
b2E6OnNpbmdsZXRvbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQwODk0ZDVkNGZlODI1Zjhi
MDZkNmM5MjhhYWYwOTg2Mzc3Y2M0YjIuLjllODhhYjFlNTllN2E3MmI3OGM3NTVkODI0NzhiYWJm
OTk2NGNlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00NSw3ICs0NSw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgIVVTRShHU1RSRUFNRVIpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcK
ICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2
aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC02Miw4ICs2Miw4IEBAIENhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmCiB9CiAjZW5kaWYKIAotTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKK01vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRp
YVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAg
ICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZSBSZW5kZXIgUXVldWUiKSkKICAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlz
LCAmTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnRpY2spCiB7CkBAIC03Nyw5ICs3Nyw2IEBAIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtCiAKIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp+TW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgp
LnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5ncygpCkBA
IC0xMzYsNyArMTMzLDYgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3NE
aWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXQKIHZvaWQgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRp
b0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICAgICBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uQ2FuUHJvZHVjZUF1ZGlv
Q2hhbmdlZCgpOwogICAgIEFTU0VSVChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5jYXRl
Z29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5oCmluZGV4IGYwZGFkZjcxZDJkMDM1MzVhNjgyZTUwYzc5Yjk0MjQyZDA4
NjhmZjguLjdhMGY0ZDE1Yjk1M2YwYTA4ZTgxZmNjNDk1ZGY1ZTM4MmY5YTdlMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmgKQEAgLTQyLDEzICs0MiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVi
bGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkKTsKIAogcHJvdGVjdGVkOgotICAgIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAg
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVuZGVyKFNlY29uZHMpID0gMDsKICAgICB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNl
dDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc+KSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKaW5kZXggMDkyZDJmZTYxMTkzNDhmOTg2NWE4OGZiMjc5MWUzYTJk
NzE0YTQwMS4uNmQxMmM2YmYwNzhkYTJmNTRlZjQ2NzU2N2EwZmQzNTVhMDY5ZDE3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTEwMSwxMyArMTAxLDEzIEBAIHN0YXRpYyBpbmxp
bmUgVmVjdG9yPE1vY2tNZWRpYURldmljZT4gZGVmYXVsdERldmljZXMoKQogCiBjbGFzcyBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7
CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBB
U1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEp
OwogICAgICAgICBpZiAoIU1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2
aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEsIGRl
dmljZS5wZXJzaXN0ZW50SWQoKSkpCiAgICAgICAgICAgICByZXR1cm4geyAiVW5hYmxlIHRvIGZp
bmQgbW9jayBjYW1lcmEgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CiAKLSAg
ICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcg
eyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShNQUMpCiBjbGFzcyBNb2NrRGlzcGxheUNhcHR1cmVyIGZpbmFsIDog
cHVibGljIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkNhcHR1cmVyIHsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBNb2NrRGlzcGxheUNhcHR1cmVyKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyAg
ICBNb2NrRGlzcGxheUNhcHR1cmVyKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBQYWdlSWRlbnRpZmll
cik7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBzdGFydCgpIGZpbmFsOwpAQCAtMTM0LDggKzEzNCw4
IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7
CiB9OwogCi1Nb2NrRGlzcGxheUNhcHR1cmVyOjpNb2NrRGlzcGxheUNhcHR1cmVyKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSkKLSAgICA6IG1fc291cmNlKE1vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyB7IGRldmljZS5wZXJz
aXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyB9KSkKK01v
Y2tEaXNwbGF5Q2FwdHVyZXI6Ok1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IG1fc291cmNl
KE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVy
KFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwo
KSB9LCBTdHJpbmcgeyB9LCBwYWdlSWRlbnRpZmllcikpCiB7CiB9CiAKQEAgLTE3Nyw3ICsxNzcs
NyBAQCBJbnRTaXplIE1vY2tEaXNwbGF5Q2FwdHVyZXI6OmludHJpbnNpY1NpemUoKSBjb25zdAog
CiBjbGFzcyBNb2NrUmVhbHRpbWVEaXNwbGF5U291cmNlRmFjdG9yeSA6IHB1YmxpYyBEaXNwbGF5
Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAor
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmlu
YWwKICAgICB7CiAgICAgICAgIGlmICghTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNh
cHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZS50eXBlKCksIGRldmljZS5wZXJzaXN0
ZW50SWQoKSkpCiAgICAgICAgICAgICByZXR1cm4geyAiVW5hYmxlIHRvIGZpbmQgbW9jayBkaXNw
bGF5IGRldmljZSB3aXRoIGdpdmVuIHBlcnNpc3RlbnRJRCJfcyB9OwpAQCAtMTg2LDExICsxODYs
MTEgQEAgcHVibGljOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNj
cmVlbjoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAj
aWYgUExBVEZPUk0oTUFDKQotICAgICAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2E6OmNyZWF0ZShVbmlxdWVSZWY8RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVy
ZXI+KG1ha2VVbmlxdWVSZWY8TW9ja0Rpc3BsYXlDYXB0dXJlcj4oZGV2aWNlKSksIGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBEaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoVW5pcXVlUmVmPERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OkNhcHR1cmVyPihtYWtlVW5pcXVlUmVmPE1vY2tEaXNwbGF5Q2FwdHVyZXI+KGRl
dmljZSwgcGFnZUlkZW50aWZpZXIpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbGlmIFVTRShHU1RSRUFNRVIpCiAgICAgICAgICAg
ICByZXR1cm4gTW9ja0Rpc3BsYXlDYXB0dXJlU291cmNlR1N0cmVhbWVyOjpjcmVhdGUoZGV2aWNl
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogI2Vsc2UKLSAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJz
aXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRl
dmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50
aWZpZXIpOwogI2VuZGlmCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgpAQCAtMjExLDIwICsyMTEsMTUgQEAgcHJp
dmF0ZToKIAogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VGYWN0b3J5IGZpbmFsIDogcHVi
bGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykg
ZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSk7CiAgICAgICAgIGlmICghTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIGRldmljZS5wZXJzaXN0ZW50SWQoKSkpCiAg
ICAgICAgICAgICByZXR1cm4geyAiVW5hYmxlIHRvIGZpbmQgbW9jayBtaWNyb3Bob25lIGRldmlj
ZSB3aXRoIGdpdmVuIHBlcnNpc3RlbnRJRCJfcyB9OwogCi0gICAgICAgIHJldHVybiBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9
LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWlu
dHMpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQog
cHJpdmF0ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgc2V0QWN0aXZlU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgZmluYWwgeyBDb3JlQXVkaW9DYXB0dXJl
U291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuc2V0QWN0aXZlU291cmNlKHNvdXJjZSk7IH0KLSAg
ICB2b2lkIHVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkgZmlu
YWwgeyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkudW5zZXRBY3Rp
dmVTb3VyY2Uoc291cmNlKTsgfQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJj
ZSgpIGZpbmFsIHsgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0
b24oKS5hY3RpdmVTb3VyY2UoKTsgfQotI2VuZGlmCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXIm
IGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigp
OyB9CiAgICAgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzcGVha2Vy
RGV2aWNlcygpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCA2MGM1YThjZDZkNTBlOTAwZTRj
MWViZDFmZDhlMmRkYWU4YjZkYjlkLi4zY2Y3NDYwYzgwZTNiZTFkNWJhM2YwY2VkN2MxOWIyNWRm
MjlhYmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNTAsNyArNTAsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYm
ICFVU0UoR1NUUkVBTUVSKQotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNTksNyArNTks
NyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAiTm8gbW9jayBj
YW1lcmEgZGV2aWNlIl9zIH07CiAjZW5kaWYKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFt
ZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlmIChjb25zdHJh
aW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAg
cmV0dXJuIHsgfTsKIApAQCAtNzMsOCArNzMsOCBAQCBzdGF0aWMgSGFzaFNldDxNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZSo+JiBhbGxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSgpCiAgICAgcmV0dXJu
IHZpZGVvU291cmNlczsKIH0KIAotTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSks
IFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK01vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1f
ZW1pdEZyYW1lVGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmdlbmVyYXRlRnJhbWUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
QEAgLTIzOSw3ICsyMzksNiBAQCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydENh
cHR1cmVUaW1lcigpCiAKIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVj
aW5nRGF0YSgpCiB7Ci0gICAgcHJlcGFyZVRvUHJvZHVjZURhdGEoKTsKICAgICBzdGFydENhcHR1
cmVUaW1lcigpOwogICAgIG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVv
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVv
U291cmNlLmgKaW5kZXggOTM1YzZkZGVjYjhkNDU4YzkxNjZmNWIyNjdhYzVjNDk0ZmYzNDNiNS4u
ZmM1ZmM3YWExY2I3NmZhNmQ5NzM5MDU4NjViZmFmZWNlZGUzNmJjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApA
QCAtNDgsNyArNDgsNyBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKIGNsYXNzIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlIDogcHVibGljIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLCBwcml2
YXRlIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFn
ZUlkZW50aWZpZXIpOwogICAgIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAgICAgc3Rh
dGljIHZvaWQgc2V0SXNJbnRlcnJ1cHRlZChib29sKTsKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGlj
OgogICAgIEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlcigpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVu
dGlmaWVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWQwNzU4MjE3NTEwMTM1N2UwNTViMTE0
MjY4ODkyZmE3YzczYzk0Ni4uODVhNDQ3MDc0ZmI2N2E4Njg5ZGRkNWI5YzMxMGRhMDM3Yzc2Mzk2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTI4OSw3ICsyODksNjYgQEAgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHko
KQogICAgIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9
CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQ
VVByb2Nlc3NSZW1vdGVGcmFtZXMsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlvbkhh
bmRsZXIpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpjcmVhdGVNaWNyb3Bob25lU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIG1lZGlhQ29uc3RyYWludHMs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQoreworICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgbWVkaWFDb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOworICAgIGlmICghc291cmNlT3JF
cnJvcikKKyAgICAgICAgcmV0dXJuIHNvdXJjZU9yRXJyb3I7CisKKyAgICBhdXRvJiBwZXJQYWdl
U291cmNlcyA9IG1fcGFnZVNvdXJjZXMuZW5zdXJlKHBhZ2VJZGVudGlmaWVyLCBbXSB7IHJldHVy
biBQYWdlU291cmNlcyB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAgIC8vIEZJWE1FOiBT
dXBwb3J0IG11bHRpcGxlIG1pY3JvcGhvbmVzIHNpbXVsdGFuZW91c2x5LgorICAgIGlmIChwZXJQ
YWdlU291cmNlcy5taWNyb3Bob25lU291cmNlKSB7CisgICAgICAgIGF1dG8mIG1pY3JvcGhvbmVT
b3VyY2UgPSAqcGVyUGFnZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgaWYgKG1p
Y3JvcGhvbmVTb3VyY2UucGVyc2lzdGVudElEKCkgIT0gZGV2aWNlLnBlcnNpc3RlbnRJZCgpICYm
ICFtaWNyb3Bob25lU291cmNlLmNhcHR1cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAgIC8vIFdl
IGNhbm5vdCByZXVzZSB0aGUgc291cmNlIHNvIGZhaWwgaXQuCisgICAgICAgICAgICBtaWNyb3Bo
b25lU291cmNlLmNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgICAgIG1pY3JvcGhvbmVTb3VyY2Uu
c3RvcCgpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVy
cm9yLnNvdXJjZSgpOworICAgIHBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2UgPSBXZWFr
UHRyIHsgc291cmNlLmdldCgpIH07CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKworQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlQ2FtZXJhU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIG1lZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQoreworICAgIGF1dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5l
bnN1cmUocGFnZUlkZW50aWZpZXIsIFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRl
cmF0b3ItPnZhbHVlOworICAgIGlmIChwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UpIHsKKyAg
ICAgICAgYXV0byYgY2FtZXJhU291cmNlID0gKnBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZTsK
KyAgICAgICAgLy8gRklYTUU6IE9wdGltaXplIG11bHRpcGxlIGNvbmN1cnJlbnQgY2FtZXJhcy4K
KyAgICAgICAgaWYgKHBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZS0+cGVyc2lzdGVudElEKCkg
PT0gZGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmICFjYW1lcmFTb3VyY2UuY2FwdHVyZURpZEZhaWwo
KSkgeworICAgICAgICAgICAgLy8gV2UgY2FuIHJldXNlIHRoZSBzb3VyY2UsIGxldCdzIGRvIGl0
LgorICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBjYW1lcmFTb3VyY2UuY2xvbmUoKTsKKyAgICAg
ICAgICAgIGlmIChtZWRpYUNvbnN0cmFpbnRzKSB7CisgICAgICAgICAgICAgICAgYXV0byBlcnJv
ciA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqbWVkaWFDb25zdHJhaW50cyk7CisgICAgICAg
ICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShl
cnJvci0+bWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc291cmNl
OworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0
cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQorICAgICAg
ICByZXR1cm4gc291cmNlT3JFcnJvcjsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
aWYgKHBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJjZSkgeworICAgICAgICAvLyBXZSBjYW5ub3Qg
cmV1c2UgdGhlIHNvdXJjZSBzbyBmYWlsIGl0LgorICAgICAgICBwZXJQYWdlU291cmNlcy5jYW1l
cmFTb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJh
U291cmNlLT5zdG9wKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJj
ZU9yRXJyb3Iuc291cmNlKCk7CisgICAgc291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmll
bnRhdGlvbk5vdGlmaWVyKTsKKyAgICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UgPSBXZWFr
UHRyIHsgc291cmNlLmdldCgpIH07CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90
ZUZyYW1lcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Qcm94eS0+
d2lsbFN0YXJ0Q2FwdHVyZShkZXZpY2UudHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlLCAiUmVxdWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCk7CkBAIC0yOTksMTYgKzM1OCwx
NCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNv
dXJjZU9yRXJyb3I7CiAgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICBzb3Vy
Y2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVN
aWNyb3Bob25lU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBw
YWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgp
LmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25z
dHJhaW50cyk7Ci0gICAgICAgIGlmIChzb3VyY2VPckVycm9yKQotICAgICAgICAgICAgc291cmNl
T3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5v
dGlmaWVyKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IGNyZWF0ZUNhbWVyYVNvdXJjZShkZXZp
Y2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNjcmVlbjoKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Oldp
bmRvdzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJl
U291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAg
c291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRp
c3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3lz
dGVtQXVkaW86CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
cGVha2VyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDY1OGI1YjdkMTg4NmM0ODMwNmYx
ODAzYTM4ODA0Yjk1M2Q4NTRmNTQuLmQzYWIwZGFhZmE1YWE2YjMxM2NmMjhmNzdkZmNjNzI2YmQy
NzlkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOwogCiAgICAgdXNpbmcgQ3JlYXRlU291cmNlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRz
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXRE
YXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNl
SUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91
bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmKTsKKyAg
ICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzdGFydFBy
b2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgZW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyKTsKQEAgLTk0LDExICs5NCwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFRvRW5k
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldFNo
b3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbik7CiAKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVNaWNyb3Bob25lU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyos
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVDYW1lcmFTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOworCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5k
IGNsYXNzIFNvdXJjZVByb3h5OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsK
ICAgICBVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKICAgICBX
ZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsK
KworICAgIHN0cnVjdCBQYWdlU291cmNlcyB7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gbWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgV2Vha1B0cjxXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjYW1lcmFTb3VyY2U7CisgICAgfTsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBQYWdlU291cmNlcz4gbV9wYWdlU291cmNlczsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDdiY2E0NTNlNzM3NTM3NjlhN2ZjNThlMmU3MDczMmI4NTdkOWI4MjkuLmVkN2Y0ZGFiMTZiZWE3
OWI0MjFkOTY2MGVlMWU0OWMzZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291
bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3Rl
RnJhbWVzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6
VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBm
cmFtZVJhdGUpIEFzeW5jCisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9j
ZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikg
LT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJl
c2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRl
KSBBc3luYwogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcAppbmRleCBmNWE2MTY0ZTgzMWM5Njg5OTVlMzMyZWYwMjY5YzBiOGMxOGNmOWYyLi44
OGZkYTg0OTE0NjBiNzc3NTBkN2RhMzUwMWJlYTA1ZTBmMDMzMDc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitSZWY8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2Vy
LCBjYXB0dXJlRGV2aWNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBwYWdlSWRl
bnRpZmllcikpOwogfQogCi1TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQotICAgIDogV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3Ry
aW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVy
c2lzdGVudElkKCkgfSkKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxh
YmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9LCB7IH0sIHBh
Z2VJZGVudGlmaWVyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21h
bmFnZXIobWFuYWdlcikKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKaW5kZXggNzhiZmU1YjY0YjIwZGQwOTAxYjk5YWE3M2MzNWM5MDcw
MjFkOWIwNi4uOWFmZmYyODAzNWEwZDAzMjVmMjZjMGQyZTljNmRhZGRhZWJhNWMzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xh
c3MgV2ViQXVkaW9CdWZmZXJMaXN0OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwogICAgIAotY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHN0YXRpYyBS
ZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3RlU291cmNlU3Rv
cHBlZCgpOwogCiBwcml2YXRlOgotICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8g
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCmluZGV4IDY4ZGMxMTVmMTY5ZjE5ZWY4OWY2NmZlNWM4ZjI0MWM4NWI5NzhkNzEu
LmUzYTcwNGUxYmMyMjZlZDQ4MWEwZDc1ZDE4NzA1ZmEzYjlhNTI5MmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC01OSw3ICs1
OSw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0CiAgICAgfQogI2VuZGlmCiAKLSAgICBzZW5k
KE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpD
cmVhdGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkNyZWF0ZVNv
dXJjZShpZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlLCBzb3VyY2UucGFnZUlkZW50aWZpZXIoKSkp
OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UmIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDViNTZkMDZlZDBiYjFkZWJlMDJmMjhlMGIyNzY4ODYyNjRiNzM5NjMuLmRmNmM3MDkwOTBi
ZDY2MzgxODNjZDU3ZmQzN2ZiMGQ4NjkxNjQzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMTA5OTYsMTIgKzEwOTk2LDEyIEBAIFdlYkNvcmU6OkNhcHR1
cmVTb3VyY2VPckVycm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZv
clNwZWVjaFJlCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OwogCiAgICAgaWYgKHByZWZlcmVuY2VzKCku
Y2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgICAgIHJldHVy
biBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSwgbV93ZWJQYWdl
SUQpIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSkgfTsKKyAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9Owog
I2Vsc2UKLSAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVS
ZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICByZXR1cm4gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJl
RGV2aWNlLCBtX3dlYlBhZ2VJRCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKaW5kZXggYjgxZGJiMjNlZmY0
NTMzYTA3MjU1Nzg4YTI2ZWVhN2MzM2UwNWFlMy4uOWYwOWY2MjI2MjgyNjgzYzI2MGI1MzQ1MTZm
OTgwOGRhNGI3YzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0yMDgsOSArMjA4LDkgQEAgdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9u
cygpCiAKICNlbmRpZgogCi12b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRl
dmljZSk7CisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLCBwYWdlSWRlbnRpZmllcik7CiAgICAg
aWYgKCFyZXN1bHQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQg
dG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0
dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKaW5kZXggMTg4NDc3MWE4N2I3ZjY2OTkxOTBhNWRl
NTY5MTE2Y2M0N2Y4NjFiMy4uNjIzNDQ4ZmJhOWRkN2Y4NWFiNzMzNTkwNmQ0OGJhOTY5NDhmMzM2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCi0gICAgdm9pZCBjcmVhdGVT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGNyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGRlbGV0ZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdGFydChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRl
eCAyMzgyZGYxZDhlNTlmMGE4ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFkLi5hYjVlOThlNDk3MTlh
YWRlZDVlOTFiYmQzNzM4MDdlMTBkMDE3M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0y
NCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsK
LSAgICBDcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgQ3JlYXRlU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKICAgICBEZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CmluZGV4IDJjZTk1NGY0OGJmZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2UxMzguLjg3Mjk2OTE2
NjcyMTE5ZjFiYmQzOTI4YzYwMTgzMmUzNmNlMzRmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKQEAgLTQzLDI5ICs0MywyNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBk
ZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFu
YWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBt
YW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNv
dXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQog
Ci1SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdl
ciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVy
LCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiB7CiAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAg
ICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYm
IGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRv
JiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRl
dmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0
byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsK
ICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChX
VEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcsMTAgKzg0
LDYgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rp
b24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQg
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCkBAIC0xMTksOSArMTEyLDEwIEBAIHZv
aWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYgdGltCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6
aGFzRW5kZWQoKQogewotICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKLSAgICBtX21hbmFnZXIucmVt
b3ZlU291cmNlKGlkZW50aWZpZXIoKSk7Ci0gICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgaWYgKG1fcHJveHku
aGFzRW5kZWQoKSkgeworICAgICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIo
KSk7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92
ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIH0KIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCkBAIC0xNDksMTQgKzE0Myw2IEBAIHZvaWQgUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQ
cm9jZXNzQ29ubmVjdGlvCiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNl
KCkpIHsKLSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVp
bmcgdW5tdXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsK
ICAgICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggYTNjNDFkYzA0YWFjZTVkZDRlYTczOWE2MGYyYTUz
MGU1ZTNkMDc1ZS4uODhhYWJhMDhiNTY1YmVlOWFlNGZhNGE3M2E3ODg4NjU5MDg3MWUwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQog
I2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
OworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcik7CiAgICAgflJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5n
ZSh2YWx1ZSk7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAg
IC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZp
bmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlLmNwcAppbmRleCBjNTUzMzUzM2FjNTViMWY1YzJhZGFlZTE4ODk2ZjM2MTRmN2NlZTM1Li5i
NDkwYTdhNTdmMTY0NzNiNzQ1Y2Q2YmYyMDZlMzFjMTA1YmU5MTI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlLmNwcApAQCAtMzgsMTcgKzM4LDE3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQp
LCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92
ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVu
dGlmaWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAg
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29w
eVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0
dXJuIHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
YW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZp
Y2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCkpCitSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwg
bV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNv
bnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7CkBAIC01Nyw3ICs1Nyw3IEBA
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVuCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1v
dGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8m
JiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7Cisg
ICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBh
Z2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9v
bCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYm
IGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICghc3VjY2Vl
ZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2Up
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMCw5ICsxMDAsMTAgQEAgdm9pZCBSZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6
UmVhbHRpbWVNZWQKIAogdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6Omhhc0VuZGVk
KCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJj
ZShpZGVudGlmaWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVk
KCkpIHsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAg
ICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2Uo
aWRlbnRpZmllcigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlOjpjYXB0dXJlU3RvcHBlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKaW5kZXggNTJmNTM1
YjNkNzNkNjg5Nzc4Yjk1ZjE5NDdmOGU3MmQ4Mjk4ZDZhMS4uOGQ4MmZiNTk3NDllYTg1ZGMwYmQ0
NjVjNDg1YzI0NzkyMDJjMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApAQCAtNDcsNyAr
NDcsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcik7CiAgICAgflJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgpOwogCiAgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hh
bmdlKHZhbHVlKTsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Ms
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UK
ICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1
Y2luZ0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA0YTI5
NGQ4YzU0MTcxZTZlMTAwNWIzYTQwNjY1NmIyNmMxNTljMDRkLi5iZTc1NDU1ODE4YjUzNWU1ZWYy
ZDZjODg1NDYxNzQwMGIzYzBjOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNw
cApAQCAtNjgsOSArNjgsOSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6
c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZp
ZXIgfSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0
ZUNhbGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCit2b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBzaG91bGRVc2VSZW1v
dGVGcmFtZSkKIHsKLSAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlE
SGFzaFNhbHQsIG1fY29uc3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lKSwgV1RGTW92ZShj
YWxsYmFjaykpOworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURI
YXNoU2FsdCwgbV9jb25zdHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlm
aWVyKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cywgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBj
b21wbGV0aW9uSGFuZGxlcikKQEAgLTk5LDkgKzk5LDE0IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5OjpmYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmlu
ZyYKICAgICAgICAgY2FsbGJhY2tzLnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFw
cGx5Q29uc3RyYWludHNFcnJvciB7IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6aGFzRW5kZWQoKQorYm9vbCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHk6Omhhc0VuZGVkKCkKIHsKKyAgICBpZiAobV9pc0VuZGVkKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAgIGNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5k
IHsgbV9pZGVudGlmaWVyIH0sIDApOworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAppbmRl
eCAwM2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi4yMDZmNmY5MTc4YWM5
Yjg0YTM2N2YwMjcwNmEwNjNlNDRkNzU4ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5oCkBAIC01MywxMyArNTMsMTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzczsg
fQogCiAgICAgdXNpbmcgQ3JlYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wsIFN0cmluZyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6
VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lk
IGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYsIENyZWF0ZUNhbGxiYWNrJiYs
IGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CisgICAgdm9pZCBjcmVhdGVSZW1v
dGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3Jl
YXRlQ2FsbGJhY2smJiwgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9IGZhbHNlKTsKIAogICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3Nh
Z2UpOwogICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7CiAgICAgCi0gICAgdm9pZCBoYXNFbmRlZCgpOworICAgIGJvb2wgaGFz
RW5kZWQoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29u
c3RyYWludHNIYW5kbGVyJiYpOwpAQCAtNzUsMTIgKzc1LDE0IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFn
ZUlkZW50aWZpZXI7CiAKICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWlu
dHM7CiAgICAgRGVxdWU8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJh
aW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAgYm9v
bCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgYm9vbCBtX2lz
RW5kZWQgeyBmYWxzZSB9OwogfTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmIGRldmljZSwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcApp
bmRleCBkMmQyNGFiYWI5ZWMzNGEwZGEyMmViNjVhOGFkM2NiNWYwMDdkOTdjLi44OGI4ZWM3NmJh
NDg3NjQ3YmVkZmUyOTk4MDg1YmU3MWM3NTM5OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
CkBAIC00NSwyOSArNDUsMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
UEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2Uu
Y29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRk
U291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFT
b3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1l
KSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQor
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJ
ZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJj
ZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0
aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0
byBmcmFtZVJhdGUpIG11dGFibGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3Vy
Y2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdl
LCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBh
dXRvIHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVk
ZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkp
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTMsMTEgKzg5LDYgQEAgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhp
cyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlw
ZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVu
c2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTQ3LDkgKzEzOCwxMCBAQCBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmls
aXRpZXMoKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsK
LSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVu
dGlmaWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJl
bW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsK
KyAgICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBt
X21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRp
ZmllcigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2Fw
dHVyZVN0b3BwZWQoKQpAQCAtMjA0LDE0ICsxOTYsNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rp
bwogICAgIGlmIChpc0VuZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgaWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmEgJiYgdGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8g
VHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3Mg
ZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRp
ZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0
UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmgKaW5kZXggMzJhOGExMTU0NjRiMGI2NWI3ZWFmM2JmMGRiODE3ZmUxYjhmOWE5Ny4uZmIzMDFi
NWE0MzFiM2VkMjc2M2MyYmEyMDQ1MzI0MjY5ZDk0OTljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyCiAjZW5kaWYKIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNl
PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAg
IHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFu
Z2UodmFsdWUpOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAg
ICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2lu
Z0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwCmluZGV4IGY2ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMu
LjNjZjIyNzhmNGU5MzE1MTRiZGMyNmE3ZDc0OWEzZmE2Yzk2NzAyZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcApAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAg
fSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCiB7CiAjaWYgIUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKQpAQCAtMjI1LDcgKzIyNSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVk
aW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAg
IHJldHVybiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJh
aW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wg
dmFsdWUpCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
VmlkZW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmEKICAgICBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgPSB2YWx1ZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNDgsMTAgKzI0OCwxMCBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVW
aWRlb0NhcHR1cmVTbwogICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHko
KSk7CiAKICAgICBib29sIHNob3VsZFVzZUlPU3VyZmFjZSA9ICFtX21hbmFnZXIubV9zaG91bGRV
c2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzOwotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
cihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFu
YWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7
CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50
cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CiB9CiAKLUNh
cHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9y
eTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZh
Y3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNjAsNyAr
MjYwLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRp
c3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAobV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQogICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHko
KSk7CiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2
aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFu
YWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAK
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpzZXRTaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDhjYzVi
NGY5MjY5YjI0NGRiNTk5NWI3Yjc0NDRiOTE1OTdmMTZhODIuLjhkMjJjZDMwMmI2Y2U4NjkwYTk4
ODg0OTdlMzA5MGMyMDUzYTg5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03NCw3ICs3NCw3IEBA
IHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29s
KTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5h
bDsKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2Fw
dHVyZURldmljZU1hbmFnZXI7IH0KICAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3BlYWtl
ckRldmljZXM7IH0KIApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNl
dFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKikgZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmlu
YWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAg
ICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTEwMCw3ICsxMDAs
NyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mo
Ym9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsK
KyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFs
OwogICAgICAgICBXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2
aWNlTWFuYWdlcjsgfQogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFn
ZXI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggY2YzOTE2ZWJhODY0YzNhYTRkZTUzMzI1ZWFlYzNmNGExNTdiZTQxMi4uNWFl
ZjIwMzRjMDAyMGM3ZGIyNzhkNzFjOWVmZmU5MDhkYTAwYjcyMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIyLTAzLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBTY29wZSBjYXB0dXJlIHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgd2UgYXJlIGNh
cHR1cmluZyB3aXRoIGRpZmZlcmVudCBkZXZpY2VzLCB3ZSBoYXZlIGV4cGxpY2l0IGZhaWx1cmUg
Zm9yIGF1ZGlvIGNhcHR1cmUuCisgICAgICAgIFJlYmFzZSB0ZXN0cyBhY2NvcmRpbmdseS4KKwor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWRldmljZS1p
ZC1leHBlY3RlZC50eHQ6CisKIDIwMjItMDMtMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIxNjA5Nik6IFtHVEtdIFRl
c3QgYWNjZXNzaWJpbGl0eS9ndGsvbWVudS1saXN0LXVuZm9jdXNlZC1ub3RpZmljYXRpb25zLmh0
bWwgaXMgZmFpbGluZyBzaW5jZSByMjE2MDk2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2RldmljZS1jaGFuZ2UtZXZlbnQtMi1leHBlY3RlZC50eHQK
aW5kZXggMDQ4M2M3MGRkYmQ3ZGU5MWZjZGEwNTY4ZDIzZmNjMGYxZThlOTM2My4uZGFhNjc0YTdm
OTc3NjVjMjQxM2ZlMzk1YzI4ZDVmMjgyZGZmMzg5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9kZXZpY2UtY2hhbmdlLWV2ZW50LTItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZGV2aWNlLWNoYW5nZS1ldmVudC0yLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogQSBNZWRpYVN0cmVhbVRy
YWNrIGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQorQ09OU09MRSBNRVNTQUdFOiBBIE1l
ZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVyZSBmYWlsdXJlCiAKIFBBU1MgJ2Rl
dmljZWNoYW5nZScgZXZlbnQgZmlyZWQgd2hlbiBkZXZpY2UgbGlzdCBjaGFuZ2VzCiBQQVNTICdk
ZXZpY2VjaGFuZ2UnIGV2ZW50cyBmaXJlZCBxdWlja2x5IGFyZSBjb2FsZXNjZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtZGV2aWNlLWlk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVk
aWEtZGV2aWNlLWlkLWV4cGVjdGVkLnR4dAppbmRleCA1MDI0Y2VmNjUzZjM2YTQ2YjVhYjc4NjMw
MTk4NTQxMGQzMjEwOWQ1Li5kMmZhNjY4N2RmNDVlZmNiMjgyZjYxOWNiZDI0ODNiODFhM2Q4NDFh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlh
LWRldmljZS1pZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9nZXQtdXNlci1tZWRpYS1kZXZpY2UtaWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNiBAQAor
Q09OU09MRSBNRVNTQUdFOiBBIE1lZGlhU3RyZWFtVHJhY2sgZW5kZWQgZHVlIHRvIGEgY2FwdHVy
ZSBmYWlsdXJlCitDT05TT0xFIE1FU1NBR0U6IEEgTWVkaWFTdHJlYW1UcmFjayBlbmRlZCBkdWUg
dG8gYSBjYXB0dXJlIGZhaWx1cmUKK0NPTlNPTEUgTUVTU0FHRTogQSBNZWRpYVN0cmVhbVRyYWNr
IGVuZGVkIGR1ZSB0byBhIGNhcHR1cmUgZmFpbHVyZQogCiBQQVNTIERldmljZSBJRHMgc2hvdWxk
IGJlIGVtcHR5IGluaXRpYWxseQogUEFTUyBDb2xsZWN0IGRldmljZSBJRHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453828</attachid>
            <date>2022-03-04 03:05:54 -0800</date>
            <delta_ts>2022-03-04 03:47:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237359-20220304120545.patch</filename>
            <type>text/plain</type>
            <size>142736</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU5MzJlYzljZTljYmY3
MTNhMGJkYTEyYTY4NWE3OGU3ZWEzYjIwNC4uNjYwMTRjOWViZTM5OWI2M2JlOGE3YTBmZmVlMDNj
MmI0NmZlNmM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlbiBjcmVhdGluZyBjYXB0dXJl
IHNvdXJjZXMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBhdCBXZWJLaXQgbGF5ZXIgdG8gYmV0dGVy
IGhhbmRsZSBjcmVhdGlvbiBvZiBtdWxpdHBsZSBzb3VyY2VzLgorICAgICAgICBTaW5jZSB3ZSBh
cmUgbm93IHNvbWV0aW1lcyBhbnN3ZXJpbmcgdG8gZ2V0VXNlck1lZGlhIGJ5IGNsb25pbmcgc291
cmNlcyBkaXJlY3RseSwKKyAgICAgICAgZml4IGEgYnVnIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
dG8gdXNlIHRoZSBwcmVzZXQgYXNwZWN0IHJhdGlvIHRvIGNvbXB1dGUgbWlzc2luZyB3aWR0aCBv
ciBoZWlnaHQuCisgICAgICAgIEludHJvZHVjZSBhIHdheSB0byBzaWxlbnRseSBmYWlsIGNhcHR1
cmUsIHRoaXMgaXMgdXNlZCBvbiBHUFVQcm9jZXNzIHNpZGUuCisKKyAgICAgICAgQ292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisK
IDIwMjItMDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEltcGxlbWVudCByZW1vdGUtaW5ib3VuZC1ydHAgcGFja2V0c0xvc3QKQEAgLTgzMiw3ICs4ODYs
NyBAQAogICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CiAgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCk6IEVuYWJsZSBiaWRpIHJlb3JkZXJpbmcu
CiAKLTIwMjItMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorMjAyMi0w
My0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1l
IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUgdG8gTWVkaWFTYW1wbGVBVkZP
YmpDOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzM1NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzZjZjNWY1ZGJkYTU1MzcwZTBh
YThkNGM3OTkxNjM1MGExZWM3YTQ3Li5hYTBlYmQ3MmZjODdmZDhiOWEyNzRkNTE5YmM2YWFhMDky
ZDJhNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTAyICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNvdXJjZXMg
YnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlcmUgYXBwcm9wcmlhdGUuCisgICAgICAg
IE1ha2UgdXNlIG9mIFBhZ2VJZGVudGlmaWVyIGluIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6CisgICAgICAgIC0gRm9yIG1pY3JvcGhvbmUsIGlmIHRoZXJlIGlzIGEgc291cmNlIHdpdGgg
YSBkaWZmZXJlbnQgZGV2aWNlLAorICAgICAgICAgIGZhaWwgdGhlIHNvdXJjZSBhcyB3ZSBhcmUg
bm90IHlldCBzdXBwb3J0aW5nIGNvbmN1cnJlbnQgY2FwdHVyZXMuCisgICAgICAgIC0gRm9yIGNh
bWVyYSwgaWYgdGhlcmUgaXMgYSBzb3VyY2Ugd2l0aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAg
ICAgICAgZmFpbCB0aGUgc291cmNlIGFzIHdlIGFyZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3Vy
cmVudCBjYXB0dXJlcyAob25seSBvbiBpT1MpLgorICAgICAgICAgIE90aGVyd2lzZSwgaWYgdGhl
cmUgaXMgYSBtYXRjaGluZyBzb3VyY2UsIGNsb25lIGl0IHNvIHRoYXQgd2UgcmVkdWNlIHRoZSBv
dmVyaGVhZAorICAgICAgICAgIG9mIGNyZWF0aW5nIGEgbmV3IHNvdXJjZSAoc2V0dGluZyB1cCBh
IGNhbWVyYSBjYW4gYmUgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbikuCisgICAgICAgIFdlIHNpbGVu
dGx5IGZhaWwgKG1lYW5pbmcgdGhlcmUgaXMgbm8gY29uc29sZSBsb2cgbWVzc2FnZSBmb3Igbm93
KSBidXQgYWRkIHJlbGVhc2UgbG9nZ2luZyB0byBkZXRlY3QgdGhpcyBjYXNlLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oOgorCiAyMDIyLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBbGxvdyB0byBwYXNzIHdlYnJ0YyB2aWRlbyBmcmFtZSBidWZmZXJzIHRocm91
Z2ggUmVhbHRpbWVNZWRpYVNvdXJjZSBiYXNlZCBwaXBlbGluZXMKQEAgLTgxNCw3ICs4NTIsNyBA
QAogICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZEdlbmVyYWxTdG9y
YWdlRGlyZWN0b3J5IGNvbnN0KToKICAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOiBEZWxldGVkLgogCi0yMDIyLTAzLTAyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKzIwMjItMDMtMDQgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBNZWRpYVNhbXBsZUFWRk9i
akM6OmNyZWF0ZUltYWdlU2FtcGxlIHRvIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJvbVBp
eGVsQnVmZmVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzczNTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDI1NjdhNWU2M2EwOTMwNTkyYjE0NGI2YTUw
OWI3Zjg2NjliMmEwMWUuLjVjMTNiNDQyNDk4ZTY5YTg2ZWQ2ODAyZjBiOWQ0NjgzMDQzNGQxMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNyw3ICsxMTM3LDYgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAogICAg
IHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFnZUdyb3VwLmgKLSAgICBwYWdl
L1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJbmxpbmVzLmgKICAgICBwYWdlL1BhZ2VP
dmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0xMjk0LDYgKzEy
OTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZv
cm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BPREludGVydmFsVHJlZS5oCiAgICAgcGxh
dGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCiAg
ICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZENvbnRleHQu
aAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA1MDZmMzM3
NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4wZmFhOGJiNTVhMTk4NWU5ODBmNzM2
YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBNZWRp
YURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWlu
dHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldERlZmF1bHRWaWRlb0Nv
bnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVz
dDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRp
YSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwg
aXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8g
cmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJl
YW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdU
Rk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwgKmRvY3Vt
ZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKIAogICAgIGlmICghZG9jdW1lbnQt
PnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7CiAgICAgICAgIHJlcXVl
c3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldERp
c3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJl
cXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNw
bGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVBy
aXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJN
ZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBl
OjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2Vz
dHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgpIH0sIFdURk1vdmUocHJvbWlzZSkp
OwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGE0NWQxOWU1
NDczOTk1NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQuLmZjMTc2MTU2ZGQwZmNkMjIxZGZiODI3
MjMxODE0MmRhNzBjZjA4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDY5LDQ0ICs0NjksMTIgQEAg
TWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3Rh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5E
b2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkK
LXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAg
IGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVkKCkpCi0g
ICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmlzU2Ft
ZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVy
ZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwotICAgIGlm
ICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogYWN0aXZlQXVkaW9Tb3VyY2Ug
PSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0
b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291
cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1l
bnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRh
aW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKLSAgICAg
ICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlk
ZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxp
dHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJj
ZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZh
Y3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNT
b3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1
bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29u
dGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwotICAg
ICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50Lmhp
ZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxs
Q2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkg
PT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjYXB0
dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAog
dm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDM0OWFkZjZiNDJjY2IzY2MxZDZjMDdhMmU1NDRj
MmJjNTkzYWNhNGIuLmFmYmNlN2E5ZjQ1NmY3ZDUwNzY4NzgwOWNiZTE2ZTExYmU0MGUyOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsOSArNjIsOSBAQCBzdGQ6Om9w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Zmlu
ZENhcHR1cmVEZXZpY2UoKQogICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOwogfQogCi1DYXB0dXJl
U291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK0NhcHR1
cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVh
bHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAiU3BlZWNoSUQiX3MsIHsgfSk7CisgICAgcmV0
dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVjaElE
Il9zLCB7IH0sIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2sm
JiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNr
LCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oCmluZGV4IGNhOTAzYjEyYjdmMjIxOTM1ZjVkZmExOThkYmIxYThjNGM3OWQzNDkuLmUz
MjhkYzNjN2NkMzBmNjk5MzAyN2NiN2Q5ODRjNjYxN2ZiOTZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZpbmRDYXB0
dXJlRGV2aWNlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGlt
ZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBQYWdlSWRlbnRpZmllcik7CiAjZW5k
aWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOGQyZWFmM2IxODNhNjZkNmRkODdkZjJk
YTJjMGMzYTMyYmRmZGViNC4uNTM2OTVjZDk0NTUxNmMxY2Q1ZTQwMWZlM2EwMDYxZGIxY2Q5OGIx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTIxOTEsNyArMjE5MSw2IEBAIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAotcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMDRmY2U3ZDRkNDU2YWUwNDI0ZDEwZjVhODMyMWYxMWNmMjc3
ZGM3My4uNTYyNmJiYzdkZmYzNjBkNWJhZGJhM2UwYTM2YTFiNDU0Mzg4ZmQyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4
MSw2ICsxMTgxLDcgQEAKIAkJNDE4RkNCRTcyNzE1QTI4RjAwRjk2RUNBIC8qIFJUQ1J0cENvZGVj
Q2FwYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFFMEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1
MjRBMEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyog
RnJhbWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSAqLzsgfTsKKwkJNDE5MkJCMTMyN0NGNjM4NjAwRjI5QTQ2IC8qIFBh
Z2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTlBQ0Y5MjFGOTdF
N0RBMDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2Vy
dmljZVdvcmtlckZldGNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUJDMkRE
MTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggKi87IH07CiAJCTQxOUJFNzU5
MUJDN0Y0MkIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlCRTc1MjFCQzdGM0RCMDBFMUM4NUIg
LyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5oICovOyB9OwpAQCAtMTM2Myw3ICsxMzY0LDYgQEAKIAkJ
NDZBNzhCMzQyNzk5QkQ3MTAwMTE1NEZFIC8qIFdvcmtlck9wdGlvbnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMUIxRDI2MjZGMThBNEIwMDg4MkRB
MiAvKiBXb3JrZXJPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDZBQUFBM0QyNUQzNjMyMDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRl
ckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkFBQUEzQTI1RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9GaWxlUmVhZGVyQ29jb2EuaCAqLzsgfTsK
IAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QjYzRjZCMUM2RThD
REYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8q
IFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI4NTkzQzI2
MTY3MjI3MDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjg1OTNBMjYxNjcyMEMwMDE5
RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovOyB9OwogCQk0NkI5NTE5NTIw
N0Q2MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjk1MThBMjA3RDYzMjgwMEE3RDJERCAvKiBB
YnN0cmFjdERPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2Qjk1MTk2MjA3RDYzM0EwMEE3RDJERCAvKiBBYnN0cmFjdEZyYW1lLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4RjIw
N0Q2MzJCMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MTA2LDcgKzYxMDYsNiBAQAogCQkwNzUzODYw
MDE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJh
Y2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAv
KiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzU3QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXNhZ2VJbmZvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vz
c2lvbk1hbmFnZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4NjAsNiAr
ODg1OSw3IEBACiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1
MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGcmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
OTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE5NDU2OTQyMDM1MDJBNTAwNEJBMjc3IC8qIEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTk0NTY5NjIwMzUwMkE2MDA0QkEyNzcgLyogQXBwbGljYXRpb25DYWNoZVJlc291
cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlB
Q0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtOTMxNSw3ICs5MzE1LDYgQEAKIAkJNDZBQUFBM0MyNUQzNjMxNDAw
QkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZBQ0Q4MTEyNzAxNjU2QTAwRUY4Q0VEIC8qIE5hdmlnYXRpb25SZXF1
ZXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlv
blJlcXVlc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2
RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAvKiBTY3Jp
cHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRCdWZmZXJTb3Vy
Y2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI5NTE4QTIwN0Q2
MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQWJzdHJhY3RET01XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZCOTUxOEMyMDdENjMyOTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUZyYW1lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Njk4LDcgKzE4Njk3LDYgQEAKIAkJCQk0QTRGNjU2RDFB
QTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oICovLAog
CQkJCTRBMEZGQTlGMUFBRjVFQTIwMDYyODAzQiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcCAqLywKIAkJCQk0QTBGRkFBMDFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oICovLAotCQkJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8sCiAJCQkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8sCiAJCQkJNDFCODc3NjAyM0RFMTA0
MjAwMzYzOEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmggKi8sCiAJCQkJNEE0
RjY1NkUxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5jcHAg
Ki8sCkBAIC0yNDI2OSw3ICsyNDI2Nyw2IEBACiAJCQkJOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgz
IC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAv
KiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJCQk0NkI2NTBEQjIyOTYyNjI3MDBGRDhB
QTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDREVGREEwRDI3MTIyOUJBMDA1NTU5QTcg
LyogUGFnZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNGQjE5QzdCNTJFMDBCM0M1QzEgLyogUGFn
ZU92ZXJsYXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3Zl
cmxheS5oICovLApAQCAtMzAxMTUsNiArMzAxMTIsNyBAQAogCQkJCTQxNzhFRjE2MjQxMjVCNkMw
MDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5jcHAgKi8sCiAJCQkJNDE3OEVGMTQyNDEyNUI2
QzAwMTkzQzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmggKi8sCiAJCQkJNDE4NEY1MTUxRUFGMDU5
ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIuaCAqLywKKwkJCQk0MTkyQkIxMjI3Q0Y2
MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQkyRUUwMkExRTFGNzMyNDI4
MDAwNkFGNzIgLyogUGFzdGVib2FyZC5jcHAgKi8sCiAJCQkJNEIyNzA4QzUwQUYxOUVFNDAwNjUx
MjdGIC8qIFBhc3RlYm9hcmQuaCAqLywKIAkJCQlGNDBEQUFFQjI1RDlGMjVFMDAxMUI0RkEgLyog
UGFzdGVib2FyZENvbnRleHQuaCAqLywKQEAgLTM2NTY3LDcgKzM2NTY1LDcgQEAKIAkJCQk5MzAy
QjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QTY3NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNUI4MUNDNDFGQUE0NEJDMDAzN0QxRTYgLyogUGFnZUhlYXBBZ2VudC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTkyQkIxMzI3Q0Y2Mzg2MDBGMjlBNDYgLyog
UGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERUZEQTBFMjcxMjI5QkEwMDU1
NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1MUYz
MzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENUM5
RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
SWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIFBhZ2VJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBQ
YWdlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UGFnZUlkZW50aWZpZXJUeXBlPjsKLQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRk
NWY4ZDI5NzU2M2VlMDI5YzQxM2U5Y2RhNzQ5NGM1ZmE0ZDhhZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50
aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFBhZ2VJZGVudGlmaWVyVHlw
ZSB7IH07Cit1c2luZyBQYWdlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UGFnZUlkZW50
aWZpZXJUeXBlPjsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaAppbmRleCBhNGQ0YjUyNWJlODk5YzI5MjE2
NDA5YzI4OTQ3NmUxOWY0NmU3NzFkLi5kMDc5NTZmNDlhYWNhOGI1YzM1MTlhMjk3OGI2OTIwYzg0
MWExNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAi
UGFnZUlkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw2ICs0MCw3
IEBAIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAgIE1lZGlhQ29uc3RyYWludHMgYXVk
aW9Db25zdHJhaW50czsKICAgICBNZWRpYUNvbnN0cmFpbnRzIHZpZGVvQ29uc3RyYWludHM7CiAg
ICAgYm9vbCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgeyBmYWxzZSB9OworICAgIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAg
ICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApAQCAtNDcsMTUgKzQ5LDIwIEBA
IHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAgICAgICBlbmNvZGVyIDw8IGF1ZGlvQ29u
c3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgdmlkZW9Db25zdHJhaW50czsKICAgICAgICAg
ZW5jb2RlciA8PCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQ7CisgICAgICAgIGVuY29kZXIgPDwg
cGFnZUlkZW50aWZpZXI7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhU3RyZWFtUmVxdWVzdD4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgewogICAgICAgICBNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdDsKLSAgICAg
ICAgaWYgKGRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlwZSkgJiYgZGVjb2Rlci5kZWNvZGUocmVx
dWVzdC5hdWRpb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnZpZGVvQ29u
c3RyYWludHMpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3QuaXNVc2VyR2VzdHVyZVByaXZpbGVk
Z2VkKSkKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0OwotCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWVzdC50eXBlKQorICAg
ICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykKKyAg
ICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpCisg
ICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5pc1VzZXJHZXN0dXJlUHJpdmls
ZWRnZWQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5wYWdlSWRlbnRp
ZmllcikpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVy
biByZXF1ZXN0OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZGUwZjFh
N2E0ZTYzNWExMzllNDgyOGI1NDdmZGNmMDY2MTliMzVhYi4uZTdkN2Y0YzcyMmUzMTZmNjI0NTVh
YjcyMjk2ZTg1NTY4YjAxMmIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ4LDggKzQ4
LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWFsdGltZU1lZGlhU291cmNlOjpSZWFs
dGltZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogbV9pZEhhc2hTYWx0KFdURk1vdmUoaGFzaFNh
bHQpKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBtX3BhZ2VJZGVudGlmaWVyKHBhZ2VJ
ZGVudGlmaWVyKQorICAgICwgbV9pZEhhc2hTYWx0KFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwg
bV9wZXJzaXN0ZW50SUQoV1RGTW92ZShkZXZpY2VJRCkpCiAgICAgLCBtX3R5cGUodHlwZSkKICAg
ICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQpAQCAtMjg3LDE2ICsyODgsMjAgQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjplbmQoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikKICAgICB9KTsK
IH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKK3ZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZChGYWlsU2lsZW50bHkgZmFpbFNpbGVudGx5
KQogewogICAgIEVSUk9SX0xPR19JRihtX2xvZ2dlciwgTE9HSURFTlRJRklFUik7CiAKLSAgICBt
X2NhcHR1cmVEaWRGYWlsZWQgPSB0cnVlOworICAgIGlmIChmYWlsU2lsZW50bHkgPT0gRmFpbFNp
bGVudGx5OjpObykKKyAgICAgICAgbV9jYXB0dXJlRGlkRmFpbGVkID0gdHJ1ZTsKIAogICAgIHN0
b3AoKTsKICAgICBmb3JFYWNoT2JzZXJ2ZXIoW10oYXV0byYgb2JzZXJ2ZXIpIHsKICAgICAgICAg
b2JzZXJ2ZXIuc291cmNlU3RvcHBlZCgpOwogICAgIH0pOworCisgICAgaWYgKGZhaWxTaWxlbnRs
eSA9PSBGYWlsU2lsZW50bHk6OlllcykKKyAgICAgICAgbV9jYXB0dXJlRGlkRmFpbGVkID0gdHJ1
ZTsKIH0KIAogYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzdXBwb3J0c1NpemVBbmRGcmFtZVJh
dGUoc3RkOjpvcHRpb25hbDxpbnQ+LCBzdGQ6Om9wdGlvbmFsPGludD4sIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJmZjQw
ZDUyNTExNDNiNjlhYjQ0Li42Njg0NTQ5NmYzMTA4YTBiZjg5Y2U5MmRjMTQ4NmIyMzBlNTU1MjIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291
cmNlT3JFcnJvcjsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQog
ICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdU
Rjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPgorICAgICwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgLCBwdWJsaWMgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAgLTIwMCw3ICsyMDEsOCBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90
aWZpZXImKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlRmFpbGVkKCk7CisgICAgZW51
bSBjbGFzcyBGYWlsU2lsZW50bHkgeyBObywgWWVzIH07CisgICAgdmlydHVhbCB2b2lkIGNhcHR1
cmVGYWlsZWQoRmFpbFNpbGVudGx5ID0gRmFpbFNpbGVudGx5OjpObyk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBjb25zdCB7IHJldHVy
biB0aGlzID09ICZzb3VyY2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291
cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTIyMSw4ICsyMjMsMTAgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1
cm4gZmFsc2U7IH0KIAorICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwg
U3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0pOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0
ID0geyB9LCBQYWdlSWRlbnRpZmllciA9IHsgfSk7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJy
ZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKQEAgLTI3Myw2ICsyNzcsNyBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1fZnJhbWVDb3VudCB7IDAgfTsKICNlbmRpZgogCisgICAgUGFnZUlk
ZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OwogICAg
IFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQwYzExMjA4
ZjUzYjFiOTIxYzM0YS4uMDA3NGQxNDQ5NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZiODZkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3Qg
TG9nZ2VyPiYmIGxvZ2dlciwgTmUKIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBh
dWRpb1NvdXJjZTsKICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBzb3VyY2Ug
PSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUo
YXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2Fs
dCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsK
ICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1h
a2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVk
aW8gc291cmNlOiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtODksOSArODksOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0
ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlmICh2aWRl
b0RldmljZSkgewogICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAg
IGlmICh2aWRlb0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2Ft
ZXJhKQotICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCks
ICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0gdmlkZW9D
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2
aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVl
c3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzb3VyY2UgPSBk
aXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3Zl
KHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWlu
dHMpOworICAgICAgICAgICAgc291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNh
bHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsK
IAogICAgICAgICBpZiAoIXNvdXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
bWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSB2
aWRlbyBzb3VyY2U6ICIsIHNvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2Vz
KGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgp
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRp
c3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwg
U3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAg
IGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3Bs
YXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3Qudmlk
ZW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChzb3Vy
Y2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJh
aW50cyhyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAg
ICAgICAgIGRpc3BsYXlEZXZpY2VJbmZvLmFwcGVuZCh7IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNv
dXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIHZv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBN
ZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291cmNlT3JF
cnJvciA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2
aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VP
ckVycm9yID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7
CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVT
b3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZh
bGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7
c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAK
QEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVz
ZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAg
aWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAg
ICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVh
dGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJl
cXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYg
c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3Qu
dmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZp
ZGVvRGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVz
c1Njb3JlKCksIGRldmljZX0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYxM2I1ODZh
NDhlOTY1NWFmZTYxZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJDYXB0
dXJlRGV2aWNlTWFuYWdlci5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRp
YVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5j
bHVkZSA8d3RmL1NIQTEuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNpbmdsZVNv
dXJjZUZhY3Rvcnk6OnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2Up
Ci17Ci0gICAgaWYgKG1fYWN0aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAgIHJldHVybjsK
LSAgICBpZiAobV9hY3RpdmVTb3VyY2UgJiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVjaW5nRGF0
YSgpKQotICAgICAgICBtX2FjdGl2ZVNvdXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAgbV9hY3Rp
dmVTb3VyY2UgPSAmc291cmNlOwotfQotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnVuc2V0
QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9h
Y3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBudWxscHRy
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYmEwZDkwM2U2Mjll
ZDhhYmVkZjdjZmNmMWVmOTY1MTEzZTM4OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTllMmFmODAz
YzI0Mjc2ZjZkNzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGFnZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEs
MjcgKzQyLDEwIEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2FwdHVyZVNv
dXJjZU9yRXJyb3I7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIAotY2xhc3MgV0VCQ09SRV9F
WFBPUlQgU2luZ2xlU291cmNlRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U2luZ2xl
U291cmNlRmFjdG9yeSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVT
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1bnNldEFjdGl2
ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVk
aWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogbV9hY3RpdmVTb3VyY2UgeyBudWxscHRy
IH07Ci19OwotCi1jbGFzcyBBdWRpb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNz
IEF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigp
ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRl
dmljZXMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTcGVha2VyRGV2aWNl
cyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spIGNvbnN0IHsgY2FsbGJhY2so
KTsgfQpAQCAtNzQsMjggKzU4LDIwIEBAIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0
b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2Vu
ZGlmCi17CitjbGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmll
cikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURl
dmljZU1hbmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5
KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5k
aWYKLXsKK2NsYXNzIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+RGlzcGxheUNhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1
YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlk
ZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxh
eUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggODJkZTI1OGJiYzdiMWExODZkY2I1NzBkY2EwNDQw
ZDhhYjQwMDllMS4uMzBiMGEyNThkM2FkMDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEzIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcm
JiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1v
dmUobmFtZSksIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1l
KSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKIHsKIH0K
IAogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6On5SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3Vy
Y2UoKnRoaXMpOwotI2VuZGlmCi19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OnByZXBhcmVUb1Byb2R1Y2VEYXRhKCkKLXsKLSAgICBBU1NFUlQoZnJhbWVSYXRlKCkpOwotCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsK
LSNlbmRpZgogfQogCiBjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2b2lkIFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8
aW50PiB3aWR0aCwgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVu
dFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJl
c2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAK
ICAgICBpZiAoIW1hdGNoLT5yZXF1ZXN0ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2ICs0MDEs
NyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVkU2l6ZUFu
ZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludAogICAgIGlmICghbWF0Y2gpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAg
ICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNo
LT5lbmNvZGluZ1ByZXNldCk7CiAgICAgc2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVzZXQtPnNp
emUpOwogICAgIHNldEZyYW1lUmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVkZmY3ZmQ0
NDhiNWYzOTVjZDE4YWIuLmRjMWMzZDVlYWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFlZjlmZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDExIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZW5zdXJlSW50cmluc2ljU2l6ZU1haW50YWluc0FzcGVjdFJhdGlv
KCk7CiAKKyAgICBjb25zdCBWaWRlb1ByZXNldCogY3VycmVudFByZXNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fY3VycmVudFByZXNldC5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhh
c2hTYWx0KTsKKyAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIHZv
aWQgcHJlcGFyZVRvUHJvZHVjZURhdGEoKTsKICAgICB2b2lkIHNldFNpemVBbmRGcmFtZVJhdGUo
c3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQ
cmVzZXQoVmlkZW9QcmVzZXQmKSB7IHJldHVybiB0cnVlOyB9CkBAIC05MCw2ICs5MSw3IEBAIHBy
aXZhdGU6CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlIjsgfQogI2VuZGlmCiAKKyAgICBSZWZQ
dHI8VmlkZW9QcmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJl
c2V0Pj4gbV9wcmVzZXRzOwogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0
YW1wczsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKaW5kZXggY2U2ZTAwMzU5N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkzZjQzYy4u
MWQ0Zjk5YmYyYjEzYWE2NmFmZmMyNDhiZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRp
bWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2U+JiYgc291cmNlLCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0
cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJ
REhhc2hTYWx0KCkgfSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0
cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkg
fSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSwgc291cmNlLT5wYWdlSWRl
bnRpZmllcigpKQogICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgICwgbV9zaG91bGRVc2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJmYWNlKQpA
QCAtOTUsMTIgKzk1LDE1IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6ZUFuZEZy
YW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNTRVJUKHNv
dXJjZVNpemUuaGVpZ2h0KCkpOwogICAgIEFTU0VSVChzb3VyY2VTaXplLndpZHRoKCkpOwogCisg
ICAgYXV0byogY3VycmVudFByZXNldCA9IG1fc291cmNlLT5jdXJyZW50UHJlc2V0KCk7CisgICAg
YXV0byBpbnRyaW5zaWNTaXplID0gY3VycmVudFByZXNldCA/IGN1cnJlbnRQcmVzZXQtPnNpemUg
OiBzb3VyY2VTaXplOworCiAgICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBzb3VyY2VT
aXplLndpZHRoKCkgKiBoZWlnaHQudmFsdWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7CisgICAg
ICAgIHdpZHRoID0gaW50cmluc2ljU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBpbnRy
aW5zaWNTaXplLmhlaWdodCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKCp3aWR0
aCk7CiAKICAgICBpZiAoIWhlaWdodCkKLSAgICAgICAgaGVpZ2h0ID0gc291cmNlU2l6ZS5oZWln
aHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBzb3VyY2VTaXplLndpZHRoKCk7CisgICAgICAgIGhlaWdo
dCA9IGludHJpbnNpY1NpemUuaGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50cmluc2ljU2l6
ZS53aWR0aCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0KTsKIAog
ICAgIGlmIChmcmFtZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwCmluZGV4IDU1NGY4ZGQyN2E0YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQyYjcuLjE2
NmE1MzA3NzMyYjExNWU0NWQ2MjA3MGVmYTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29h
L0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC04MywyMyArODMsMjMgQEAgc3RhdGlj
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZvckRldmljZShDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlIHQKICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
Tm9uZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBzd2l0Y2ggKGRl
dmljZS50eXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVl
bjoKICNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHJldHVybiBjcmVhdGUoUmVwbGF5S2l0Q2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92
ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlL
aXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbHNlCiAj
aWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0
Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUo
U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRz
KSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAg
cmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmlj
ZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCi0gICAgICAgIHJldHVybiBjcmVhdGUoQ0dEaXNwbGF5
U3RyZWFtU2NyZWVuQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSks
IGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJu
IGNyZWF0ZShDR0Rpc3BsYXlTdHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNl
LnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMs
IHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6V2luZG93OgogI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAo
U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gY3JlYXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2
aWNlLCBjb25zdHJhaW50cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
KTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpAQCAtMTE0
LDEyICsxMTQsMTIgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICByZXR1cm4geyB9Owog
fQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVh
dGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVyLCBjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2E6OmNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJp
bmc+JiYgY2FwdHVyZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgpKQogICAg
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVyLmVycm9y
KCkpIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFi
ZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2Fs
dCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwo
KSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8g
cmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAg
IGlmIChyZXN1bHQpCkBAIC0xMjksOCArMTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXIK
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAot
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlx
dWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNl
VHlwZUZvckRldmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2Fw
dHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2Fs
dCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291
cmNlKHNvdXJjZVR5cGVGb3JEZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZp
ZXIpCiAgICAgLCBtX2NhcHR1cmVyKFdURk1vdmUoY2FwdHVyZXIpKQogICAgICwgbV90aW1lcihS
dW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0
RnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXgg
MDQ1YzhjYzQzNWZjYjI5YzVkZWQwYjJmMWFlY2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0NzQ5MzRj
NWUwNTFhNzVhYjFkZDAzY2M1NGU3Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EuaApAQCAtMTEyLDE0ICsxMTIsMTQgQEAgcHVibGljOgogICAgICAgICBjb25z
dCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAgICAgfTsKIAotICAgIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENhcHR1cmVE
ZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYm
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwg
U3RyaW5nPiYmLCBjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCk7
CiAgICAgdm9pZCB1cGRhdGVGcmFtZVNpemUoKTsKIAogcHJpdmF0ZToKLSAgICBEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVh
bCB+RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSgpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
LmNwcAppbmRleCA0ODZiMGU0NDg2YTNjNjRlM2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2Li43M2Vj
ZDI0MDNiYzBmNDhiZGExOWQ1MTk5MDE0N2EzNTczYjdlYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTYsNyArNTYsNyBA
QCBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiAKIGNsYXNzIEdTdHJlYW1l
ckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7
CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBlMTNkNTNi
MmIyNGRjZTlkNTAyNmRhMjM3MjgzM2U0ZTQyMTNiMWUwLi42OWRhMjBiNjgwZTg1OWZkNzZmNjIw
YjkzM2E1ZWE2ZjBlYmJjNGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIGNsYXNz
IEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9D
YXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAg
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBy
ZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNl
LnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAg
fQpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBHU3RyZWFtZXJEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsK
IHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRvJiBtYW5hZ2Vy
ID0gR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAg
ICAgICAgcmV0dXJuIG1hbmFnZXIuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIERpc3Bs
YXlDYXB0dXJlRmFjdG9yeSYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFj
dG9yeSgpCiB9CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgZ2NoYXIqIHNvdXJjZUZhY3RvcnksIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgZGV2aWNlVHlwZSwgaW50IGZkKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQor
ICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCB7IH0pCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VV
bmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNlRmFjdG9yeSwgZGV2aWNlVHlwZSkp
CiAgICAgLCBtX2RldmljZVR5cGUoZGV2aWNlVHlwZSkKIHsKQEAgLTEzMCw3ICsxMzAsNyBAQCBH
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6
OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIHsgfSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxH
U3RyZWFtZXJWaWRlb0NhcHR1cmVyPihkZXZpY2UpKQogICAgICwgbV9kZXZpY2VUeXBlKENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGM3N2RjYTI3
YzNhYzdhMmM2MDYyNWEzMzE2MTIzYzc5OGU5NjQ0ODQuLjVjZjYyN2M5M2E0MmQ3ODExYmQ3MGIx
MTU4MGNkYjE3NmQ0YjYxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMg
Y29uc3QgZG91YmxlIHNfSHVtVm9sdW1lID0gMC4xOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05v
aXNlRnJlcXVlbmN5ID0gMzAwMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc19Ob2lzZVZvbHVtZSA9
IDAuMDU7CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVy
cm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8g
ZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVy
c2lzdGVudElEKGRldmljZUlEKTsKQEAgLTYzLDcgKzYzLDcgQEAgUmVmPE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlRm9yTW9j
a0F1ZGkKIH0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgeyB9KQogewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNl
R1N0cmVhbWVyLmNwcAppbmRleCA5Njc3NzFlZjBhYzg0OGE4NTFkOTJkYmUzNTljNWVjMWZkMDky
YzNjLi44ZGI3NjgwZTJiYTgyZjFjMjkwMmEyM2U2NjU4M2RkYTBiYmM4OWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVu
dGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7
CkBAIC0xNDcsNyArMTQ3LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBN
b2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OnNldHRpbmdzKCkKIH0KIAogTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVh
bWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkK
LSAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3Zl
KG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9
KQogewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2VJT1MuaAppbmRleCA2NjQ4NWUzMmI5NzRiMjZiNmRiNzBlZjMxZjQx
NTQ1MGMwYzYzMWZmLi5iMTA1YjNlMTBjODA5OTk4Y2ExMTU5NTY4MGE0YWU4NjYzN2IzYmJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGJlZ2luQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKCkgeyBiZWdp
bkludGVycnVwdGlvbigpOyB9CiAgICAgdm9pZCBlbmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24o
QXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUpIHsgZW5kSW50ZXJydXB0aW9uKCk7IH0KIAotICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZp
ZXIpIGZpbmFsOwogICAgIHZvaWQgYWRkRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2
ZXImKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9i
c2VydmVyJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0K
aW5kZXggNjcwNTkyZjM1MTY3ZjZiMDYxOTk2YjAxNjc0ZWI5YjU0ODQ0M2E1Mi4uYmIzMjlmZTBl
MWQ4NTdlZmI2MTcxNzRiYzQ5OTEzNmJhYzgzZTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VJT1MubW0KQEAgLTExNiwxMyArMTE2LDEzIEBAIHZvaWQgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3RvcnlJT1M6OnJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9i
c2VydmVyCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmds
ZXRvbigpLmRpc2FibGVBbGxEZXZpY2VzUXVlcnkoKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewogICAgIC8vIFdlIGVuYWJsZSBleGhhdXN0aXZlIHF1ZXJ5IHRvIGJlIHN1cmUgdG8gc3Rh
cnQgY2FwdHVyZSB3aXRoIHRoZSByaWdodCBkZXZpY2UuCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBzdG9wIHRoZSBhdXhpbGlhcnkgc2Vzc2lvbiBhZnRlciBzdGFydGluZyBjYXB0dXJlLgogICAg
IGlmIChtX29ic2VydmVycy5jb21wdXRlc0VtcHR5KCkpCiAgICAgICAgIEFWQXVkaW9TZXNzaW9u
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmVuYWJsZUFsbERldmljZXNRdWVyeSgp
OwotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Cisg
ICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRl
bnRpZmllcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggOGM0MTM4
ZTczMzhjZWZjNjkxNzM0MjA3NDQzYWE0OWU1NjJmOWZlZi4uNGJhZmI1ODkyOGFjZTAxZjNiYWU1
OTNlODA5Y2I0YmI4ZWIxYmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTU0
LDcgKzU0LDcgQEAgY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKIAogY2xhc3MgQVZWaWRl
b0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZh
dGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
VmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCkBAIC03MCw3ICs3MCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VTdXNwZW5kZWREaWRDaGFuZ2UoKTsKIAogcHJpdmF0
ZToKLSAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBTdHJpbmcmJiBp
ZCwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVy
ZURldmljZSosIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIp
OwogICAgIHZpcnR1YWwgfkFWVmlkZW9DYXB0dXJlU291cmNlKCk7CiAKICAgICB2b2lkIGNsZWFy
U2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDZlNzQzZTVhOTQ1
MTkzMDc3ZjJlNjBlMmUxYmQzNGNhY2ZmYjM1OTIuLjVhMGVhNzc4ZDUyOGQzYjE0YjlmN2Y4M2Y4
NzcwNGI4Nzg0NWM3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTEwOCwx
MyArMTA4LDEzIEBAIHB1YmxpYzoKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlRm9ybWF0
PiBmb3JtYXQ7CiB9OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewogICAgIEFWQ2FwdHVyZURldmljZSAqZGV2aWNlID0gW1BBTDo6Z2V0QVZDYXB0dXJlRGV2
aWNlQ2xhc3MoKSBkZXZpY2VXaXRoVW5pcXVlSUQ6aWRdOwogICAgIGlmICghZGV2aWNlKQogICAg
ICAgICByZXR1cm4geyAiTm8gQVZWaWRlb0NhcHR1cmVTb3VyY2UgZGV2aWNlIl9zIH07CiAKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNl
LCBXVEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGlkKSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7
CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJh
aW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0xMjQsOCArMTI0LDggQEAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBpZCwgU3Ry
aW5nJiYgaGFzaFNhbHQKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlKFdURk1vdmUoc291cmNlKSkpOwogfQogCi1BVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiBkZXZpY2UsIFN0
cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlKGRldmljZS5sb2NhbGl6ZWROYW1lLCBXVEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2Fs
dCkpCitBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJl
RGV2aWNlKiBkZXZpY2UsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UubG9jYWxpemVkTmFtZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdl
SWRlbnRpZmllcikKICAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZWaWRl
b0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAg
ICAgLCBtX2RldmljZShkZXZpY2UpCiAgICAgLCBtX3ZlcmlmeUNhcHR1cmluZ1RpbWVyKCp0aGlz
LCAmQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnZlcmlmeUlzQ2FwdHVyaW5nKQpAQCAtMTM3LDkgKzEz
Nyw2IEBAIEFWVmlkZW9DYXB0dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKQogewog
ICAgIEFMV0FZU19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIpOwogCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2Vu
ZGlmCiAgICAgW21fb2JqY09ic2VydmVyIGRpc2Nvbm5lY3RdOwogICAgIFttX2RldmljZSByZW1v
dmVPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAic3VzcGVuZGVkIl07
CiAKQEAgLTQ2OSwxMCArNDY2LDYgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBD
YXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURF
TlRJRklFUik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVT
b3VyY2UoKnRoaXMpOwotI2VuZGlmCi0KICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICBS
ZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlSW5wdXQ+IHZpZGVvSW4gPSBhZG9wdE5TKFtQQUw6OmFs
bG9jQVZDYXB0dXJlRGV2aWNlSW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoRGV2aWNlOmRldmljZSgp
IGVycm9yOiZlcnJvcl0pOwogICAgIGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwCmluZGV4IDlhMGIyOWVkYjFkMTc4MTU2NTQ1MGY1OGRlOTA5ZjY4Yzg3M2Vh
MDMuLmQyNGQ0YjMxZmM1NDIxMGVkOGQ1ODYwYWU2Nzc4MzZjYzU0MGE5ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTY2OCwyNyArNjY4LDI3IEBAIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShSZWY8
Q29yZUF1ZGlvQ2FwdHVyCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUo
c291cmNlKSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9
IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZp
Y2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsg
Ik5vIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UgZGV2aWNlIl9zIH07CiAKLSAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlE
KSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBkZXZpY2Ut
PmRldmljZUlEKCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgp
IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBkZXZpY2UtPmRldmljZUlEKCksIG51bGxwdHIsIHBhZ2VJ
ZGVudGlmaWVyKSk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGF1dG8gZGV2aWNl
ID0gQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYXVkaW9T
ZXNzaW9uRGV2aWNlV2l0aFVJRChXVEZNb3ZlKGRldmljZUlEKSk7CiAgICAgaWYgKCFkZXZpY2Up
CiAgICAgICAgIHJldHVybiB7ICJObyBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2UgZGV2aWNl
Il9zIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdU
Rk1vdmUoaGFzaFNhbHQpLCAwKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENv
cmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+
bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIp
KTsKICNlbmRpZgogICAgIHJldHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKHNvdXJjZSksIGNvbnN0cmFpbnRzKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cywgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgb3ZlcnJpZGVVbml0KQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGlu
ZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgQmFzZUF1ZGlvU2hhcmVkVW5pdCYg
b3ZlcnJpZGVVbml0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVV
bml0KSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgMCwgJm92ZXJyaWRlVW5pdCwgcGFnZUlkZW50aWZpZXIpKTsKICAgICByZXR1cm4gaW5pdGlh
bGl6ZUNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShzb3VyY2UpLCBjb25zdHJhaW50cyk7
CiB9CiAKQEAgLTc4MCw4ICs3ODAsOCBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0
b3J5Ojp3aGVuQXVkaW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhGdW5jdGlvbjx2bwogICAgIHJl
dHVybiBDb3JlQXVkaW9TaGFyZWRVbml0Ojp1bml0KCkud2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05v
dFJ1bm5pbmcoV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi1Db3JlQXVkaW9DYXB0dXJlU291cmNl
OjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJl
bCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IGNhcHR1cmVEZXZpY2VJRCwgQmFzZUF1ZGlv
U2hhcmVkVW5pdCogb3ZlcnJpZGVVbml0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK0NvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVB
dWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJp
bmcmJiBoYXNoU2FsdCwgdWludDMyX3QgY2FwdHVyZURldmljZUlELCBCYXNlQXVkaW9TaGFyZWRV
bml0KiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDog
UmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RG
TW92ZShsYWJlbCksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlk
ZW50aWZpZXIpCiAgICAgLCBtX2NhcHR1cmVEZXZpY2VJRChjYXB0dXJlRGV2aWNlSUQpCiAgICAg
LCBtX292ZXJyaWRlVW5pdChvdmVycmlkZVVuaXQpCiB7CkBAIC04MjEsMTkgKzgyMSwxMSBAQCB2
b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVUb1N0YXJ0UHJvZHVjaW5nRGF0
YSgpCiAKIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6On5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCkK
IHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VG
YWN0b3J5OjpzaW5nbGV0b24oKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQog
ICAgIHVuaXQoKS5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotCiAgICAgaW5pdGlhbGl6ZVRvU3RhcnRQcm9kdWNp
bmdEYXRhKCk7CiAgICAgdW5pdCgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggMzMwMzZlOTk2ZjY3M2U1MjcwMjM4NWI0MWUwYTkz
ZjE4MDM1MWY5OS4uMGVjNjcyYmY5ZjFjMzYwNTYyNDk3MGMyNDFmNmEwYTE1OTM1MmQ5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC01MSwxNSArNTEsMTUgQEAgY2xhc3Mg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM7CiAKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKLSAgICBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgQmFzZUF1
ZGlvU2hhcmVkVW5pdCYgb3ZlcnJpZGVVbml0KTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgQmFzZUF1
ZGlvU2hhcmVkVW5pdCYgb3ZlcnJpZGVVbml0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAg
Q01DbG9ja1JlZiB0aW1lYmFzZUNsb2NrKCk7CiAKIHByb3RlY3RlZDoKLSAgICBDb3JlQXVkaW9D
YXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYg
aGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCogPSBu
dWxscHRyKTsKKyAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCwg
QmFzZUF1ZGlvU2hhcmVkVW5pdCosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5Db3Jl
QXVkaW9DYXB0dXJlU291cmNlKCk7CiAgICAgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgdW5pdCgpOwog
ICAgIGNvbnN0IEJhc2VBdWRpb1NoYXJlZFVuaXQmIHVuaXQoKSBjb25zdDsKQEAgLTEyOSwxNCAr
MTI5LDE0IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5BdWRpb0NhcHR1
cmVVbml0SXNOb3RSdW5uaW5nKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6Ci0gICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopIG92ZXJyaWRlOwor
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRl
bnRpZmllcikgb3ZlcnJpZGU7CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIoKSBmaW5hbDsKICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4m
IHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgZmluYWw7CiB9OwogCi1pbmxpbmUgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK2lubGluZSBDYXB0dXJlU291cmNl
T3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKIHsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0
cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMpOworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50
cywgcGFnZUlkZW50aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hh
cmVkVW5pdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
QXVkaW9TaGFyZWRVbml0Lm1tCmluZGV4IDBkZDNkNzFjYWU3YTYzYjYzNzIwOGYyODM4MjIwZTY1
OWU0MjEzY2UuLjM0MjI3NDIzZDg5YjBhMDQ5ZGU2OWFjZTM1ZjhmMzhmM2QzMGMzNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9T
aGFyZWRVbml0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyB2b2lkIGFk
ZEh1bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwg
dWludDY0X3QKICAgICB9CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1
cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7
CiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rl
dmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwogICAgIEFTU0VSVChkZXZpY2UpOwpAQCAt
OTEsNyArOTEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAi
Tm8gbW9jayBtaWNyb3Bob25lIGRldmljZSJfcyB9OwogCiAgICAgTW9ja0F1ZGlvU2hhcmVkVW5p
dDo6c2luZ2xldG9uKCkuc2V0RGV2aWNlSUQoZGV2aWNlSUQpOwotICAgIHJldHVybiBDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFdURk1vdmUoZGV2aWNlSUQpLCAgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBNb2NrQXVkaW9TaGFy
ZWRVbml0OjpzaW5nbGV0b24oKSk7CisgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZUZvclRlc3RpbmcoV1RGTW92ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRv
bigpLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIE1vY2tBdWRpb1NoYXJlZFVuaXQmIE1vY2tBdWRp
b1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYy5oCmluZGV4IDk1Y2YzNWNkNGViMTMxOGQ4NjgzMjczYTVkMDk2YzczNjQ0NjA4YjAuLjQ4
Mjk1NzlkMmZhMTY1M2NlYzAwMTI3YzAzZjI0Y2EzMDk3NmNkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCkBAIC00NywxMyArNDcsMTMgQEAgY2xhc3MgSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDsKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmlu
YWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVy
ZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsK
KyAgICBzdGF0aWMgUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVGb3JNb2NrRGlz
cGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTsKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllcigpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggZmQxOTRlNjE5
YTQ0Yjg4MTFkY2IxN2UwMDQ2NzFmNDQ1MzVlN2E5Ny4uOWUyNWY2ZDJkNDMxM2Y5MGRlOWMwZmIx
ZDYwZGQ4OGIwOTc4NWQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbQpAQCAtNTIsNyArNTIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2
aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lz
dGVudElEKGRldmljZUlEKTsKQEAgLTYxLDcgKzYxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1vY2sgY2FtZXJhIGRldmljZSJfcyB9OwogI2VuZGlm
CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQp
KSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgaWYg
KGF1dG8gZXJyb3IgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAg
ICAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yLT5tZXNzYWdlKTsKQEAgLTcwLDEzICs3MCwx
MyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JF
cnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAK
LVJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6
OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKIH0KIAotTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZVZpZGVv
U291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0
KSkKK01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
YyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBw
YWdlSWRlbnRpZmllcikKICAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZSBSZW5kZXIgUXVldWUiLCBXb3JrUXVldWU6OlFPUzo6VXNlcklu
dGVyYWN0aXZlKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjLmNwcAppbmRleCBmMzY3ZGExYmQ1ODRmZTQ1OWRhMmI3NWYyMTUzZDNhZGI1OWY5NjVmLi4y
ZDhmODRkNGE3MzBlZjAxZDkwN2ZhNTk0ZjEyMjRkYmI2ZDhiOWM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCkBAIC00NSwxMCArNDUsMTAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5TWFjIGZp
bmFsIDogcHVibGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0g
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKTsKLSAgICAgICAgcmV0dXJuIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiAK
IHByaXZhdGU6CkBAIC01Nyw5ICs1Nyw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIERpc3BsYXlDYXB0
dXJlU291cmNlRmFjdG9yeU1hYyBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3Rvcnkg
ewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7Ci0gICAg
ICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogcHJpdmF0ZToKICAgICBEaXNwbGF5Q2FwdHVy
ZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIERpc3BsYXlD
YXB0dXJlTWFuYWdlckNvY29hOjpzaW5nbGV0b24oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBk
MDg5NGQ1ZDRmZTgyNWY4YjA2ZDZjOTI4YWFmMDk4NjM3N2NjNGIyLi45ZTg4YWIxZTU5ZTdhNzJi
NzhjNzU1ZDgyNDc4YmFiZjk5NjRjZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDUsNyArNDUs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFVU0UoR1NUUkVBTUVSKQotQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllcikKIHsK
ICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNjIsOCAr
NjIsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogfQogI2VuZGlmCiAKLU1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8s
IFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFn
ZUlkZW50aWZpZXIpCiAgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UgUmVuZGVyIFF1ZXVlIikpCiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6
OmN1cnJlbnQoKSwgdGhpcywgJk1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp0aWNrKQogewpAQCAt
NzcsOSArNzcsNiBAQCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbQogCiBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6fk1vY2tSZWFsdGltZUF1ZGlvU291cmNlKCkKIHsKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAog
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6c2V0dGluZ3MoKQpAQCAtMTM2LDcgKzEzMyw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OnNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGltZU1lZGlhU291cmNlU2V0
CiB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7
CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lv
bkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKICAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFy
ZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxh
eUFuZFJlY29yZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRleCBmMGRhZGY3MWQyZDAzNTM1YTY4
MmU1MGM3OWI5NDI0MmQwODY4ZmY4Li43YTBmNGQxNWI5NTNmMGEwOGU4MWZjYzQ5NWRmNWUzODJm
OWE3ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC00MiwxMyArNDIsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1
YWwgfk1vY2tSZWFsdGltZUF1ZGlvU291cmNlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCk7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHJlbmRlcihTZWNvbmRzKSA9IDA7CiAgICAgdm9pZCBzZXR0aW5nc0Rp
ZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDA5MmQyZmU2MTE5MzQ4Zjk4
NjVhODhmYjI3OTFlM2EyZDcxNGE0MDEuLjZkMTJjNmJmMDc4ZGEyZjU0ZWY0Njc1NjdhMGZkMzU1
YTA2OWQxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0xMDEsMTMgKzEwMSwx
MyBAQCBzdGF0aWMgaW5saW5lIFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZpY2Vz
KCkKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFZpZGVv
Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhKTsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6Q2FtZXJhLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJu
IHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgY2FtZXJhIGRldmljZSB3aXRoIGdpdmVuIHBlcnNpc3Rl
bnRJRCJfcyB9OwogCi0gICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3Jl
YXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFi
ZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4g
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVu
dElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNv
bnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMTE3LDcg
KzExNyw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogY2xhc3MgTW9ja0Rpc3BsYXlD
YXB0dXJlciBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJl
ciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0
dXJlRGV2aWNlJik7CisgICAgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNl
JiwgUGFnZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIGJvb2wgc3RhcnQoKSBmaW5hbDsK
QEAgLTEzNCw4ICsxMzQsOCBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyBtX3NldHRpbmdzOwogfTsKIAotTW9ja0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlD
YXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCi0gICAgOiBtX3NvdXJjZShNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwg
U3RyaW5nIHsgfSkpCitNb2NrRGlzcGxheUNhcHR1cmVyOjpNb2NrRGlzcGxheUNhcHR1cmVyKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CisgICAgOiBtX3NvdXJjZShNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9j
a0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5n
IHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgfSwgcGFnZUlkZW50aWZpZXIpKQogewogfQog
CkBAIC0xNzcsNyArMTc3LDcgQEAgSW50U2l6ZSBNb2NrRGlzcGxheUNhcHR1cmVyOjppbnRyaW5z
aWNTaXplKCkgY29uc3QKIAogY2xhc3MgTW9ja1JlYWx0aW1lRGlzcGxheVNvdXJjZUZhY3Rvcnkg
OiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAoIU1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2UudHlwZSgp
LCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0
byBmaW5kIG1vY2sgZGlzcGxheSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsK
QEAgLTE4NiwxMSArMTg2LDExIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6V2luZG93OgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgICAgIHJldHVybiBEaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoVW5pcXVlUmVmPERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OkNhcHR1cmVyPihtYWtlVW5pcXVlUmVmPE1vY2tEaXNwbGF5Q2FwdHVyZXI+KGRl
dmljZSkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAg
ICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxE
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlz
cGxheUNhcHR1cmVyPihkZXZpY2UsIHBhZ2VJZGVudGlmaWVyKSksIGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZWxpZiBVU0UoR1NUUkVB
TUVSKQogICAgICAgICAgICAgcmV0dXJuIE1vY2tEaXNwbGF5Q2FwdHVyZVNvdXJjZUdTdHJlYW1l
cjo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICNlbHNl
Ci0gICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQo
KSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKQEAgLTIxMSwy
MCArMjExLDE1IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFj
dG9yeSBmaW5hbCA6IHB1YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlw
ZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwogICAgICAgICBp
ZiAoIU1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNp
c3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2UucGVy
c2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sg
bWljcm9waG9uZSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKIAotICAgICAg
ICByZXR1cm4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRl
dmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50
aWZpZXIpOwogICAgIH0KIHByaXZhdGU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2
b2lkIHNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFsIHsg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNvdXJj
ZShzb3VyY2UpOyB9Ci0gICAgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmds
ZXRvbigpLnVuc2V0QWN0aXZlU291cmNlKHNvdXJjZSk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291
cmNlKiBhY3RpdmVTb3VyY2UoKSBmaW5hbCB7IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
RmFjdG9yeTo6c2luZ2xldG9uKCkuYWN0aXZlU291cmNlKCk7IH0KLSNlbmRpZgogICAgIENhcHR1
cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1
cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIoKTsgfQogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3Bl
YWtlckRldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c3BlYWtlckRldmljZXMoKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggNjBj
NWE4Y2Q2ZDUwZTkwMGU0YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZC4uM2NmNzQ2MGM4MGUzYmUxZDVi
YTNmMGNlZDdjMTliMjVkZjI5YWJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTUwLDcgKzUwLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlE
KTsKQEAgLTU5LDcgKzU5LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0
dXJuIHsgIk5vIG1vY2sgY2FtZXJhIGRldmljZSJfcyB9OwogI2VuZGlmCiAKLSAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNl
SUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpKTsK
ICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJh
aW50cykpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTczLDggKzczLDggQEAgc3RhdGljIEhh
c2hTZXQ8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UqPiYgYWxsTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UoKQogICAgIHJldHVybiB2aWRlb1NvdXJjZXM7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCitN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1v
dmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50
aWZpZXIpCiAgICAgLCBtX2VtaXRGcmFtZVRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywg
Jk1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpnZW5lcmF0ZUZyYW1lKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CkBAIC0yMzksNyArMjM5LDYgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c3RhcnRDYXB0dXJlVGltZXIoKQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewotICAgIHByZXBhcmVUb1Byb2R1Y2VEYXRhKCk7
CiAgICAgc3RhcnRDYXB0dXJlVGltZXIoKTsKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDkzNWM2ZGRlY2I4ZDQ1OGM5MTY2ZjViMjY3
YWM1YzQ5NGZmMzQzYjUuLmZjNWZjN2FhMWNiNzZmYTZkOTczOTA1ODY1YmZhZmVjZWRlMzZiYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0Owog
CiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UoKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldElzSW50ZXJydXB0ZWQoYm9vbCk7CkBAIC01Niw3
ICs1Niw3IEBAIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIoKSBjb25zdDsK
IAogcHJvdGVjdGVkOgotICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2FtcGxl
QnVmZmVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGFkMDc1ODIx
NzUxMDEzNTdlMDU1YjExNDI2ODg5MmZhN2M3M2M5NDYuLjU4MDExMjI0ZDA1ZWFmOTI5NTNlNzhi
ZjE5ZWMyMjY3NGFmOTYwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0yODks
NyArMjg5LDc1IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5KCkKICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgbWVkaWFDb25zdHJhaW50cywg
Ym9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWljcm9waG9uZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBt
ZWRpYUNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sKKyAgICBh
dXRvIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIG1lZGlhQ29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKKyAg
ICBpZiAoIXNvdXJjZU9yRXJyb3IpCisgICAgICAgIHJldHVybiBzb3VyY2VPckVycm9yOworCisg
ICAgYXV0byYgcGVyUGFnZVNvdXJjZXMgPSBtX3BhZ2VTb3VyY2VzLmVuc3VyZShwYWdlSWRlbnRp
ZmllciwgW10geyByZXR1cm4gUGFnZVNvdXJjZXMgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisK
KyAgICAvLyBGSVhNRTogU3VwcG9ydCBtdWx0aXBsZSBtaWNyb3Bob25lcyBzaW11bHRhbmVvdXNs
eS4KKyAgICBpZiAocGVyUGFnZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZSkgeworICAgICAgICBh
dXRvJiBtaWNyb3Bob25lU291cmNlID0gKnBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2U7
CisgICAgICAgIGlmIChtaWNyb3Bob25lU291cmNlLnBlcnNpc3RlbnRJRCgpICE9IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSAmJiAhbWljcm9waG9uZVNvdXJjZS5jYXB0dXJlRGlkRmFpbCgpKSB7Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJTdG9wcGluZyBtaWNyb3Bob25l
IHNvdXJjZSBhcyBuZXcgc291cmNlIGlzIHVzaW5nIGEgZGlmZmVyZW50IGRldmljZS4iKTsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgZmFpbCB0aGUgY2FwdHVyZSBp
biBhIHNwZWNpZmljIHdheSB0aGF0IHNob3dzIGEgc3BlY2lmaWMgY29uc29sZSBsb2cgbWVzc2Fn
ZS4KKyAgICAgICAgICAgIG1pY3JvcGhvbmVTb3VyY2UuY2FwdHVyZUZhaWxlZChSZWFsdGltZU1l
ZGlhU291cmNlOjpGYWlsU2lsZW50bHk6Olllcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBh
dXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgcGVyUGFnZVNvdXJjZXMu
bWljcm9waG9uZVNvdXJjZSA9IFdlYWtQdHIgeyBzb3VyY2UuZ2V0KCkgfTsKKyAgICByZXR1cm4g
c291cmNlOworfQorCitzdGF0aWMgYm9vbCBjYW5DYXB0dXJlRnJvbU11bHRpcGxlQ2FtZXJhcygp
Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gZmFsc2U7CisjZWxzZQor
ICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZUNhbWVyYVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBtZWRpYUNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sKKyAg
ICBhdXRvJiBwZXJQYWdlU291cmNlcyA9IG1fcGFnZVNvdXJjZXMuZW5zdXJlKHBhZ2VJZGVudGlm
aWVyLCBbXSB7IHJldHVybiBQYWdlU291cmNlcyB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsKKyAg
ICBpZiAocGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlKSB7CisgICAgICAgIGF1dG8mIGNhbWVy
YVNvdXJjZSA9ICpwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2U7CisgICAgICAgIC8vIEZJWE1F
OiBPcHRpbWl6ZSBtdWx0aXBsZSBjb25jdXJyZW50IGNhbWVyYXMuCisgICAgICAgIGlmIChwZXJQ
YWdlU291cmNlcy5jYW1lcmFTb3VyY2UtPnBlcnNpc3RlbnRJRCgpID09IGRldmljZS5wZXJzaXN0
ZW50SWQoKSAmJiAhY2FtZXJhU291cmNlLmNhcHR1cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAg
IC8vIFdlIGNhbiByZXVzZSB0aGUgc291cmNlLCBsZXQncyBkbyBpdC4KKyAgICAgICAgICAgIGF1
dG8gc291cmNlID0gY2FtZXJhU291cmNlLmNsb25lKCk7CisgICAgICAgICAgICBpZiAobWVkaWFD
b25zdHJhaW50cykgeworICAgICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBzb3VyY2UtPmFwcGx5
Q29uc3RyYWludHMoKm1lZGlhQ29uc3RyYWludHMpOworICAgICAgICAgICAgICAgIGlmIChlcnJv
cikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3ItPm1lc3NhZ2UpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGF1dG8gc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWVkaWFDb25zdHJhaW50cywgcGFnZUlkZW50
aWZpZXIpOworICAgIGlmICghc291cmNlT3JFcnJvcikKKyAgICAgICAgcmV0dXJuIHNvdXJjZU9y
RXJyb3I7CisKKyAgICBpZiAoIWNhbkNhcHR1cmVGcm9tTXVsdGlwbGVDYW1lcmFzKCkpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIGNhbWVyYVNvdXJjZSA9IHBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJj
ZS5nZXQoKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiU3RvcHBp
bmcgY2FtZXJhIHNvdXJjZSBhcyBuZXcgc291cmNlIGlzIHVzaW5nIGEgZGlmZmVyZW50IGRldmlj
ZS4iKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgZmFpbCB0aGUg
Y2FwdHVyZSBpbiBhIHdheSB0aGF0IHNob3dzIGEgc3BlY2lpZmMgY29uc29sZSBsb2cgbWVzc2Fn
ZS4KKyAgICAgICAgICAgIGNhbWVyYVNvdXJjZS0+Y2FwdHVyZUZhaWxlZChSZWFsdGltZU1lZGlh
U291cmNlOjpGYWlsU2lsZW50bHk6Olllcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRv
IHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgc291cmNlLT5tb25pdG9yT3Jp
ZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICBwZXJQYWdlU291cmNlcy5jYW1l
cmFTb3VyY2UgPSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07CisgICAgcmV0dXJuIHNvdXJjZTsK
K30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNl
R1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENy
ZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nv
bm5lY3Rpb25Qcm94eS0+d2lsbFN0YXJ0Q2FwdHVyZShkZXZpY2UudHlwZSgpKSkKICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCAiUmVxdWVzdCBpcyBub3QgYWxsb3dlZCJf
cywgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCk7CkBA
IC0yOTksMTYgKzM2NywxNCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIENhcHR1cmVT
b3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7
CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25l
OgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9y
RXJyb3IgPSBjcmVhdGVNaWNyb3Bob25lU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBzb3Vy
Y2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9D
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChzb3VyY2VPckVycm9yKQotICAg
ICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25pdG9yT3JpZW50YXRpb24o
bV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IGNyZWF0ZUNh
bWVyYVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlk
ZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJl
U291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRp
Zmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTcGVha2VyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDY1OGI1
YjdkMTg4NmM0ODMwNmYxODAzYTM4ODA0Yjk1M2Q4NTRmNTQuLmQzYWIwZGFhZmE1YWE2YjMxM2Nm
MjhmNzdkZmNjNzI2YmQyNzlkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTg0LDcg
Kzg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdXNpbmcgQ3JlYXRlU291cmNlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52
YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29y
ZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2
b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VD
YWxsYmFjayYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJh
bWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7CiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKQEAgLTk0LDExICs5NCwyMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbik7CiAKKyAgICBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVNaWNyb3Bob25lU291cmNlKGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYW1lcmFTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworCiAgICAgY2xhc3MgU291cmNlUHJv
eHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94
eT4+IG1fcHJveGllczsKICAgICBVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rp
b25Qcm94eTsKICAgICBXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25O
b3RpZmllciB7IDAgfTsKKworICAgIHN0cnVjdCBQYWdlU291cmNlcyB7CisgICAgICAgIFdlYWtQ
dHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gbWljcm9waG9uZVNvdXJjZTsKKyAgICAg
ICAgV2Vha1B0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjYW1lcmFTb3VyY2U7Cisg
ICAgfTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBQYWdlU291cmNlcz4g
bV9wYWdlU291cmNlczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDdiY2E0NTNlNzM3NTM3NjlhN2ZjNThlMmU3MDczMmI4NTdkOWI4Mjku
LmVkN2Y0ZGFiMTZiZWE3OWI0MjFkOTY2MGVlMWU0OWMzZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1
Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VH
UFVQcm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENv
bnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3Ms
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBW
ZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXpl
IHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5jCisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hT
YWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBz
aG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50
cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdl
YkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBk
b3VibGUgZnJhbWVSYXRlKSBBc3luYwogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBmNWE2MTY0ZTgzMWM5Njg5OTVlMzMyZWYwMjY5
YzBiOGMxOGNmOWYyLi44OGZkYTg0OTE0NjBiNzc3NTBkN2RhMzUwMWJlYTA1ZTBmMDMzMDc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTM5LDEzICsz
OSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3Jl
YXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1h
bmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYg
Y2FwdHVyZURldmljZSwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJl
RGV2aWNlLCBwYWdlSWRlbnRpZmllcikpOwogfQogCi1TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2Vy
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQotICAgIDogV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNh
cHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBj
YXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCB7IH0sIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNzhiZmU1YjY0YjIwZGQwOTAx
Yjk5YWE3M2MzNWM5MDcwMjFkOWIwNi4uOWFmZmYyODAzNWEwZDAzMjVmMjZjMGQyZTljNmRhZGRh
ZWJhNWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTQ2
LDkgKzQ2LDkgQEAgY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwogbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OwogICAgIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
IDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
OworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKIAogICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
cmVtb3RlU291cmNlU3RvcHBlZCgpOwogCiBwcml2YXRlOgotICAgIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3Rh
cnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IDY4ZGMxMTVmMTY5ZjE5ZWY4OWY2NmZlNWM4
ZjI0MWM4NWI5NzhkNzEuLmUzYTcwNGUxYmMyMjZlZDQ4MWEwZDc1ZDE4NzA1ZmEzYjlhNTI5MmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0CiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOwor
ICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlLCBzb3VyY2UucGFn
ZUlkZW50aWZpZXIoKSkpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDJmZGRiODQ5NTJkMDg4OWE4ODI1NGU0NzdiZmYyMzIwYjYwZjAx
ZGMuLmUyNTk2Mzk2NmQ1Yjk3MGE0OGI4ZjE2OThkMDc0YWYzNmFiYzkwZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA5OTYsMTIgKzEwOTk2LDEyIEBA
IFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRp
bWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JF
cnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OwogCiAgICAgaWYg
KHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07
CisgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURl
dmljZSwgbV93ZWJQYWdlSUQpIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJl
dHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSkgfTsKKyAg
ICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1f
d2ViUGFnZUlEKSB9OwogI2Vsc2UKLSAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICBy
ZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlKCpjYXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJRCk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKaW5k
ZXggYjgxZGJiMjNlZmY0NTMzYTA3MjU1Nzg4YTI2ZWVhN2MzM2UwNWFlMy4uOWYwOWY2MjI2Mjgy
NjgzYzI2MGI1MzQ1MTZmOTgwOGRhNGI3YzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0yMDgsOSArMjA4LDkgQEAg
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VT
YW5kYm94RXh0ZW5zaW9ucygpCiAKICNlbmRpZgogCi12b2lkIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1
dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGlt
ZU1lZGlhU291cmNlKGRldmljZSk7CisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLCBwYWdlSWRl
bnRpZmllcik7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TWVkaWEsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOwogICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKaW5kZXggMTg4NDc3MWE4
N2I3ZjY2OTkxOTBhNWRlNTY5MTE2Y2M0N2Y4NjFiMy4uNjIzNDQ4ZmJhOWRkN2Y4NWFiNzMzNTkw
NmQ0OGJhOTY5NDhmMzM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8v
IE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCi0g
ICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGNyZWF0ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGRlbGV0
ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbgppbmRleCAyMzgyZGYxZDhlNTlmMGE4ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFk
Li5hYjVlOThlNDk3MTlhYWRlZDVlOTFiYmQzNzM4MDdlMTBkMDE3M2FlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAog
bWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBO
b3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2Up
CisgICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKICAgICBEZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBTdGFydChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAgICBTdG9wKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCmluZGV4IDJjZTk1NGY0OGJmZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5
N2UxMzguLmYxNzBkYjA4ODEzZTcxZWU3YWI0NTZmMTFjZDUwZmMxZTBkM2M5YTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQzLDI5ICs0MywyNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNv
bnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50
aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBt
YW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5
UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1
cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDog
UmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RG
TW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpKQorUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
IG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lz
dGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9w
cm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0
cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7CiAgICAgQVNTRVJUKGRldmljZS50
eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSk7Ci0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRp
ZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlE
SGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1
Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2Fw
YWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90
ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVy
cm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYs
IGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1f
cHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtODcsMTAgKzg0LDYgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAg
ICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVz
KFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCkBAIC0xMTks
OSArMTEyLDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltCiAKIHZvaWQgUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6aGFzRW5kZWQoKQogewotICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKLSAg
ICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7Ci0gICAgbV9tYW5hZ2VyLnJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7Cisg
ICAgaWYgKG1fcHJveHkuaGFzRW5kZWQoKSkgeworICAgICAgICBtX21hbmFnZXIucmVtb3ZlU291
cmNlKGlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIH0KIH0KIAogdm9pZCBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCkBAIC0xMzAsNyArMTI0
LDcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCiAg
ICAgaGFzRW5kZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0
dXJlRmFpbGVkKCkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6bWFya0FzQ2FwdHVy
ZUZhaWxlZCgpCiB7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpOwog
ICAgIGhhc0VuZGVkKCk7CkBAIC0xNDksMTQgKzE0Myw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVj
dGlvCiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAg
ICAgLy8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwg
bGV0J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5
LnJlc2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmgKaW5kZXggYTNjNDFkYzA0YWFjZTVkZDRlYTczOWE2MGYyYTUzMGU1ZTNkMDc1ZS4u
OGI0NTIyNjk4YmYwMjBmNmFhMjQxYTk4MWIxNWYxZjFhY2UxYzYyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2Ug
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVh
dGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRp
YyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAg
ICAgflJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5
LmlkZW50aWZpZXIoKTsgfQpAQCAtNjUsMTMgKzY1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFw
cGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYg
ZXJyb3JNZXNzYWdlKSB7IG1fcHJveHkuYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZh
aWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOyB9CiAKICAgICB2b2lkIGNh
cHR1cmVTdG9wcGVkKCk7Ci0gICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CisgICAgdm9p
ZCBtYXJrQXNDYXB0dXJlRmFpbGVkKCk7CiAKICAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOwogICAg
IHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2Uo
dmFsdWUpOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAv
LyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5h
bCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZS5jcHAKaW5kZXggYzU1MzM1MzNhYzU1YjFmNWMyYWRhZWUxODg5NmYzNjE0ZjdjZWUzNS4uMzdh
MmM3MTc1ZjIwM2Y5MmVkYThhNDdlMDU3OTM5YjkwNjg1ZTA4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZS5jcHAKQEAgLTM4LDE3ICszOCwxNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKQorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
bWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUo
aGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRp
ZmllcikpOwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIG1h
bmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlS
ZWYoKSk7CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIHJldHVy
biBzb3VyY2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRp
YVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNl
LmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpKQorUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1f
cHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25z
dHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewpAQCAtNTcsNyArNTcsNyBAQCBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbgogCiB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIG1fcHJveHkuY3JlYXRlUmVtb3Rl
TWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYg
c2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgeworICAg
IG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdl
SWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wg
c3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBj
YXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgewogICAgICAgICBpZiAoIXN1Y2NlZWRl
ZCkgewogICAgICAgICAgICAgbV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDAsOSArMTAwLDEwIEBAIHZvaWQgUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJl
YWx0aW1lTWVkCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpoYXNFbmRlZCgp
CiB7Ci0gICAgbV9wcm94eS5oYXNFbmRlZCgpOwotICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2Uo
aWRlbnRpZmllcigpKTsKLSAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIo
KS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICBpZiAobV9wcm94eS5oYXNFbmRlZCgp
KSB7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICAg
ICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlk
ZW50aWZpZXIoKSk7CisgICAgfQogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZTo6Y2FwdHVyZVN0b3BwZWQoKQpAQCAtMTExLDcgKzExMiw3IEBAIHZvaWQgUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCiAgICAgaGFzRW5kZWQoKTsKIH0KIAot
dm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQordm9pZCBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6Om1hcmtBc0NhcHR1cmVGYWlsZWQoKQogewogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKICAgICBoYXNFbmRlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5oCmluZGV4IDUyZjUzNWIzZDczZDY4OTc3OGI5NWYxOTQ3Zjhl
NzJkODI5OGQ2YTEuLjI5NjEyNjZhOTIwMzM3NjY0NzhkZWEwMWRiYzBlMmUxMjcwMDdmZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2UKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0
cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50aWZp
ZXIoKTsgfQpAQCAtNTksMTMgKzU5LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5Q29uc3Ry
YWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNz
YWdlKSB7IG1fcHJveHkuYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0
cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOyB9CiAKICAgICB2b2lkIGNhcHR1cmVTdG9w
cGVkKCk7Ci0gICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CisgICAgdm9pZCBtYXJrQXND
YXB0dXJlRmFpbGVkKCk7CiAKICAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdl
YkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEg
bWV0YWRhdGEpIHsgdmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlLCBtZXRhZGF0YSk7IH0KICAg
ICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdl
KHZhbHVlKTsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2lu
Z0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA0YTI5NGQ4
YzU0MTcxZTZlMTAwNWIzYTQwNjY1NmIyNmMxNTljMDRkLi5iZTc1NDU1ODE4YjUzNWU1ZWYyZDZj
ODg1NDYxNzQwMGIzYzBjOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApA
QCAtNjgsOSArNjgsOSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3Rv
cFByb2R1Y2luZ0RhdGEoKQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIg
fSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0ZUNh
bGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBzaG91bGRVc2VSZW1vdGVG
cmFtZSkKIHsKLSAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFz
aFNhbHQsIG1fY29uc3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lKSwgV1RGTW92ZShjYWxs
YmFjaykpOworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNo
U2FsdCwgbV9jb25zdHJhaW50cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlmaWVy
KSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cywgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21w
bGV0aW9uSGFuZGxlcikKQEAgLTk5LDkgKzk5LDE0IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZVByb3h5OjpmYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYK
ICAgICAgICAgY2FsbGJhY2tzLnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5
Q29uc3RyYWludHNFcnJvciB7IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6aGFzRW5kZWQoKQorYm9vbCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHk6Omhhc0VuZGVkKCkKIHsKKyAgICBpZiAobV9pc0VuZGVkKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAgIGNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsg
bV9pZGVudGlmaWVyIH0sIDApOworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nKT4mJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAppbmRleCAw
M2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYyLi4yMDZmNmY5MTc4YWM5Yjg0
YTM2N2YwMjcwNmEwNjNlNDRkNzU4ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5o
CkBAIC01MywxMyArNTMsMTMgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzczsgfQog
CiAgICAgdXNpbmcgQ3JlYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2ws
IFN0cmluZyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6Vmlk
ZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNy
ZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYsIENyZWF0ZUNhbGxiYWNrJiYsIGJv
b2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CisgICAgdm9pZCBjcmVhdGVSZW1vdGVN
ZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRl
Q2FsbGJhY2smJiwgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9IGZhbHNlKTsKIAogICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50
c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2Up
OwogICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7CiAgICAgCi0gICAgdm9pZCBoYXNFbmRlZCgpOworICAgIGJvb2wgaGFzRW5k
ZWQoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3Ry
YWludHNIYW5kbGVyJiYpOwpAQCAtNzUsMTIgKzc1LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlk
ZW50aWZpZXI7CiAKICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7
CiAgICAgRGVxdWU8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50
c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAgYm9vbCBt
X2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4g
bV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgYm9vbCBtX2lzRW5k
ZWQgeyBmYWxzZSB9OwogfTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGRldmljZSwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRl
eCBkMmQyNGFiYWI5ZWMzNGEwZGEyMmViNjVhOGFkM2NiNWYwMDdkOTdjLi43NDliOGJiMmM5ZTIy
NTczMDQzNTU5ZTczOTZkNzNkYWZjNDYyMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBA
IC00NSwyOSArNDUsMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgUEFM
OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdl
ciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
YW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3Zl
KG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29w
eVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291
cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3Vy
Y2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwg
U3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVu
dGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgq
dGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5n
cywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBm
cmFtZVJhdGUpIG11dGFibGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
ZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBh
dXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRv
IHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQp
IHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTMsMTEgKzg5LDYgQEAgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0byog
Y29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7
CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgp
ID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0
QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiYgY2FwYWJpbGl0aWVzKQpAQCAtMTQ3LDkgKzEzOCwxMCBAQCBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRp
ZXMoKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAg
ICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlm
aWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92
ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsKKyAg
ICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBtX21h
bmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmll
cigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVy
ZVN0b3BwZWQoKQpAQCAtMTU4LDcgKzE1MCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQogICAgIGhhc0VuZGVkKCk7CiB9CiAKLXZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit2b2lkIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6Om1hcmtBc0NhcHR1cmVGYWlsZWQoKQogewogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKICAgICBoYXNFbmRlZCgpOwpAQCAtMjA0LDE0ICsxOTYs
NiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9u
RGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0VuZGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKGRldmljZVR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgdGhpcyAhPSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuYWN0
aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFu
Y2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVk
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVj
dGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMzJhOGExMTU0NjRiMGI2NWI3ZWFm
M2JmMGRiODE3ZmUxYjhmOWE5Ny4uNTE3NjM4NjI4NWJiNmY0MDBhNzAwMGVjOGFiNjdmOThkYTRk
MDBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6
OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0K
QEAgLTY0LDEzICs2NCwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CiAKICAgICB2b2lkIGNhcHR1cmVTdG9w
cGVkKCk7Ci0gICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CisgICAgdm9pZCBtYXJrQXND
YXB0dXJlRmFpbGVkKCk7CiAKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6
Ok1lZGlhU2FtcGxlJiwgV2ViQ29yZTo6SW50U2l6ZSwgV2ViQ29yZTo6VmlkZW9TYW1wbGVNZXRh
ZGF0YSk7CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlN
dXRlZENoYW5nZSh2YWx1ZSk7IH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
KTsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAKaW5kZXggZjY4N2Q4ZDlmYmUwMzAyMzdmNGZjYTQwNzMwYTFhNDVi
ZDRjMDRjMy4uYjhiMTIzODUxOTA1ODgyZDFhMTZkYTk1ODRlNjExMjlkNjUwNmFmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCkBAIC0xNDYsMTEgKzE0NiwxMSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpjYXB0dXJlRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aQogICAgICAgICByZXR1cm47CiAKICAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFtd
KFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJj
ZS0+Y2FwdHVyZUZhaWxlZCgpOworICAgICAgICBzb3VyY2UtPm1hcmtBc0NhcHR1cmVGYWlsZWQo
KTsKICAgICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgewot
ICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgc291cmNlLT5tYXJrQXND
YXB0dXJlRmFpbGVkKCk7CiAgICAgfSwgW10oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAg
c291cmNlLT5tYXJrQXNDYXB0dXJlRmFpbGVkKCk7CiAgICAgfSwgW10oc3RkOjpudWxscHRyX3Qp
IHsgfSk7CiB9CiAKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQog
ICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJv
ciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJv
ciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTIyNSw3ICsyMjUsNyBAQCBDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0Nh
cHR1cmVTbwogICAgICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFn
ZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgV1RG
TW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsK
KyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29u
c3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhi
b29sIHZhbHVlKQpAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlZpZGVvRmFjdG9yeTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZhCiAg
ICAgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gdmFsdWU7CiB9CiAKLUNhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgIUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAo
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpAQCAtMjQ4LDEwICsyNDgsMTAgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3Jl
YXRlVmlkZW9DYXB0dXJlU28KICAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS52aWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5KCkpOwogCiAgICAgYm9vbCBzaG91bGRVc2VJT1N1cmZhY2UgPSAhbV9tYW5hZ2VyLm1fc2hv
dWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lczsKLSAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBt
X21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyksIHNob3VsZFVzZUlPU3VyZmFj
ZSkpOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3Ry
YWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllciksIHNob3VsZFVzZUlPU3VyZmFjZSkpOwogfQog
Ci1DYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZh
Y3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3Bs
YXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgIUVOQUJMRShH
UFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQpAQCAtMjYw
LDcgKzI2MCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1CiAgICAgaWYgKG1fc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykKICAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS52aWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5KCkpOwogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRl
KGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBt
X21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpOwog
fQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6c2V0U2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCA4
Y2M1YjRmOTI2OWIyNDRkYjU5OTViN2I3NDQ0YjkxNTk3ZjE2YTgyLi44ZDIyY2QzMDJiNmNlODY5
MGE5ODg4NDk3ZTMwOTBjMjA1M2E4OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNzQsNyArNzQs
NyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mo
Ym9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKikg
ZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2VyJiBh
dWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9P
cENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAgICAgICAgIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nw
ZWFrZXJEZXZpY2VzOyB9CiAKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wpOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAgICBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigp
IGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQog
CiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CkBAIC0xMDAsNyAr
MTAwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKGJvb2wpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKikgZmlu
YWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBm
aW5hbDsKICAgICAgICAgV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5Q2Fw
dHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVy
ZURldmljZU1hbmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9t
YW5hZ2VyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453829</attachid>
            <date>2022-03-04 03:47:43 -0800</date>
            <delta_ts>2022-03-04 08:37:12 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237359-20220304124739.patch</filename>
            <type>text/plain</type>
            <size>142890</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZiZTdhZWY2OWM4Yzg4
MGU2ODM4OWM3OWE2MjI0MDIwODc5YjVjMS4uZWZkMmMyN2QzMDVmNzM5OThjMzM3MGRiNzE0ZGUx
ZmQxZDI0ZDA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlbiBjcmVhdGluZyBjYXB0dXJl
IHNvdXJjZXMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBhdCBXZWJLaXQgbGF5ZXIgdG8gYmV0dGVy
IGhhbmRsZSBjcmVhdGlvbiBvZiBtdWxpdHBsZSBzb3VyY2VzLgorICAgICAgICBTaW5jZSB3ZSBh
cmUgbm93IHNvbWV0aW1lcyBhbnN3ZXJpbmcgdG8gZ2V0VXNlck1lZGlhIGJ5IGNsb25pbmcgc291
cmNlcyBkaXJlY3RseSwKKyAgICAgICAgZml4IGEgYnVnIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
dG8gdXNlIHRoZSBwcmVzZXQgYXNwZWN0IHJhdGlvIHRvIGNvbXB1dGUgbWlzc2luZyB3aWR0aCBv
ciBoZWlnaHQuCisgICAgICAgIEludHJvZHVjZSBhIHdheSB0byBzaWxlbnRseSBmYWlsIGNhcHR1
cmUsIHRoaXMgaXMgdXNlZCBvbiBHUFVQcm9jZXNzIHNpZGUuCisKKyAgICAgICAgQ292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlP
Uy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisK
IDIwMjItMDMtMDIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW3dlYi1hbmltYXRpb25zXSBrZXlmcmFtZSB2YWx1ZXMgc2V0IHRvICJpbmhlcml0IiBzaG91
bGQgcmVjb21wdXRlIHRoZWlyIHZhbHVlcyB3aGVuIHRoZSBpbmhlcml0ZWQgdmFsdWUgY2hhbmdl
cwpAQCAtODQxLDcgKzg5NSw3IEBACiAgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cDoKICAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKTogRW5hYmxl
IGJpZGkgcmVvcmRlcmluZy4KIAotMjAyMi0wMy0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisyMDIyLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW5hbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZSB0
byBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZlcgogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkx
MGI0M2RkN2MwNmVlM2RhZDgwMzlhY2I5YjM3MTY1NTRiYjg3ZDMuLjg4MzgyMmNjNTEwZTlmZGVk
ZDM5OTY1NzVhYzA2OWNiNzEzMzIyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjIt
MDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNjb3Bl
IGNhcHR1cmUgc291cmNlcyBieSBwYWdlIGlkZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczNTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVyZSBhcHBy
b3ByaWF0ZS4KKyAgICAgICAgTWFrZSB1c2Ugb2YgUGFnZUlkZW50aWZpZXIgaW4gVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eToKKyAgICAgICAgLSBGb3IgbWljcm9waG9uZSwgaWYgdGhlcmUg
aXMgYSBzb3VyY2Ugd2l0aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAgICAgICAgZmFpbCB0aGUg
c291cmNlIGFzIHdlIGFyZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3VycmVudCBjYXB0dXJlcy4K
KyAgICAgICAgLSBGb3IgY2FtZXJhLCBpZiB0aGVyZSBpcyBhIHNvdXJjZSB3aXRoIGEgZGlmZmVy
ZW50IGRldmljZSwKKyAgICAgICAgICBmYWlsIHRoZSBzb3VyY2UgYXMgd2UgYXJlIG5vdCB5ZXQg
c3VwcG9ydGluZyBjb25jdXJyZW50IGNhcHR1cmVzIChvbmx5IG9uIGlPUykuCisgICAgICAgICAg
T3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIHNvdXJjZSwgY2xvbmUgaXQgc28gdGhh
dCB3ZSByZWR1Y2UgdGhlIG92ZXJoZWFkCisgICAgICAgICAgb2YgY3JlYXRpbmcgYSBuZXcgc291
cmNlIChzZXR0aW5nIHVwIGEgY2FtZXJhIGNhbiBiZSBhbiBleHBlbnNpdmUgb3BlcmF0aW9uKS4K
KyAgICAgICAgV2Ugc2lsZW50bHkgZmFpbCAobWVhbmluZyB0aGVyZSBpcyBubyBjb25zb2xlIGxv
ZyBtZXNzYWdlIGZvciBub3cpIGJ1dCBhZGQgcmVsZWFzZSBsb2dnaW5nIHRvIGRldGVjdCB0aGlz
IGNhc2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjItMDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSByb3V0aW5lcyB0byBleGNoYW5n
ZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0bHkKQEAgLTc3Nyw3ICs4MTUsNyBAQAog
ICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZEdlbmVyYWxTdG9yYWdl
RGlyZWN0b3J5IGNvbnN0KToKICAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Z2Vu
ZXJhbFN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOiBEZWxldGVkLgogCi0yMDIyLTAzLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKzIwMjItMDMtMDQgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBNZWRpYVNhbXBsZUFWRk9iakM6
OmNyZWF0ZUltYWdlU2FtcGxlIHRvIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJvbVBpeGVs
QnVmZmVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzczNTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDI1NjdhNWU2M2EwOTMwNTkyYjE0NGI2YTUwOWI3
Zjg2NjliMmEwMWUuLjVjMTNiNDQyNDk4ZTY5YTg2ZWQ2ODAyZjBiOWQ0NjgzMDQzNGQxMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNyw3ICsxMTM3LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAogICAgIHBh
Z2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFnZUdyb3VwLmgKLSAgICBwYWdlL1Bh
Z2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJbmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVy
bGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0xMjk0LDYgKzEyOTMs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0v
UE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BPREludGVydmFsVHJlZS5oCiAgICAgcGxhdGZv
cm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCiAgICAg
cGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZENvbnRleHQuaAog
ICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA1MDZmMzM3NGI3
ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4wZmFhOGJiNTVhMTk4NWU5ODBmNzM2YjYx
ZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBNZWRpYURl
dmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMs
IFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldERlZmF1bHRWaWRlb0NvbnN0
cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6
Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwg
V1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNV
c2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVx
dWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1S
ZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1v
dmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50
LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKIAogICAgIGlmICghZG9jdW1lbnQtPnNl
dHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7CiAgICAgICAgIHJlcXVlc3Qt
PnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldERpc3Bs
YXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVl
c3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5
TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZp
bGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpE
aXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVy
ZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgpIH0sIFdURk1vdmUocHJvbWlzZSkpOwog
ICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGE0NWQxOWU1NDcz
OTk1NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQuLmZjMTc2MTU2ZGQwZmNkMjIxZGZiODI3MjMx
ODE0MmRhNzBjZjA4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDY5LDQ0ICs0NjksMTIgQEAgTWVk
aWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1
bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKLXsK
LSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlm
ICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVkKCkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFz
KHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFj
Y29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwotICAgIGlmICgh
cGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNl
Q2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQp
KSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5z
KE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKLSAgICAgICAg
YWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVu
KCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlD
aGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3Vy
Y2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVu
dCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFp
bnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwotICAgICAg
ICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRl
bigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2Fw
dHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkgPT0g
JmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjYXB0dXJl
VHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9p
ZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDM0OWFkZjZiNDJjY2IzY2MxZDZjMDdhMmU1NDRjMmJj
NTkzYWNhNGIuLmFmYmNlN2E5ZjQ1NmY3ZDUwNzY4NzgwOWNiZTE2ZTExYmU0MGUyOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsOSArNjIsOSBAQCBzdGQ6Om9wdGlv
bmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENh
cHR1cmVEZXZpY2UoKQogICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOwogfQogCi1DYXB0dXJlU291
cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK0NhcHR1cmVT
b3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRp
bWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAiU3BlZWNoSUQiX3MsIHsgfSk7CisgICAgcmV0dXJu
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rv
cnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVjaElEIl9z
LCB7IH0sIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBk
YXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5oCmluZGV4IGNhOTAzYjEyYjdmMjIxOTM1ZjVkZmExOThkYmIxYThjNGM3OWQzNDkuLmUzMjhk
YzNjN2NkMzBmNjk5MzAyN2NiN2Q5ODRjNjYxN2ZiOTZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTdGF0ZVVwZGF0
ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYp
PjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2Fs
bGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZpbmRDYXB0dXJl
RGV2aWNlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBQYWdlSWRlbnRpZmllcik7CiAjZW5kaWYK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggM2EzNWUyNjA1ZTAzZTYyOTc5YjIyOWQ4MjZm
ZTZlNzNiZTI5NDJkZi4uNzdkYWE1ODNlZTQ5YWRjZmFiYmUwYzcwNmUxMjkyYTE2MWI2ZWMyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTIxOTEsNyArMjE5MSw2IEBAIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcAotcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYWEyMjdkNTk4ZTQyOWQ4NTViYjNkZWVkYTliMWQ0NzI4MGQ2MjQz
Yi4uYzI1Njc1OTE2ZTI4ZjgwMDhiMjRhZTZmYjI2ZjBkZjI0NTZiMTI1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4MSw2
ICsxMTgxLDcgQEAKIAkJNDE4RkNCRTcyNzE1QTI4RjAwRjk2RUNBIC8qIFJUQ1J0cENvZGVjQ2Fw
YWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFFMEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRB
MEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJh
bWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5tbSAqLzsgfTsKKwkJNDE5MkJCMTMyN0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTlBQ0Y5MjFGOTdFN0RB
MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2Vydmlj
ZVdvcmtlckZldGNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUJDMkREMTY4
NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggKi87IH07CiAJCTQxOUJFNzU5MUJD
N0Y0MkIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlCRTc1MjFCQzdGM0RCMDBFMUM4NUIgLyog
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oICovOyB9OwpAQCAtMTM2Miw3ICsxMzYzLDYgQEAKIAkJNDZB
NzhCMzQyNzk5QkQ3MTAwMTE1NEZFIC8qIFdvcmtlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMUIxRDI2MjZGMThBNEIwMDg4MkRBMiAv
KiBXb3JrZXJPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDZBQUFBM0QyNUQzNjMyMDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkFB
QUEzQTI1RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9GaWxlUmVhZGVyQ29jb2EuaCAqLzsgfTsKIAkJ
NDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QjYzRjZCMUM2RThDREYw
MDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBh
Z2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI4NTkzQzI2MTY3
MjI3MDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURD
NiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovOyB9OwogCQk0NkI5NTE5NTIwN0Q2
MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjk1MThBMjA3RDYzMjgwMEE3RDJERCAvKiBBYnN0
cmFjdERPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2Qjk1MTk2MjA3RDYzM0EwMEE3RDJERCAvKiBBYnN0cmFjdEZyYW1lLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4RjIwN0Q2
MzJCMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MTA1LDcgKzYxMDUsNiBAQAogCQkwNzUzODYwMDE0
NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3
QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXNhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25N
YW5hZ2VySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4NTksNiArODg1
OCw3IEBACiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFD
NTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGcmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0
MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTky
QkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE5NDU2OTQyMDM1MDJBNTAwNEJBMjc3IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTk0NTY5NjIwMzUwMkE2MDA0QkEyNzcgLyogQXBwbGljYXRpb25DYWNoZVJlc291cmNl
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y4
RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtOTMxMiw3ICs5MzEyLDYgQEAKIAkJNDZBQUFBM0MyNUQzNjMxNDAwQkFG
NDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZBQ0Q4MTEyNzAxNjU2QTAwRUY4Q0VEIC8qIE5hdmlnYXRpb25SZXF1ZXN0
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblJl
cXVlc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QjYzRjZCMUM2RThD
REYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAvKiBTY3JpcHRC
dWZmZXJTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRCdWZmZXJTb3VyY2VQ
cm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI5NTE4QTIwN0Q2MzI4
MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQWJzdHJhY3RET01XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZCOTUxOEMyMDdENjMyOTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Njk1LDcgKzE4Njk0LDYgQEAKIAkJCQk0QTRGNjU2RDFBQTk5
N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oICovLAogCQkJ
CTRBMEZGQTlGMUFBRjVFQTIwMDYyODAzQiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cCAqLywKIAkJCQk0QTBGRkFBMDFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oICovLAotCQkJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5jcHAgKi8sCiAJCQkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8sCiAJCQkJNDFCODc3NjAyM0RFMTA0MjAw
MzYzOEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmggKi8sCiAJCQkJNEE0RjY1
NkUxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5jcHAgKi8s
CkBAIC0yNDI2NCw3ICsyNDI2Miw2IEBACiAJCQkJOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8q
IFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQ
YWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJCQk0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQg
LyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDREVGREEwRDI3MTIyOUJBMDA1NTU5QTcgLyog
UGFnZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNGQjE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92
ZXJsYXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3Zlcmxh
eS5oICovLApAQCAtMzAxMTAsNiArMzAxMDcsNyBAQAogCQkJCTQxNzhFRjE2MjQxMjVCNkMwMDE5
M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5jcHAgKi8sCiAJCQkJNDE3OEVGMTQyNDEyNUI2QzAw
MTkzQzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmggKi8sCiAJCQkJNDE4NEY1MTUxRUFGMDU5ODAw
RjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIuaCAqLywKKwkJCQk0MTkyQkIxMjI3Q0Y2Mzgz
MDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQkyRUUwMkExRTFGNzMyNDI4MDAw
NkFGNzIgLyogUGFzdGVib2FyZC5jcHAgKi8sCiAJCQkJNEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdG
IC8qIFBhc3RlYm9hcmQuaCAqLywKIAkJCQlGNDBEQUFFQjI1RDlGMjVFMDAxMUI0RkEgLyogUGFz
dGVib2FyZENvbnRleHQuaCAqLywKQEAgLTM2NTYyLDcgKzM2NTYwLDcgQEAKIAkJCQk5MzAyQjBC
RjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTY3
NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUI4MUNDNDFGQUE0NEJDMDAzN0QxRTYgLyogUGFnZUhlYXBBZ2VudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTkyQkIxMzI3Q0Y2Mzg2MDBGMjlBNDYgLyogUGFn
ZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERUZEQTBFMjcxMjI5QkEwMDU1NTlB
NyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1MUYzMzAw
MDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENUM5RDAw
MTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0
ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRl
bnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1lbnVtIFBhZ2VJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBQYWdl
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UGFnZUlkZW50aWZpZXJUeXBlPjsKLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRkNWY4
ZDI5NzU2M2VlMDI5YzQxM2U5Y2RhNzQ5NGM1ZmE0ZDhhZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFBhZ2VJZGVudGlmaWVyVHlwZSB7
IH07Cit1c2luZyBQYWdlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UGFnZUlkZW50aWZp
ZXJUeXBlPjsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaAppbmRleCBhNGQ0YjUyNWJlODk5YzI5MjE2NDA5
YzI4OTQ3NmUxOWY0NmU3NzFkLi5kMDc5NTZmNDlhYWNhOGI1YzM1MTlhMjk3OGI2OTIwYzg0MWEx
NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVJlcXVlc3QuaApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiUGFn
ZUlkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw2ICs0MCw3IEBA
IHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAgIE1lZGlhQ29uc3RyYWludHMgYXVkaW9D
b25zdHJhaW50czsKICAgICBNZWRpYUNvbnN0cmFpbnRzIHZpZGVvQ29uc3RyYWludHM7CiAgICAg
Ym9vbCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgeyBmYWxzZSB9OworICAgIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApAQCAtNDcsMTUgKzQ5LDIwIEBAIHN0
cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAgICAgICBlbmNvZGVyIDw8IGF1ZGlvQ29uc3Ry
YWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgdmlkZW9Db25zdHJhaW50czsKICAgICAgICAgZW5j
b2RlciA8PCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQ7CisgICAgICAgIGVuY29kZXIgPDwgcGFn
ZUlkZW50aWZpZXI7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPE1lZGlhU3RyZWFtUmVxdWVzdD4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewogICAgICAgICBNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdDsKLSAgICAgICAg
aWYgKGRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlwZSkgJiYgZGVjb2Rlci5kZWNvZGUocmVxdWVz
dC5hdWRpb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnZpZGVvQ29uc3Ry
YWludHMpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3QuaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2Vk
KSkKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0OwotCi0gICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWVzdC50eXBlKQorICAgICAg
ICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykKKyAgICAg
ICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpCisgICAg
ICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5pc1VzZXJHZXN0dXJlUHJpdmlsZWRn
ZWQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5wYWdlSWRlbnRpZmll
cikpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiBy
ZXF1ZXN0OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZGUwZjFhN2E0
ZTYzNWExMzllNDgyOGI1NDdmZGNmMDY2MTliMzVhYi4uZTdkN2Y0YzcyMmUzMTZmNjI0NTVhYjcy
Mjk2ZTg1NTY4YjAxMmIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ4LDggKzQ4LDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGlt
ZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogbV9pZEhhc2hTYWx0KFdURk1vdmUoaGFzaFNhbHQp
KQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBtX3BhZ2VJZGVudGlmaWVyKHBhZ2VJZGVu
dGlmaWVyKQorICAgICwgbV9pZEhhc2hTYWx0KFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9w
ZXJzaXN0ZW50SUQoV1RGTW92ZShkZXZpY2VJRCkpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAs
IG1fbmFtZShXVEZNb3ZlKG5hbWUpKQpAQCAtMjg3LDE2ICsyODgsMjAgQEAgdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlOjplbmQoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikKICAgICB9KTsKIH0K
IAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKK3ZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZChGYWlsU2lsZW50bHkgZmFpbFNpbGVudGx5KQog
ewogICAgIEVSUk9SX0xPR19JRihtX2xvZ2dlciwgTE9HSURFTlRJRklFUik7CiAKLSAgICBtX2Nh
cHR1cmVEaWRGYWlsZWQgPSB0cnVlOworICAgIGlmIChmYWlsU2lsZW50bHkgPT0gRmFpbFNpbGVu
dGx5OjpObykKKyAgICAgICAgbV9jYXB0dXJlRGlkRmFpbGVkID0gdHJ1ZTsKIAogICAgIHN0b3Ao
KTsKICAgICBmb3JFYWNoT2JzZXJ2ZXIoW10oYXV0byYgb2JzZXJ2ZXIpIHsKICAgICAgICAgb2Jz
ZXJ2ZXIuc291cmNlU3RvcHBlZCgpOwogICAgIH0pOworCisgICAgaWYgKGZhaWxTaWxlbnRseSA9
PSBGYWlsU2lsZW50bHk6OlllcykKKyAgICAgICAgbV9jYXB0dXJlRGlkRmFpbGVkID0gdHJ1ZTsK
IH0KIAogYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUo
c3RkOjpvcHRpb25hbDxpbnQ+LCBzdGQ6Om9wdGlvbmFsPGludD4sIHN0ZDo6b3B0aW9uYWw8ZG91
YmxlPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJmZjQwZDUy
NTExNDNiNjlhYjQ0Li42Njg0NTQ5NmYzMTA4YTBiZjg5Y2U5MmRjMTQ4NmIyMzBlNTU1MjIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNl
T3JFcnJvcjsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAg
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6
RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPgorICAgICwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
LCBwdWJsaWMgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAgLTIwMCw3ICsyMDEsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZp
ZXImKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlRmFpbGVkKCk7CisgICAgZW51bSBj
bGFzcyBGYWlsU2lsZW50bHkgeyBObywgWWVzIH07CisgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVG
YWlsZWQoRmFpbFNpbGVudGx5ID0gRmFpbFNpbGVudGx5OjpObyk7CiAKICAgICB2aXJ0dWFsIGJv
b2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBjb25zdCB7IHJldHVybiB0
aGlzID09ICZzb3VyY2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmNvbWluZ0F1ZGlvU291cmNl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTIyMSw4ICsyMjMsMTAgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4g
ZmFsc2U7IH0KIAorICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVNZWRp
YVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3Ry
aW5nJiYgaGFzaFNhbHQgPSB7IH0pOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0g
eyB9LCBQYWdlSWRlbnRpZmllciA9IHsgfSk7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRU
YXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKQEAgLTI3Myw2ICsyNzcsNyBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fZnJhbWVDb3VudCB7IDAgfTsKICNlbmRpZgogCisgICAgUGFnZUlkZW50
aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OwogICAgIFN0
cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQwYzExMjA4ZjUz
YjFiOTIxYzM0YS4uMDA3NGQxNDQ5NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZiODZkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9n
Z2VyPiYmIGxvZ2dlciwgTmUKIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRp
b1NvdXJjZTsKICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBh
dWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVk
aW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRz
KTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9
LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAg
ICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VV
bmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8g
c291cmNlOiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtODksOSArODksOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1l
ZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlmICh2aWRlb0Rl
dmljZSkgewogICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAgIGlm
ICh2aWRlb0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
KQotICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVv
Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZy
ZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNl
KSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3Qu
cGFnZUlkZW50aWZpZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzb3VyY2UgPSBkaXNw
bGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZp
ZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMp
OworICAgICAgICAgICAgc291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlz
cGxheUNhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQp
LCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKIAog
ICAgICAgICBpZiAoIXNvdXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFr
ZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSB2aWRl
byBzb3VyY2U6ICIsIHNvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyArMjA0LDcgQEAg
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNv
bnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3Bs
YXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3Ry
aW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgIGF1
dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9D
b25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChzb3VyY2VP
ckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50
cyhyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAg
ICAgIGRpc3BsYXlEZXZpY2VJbmZvLmFwcGVuZCh7IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJj
ZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRp
YVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNl
LCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVy
cm9yID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZp
Y2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAg
ICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3Vy
Y2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlk
Q29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291
cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAg
LTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJN
ZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYg
KCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
ICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAgICAg
ICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJlcXVl
c3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291
cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3Qudmlk
ZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVv
RGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Nj
b3JlKCksIGRldmljZX0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYxM2I1ODZhNDhl
OTY1NWFmZTYxZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKLQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJDYXB0dXJl
RGV2aWNlTWFuYWdlci5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRpYVN0
cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5jbHVk
ZSA8d3RmL1NIQTEuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNpbmdsZVNvdXJj
ZUZhY3Rvcnk6OnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCi17
Ci0gICAgaWYgKG1fYWN0aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLSAg
ICBpZiAobV9hY3RpdmVTb3VyY2UgJiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgp
KQotICAgICAgICBtX2FjdGl2ZVNvdXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAgbV9hY3RpdmVT
b3VyY2UgPSAmc291cmNlOwotfQotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnVuc2V0QWN0
aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9hY3Rp
dmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBudWxscHRyOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYmEwZDkwM2U2MjllZDhh
YmVkZjdjZmNmMWVmOTY1MTEzZTM4OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTllMmFmODAzYzI0
Mjc2ZjZkNzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGFnZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsMjcg
KzQyLDEwIEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3I7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIAotY2xhc3MgV0VCQ09SRV9FWFBP
UlQgU2luZ2xlU291cmNlRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U2luZ2xlU291
cmNlRmFjdG9yeSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1bnNldEFjdGl2ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFT
b3VyY2UqIGFjdGl2ZVNvdXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9Ci0KLXByaXZh
dGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogbV9hY3RpdmVTb3VyY2UgeyBudWxscHRyIH07
Ci19OwotCi1jbGFzcyBBdWRpb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmly
dHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0g
MDsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmlj
ZXMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTcGVha2VyRGV2aWNlcyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spIGNvbnN0IHsgY2FsbGJhY2soKTsg
fQpAQCAtNzQsMjggKzU4LDIwIEBAIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5
KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2VuZGlm
Ci17CitjbGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5W
aWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBT
dHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikg
PSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmlj
ZU1hbmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkg
PSBkZWZhdWx0OwogfTsKIAotY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYK
LXsKK2NsYXNzIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
RGlzcGxheUNhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50
aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggODJkZTI1OGJiYzdiMWExODZkY2I1NzBkY2EwNDQwZDhh
YjQwMDllMS4uMzBiMGEyNThkM2FkMDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBo
YXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKIHsKIH0KIAog
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6On5SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgp
CiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2Uo
KnRoaXMpOwotI2VuZGlmCi19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnBy
ZXBhcmVUb1Byb2R1Y2VEYXRhKCkKLXsKLSAgICBBU1NFUlQoZnJhbWVSYXRlKCkpOwotCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNl
bmRpZgogfQogCiBjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlOjpwcmVzZXRzKCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2b2lkIFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50
PiB3aWR0aCwgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVudFBy
ZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0
KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAKICAg
ICBpZiAoIW1hdGNoLT5yZXF1ZXN0ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2ICs0MDEsNyBA
QCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVkU2l6ZUFuZEZy
YW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludAogICAgIGlmICghbWF0Y2gpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBz
ZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5l
bmNvZGluZ1ByZXNldCk7CiAgICAgc2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVzZXQtPnNpemUp
OwogICAgIHNldEZyYW1lUmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVkZmY3ZmQ0NDhi
NWYzOTVjZDE4YWIuLmRjMWMzZDVlYWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFlZjlmZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDExIEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZW5zdXJlSW50cmluc2ljU2l6ZU1haW50YWluc0FzcGVjdFJhdGlvKCk7
CiAKKyAgICBjb25zdCBWaWRlb1ByZXNldCogY3VycmVudFByZXNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudFByZXNldC5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hT
YWx0KTsKKyAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIHZvaWQg
cHJlcGFyZVRvUHJvZHVjZURhdGEoKTsKICAgICB2b2lkIHNldFNpemVBbmRGcmFtZVJhdGUoc3Rk
OjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQcmVz
ZXQoVmlkZW9QcmVzZXQmKSB7IHJldHVybiB0cnVlOyB9CkBAIC05MCw2ICs5MSw3IEBAIHByaXZh
dGU6CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlIjsgfQogI2VuZGlmCiAKKyAgICBSZWZQdHI8
VmlkZW9QcmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0
Pj4gbV9wcmVzZXRzOwogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1w
czsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKaW5kZXggY2U2ZTAwMzU5N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkzZjQzYy4uMWQ0
Zjk5YmYyYjEzYWE2NmFmZmMyNDhiZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVW
aWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2U+JiYgc291cmNlLCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6IFJlYWx0aW1l
TWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmlu
ZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhh
c2hTYWx0KCkgfSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmlu
ZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwg
U3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSwgc291cmNlLT5wYWdlSWRlbnRp
ZmllcigpKQogICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgICwgbV9zaG91bGRVc2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJmYWNlKQpAQCAt
OTUsMTIgKzk1LDE1IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6ZUFuZEZyYW1l
UmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNTRVJUKHNvdXJj
ZVNpemUuaGVpZ2h0KCkpOwogICAgIEFTU0VSVChzb3VyY2VTaXplLndpZHRoKCkpOwogCisgICAg
YXV0byogY3VycmVudFByZXNldCA9IG1fc291cmNlLT5jdXJyZW50UHJlc2V0KCk7CisgICAgYXV0
byBpbnRyaW5zaWNTaXplID0gY3VycmVudFByZXNldCA/IGN1cnJlbnRQcmVzZXQtPnNpemUgOiBz
b3VyY2VTaXplOworCiAgICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBzb3VyY2VTaXpl
LndpZHRoKCkgKiBoZWlnaHQudmFsdWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7CisgICAgICAg
IHdpZHRoID0gaW50cmluc2ljU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBpbnRyaW5z
aWNTaXplLmhlaWdodCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKCp3aWR0aCk7
CiAKICAgICBpZiAoIWhlaWdodCkKLSAgICAgICAgaGVpZ2h0ID0gc291cmNlU2l6ZS5oZWlnaHQo
KSAqIHdpZHRoLnZhbHVlKCkgLyBzb3VyY2VTaXplLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9
IGludHJpbnNpY1NpemUuaGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50cmluc2ljU2l6ZS53
aWR0aCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0KTsKIAogICAg
IGlmIChmcmFtZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2Eu
Y3BwCmluZGV4IDU1NGY4ZGQyN2E0YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQyYjcuLjE2NmE1
MzA3NzMyYjExNWU0NWQ2MjA3MGVmYTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC04MywyMyArODMsMjMgQEAgc3RhdGljIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZvckRldmljZShDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHQKICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9u
ZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBzd2l0Y2ggKGRldmlj
ZS50eXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoK
ICNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHJldHVybiBjcmVhdGUoUmVwbGF5S2l0Q2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRD
YXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbHNlCiAjaWYg
SEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0Q2Fw
dHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2Ny
ZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwg
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0
dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwg
Y29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFn
ZUlkZW50aWZpZXIpOwogI2VuZGlmCi0gICAgICAgIHJldHVybiBjcmVhdGUoQ0dEaXNwbGF5U3Ry
ZWFtU2NyZWVuQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRl
dmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZShDR0Rpc3BsYXlTdHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBh
Z2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6V2luZG93OgogI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAoU2Ny
ZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gY3JlYXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNl
LCBjb25zdHJhaW50cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsK
KyAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6
OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpAQCAtMTE0LDEy
ICsxMTQsMTIgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICByZXR1cm4geyB9OwogfQog
Ci1DYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUo
RXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVyLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2E6OmNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+
JiYgY2FwdHVyZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgpKQogICAgICAg
ICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVyLmVycm9yKCkp
IH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwo
KSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkp
KTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9
LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBh
Z2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVz
dWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlm
IChyZXN1bHQpCkBAIC0xMjksOCArMTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXIKICAg
ICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVS
ZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlw
ZUZvckRldmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVy
ZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNl
KHNvdXJjZVR5cGVGb3JEZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUobmFt
ZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIp
CiAgICAgLCBtX2NhcHR1cmVyKFdURk1vdmUoY2FwdHVyZXIpKQogICAgICwgbV90aW1lcihSdW5M
b29wOjpjdXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJh
bWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXggMDQ1
YzhjYzQzNWZjYjI5YzVkZWQwYjJmMWFlY2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0NzQ5MzRjNWUw
NTFhNzVhYjFkZDAzY2M1NGU3Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EuaApAQCAtMTEyLDE0ICsxMTIsMTQgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2
b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAgICAgfTsKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShF
eHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3Ry
aW5nPiYmLCBjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCk7CiAg
ICAgdm9pZCB1cGRhdGVGcmFtZVNpemUoKTsKIAogcHJpdmF0ZToKLSAgICBEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSgpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNw
cAppbmRleCA0ODZiMGU0NDg2YTNjNjRlM2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2Li43M2VjZDI0
MDNiYzBmNDhiZGExOWQ1MTk5MDE0N2EzNTczYjdlYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJl
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBz
dGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiAKIGNsYXNzIEdTdHJlYW1lckF1
ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBw
dWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
UGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBlMTNkNTNiMmIy
NGRjZTlkNTAyNmRhMjM3MjgzM2U0ZTQyMTNiMWUwLi42OWRhMjBiNjgwZTg1OWZkNzZmNjIwYjkz
M2E1ZWE2ZjBlYmJjNGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIEdT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0
dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1
cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpA
QCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1
YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRvJiBtYW5hZ2VyID0g
R1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICAg
ICAgcmV0dXJuIG1hbmFnZXIuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIERpc3BsYXlD
YXB0dXJlRmFjdG9yeSYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFjdG9y
eSgpCiB9CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgZ2NoYXIqIHNvdXJjZUZhY3RvcnksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGUgZGV2aWNlVHlwZSwgaW50IGZkKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorICAg
IDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCB7IH0pCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlx
dWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNlRmFjdG9yeSwgZGV2aWNlVHlwZSkpCiAg
ICAgLCBtX2RldmljZVR5cGUoZGV2aWNlVHlwZSkKIHsKQEAgLTEzMCw3ICsxMzAsNyBAQCBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwg
V1RGTW92ZShoYXNoU2FsdCkpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwg
V1RGTW92ZShoYXNoU2FsdCksIHsgfSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVyPihkZXZpY2UpKQogICAgICwgbV9kZXZpY2VUeXBlKENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGM3N2RjYTI3YzNh
YzdhMmM2MDYyNWEzMzE2MTIzYzc5OGU5NjQ0ODQuLjVjZjYyN2M5M2E0MmQ3ODExYmQ3MGIxMTU4
MGNkYjE3NmQ0YjYxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgY29u
c3QgZG91YmxlIHNfSHVtVm9sdW1lID0gMC4xOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNl
RnJlcXVlbmN5ID0gMzAwMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc19Ob2lzZVZvbHVtZSA9IDAu
MDU7CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9y
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2
aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lz
dGVudElEKGRldmljZUlEKTsKQEAgLTYzLDcgKzYzLDcgQEAgUmVmPE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlRm9yTW9ja0F1
ZGkKIH0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZUF1
ZGlvU291cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgeyB9KQogewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0
cmVhbWVyLmNwcAppbmRleCA5Njc3NzFlZjBhYzg0OGE4NTFkOTJkYmUzNTljNWVjMWZkMDkyYzNj
Li44ZGI3NjgwZTJiYTgyZjFjMjkwMmEyM2U2NjU4M2RkYTBiYmM4OWZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAK
QEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlm
aWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBA
IC0xNDcsNyArMTQ3LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNb2Nr
RGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OnNldHRpbmdzKCkKIH0KIAogTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVy
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAg
ICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQog
ewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2VJT1MuaAppbmRleCA2NjQ4NWUzMmI5NzRiMjZiNmRiNzBlZjMxZjQxNTQ1
MGMwYzYzMWZmLi5iMTA1YjNlMTBjODA5OTk4Y2ExMTU5NTY4MGE0YWU4NjYzN2IzYmJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGJlZ2luQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKCkgeyBiZWdpbklu
dGVycnVwdGlvbigpOyB9CiAgICAgdm9pZCBlbmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oQXVk
aW9TZXNzaW9uOjpNYXlSZXN1bWUpIHsgZW5kSW50ZXJydXB0aW9uKCk7IH0KIAotICAgIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIp
IGZpbmFsOwogICAgIHZvaWQgYWRkRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXIm
KSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2Vy
dmVyJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5k
ZXggNjcwNTkyZjM1MTY3ZjZiMDYxOTk2YjAxNjc0ZWI5YjU0ODQ0M2E1Mi4uYmIzMjlmZTBlMWQ4
NTdlZmI2MTcxNzRiYzQ5OTEzNmJhYzgzZTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2VJT1MubW0KQEAgLTExNiwxMyArMTE2LDEzIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3RvcnlJT1M6OnJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2Vy
dmVyCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRv
bigpLmRpc2FibGVBbGxEZXZpY2VzUXVlcnkoKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQog
ewogICAgIC8vIFdlIGVuYWJsZSBleGhhdXN0aXZlIHF1ZXJ5IHRvIGJlIHN1cmUgdG8gc3RhcnQg
Y2FwdHVyZSB3aXRoIHRoZSByaWdodCBkZXZpY2UuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBz
dG9wIHRoZSBhdXhpbGlhcnkgc2Vzc2lvbiBhZnRlciBzdGFydGluZyBjYXB0dXJlLgogICAgIGlm
IChtX29ic2VydmVycy5jb21wdXRlc0VtcHR5KCkpCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uQ2Fw
dHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmVuYWJsZUFsbERldmljZXNRdWVyeSgpOwot
ICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNl
LnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAg
cmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRp
Zmllcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggYTZkNzQyMTYz
OWE3NDI3NjQxY2FmMmIyNzI3MTNkZTFlNWYxODgwYy4uMjRlMTFhZTEzZmJiZTdjMWM4NmZmYTZh
OGY3MGIyNGRmNjFmZTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTU0LDcg
KzU0LDcgQEAgY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKIAogY2xhc3MgQVZWaWRlb0Nh
cHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZhdGUg
T3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCkBAIC03MCw3
ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VTdXNwZW5kZWREaWRDaGFu
Z2UoKTsKIAogcHJpdmF0ZToKLSAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZp
Y2UqLCBjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIEFWVmlk
ZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBT
dHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfkFWVmlkZW9D
YXB0dXJlU291cmNlKCk7CiAKICAgICB2b2lkIGNsZWFyU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tCmluZGV4IDU2ZWQ0YzIxYWVjMGU1ZDlmNmQ3MzVkNTgyMWM4NmJkMjM1
ZmM5NjAuLjcwN2NiNjVjNjgxODVhZGM3NTQ3YTRlY2JmMzdkYTVhN2ZiMjA4NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoKICAg
ICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlRm9ybWF0PiBmb3JtYXQ7CiB9OwogCi1DYXB0dXJl
U291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCiB7CiAgICAgYXV0byAqYXZEZXZpY2UgPSBbUEFMOjpnZXRBVkNhcHR1cmVEZXZp
Y2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2UucGVyc2lzdGVudElkKCldOwogICAg
IGlmICghYXZEZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJObyBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVv
Q2FwdHVyZVNvdXJjZShhdkRldmljZSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShhdkRldmlj
ZSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAo
Y29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3Ry
YWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdCkKQEAgLTEyNCw4ICsxMjQs
OCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgUwogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JF
cnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAK
LUFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZp
Y2UqIGF2RGV2aWNlLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nKGRldmljZS5sYWJl
bCgpKSwgU3RyaW5nKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIFdURk1vdmUoaGFzaFNhbHQpKQor
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmlj
ZSogYXZEZXZpY2UsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2UoU3RyaW5nKGRldmljZS5sYWJlbCgpKSwgU3RyaW5nKGRldmljZS5wZXJzaXN0
ZW50SWQoKSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fb2Jq
Y09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBh
bGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2RldmljZShhdkRldmljZSkK
ICAgICAsIG1fdmVyaWZ5Q2FwdHVyaW5nVGltZXIoKnRoaXMsICZBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6dmVyaWZ5SXNDYXB0dXJpbmcpCkBAIC0xMzcsOSArMTM3LDYgQEAgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6On5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7CiAgICAgQUxXQVlTX0xPR19JRihsb2dn
ZXJQdHIoKSwgTE9HSURFTlRJRklFUik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKICAgICBbbV9vYmpjT2JzZXJ2
ZXIgZGlzY29ubmVjdF07CiAgICAgW21fZGV2aWNlIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2Vy
dmVyLmdldCgpIGZvcktleVBhdGg6QCJzdXNwZW5kZWQiXTsKIApAQCAtNDY5LDEwICs0NjYsNiBA
QCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAg
ICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYK
LQogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZp
Y2VJbnB1dD4gdmlkZW9JbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVEZXZpY2VJbnB1
dEluc3RhbmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6JmVycm9yXSk7CiAgICAg
aWYgKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggOWEw
YjI5ZWRiMWQxNzgxNTY1NDUwZjU4ZGU5MDlmNjhjODczZWEwMy4uZDI0ZDRiMzFmYzU0MjEwZWQ4
ZDU4NjBhZTY3NzgzNmNjNTQwYTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmNwcApAQCAtNjY4LDI3ICs2NjgsMjcgQEAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGlu
aXRpYWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFJlZjxDb3JlQXVkaW9DYXB0dXIKICAgICBy
ZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwog
ICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyAiTm8gQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxh
YmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSkpOworICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IGRldmljZS0+ZGV2aWNlSUQoKSwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIpKTsKICNlbGlmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lvbkNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRoVUlEKFdU
Rk1vdmUoZGV2aWNlSUQpKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5v
IEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNl
SUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDApKTsK
KyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpLCAwLCBudWxscHRyLCBwYWdlSWRlbnRpZmllcikpOwogI2VuZGlmCiAgICAgcmV0dXJu
IGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSwgY29uc3Ry
YWludHMpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBCYXNl
QXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGxhYmVs
KSwgV1RGTW92ZShoYXNoU2FsdCksIDAsICZvdmVycmlkZVVuaXQpKTsKKyAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVVbml0LCBw
YWdlSWRlbnRpZmllcikpOwogICAgIHJldHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZShXVEZNb3ZlKHNvdXJjZSksIGNvbnN0cmFpbnRzKTsKIH0KIApAQCAtNzgwLDggKzc4MCw4
IEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OndoZW5BdWRpb0NhcHR1cmVV
bml0SXNOb3RSdW5uaW5nKEZ1bmN0aW9uPHZvCiAgICAgcmV0dXJuIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OnVuaXQoKS53aGVuQXVkaW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhXVEZNb3ZlKGNhbGxi
YWNrKSk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwg
dWludDMyX3QgY2FwdHVyZURldmljZUlELCBCYXNlQXVkaW9TaGFyZWRVbml0KiBvdmVycmlkZVVu
aXQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNh
bHQpKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJf
dCBjYXB0dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqIG92ZXJyaWRlVW5pdCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fY2Fw
dHVyZURldmljZUlEKGNhcHR1cmVEZXZpY2VJRCkKICAgICAsIG1fb3ZlcnJpZGVVbml0KG92ZXJy
aWRlVW5pdCkKIHsKQEAgLTgyMSwxOSArODIxLDExIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6aW5pdGlhbGl6ZVRvU3RhcnRQcm9kdWNpbmdEYXRhKCkKIAogQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6fkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKQogewotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVu
c2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotCiAgICAgdW5pdCgpLnJlbW92ZUNsaWVu
dCgqdGhpcyk7CiB9CiAKIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNp
bmdEYXRhKCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2Vu
ZGlmCi0KICAgICBpbml0aWFsaXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB1bml0KCku
c3RhcnRQcm9kdWNpbmdEYXRhKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApp
bmRleCAzMzAzNmU5OTZmNjczZTUyNzAyMzg1YjQxZTBhOTNmMTgwMzUxZjk5Li4wZWM2NzJiZjlm
MWMzNjA1NjI0OTcwYzI0MWY2YTBhMTU5MzUyZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmgKQEAgLTUxLDE1ICs1MSwxNSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzsKIAogY2xhc3MgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGlt
ZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyopOwotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JU
ZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlk
ZVVuaXQpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFn
ZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JU
ZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlk
ZVVuaXQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRp
b0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBDTUNsb2NrUmVmIHRpbWViYXNlQ2xv
Y2soKTsKIAogcHJvdGVjdGVkOgotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVy
c2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRVbml0KiA9IG51bGxwdHIpOworICAgIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcm
JiBoYXNoU2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRVbml0Kiwg
UGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKTsK
ICAgICBCYXNlQXVkaW9TaGFyZWRVbml0JiB1bml0KCk7CiAgICAgY29uc3QgQmFzZUF1ZGlvU2hh
cmVkVW5pdCYgdW5pdCgpIGNvbnN0OwpAQCAtMTI5LDE0ICsxMjksMTQgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoRnVu
Y3Rpb248dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgb3ZlcnJpZGU7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBvdmVycmlkZTsKICAg
ICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFs
OwogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25z
dCBmaW5hbDsKIH07CiAKLWlubGluZSBDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0
dXJlU291cmNlRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQoraW5saW5lIENhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2VGYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVy
biBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0dXJuIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElk
KCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5k
ZXggMGRkM2Q3MWNhZTdhNjNiNjM3MjA4ZjI4MzgyMjBlNjU5ZTQyMTNjZS4uMzQyMjc0MjNkODli
MGEwNDlkZTY5YWNlMzVmOGYzOGYzZDMwYzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQu
bW0KQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIHZvaWQgYWRkSHVtKGZsb2F0IGFtcGxpdHVkZSwg
ZmxvYXQgZnJlcXVlbmN5LCBmbG9hdCBzYW1wbGVSYXRlLCB1aW50NjRfdAogICAgIH0KIH0KIAot
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGRldmljZSA9IE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChk
ZXZpY2VJRCk7CiAgICAgQVNTRVJUKGRldmljZSk7CkBAIC05MSw3ICs5MSw3IEBAIENhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIG1pY3JvcGhvbmUgZGV2
aWNlIl9zIH07CiAKICAgICBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKS5zZXREZXZp
Y2VJRChkZXZpY2VJRCk7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0
ZUZvclRlc3RpbmcoV1RGTW92ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpKTsK
KyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhXVEZN
b3ZlKGRldmljZUlEKSwgIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cywgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCksIHBhZ2VJZGVudGlmaWVyKTsK
IH0KIAogTW9ja0F1ZGlvU2hhcmVkVW5pdCYgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggOTVjZjM1Y2Q0
ZWIxMzE4ZDg2ODMyNzNhNWQwOTZjNzM2NDQ2MDhiMC4uNDgyOTU3OWQyZmExNjUzY2VjMDAxMjdj
MDNmMjRjYTMwOTc2Y2QzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
LmgKQEAgLTQ3LDEzICs0NywxMyBAQCBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogCiBj
bGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyBmaW5hbCA6IHB1YmxpYyBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIHN0YXRpYyBSZWY8TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmll
cik7CiAKICAgICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSA9IGRlZmF1bHQ7CiAKIHBy
aXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwotICAgIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRl
bnRpZmllcik7CiAKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAg
ICAgdm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYy5tbQppbmRleCBmZDE5NGU2MTlhNDRiODgxMWRjYjE3ZTAwNDY3MWY0
NDUzNWU3YTk3Li45ZTI1ZjZkMmQ0MzEzZjkwZGU5YzBmYjFkNjBkZDg4YjA5Nzg1ZDZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01Miw3ICs1Miw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQor
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAt
NjEsNyArNjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAi
Tm8gbW9jayBjYW1lcmEgZGV2aWNlIl9zIH07CiAjZW5kaWYKIAotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwog
ICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBpZiAoYXV0byBlcnJvciA9IHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1v
dmUoZXJyb3ItPm1lc3NhZ2UpOwpAQCAtNzAsMTMgKzcwLDEzIEBAIENhcHR1cmVTb3VyY2VPckVy
cm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotUmVmPE1vY2tSZWFsdGltZVZpZGVv
U291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlD
YXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQpCitSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRl
bnRpZmllcikpOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KQotICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCisgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwg
bV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZVZpZGVvU291cmNlIFJl
bmRlciBRdWV1ZSIsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IDk3Yzk3ZTU5
MDM2NGQ0MTk3MGNhNDZlMjg3OGExNmI4N2VmMWY0YWYuLmNmMDA4MjBhNDQ4OGVmYjRiMzU1ZTNl
NjUzNzNlMGQxMzg2MTllNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKQEAgLTQ1LDEwICs0NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0
dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAg
ewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmEpOwotICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0
ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVy
biBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNTcs
OSArNTcsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnlN
YWMgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVE
aXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNv
bnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNy
ZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogICAgIH0KIHByaXZhdGU6CiAgICAgRGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJldHVybiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2Nv
YTo6c2luZ2xldG9uKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggZDA4OTRkNWQ0ZmU4MjVmOGIw
NmQ2YzkyOGFhZjA5ODYzNzdjYzRiMi4uOWU4OGFiMWU1OWU3YTcyYjc4Yzc1NWQ4MjQ3OGJhYmY5
OTY0Y2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAm
JiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZp
Y2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTYyLDggKzYyLDggQEAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYKIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1
ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAg
ICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZUF1ZGlvU291cmNl
IFJlbmRlciBRdWV1ZSIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMs
ICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6dGljaykKIHsKQEAgLTc3LDkgKzc3LDYgQEAgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6On5Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
dW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkKQEAg
LTEzNiw3ICsxMzMsNiBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5nc0Rp
ZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldAogdm9pZCBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9D
aGFuZ2VkKCk7CiAgICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVn
b3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBjNzliOTQyNDJkMDg2
OGZmOC4uN2EwZjRkMTViOTUzZjBhMDhlODFmY2M0OTVkZjVlMzgyZjlhN2UwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaApAQCAtNDIsMTMgKzQyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsQ291bnQo
dW5zaWduZWQpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCBy
ZW5kZXIoU2Vjb25kcykgPSAwOwogICAgIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0
PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjExOTM0OGY5ODY1YTg4ZmIyNzkxZTNhMmQ3
MTRhNDAxLi42ZDEyYzZiZjA3OGRhMmY1NGVmNDY3NTY3YTBmZDM1NWEwNjlkMTcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAxLDEzICsxMDEsMTMgQEAgc3RhdGljIGlubGlu
ZSBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2aWNlcygpCiAKIGNsYXNzIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsK
IHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFT
U0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7
CiAgICAgICAgIGlmICghTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZp
Y2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSwgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmlu
ZCBtb2NrIGNhbWVyYSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKIAotICAg
ICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7
IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlk
ZW50aWZpZXIpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTExNyw3ICsxMTcsNyBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKE1BQykKIGNsYXNzIE1vY2tEaXNwbGF5Q2FwdHVyZXIgZmluYWwgOiBw
dWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXIgewogcHVibGljOgotICAg
IGV4cGxpY2l0IE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAg
IE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYsIFBhZ2VJZGVudGlmaWVy
KTsKIAogcHJpdmF0ZToKICAgICBib29sIHN0YXJ0KCkgZmluYWw7CkBAIC0xMzQsOCArMTM0LDgg
QEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsK
IH07CiAKLU1vY2tEaXNwbGF5Q2FwdHVyZXI6Ok1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlKQotICAgIDogbV9zb3VyY2UoTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IH0pKQorTW9j
a0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9zb3VyY2Uo
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIo
U3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgp
IH0sIFN0cmluZyB7IH0sIHBhZ2VJZGVudGlmaWVyKSkKIHsKIH0KIApAQCAtMTc3LDcgKzE3Nyw3
IEBAIEludFNpemUgTW9ja0Rpc3BsYXlDYXB0dXJlcjo6aW50cmluc2ljU2l6ZSgpIGNvbnN0CiAK
IGNsYXNzIE1vY2tSZWFsdGltZURpc3BsYXlTb3VyY2VGYWN0b3J5IDogcHVibGljIERpc3BsYXlD
YXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisg
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5h
bAogICAgIHsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2Fw
dHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlLnR5cGUoKSwgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIGRpc3Bs
YXkgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CkBAIC0xODYsMTEgKzE4Niwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2Ny
ZWVuOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJl
cj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihkZXZpY2UpKSwgZGV2aWNlLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShVbmlxdWVSZWY8RGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYTo6Q2FwdHVyZXI+KG1ha2VVbmlxdWVSZWY8TW9ja0Rpc3BsYXlDYXB0dXJlcj4oZGV2
aWNlLCBwYWdlSWRlbnRpZmllcikpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VsaWYgVVNFKEdTVFJFQU1FUikKICAgICAgICAgICAg
IHJldHVybiBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZShkZXZpY2Us
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAjZWxzZQotICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2
aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRp
Zmllcik7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CkBAIC0yMTEsMjAgKzIxMSwxNSBAQCBwcml2
YXRlOgogCiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJs
aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
IGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAg
ICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIG1pY3JvcGhvbmUgZGV2aWNl
IHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CiAKLSAgICAgICAgcmV0dXJuIE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0s
IFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50
cyk7CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiBw
cml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRBY3RpdmVTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVT
b3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2Uoc291cmNlKTsgfQotICAg
IHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5h
bCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS51bnNldEFjdGl2
ZVNvdXJjZShzb3VyY2UpOyB9Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNl
KCkgZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRv
bigpLmFjdGl2ZVNvdXJjZSgpOyB9Ci0jZW5kaWYKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYg
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7
IH0KICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNwZWFrZXJE
ZXZpY2VzKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDYwYzVhOGNkNmQ1MGU5MDBlNGMx
ZWJkMWZkOGUyZGRhZThiNmRiOWQuLjNjZjc0NjBjODBlM2JlMWQ1YmEzZjBjZWQ3YzE5YjI1ZGYy
OWFiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC01MCw3ICs1MCw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
IVVTRShHU1RSRUFNRVIpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lm
bmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC01OSw3ICs1OSw3
IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIGNh
bWVyYSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1l
KSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFp
bnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICBy
ZXR1cm4geyB9OwogCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBIYXNoU2V0PE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlKj4mIGFsbE1vY2tSZWFsdGltZVZpZGVvU291cmNlKCkKICAgICByZXR1cm4g
dmlkZW9Tb3VyY2VzOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9l
bWl0RnJhbWVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Z2VuZXJhdGVGcmFtZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpA
QCAtMjM5LDcgKzIzOSw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0Q2Fw
dHVyZVRpbWVyKCkKIAogdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNp
bmdEYXRhKCkKIHsKLSAgICBwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpOwogICAgIHN0YXJ0Q2FwdHVy
ZVRpbWVyKCk7CiAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuaAppbmRleCA5MzVjNmRkZWNiOGQ0NThjOTE2NmY1YjI2N2FjNWM0OTRmZjM0M2I1Li5m
YzVmYzdhYTFjYjc2ZmE2ZDk3MzkwNTg2NWJmYWZlY2VkZTM2YmM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBA
IC00OCw3ICs0OCw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogY2xhc3MgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZh
dGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3Rh
dGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdl
SWRlbnRpZmllcik7CiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBzdGF0
aWMgdm9pZCBzZXRJc0ludGVycnVwdGVkKGJvb2wpOwpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6
CiAgICAgSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAg
ICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50
aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZlcigpID0gMDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBhZDA3NTgyMTc1MTAxMzU3ZTA1NWIxMTQy
Njg4OTJmYTdjNzNjOTQ2Li41ODAxMTIyNGQwNWVhZjkyOTUzZTc4YmYxOWVjMjI2NzRhZjk2MDcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMjg5LDcgKzI4OSw3NSBAQCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgp
CiAgICAgbV9jb25uZWN0aW9uUHJveHktPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0K
IAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BV
UHJvY2Vzc1JlbW90ZUZyYW1lcywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmNyZWF0ZU1pY3JvcGhvbmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogbWVkaWFDb25zdHJhaW50cywg
UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCit7CisgICAgYXV0byBzb3VyY2VPckVycm9y
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VPckVy
cm9yKQorICAgICAgICByZXR1cm4gc291cmNlT3JFcnJvcjsKKworICAgIGF1dG8mIHBlclBhZ2VT
b3VyY2VzID0gbV9wYWdlU291cmNlcy5lbnN1cmUocGFnZUlkZW50aWZpZXIsIFtdIHsgcmV0dXJu
IFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworCisgICAgLy8gRklYTUU6IFN1
cHBvcnQgbXVsdGlwbGUgbWljcm9waG9uZXMgc2ltdWx0YW5lb3VzbHkuCisgICAgaWYgKHBlclBh
Z2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2UpIHsKKyAgICAgICAgYXV0byYgbWljcm9waG9uZVNv
dXJjZSA9ICpwZXJQYWdlU291cmNlcy5taWNyb3Bob25lU291cmNlOworICAgICAgICBpZiAobWlj
cm9waG9uZVNvdXJjZS5wZXJzaXN0ZW50SUQoKSAhPSBkZXZpY2UucGVyc2lzdGVudElkKCkgJiYg
IW1pY3JvcGhvbmVTb3VyY2UuY2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoV2ViUlRDLCAiU3RvcHBpbmcgbWljcm9waG9uZSBzb3VyY2UgYXMgbmV3IHNv
dXJjZSBpcyB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuIik7CisgICAgICAgICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHByb2JhYmx5IGZhaWwgdGhlIGNhcHR1cmUgaW4gYSBzcGVjaWZpYyB3YXkg
dGhhdCBzaG93cyBhIHNwZWNpZmljIGNvbnNvbGUgbG9nIG1lc3NhZ2UuCisgICAgICAgICAgICBt
aWNyb3Bob25lU291cmNlLmNhcHR1cmVGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFpbFNp
bGVudGx5OjpZZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBzb3VyY2UgPSBzb3Vy
Y2VPckVycm9yLnNvdXJjZSgpOworICAgIHBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2Ug
PSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKworc3Rh
dGljIGJvb2wgY2FuQ2FwdHVyZUZyb21NdWx0aXBsZUNhbWVyYXMoKQoreworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsK
KyNlbmRpZgorfQorCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjcmVhdGVDYW1lcmFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogbWVkaWFDb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCit7CisgICAgYXV0byYgcGVyUGFnZVNv
dXJjZXMgPSBtX3BhZ2VTb3VyY2VzLmVuc3VyZShwYWdlSWRlbnRpZmllciwgW10geyByZXR1cm4g
UGFnZVNvdXJjZXMgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAgaWYgKHBlclBhZ2VTb3Vy
Y2VzLmNhbWVyYVNvdXJjZSkgeworICAgICAgICBhdXRvJiBjYW1lcmFTb3VyY2UgPSAqcGVyUGFn
ZVNvdXJjZXMuY2FtZXJhU291cmNlOworICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUgbXVsdGlw
bGUgY29uY3VycmVudCBjYW1lcmFzLgorICAgICAgICBpZiAocGVyUGFnZVNvdXJjZXMuY2FtZXJh
U291cmNlLT5wZXJzaXN0ZW50SUQoKSA9PSBkZXZpY2UucGVyc2lzdGVudElkKCkgJiYgIWNhbWVy
YVNvdXJjZS5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgICAgICAvLyBXZSBjYW4gcmV1c2Ug
dGhlIHNvdXJjZSwgbGV0J3MgZG8gaXQuCisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9IGNhbWVy
YVNvdXJjZS5jbG9uZSgpOworICAgICAgICAgICAgaWYgKG1lZGlhQ29uc3RyYWludHMpIHsKKyAg
ICAgICAgICAgICAgICBhdXRvIGVycm9yID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCptZWRp
YUNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHNv
dXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRl
b0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92
ZShoYXNoU2FsdCksIG1lZGlhQ29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAo
IXNvdXJjZU9yRXJyb3IpCisgICAgICAgIHJldHVybiBzb3VyY2VPckVycm9yOworCisgICAgaWYg
KCFjYW5DYXB0dXJlRnJvbU11bHRpcGxlQ2FtZXJhcygpKSB7CisgICAgICAgIGlmIChhdXRvKiBj
YW1lcmFTb3VyY2UgPSBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UuZ2V0KCkpIHsKKyAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIlN0b3BwaW5nIGNhbWVyYSBzb3VyY2Ug
YXMgbmV3IHNvdXJjZSBpcyB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuIik7CisgICAgICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGZhaWwgdGhlIGNhcHR1cmUgaW4gYSB3YXkg
dGhhdCBzaG93cyBhIHNwZWNpaWZjIGNvbnNvbGUgbG9nIG1lc3NhZ2UuCisgICAgICAgICAgICBj
YW1lcmFTb3VyY2UtPmNhcHR1cmVGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFpbFNpbGVu
dGx5OjpZZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VP
ckVycm9yLnNvdXJjZSgpOworICAgIHNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50
YXRpb25Ob3RpZmllcik7CisgICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlID0gV2Vha1B0
ciB7IHNvdXJjZS5nZXQoKSB9OworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVG
cmFtZXMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBDcmVhdGVTb3VyY2VDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uUHJveHktPndp
bGxTdGFydENhcHR1cmUoZGV2aWNlLnR5cGUoKSkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSwgIlJlcXVlc3QgaXMgbm90IGFsbG93ZWQiX3MsIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyB7IH0sIHsgfSwgeyB9LCB7IH0sIDApOwpAQCAtMjk5LDE2ICszNjcsMTQg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3Vy
Y2VPckVycm9yOwogICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgIGNhc2UgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgc291cmNl
T3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2Fw
dHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICBzb3VyY2VPckVycm9yID0gY3JlYXRlTWlj
cm9waG9uZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFn
ZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5j
cmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMpOwotICAgICAgICBpZiAoc291cmNlT3JFcnJvcikKLSAgICAgICAgICAgIHNvdXJjZU9y
RXJyb3IuY2FwdHVyZVNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3Rp
Zmllcik7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVDYW1lcmFTb3VyY2UoZGV2aWNl
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
Y3JlZW46CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5k
b3c6Ci0gICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNv
dXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHNv
dXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kaXNw
bGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3Rl
bUF1ZGlvOgogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3Bl
YWtlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA2NThiNWI3ZDE4ODZjNDgzMDZmMTgw
M2EzODgwNGI5NTNkODU0ZjU0Li5kM2FiMGRhYWZhNWFhNmIzMTNjZjI4Zjc3ZGZjYzcyNmJkMjc5
ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKIAogICAgIHVzaW5nIENyZWF0ZVNvdXJjZUNhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0
YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47Ci0gICAgdm9pZCBjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlE
LCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxk
VXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7CisgICAg
dm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgc3RhcnRQcm9k
dWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CkBAIC05NCwxMSArOTQsMjAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RUb0VuZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXRTaG91
bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBi
b29sIHNob3VsZEFwcGx5Um90YXRpb24pOwogCisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlTWljcm9waG9uZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlQ2FtZXJhU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKKwogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBj
bGFzcyBTb3VyY2VQcm94eTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U291cmNlUHJveHk+PiBtX3Byb3hpZXM7CiAg
ICAgVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4gbV9jb25uZWN0aW9uUHJveHk7CiAgICAgV2Vi
Q29yZTo6T3JpZW50YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXIgeyAwIH07CisK
KyAgICBzdHJ1Y3QgUGFnZVNvdXJjZXMgeworICAgICAgICBXZWFrUHRyPFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U+IG1pY3JvcGhvbmVTb3VyY2U7CisgICAgICAgIFdlYWtQdHI8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FtZXJhU291cmNlOworICAgIH07CisgICAgSGFzaE1h
cDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUGFnZVNvdXJjZXM+IG1fcGFnZVNvdXJjZXM7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3
YmNhNDUzZTczNzUzNzY5YTdmYzU4ZTJlNzA3MzJiODU3ZDliODI5Li5lZDdmNGRhYjE2YmVhNzli
NDIxZDk2NjBlZTFlNDljM2Y2OTAxMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50
ZWQgewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMgY29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZy
YW1lcykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZp
ZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJh
bWVSYXRlKSBBc3luYworICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vz
c1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIC0+
IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMsIFZlY3RvcjxXZWJDb3JlOjpWaWRlb1ByZXNl
dERhdGE+IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgZG91YmxlIGZyYW1lUmF0ZSkg
QXN5bmMKICAgICBTdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKaW5kZXggZjVhNjE2NGU4MzFjOTY4OTk1ZTMzMmVmMDI2OWMwYjhjMThjZjlmMi4uODhm
ZGE4NDkxNDYwYjc3NzUwZDdkYTM1MDFiZWEwNWUwZjAzMzA3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zOSwxMyArMzksMTMgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLVJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQorUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwg
Y2FwdHVyZURldmljZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSwgcGFnZUlkZW50
aWZpZXIpKTsKIH0KIAotU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKLSAgICA6IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmlu
ZyB7IGNhcHR1cmVEZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0pCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKKzogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5sYWJl
bCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSwgeyB9LCBwYWdl
SWRlbnRpZmllcikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9tYW5h
Z2VyKG1hbmFnZXIpCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCmluZGV4IDc4YmZlNWI2NGIyMGRkMDkwMWI5OWFhNzNjMzVjOTA3MDIx
ZDliMDYuLjlhZmZmMjgwMzVhMGQwMzI1ZjI2YzBkMmU5YzZkYWRkYWViYTVjMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNz
IFdlYkF1ZGlvQnVmZmVyTGlzdDsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICAgICAKLWNsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiB7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBzdGF0aWMgUmVm
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3Bw
ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJik7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcAppbmRleCA2OGRjMTE1ZjE2OWYxOWVmODlmNjZmZTVjOGYyNDFjODViOTc4ZDcxLi5l
M2E3MDRlMWJjMjI2ZWQ0ODFhMGQ3NWQxODcwNWZhM2I5YTUyOTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtNTksNyArNTks
NyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdAogICAgIH0KICNlbmRpZgogCi0gICAgc2VuZChN
ZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Q3Jl
YXRlU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3Vy
Y2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSwgc291cmNlLnBhZ2VJZGVudGlmaWVyKCkpKTsK
IH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpyZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCAyZmRkYjg0OTUyZDA4ODlhODgyNTRlNDc3YmZmMjMyMGI2MGYwMWRjLi5lMjU5NjM5NjZkNWI5
NzBhNDhiOGYxNjk4ZDA3NGFmMzZhYmM5MGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTEwOTk2LDEyICsxMDk5NiwxMiBAQCBXZWJDb3JlOjpDYXB0dXJl
U291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JT
cGVlY2hSZQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKIAogICAgIGlmIChwcmVmZXJlbmNlcygpLmNh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlKSB9OworICAgICAgICByZXR1cm4g
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlE
KSB9OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJRCkgfTsKICNl
bHNlCi0gICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVh
bHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7CisgICAgcmV0dXJuIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURl
dmljZSwgbV93ZWJQYWdlSUQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IGI4MWRiYjIzZWZmNDUz
M2EwNzI1NTc4OGEyNmVlYTdjMzNlMDVhZTMuLjlmMDlmNjIyNjI4MjY4M2MyNjBiNTM0NTE2Zjk4
MDhkYTRiN2M0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMjA4LDkgKzIwOCw5IEBAIHZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMo
KQogCiAjZW5kaWYKIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZp
Y2UpOworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpj
cmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSwgcGFnZUlkZW50aWZpZXIpOwogICAgIGlm
ICghcmVzdWx0KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiRmFpbGVkIHRv
IGNyZWF0ZSByZWFsdGltZSBzb3VyY2UiKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVy
ZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oCmluZGV4IDE4ODQ3NzFhODdiN2Y2Njk5MTkwYTVkZTU2
OTExNmNjNDdmODYxYjMuLjYyMzQ0OGZiYTlkZDdmODVhYjczMzU5MDZkNDhiYTk2OTQ4ZjMzNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgotICAgIHZvaWQgY3JlYXRlU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkZWxldGVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXgg
MjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBkNjYxZC4uYWI1ZTk4ZTQ5NzE5YWFk
ZWQ1ZTkxYmJkMzczODA3ZTEwZDAxNzNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQs
NyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0g
ICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIENyZWF0ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCiAgICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CiAgICAgU3RvcChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApp
bmRleCAyY2U5NTRmNDhiZmZlMWY5NDEwNTU1YzVlNDljNjU2YWVkOTdlMTM4Li5mMTcwZGIwODgx
M2U3MWVlN2FiNDU2ZjExY2Q1MGZjMWUwZDNjOWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CkBAIC00MywyOSArNDMsMjYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2
aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFn
ZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgbWFu
YWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBzb3Vy
Y2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIAot
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSksIFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQor
ICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
bywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwg
ZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1f
bWFuYWdlcihtYW5hZ2VyKQogewogICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJl
RmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAg
bV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBl
cnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYm
LCBhdXRvLCBhdXRvKSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZp
Y2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8m
JiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAg
ICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RG
TW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg3LDEwICs4NCw2
IEBAIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6On5SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
KCkKICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICBjb25uZWN0aW9u
LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIH0KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJl
RmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTE5LDkgKzExMiwxMCBAQCB2b2lk
IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmIHRpbQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6Omhh
c0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92
ZVNvdXJjZShpZGVudGlmaWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhh
c0VuZGVkKCkpIHsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkp
OworICAgICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVT
b3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQpAQCAtMTMwLDcgKzEyNCw3IEBAIHZvaWQgUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQogICAgIGhhc0VuZGVkKCk7CiB9
CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit2b2lk
IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6Om1hcmtBc0NhcHR1cmVGYWlsZWQoKQogewogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKICAgICBoYXNFbmRlZCgpOwpA
QCAtMTQ5LDE0ICsxNDMsNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0Vu
ZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
aWYgKHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpKSB7Ci0gICAgICAgIC8vIFRyYWNrIGlzIG11
dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0ZWQsIGxldCdzIGVuZCBpdC4KLSAg
ICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0K
ICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3Vy
Y2VDb25uZWN0aW9uKGNvbm5lY3Rpb24oKSk7CiAgICAgbV9wcm94eS5yZXNldFJlYWR5KCk7CiAg
ICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4IGEz
YzQxZGMwNGFhY2U1ZGQ0ZWE3MzlhNjBmMmE1MzBlNWUzZDA3NWUuLjhiNDUyMjY5OGJmMDIwZjZh
YTI0MWE5ODFiMTVmMWYxYWNlMWM2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNTMsNyAr
NTMsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0K
QEAgLTY1LDEzICs2NSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkgeyBt
X3Byb3h5LmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwg
V1RGTW92ZShlcnJvck1lc3NhZ2UpKTsgfQogCiAgICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwot
ICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOworICAgIHZvaWQgbWFya0FzQ2FwdHVyZUZh
aWxlZCgpOwogCiAgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3Jl
OjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKICAgICB2b2lkIHNvdXJjZU11dGVk
Q2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQogCiBwcml2
YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKTsKKyAgICBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0
UHJvZHVjaW5nRGF0YSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCmluZGV4IGM1NTMz
NTMzYWM1NWIxZjVjMmFkYWVlMTg4OTZmMzYxNGY3Y2VlMzUuLjM3YTJjNzE3NWYyMDNmOTJlZGE4
YTQ3ZTA1NzkzOWI5MDY4NWUwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCkBAIC0z
OCwxNyArMzgsMTcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFs
dGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwg
ZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdl
ciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5h
Z2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJj
ZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1S
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hT
YWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7
IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5KGlkZW50aWZpZXIs
IGRldmljZSwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3RyYWludHMpCiAgICAgLCBt
X21hbmFnZXIobWFuYWdlcikKIHsKQEAgLTU3LDcgKzU3LDcgQEAgUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW4KIAogdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZVJlbW90ZU1l
ZGlhU291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmlj
ZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29s
IHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYg
Y2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJl
bW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYm
IGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRv
JiYsIGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAg
IG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTAwLDkgKzEwMCwxMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZAogCiB2b2lk
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6aGFzRW5kZWQoKQogewotICAgIG1fcHJveHku
aGFzRW5kZWQoKTsKLSAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7Ci0g
ICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlk
ZW50aWZpZXIoKSk7CisgICAgaWYgKG1fcHJveHkuaGFzRW5kZWQoKSkgeworICAgICAgICBtX21h
bmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fbWFuYWdlci5yZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAg
IH0KIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVTdG9wcGVk
KCkKQEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6
Y2FwdHVyZVN0b3BwZWQoKQogICAgIGhhc0VuZGVkKCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlOjpjYXB0dXJlRmFpbGVkKCkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlOjptYXJrQXNDYXB0dXJlRmFpbGVkKCkKIHsKICAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpjYXB0dXJlRmFpbGVkKCk7CiAgICAgaGFzRW5kZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2UuaAppbmRleCA1MmY1MzViM2Q3M2Q2ODk3NzhiOTVmMTk0N2Y4ZTcyZDgyOThkNmExLi4yOTYx
MjY2YTkyMDMzNzY2NDc4ZGVhMDFkYmMwZTJlMTI3MDA3ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAjZW5kaWYKIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNy
ZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Ms
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTU5LDEz
ICs1OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmlu
ZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkgeyBtX3Byb3h5LmFw
cGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShl
cnJvck1lc3NhZ2UpKTsgfQogCiAgICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQg
Y2FwdHVyZUZhaWxlZCgpIGZpbmFsOworICAgIHZvaWQgbWFya0FzQ2FwdHVyZUZhaWxlZCgpOwog
CiAgICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBs
ZSYgc2FtcGxlLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKSB7IHZpZGVv
U2FtcGxlQXZhaWxhYmxlKHNhbXBsZSwgbWV0YWRhdGEpOyB9CiAgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoYm9vbCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KIAogcHJp
dmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcik7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1
Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggNGEyOTRkOGM1NDE3MWU2ZTEwMDViM2E0
MDY2NTZiMjZjMTU5YzA0ZC4uYmU3NTQ1NTgxOGI1MzVlNWVmMmQ2Yzg4NTQ2MTc0MDBiM2MwYzk0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTY4LDkgKzY4LDkgQEAg
dm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKCkK
ICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0LCBDcmVhdGVDYWxsYmFjayYmIGNhbGxiYWNr
LCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lKQordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHk6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSURI
YXNoU2FsdCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZUNh
bGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCiB7Ci0gICAgY29u
bmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFp
bnRzLCBzaG91bGRVc2VSZW1vdGVGcmFtZSksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBjb25u
ZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29uc3RyYWlu
dHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lLCBwYWdlSWRlbnRpZmllciksIFdURk1vdmUoY2FsbGJh
Y2spKTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmFwcGx5Q29u
c3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC05OSw5ICs5OSwxNCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6ZmFp
bEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmCiAgICAgICAgIGNhbGxiYWNr
cy50YWtlRmlyc3QoKShSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3Ig
eyB7IH0sIGVycm9yTWVzc2FnZSB9KTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHk6Omhhc0VuZGVkKCkKK2Jvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
OjpoYXNFbmRlZCgpCiB7CisgICAgaWYgKG1faXNFbmRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgbV9pc0VuZGVkID0gdHJ1ZTsKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAw
KTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6OndoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKaW5kZXggMDNjMWQ3MTIyMjdjZDViNTFh
ODA0MTk4ZjQ5NTljMjI5OGZkYTM2Mi4uMjA2ZjZmOTE3OGFjOWI4NGEzNjdmMDI3MDZhMDYzZTQ0
ZDc1OGU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaApAQCAtNTMsMTMgKzUzLDEz
IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7
IHJldHVybiBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3M7IH0KIAogICAgIHVzaW5nIENyZWF0
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBTdHJpbmcmJiwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwg
V2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47Ci0gICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShjb25zdCBTdHJpbmcmLCBDcmVhdGVDYWxsYmFjayYmLCBib29sIHNob3VsZFVzZVJlbW90
ZUZyYW1lID0gZmFsc2UpOworICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wg
c2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHNTdWNjZWVkZWQoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYg
ZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGZhaWxB
cHBseUNvbnN0cmFpbnRDYWxsYmFja3MoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAg
IAotICAgIHZvaWQgaGFzRW5kZWQoKTsKKyAgICBib29sIGhhc0VuZGVkKCk7CiAgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCk7CiAgICAg
dm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKTsK
QEAgLTc1LDEyICs3NSwxNCBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
IG1fZGV2aWNlOwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2Ug
fTsKKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJZGVudGlmaWVyOwogCiAgICAg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogICAgIERlcXVlPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRp
bmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2Ug
fTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CiAgICAg
U3RyaW5nIG1fZXJyb3JNZXNzYWdlOworICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKIH07
CiAKIGlubGluZSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggZDJkMjRhYmFiOWVjMzRh
MGRhMjJlYjY1YThhZDNjYjVmMDA3ZDk3Yy4uNzQ5YjhiYjJjOWUyMjU3MzA0MzU1OWU3Mzk2ZDcz
ZGFmYzQ2MjMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDUsMjkgKzQ1LDI1IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi1SZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
LSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25z
dHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcg
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZSho
YXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlm
aWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFu
YWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJl
ZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJu
IHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1f
cHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25z
dHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgaWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpDYW1lcmEpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9
CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3Vy
Y2UoKQogewotICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNo
U2FsdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2Vl
ZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmls
aXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxl
IHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQo
KSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBh
dXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplLCBhdXRvIGZyYW1l
UmF0ZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBt
X3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTkzLDExICs4OSw2IEBAIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6On5SZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlKCkKICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAg
ICAgICAgICBjb25uZWN0aW9uLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIH0KLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhp
cyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRDYXBh
YmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykK
QEAgLTE0Nyw5ICsxMzgsMTAgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIAogdm9pZCBSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRlZCgpCiB7Ci0gICAgbV9wcm94eS5oYXNFbmRl
ZCgpOwotICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKLSAgICBtX21h
bmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmll
cigpKTsKKyAgICBpZiAobV9wcm94eS5oYXNFbmRlZCgpKSB7CisgICAgICAgIG1fbWFuYWdlci5y
ZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgfQogfQog
CiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVTdG9wcGVkKCkKQEAgLTE1
OCw3ICsxNTAsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVTdG9w
cGVkKCkKICAgICBoYXNFbmRlZCgpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNhcHR1cmVGYWlsZWQoKQordm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjptYXJr
QXNDYXB0dXJlRmFpbGVkKCkKIHsKICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFp
bGVkKCk7CiAgICAgaGFzRW5kZWQoKTsKQEAgLTIwNCwxNCArMTk2LDYgQEAgdm9pZCBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nl
c3NDb25uZWN0aW8KICAgICBpZiAoaXNFbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYmIHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpKSB7Ci0g
ICAgICAgIC8vIFRyYWNrIGlzIG11dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0
ZWQsIGxldCdzIGVuZCBpdC4KLSAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKGNvbm5lY3Rpb24oKSk7CiAgICAgbV9w
cm94eS5yZXNldFJlYWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5oCmluZGV4IDMyYThhMTE1NDY0YjBiNjViN2VhZjNiZjBkYjgxN2ZlMWI4Zjlh
OTcuLjUxNzYzODYyODViYjZmNDAwYTcwMDBlYzhhYjY3Zjk4ZGE0ZDAwYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cgogI2Vu
ZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNl
PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwog
CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02NCwxMyArNjQsMTMg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiYpOwogCiAgICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQg
Y2FwdHVyZUZhaWxlZCgpIGZpbmFsOworICAgIHZvaWQgbWFya0FzQ2FwdHVyZUZhaWxlZCgpOwog
CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYsIFdl
YkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEpOwogICAgIHZvaWQg
c291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUp
OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBm
aW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CmluZGV4IGY2ODdkOGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLmI4YjEyMzg1
MTkwNTg4MmQxYTE2ZGE5NTg0ZTYxMTI5ZDY1MDZhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApA
QCAtMTQ2LDExICsxNDYsMTEgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVy
ZUZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbXShSZWY8UmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQo
KTsKKyAgICAgICAgc291cmNlLT5tYXJrQXNDYXB0dXJlRmFpbGVkKCk7CiAgICAgfSwgW10oUmVm
PFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5j
YXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHNvdXJjZS0+bWFya0FzQ2FwdHVyZUZhaWxlZCgpOwog
ICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAg
ICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHNvdXJjZS0+bWFya0FzQ2Fw
dHVyZUZhaWxlZCgpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCkBAIC0y
MTIsNyArMjEyLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJh
aW50c0ZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKICAgICB9LCBbXShzdGQ6Om51
bGxwdHJfdCkgeyB9KTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNp
ZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpCkBAIC0yMjUsNyArMjI1LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICAgICAg
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRl
Z29yeSh0cnVlKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBt
X21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdU
Rk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcywg
cGFnZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRp
b0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKQEAgLTIz
OCw3ICsyMzgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6
OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YQogICAgIG1fc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcyA9IHZhbHVlOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcykKQEAgLTI0OCwxMCArMjQ4LDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
CiAgICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAogICAgIGJv
b2wgc2hvdWxkVXNlSU9TdXJmYWNlID0gIW1fbWFuYWdlci5tX3Nob3VsZFVzZUdQVVByb2Nlc3NS
ZW1vdGVGcmFtZXM7Ci0gICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNl
LCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpLCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKKyAgICByZXR1cm4g
Q2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1v
dmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFn
ZUlkZW50aWZpZXIpLCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNw
bGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAg
aWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTI2MCw3ICsyNjAsNyBAQCBDYXB0
dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6
OmNyZWF0ZURpc3BsYXlDYXB0dQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
CiAgICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAotICAgIHJl
dHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFp
bnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MoYm9vbCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggOGNjNWI0ZjkyNjliMjQ0ZGI1
OTk1YjdiNzQ0NGI5MTU5N2YxNmE4Mi4uOGQyMmNkMzAyYjZjZTg2OTBhOTg4ODQ5N2UzMDkwYzIw
NTNhODljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBX
ZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwog
ICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFu
YWdlcjsgfQogICAgICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIHNw
ZWFrZXJEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQog
CkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBt
X21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURp
c3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdl
YkNvcmU6OkRpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9
CiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453846</attachid>
            <date>2022-03-04 08:37:21 -0800</date>
            <delta_ts>2022-03-07 00:29:46 -0800</delta_ts>
            <desc>Patch for landing - v2</desc>
            <filename>bug-237359-20220304173716.patch</filename>
            <type>text/plain</type>
            <size>141909</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZiZTdhZWY2OWM4Yzg4
MGU2ODM4OWM3OWE2MjI0MDIwODc5YjVjMS4uMjJkMGU2YWIzNzg4ZDcyODVhYWFmNWQ1MzQxODYw
ZGE0OGM4YmZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlbiBjcmVhdGluZyBjYXB0dXJl
IHNvdXJjZXMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBhdCBXZWJLaXQgbGF5ZXIgdG8gYmV0dGVy
IGhhbmRsZSBjcmVhdGlvbiBvZiBtdWxpdHBsZSBzb3VyY2VzLgorICAgICAgICBTaW5jZSB3ZSBh
cmUgbm93IHNvbWV0aW1lcyBhbnN3ZXJpbmcgdG8gZ2V0VXNlck1lZGlhIGJ5IGNsb25pbmcgc291
cmNlcyBkaXJlY3RseSwKKyAgICAgICAgZml4IGEgYnVnIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
dG8gdXNlIHRoZSBwcmVzZXQgYXNwZWN0IHJhdGlvIHRvIGNvbXB1dGUgbWlzc2luZyB3aWR0aCBv
ciBoZWlnaHQuCisgICAgICAgIEludHJvZHVjZSBhIHdheSB0byBlbmQgaW1tZWRpYXRlbHkgYSBj
YXB0dXJlIHNvdXJjZSwgdGhpcyBpcyB1c2VkIG9uIEdQVVByb2Nlc3Mgc2lkZSBpbiBjYXNlIHN0
YXJ0aW5nIGEgY2FwdHVyZSB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUlPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
bW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
Lmg6CisKIDIwMjItMDMtMDIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW3dlYi1hbmltYXRpb25zXSBrZXlmcmFtZSB2YWx1ZXMgc2V0IHRvICJpbmhlcml0
IiBzaG91bGQgcmVjb21wdXRlIHRoZWlyIHZhbHVlcyB3aGVuIHRoZSBpbmhlcml0ZWQgdmFsdWUg
Y2hhbmdlcwpAQCAtODQxLDcgKzg5NSw3IEBACiAgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklt
YWdlLmNwcDoKICAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKTog
RW5hYmxlIGJpZGkgcmVvcmRlcmluZy4KIAotMjAyMi0wMy0wMiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisyMDIyLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW5hbWUgTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNh
bXBsZSB0byBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZlcgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDkxMGI0M2RkN2MwNmVlM2RhZDgwMzlhY2I5YjM3MTY1NTRiYjg3ZDMuLjg4MzgyMmNjNTEw
ZTlmZGVkZDM5OTY1NzVhYzA2OWNiNzEzMzIyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMjItMDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IFNjb3BlIGNhcHR1cmUgc291cmNlcyBieSBwYWdlIGlkZW50aWZpZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVy
ZSBhcHByb3ByaWF0ZS4KKyAgICAgICAgTWFrZSB1c2Ugb2YgUGFnZUlkZW50aWZpZXIgaW4gVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eToKKyAgICAgICAgLSBGb3IgbWljcm9waG9uZSwgaWYg
dGhlcmUgaXMgYSBzb3VyY2Ugd2l0aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAgICAgICAgZmFp
bCB0aGUgc291cmNlIGFzIHdlIGFyZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3VycmVudCBjYXB0
dXJlcy4KKyAgICAgICAgLSBGb3IgY2FtZXJhLCBpZiB0aGVyZSBpcyBhIHNvdXJjZSB3aXRoIGEg
ZGlmZmVyZW50IGRldmljZSwKKyAgICAgICAgICBmYWlsIHRoZSBzb3VyY2UgYXMgd2UgYXJlIG5v
dCB5ZXQgc3VwcG9ydGluZyBjb25jdXJyZW50IGNhcHR1cmVzIChvbmx5IG9uIGlPUykuCisgICAg
ICAgICAgT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIHNvdXJjZSwgY2xvbmUgaXQg
c28gdGhhdCB3ZSByZWR1Y2UgdGhlIG92ZXJoZWFkCisgICAgICAgICAgb2YgY3JlYXRpbmcgYSBu
ZXcgc291cmNlIChzZXR0aW5nIHVwIGEgY2FtZXJhIGNhbiBiZSBhbiBleHBlbnNpdmUgb3BlcmF0
aW9uKS4KKyAgICAgICAgV2Ugc2lsZW50bHkgZmFpbCAobWVhbmluZyB0aGVyZSBpcyBubyBjb25z
b2xlIGxvZyBtZXNzYWdlIGZvciBub3cpIGJ1dCBhZGQgcmVsZWFzZSBsb2dnaW5nIHRvIGRldGVj
dCB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjItMDMtMDQgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSByb3V0aW5lcyB0byBl
eGNoYW5nZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0bHkKQEAgLTc3Nyw3ICs4MTUs
NyBAQAogICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlZEdlbmVyYWxT
dG9yYWdlRGlyZWN0b3J5IGNvbnN0KToKICAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6Z2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOiBEZWxldGVkLgogCi0yMDIyLTAzLTAy
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKzIwMjItMDMtMDQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHRvIE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJv
bVBpeGVsQnVmZmVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzczNTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDI1NjdhNWU2M2EwOTMwNTkyYjE0NGI2
YTUwOWI3Zjg2NjliMmEwMWUuLjVjMTNiNDQyNDk4ZTY5YTg2ZWQ2ODAyZjBiOWQ0NjgzMDQzNGQx
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNyw3ICsxMTM3LDYgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAog
ICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFnZUdyb3VwLmgKLSAgICBw
YWdlL1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJbmxpbmVzLmgKICAgICBwYWdlL1Bh
Z2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0xMjk0LDYg
KzEyOTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxh
dGZvcm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BPREludGVydmFsVHJlZS5oCiAgICAg
cGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5o
CiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZENvbnRl
eHQuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA1MDZm
MzM3NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4wZmFhOGJiNTVhMTk4NWU5ODBm
NzM2YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBN
ZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3Ry
YWludHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldERlZmF1bHRWaWRl
b0NvbnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVx
dWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJN
ZWRpYSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRz
KSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1
dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFT
dHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyks
IFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwgKmRv
Y3VtZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKIAogICAgIGlmICghZG9jdW1l
bnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7CiAgICAgICAgIHJl
cXVlc3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6Omdl
dERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3Ry
YWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpE
aXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVy
ZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVz
ZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpU
eXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2Vy
R2VzdHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgpIH0sIFdURk1vdmUocHJvbWlz
ZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGE0NWQx
OWU1NDczOTk1NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQuLmZjMTc2MTU2ZGQwZmNkMjIxZGZi
ODI3MjMxODE0MmRhNzBjZjA4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDY5LDQ0ICs0NjksMTIg
QEAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJl
U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNr
SW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVu
dCkKLXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAg
ICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVkKCkp
Ci0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmlz
U2FtZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2Fw
dHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwotICAg
IGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogYWN0aXZlQXVkaW9Tb3Vy
Y2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVG
YWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlz
U291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwgZG9j
dW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNv
bnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKLSAg
ICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQu
aGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2li
aWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBhY3RpdmVWaWRlb1Nv
dXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYg
aXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBk
b2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCku
Y29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwot
ICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50
LmhpZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDog
YWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50
KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBj
YXB0dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYKIH0K
IAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDM0OWFkZjZiNDJjY2IzY2MxZDZjMDdhMmU1
NDRjMmJjNTkzYWNhNGIuLmFmYmNlN2E5ZjQ1NmY3ZDUwNzY4NzgwOWNiZTE2ZTExYmU0MGUyOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsOSArNjIsOSBAQCBzdGQ6
Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6
ZmluZENhcHR1cmVEZXZpY2UoKQogICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOwogfQogCi1DYXB0
dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK0Nh
cHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
UmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAiU3BlZWNoSUQiX3MsIHsgfSk7CisgICAg
cmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVj
aElEIl9zLCB7IH0sIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCmluZGV4IGNhOTAzYjEyYjdmMjIxOTM1ZjVkZmExOThkYmIxYThjNGM3OWQzNDku
LmUzMjhkYzNjN2NkMzBmNjk5MzAyN2NiN2Q5ODRjNjYxN2ZiOTZjMWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTdGF0
ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZSYpPjsKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBk
YXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZpbmRD
YXB0dXJlRGV2aWNlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFs
dGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBQYWdlSWRlbnRpZmllcik7CiAj
ZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggM2EzNWUyNjA1ZTAzZTYyOTc5YjIy
OWQ4MjZmZTZlNzNiZTI5NDJkZi4uNzdkYWE1ODNlZTQ5YWRjZmFiYmUwYzcwNmUxMjkyYTE2MWI2
ZWMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIxOTEsNyArMjE5MSw2IEBAIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcAotcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWEyMjdkNTk4ZTQyOWQ4NTViYjNkZWVkYTliMWQ0NzI4
MGQ2MjQzYi4uYzI1Njc1OTE2ZTI4ZjgwMDhiMjRhZTZmYjI2ZjBkZjI0NTZiMTI1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTE4MSw2ICsxMTgxLDcgQEAKIAkJNDE4RkNCRTcyNzE1QTI4RjAwRjk2RUNBIC8qIFJUQ1J0cENv
ZGVjQ2FwYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFMEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBG
M0E1MjRBMEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcg
LyogRnJhbWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbSAqLzsgfTsKKwkJNDE5MkJCMTMyN0NGNjM4NjAwRjI5QTQ2IC8q
IFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTlBQ0Y5MjFG
OTdFN0RBMDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyog
U2VydmljZVdvcmtlckZldGNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDE5QkMyREYxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3Rh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUJD
MkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggKi87IH07CiAJCTQxOUJF
NzU5MUJDN0Y0MkIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlCRTc1MjFCQzdGM0RCMDBFMUM4
NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5oICovOyB9OwpAQCAtMTM2Miw3ICsxMzYzLDYgQEAK
IAkJNDZBNzhCMzQyNzk5QkQ3MTAwMTE1NEZFIC8qIFdvcmtlck9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMUIxRDI2MjZGMThBNEIwMDg4
MkRBMiAvKiBXb3JrZXJPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDZBQUFBM0QyNUQzNjMyMDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJl
YWRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NkFBQUEzQTI1RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9GaWxlUmVhZGVyQ29jb2EuaCAqLzsg
fTsKIAkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QjYzRjZCMUM2
RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0
IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI4NTkz
QzI2MTY3MjI3MDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjg1OTNBMjYxNjcyMEMw
MDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovOyB9OwogCQk0NkI5NTE5
NTIwN0Q2MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Qjk1MThBMjA3RDYzMjgwMEE3RDJERCAv
KiBBYnN0cmFjdERPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2Qjk1MTk2MjA3RDYzM0EwMEE3RDJERCAvKiBBYnN0cmFjdEZyYW1l
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4
RjIwN0Q2MzJCMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MTA1LDcgKzYxMDUsNiBAQAogCQkwNzUz
ODYwMDE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0
VHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5
OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzU3QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXNhZ2VJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4NTks
NiArODg1OCw3IEBACiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25p
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lUmF0ZU1v
bml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkwRjNBMzI0OUQxNTI4
MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGcmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTkyQkIxMjI3Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTQyMDM1MDJBNTAwNEJBMjc3IC8qIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTk0NTY5NjIwMzUwMkE2MDA0QkEyNzcgLyogQXBwbGljYXRpb25DYWNoZVJl
c291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxpY2F0
aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdvcmtlckZldGNoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTMxMiw3ICs5MzEyLDYgQEAKIAkJNDZBQUFBM0MyNUQzNjMx
NDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlckNvY29hLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDZBQ0Q4MTEyNzAxNjU2QTAwRUY4Q0VEIC8qIE5hdmlnYXRpb25S
ZXF1ZXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdh
dGlvblJlcXVlc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QjYzRjZC
MUM2RThDREYwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjg1OTNBMjYxNjcyMEMwMDE5RURDNiAvKiBT
Y3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRCdWZmZXJT
b3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI5NTE4QTIw
N0Q2MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQWJzdHJhY3RET01XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZCOTUxOEMyMDdENjMyOTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUZyYW1lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Njk1LDcgKzE4Njk0LDYgQEAKIAkJCQk0QTRGNjU2
RDFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oICov
LAogCQkJCTRBMEZGQTlGMUFBRjVFQTIwMDYyODAzQiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcCAqLywKIAkJCQk0QTBGRkFBMDFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oICovLAotCQkJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8sCiAJCQkJMDc1NEE1RTgyMTVFQTNCNzAwMkQz
QTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8sCiAJCQkJNDFCODc3NjAyM0RF
MTA0MjAwMzYzOEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmggKi8sCiAJCQkJ
NEE0RjY1NkUxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5j
cHAgKi8sCkBAIC0yNDI2NCw3ICsyNDI2Miw2IEBACiAJCQkJOTMwMkIwQkUwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQ
YWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5
OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJCQk0NkI2NTBEQjIyOTYyNjI3MDBG
RDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDREVGREEwRDI3MTIyOUJBMDA1NTU5
QTcgLyogUGFnZUlubGluZXMuaCAqLywKIAkJCQkyRDVDOUNGQjE5QzdCNTJFMDBCM0M1QzEgLyog
UGFnZU92ZXJsYXkuY3BwICovLAogCQkJCTJENUM5Q0ZDMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdl
T3ZlcmxheS5oICovLApAQCAtMzAxMTAsNiArMzAxMDcsNyBAQAogCQkJCTQxNzhFRjE2MjQxMjVC
NkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5jcHAgKi8sCiAJCQkJNDE3OEVGMTQyNDEy
NUI2QzAwMTkzQzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmggKi8sCiAJCQkJNDE4NEY1MTUxRUFG
MDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIuaCAqLywKKwkJCQk0MTkyQkIxMjI3
Q0Y2MzgzMDBGMjlBNDYgLyogUGFnZUlkZW50aWZpZXIuaCAqLywKIAkJCQkyRUUwMkExRTFGNzMy
NDI4MDAwNkFGNzIgLyogUGFzdGVib2FyZC5jcHAgKi8sCiAJCQkJNEIyNzA4QzUwQUYxOUVFNDAw
NjUxMjdGIC8qIFBhc3RlYm9hcmQuaCAqLywKIAkJCQlGNDBEQUFFQjI1RDlGMjVFMDAxMUI0RkEg
LyogUGFzdGVib2FyZENvbnRleHQuaCAqLywKQEAgLTM2NTYyLDcgKzM2NTYwLDcgQEAKIAkJCQk5
MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QTY3NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUI4MUNDNDFGQUE0NEJDMDAzN0QxRTYgLyogUGFnZUhlYXBBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDZCNjUwREQyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTkyQkIxMzI3Q0Y2Mzg2MDBGMjlBNDYg
LyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERUZEQTBFMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjQxRkI1
MUYzMzAwMDg5Qjk3IC8qIFBhZ2VOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VJZGVudGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIFBhZ2VJZGVudGlmaWVyVHlwZSB7IH07Ci11c2lu
ZyBQYWdlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UGFnZUlkZW50aWZpZXJUeXBlPjsK
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDRkNWY4ZDI5NzU2M2VlMDI5YzQxM2U5Y2RhNzQ5NGM1ZmE0ZDhhZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFBhZ2VJZGVudGlmaWVy
VHlwZSB7IH07Cit1c2luZyBQYWdlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UGFnZUlk
ZW50aWZpZXJUeXBlPjsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaAppbmRleCBhNGQ0YjUyNWJlODk5YzI5
MjE2NDA5YzI4OTQ3NmUxOWY0NmU3NzFkLi5kMDc5NTZmNDlhYWNhOGI1YzM1MTlhMjk3OGI2OTIw
Yzg0MWExNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCisjaW5jbHVk
ZSAiUGFnZUlkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw2ICs0
MCw3IEBAIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAgIE1lZGlhQ29uc3RyYWludHMg
YXVkaW9Db25zdHJhaW50czsKICAgICBNZWRpYUNvbnN0cmFpbnRzIHZpZGVvQ29uc3RyYWludHM7
CiAgICAgYm9vbCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQgeyBmYWxzZSB9OworICAgIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
ICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApAQCAtNDcsMTUgKzQ5LDIw
IEBAIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3QgewogICAgICAgICBlbmNvZGVyIDw8IGF1ZGlv
Q29uc3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgdmlkZW9Db25zdHJhaW50czsKICAgICAg
ICAgZW5jb2RlciA8PCBpc1VzZXJHZXN0dXJlUHJpdmlsZWRnZWQ7CisgICAgICAgIGVuY29kZXIg
PDwgcGFnZUlkZW50aWZpZXI7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhU3RyZWFtUmVxdWVzdD4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdDsKLSAg
ICAgICAgaWYgKGRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlwZSkgJiYgZGVjb2Rlci5kZWNvZGUo
cmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3QuaXNVc2VyR2VzdHVyZVByaXZp
bGVkZ2VkKSkKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0OwotCi0gICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWVzdC50eXBlKQor
ICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykK
KyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMp
CisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5pc1VzZXJHZXN0dXJlUHJp
dmlsZWRnZWQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5wYWdlSWRl
bnRpZmllcikpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJl
dHVybiByZXF1ZXN0OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZGUw
ZjFhN2E0ZTYzNWExMzllNDgyOGI1NDdmZGNmMDY2MTliMzVhYi4uZjFjOWU2MDI4MTNhM2JmNmZi
MzE0MTc4OGI2NjA0Y2E0M2IwOWI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ4LDgg
KzQ4LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWFsdGltZU1lZGlhU291cmNlOjpS
ZWFsdGltZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogbV9pZEhhc2hTYWx0KFdURk1vdmUoaGFz
aFNhbHQpKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5
cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBtX3BhZ2VJZGVudGlmaWVyKHBh
Z2VJZGVudGlmaWVyKQorICAgICwgbV9pZEhhc2hTYWx0KFdURk1vdmUoaGFzaFNhbHQpKQogICAg
ICwgbV9wZXJzaXN0ZW50SUQoV1RGTW92ZShkZXZpY2VJRCkpCiAgICAgLCBtX3R5cGUodHlwZSkK
ICAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGIyNTkz
NzY3OWFiOTI3MGYxOWI2MmZmNDBkNTI1MTE0M2I2OWFiNDQuLmM0YjQ1N2UyOTYwZjBlZGE5MDhi
NzIxMjk4NzM4YWU4M2U1MTQ0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTY5LDYgKzY5LDcg
QEAgc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBS
ZWFsdGltZU1lZGlhU291cmNlCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVh
bHRpbWVNZWRpYVNvdXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpblJ1bkxvb3A+Cisg
ICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4KICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHB1YmxpYyBMb2dnZXJIZWxwZXIKICNlbmRpZgpAQCAt
MTI0LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9kdWNpbmdEYXRh
KCkgY29uc3Q7CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQg
ZW5kSW1tZWRpYXRseSgpIHsgZW5kKG51bGxwdHIpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RUb0VuZChPYnNlcnZlciYgY2FsbGluZ09ic2VydmVyKTsKICAgICBib29sIGlzRW5kZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzRW5kZWQ7IH0KIApAQCAtMjIxLDggKzIyMywxMCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sKSB7IHJldHVy
biBmYWxzZTsgfQogCisgICAgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2VJZGVudGlmaWVyOyB9CisKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlKFR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0geyB9LCBT
dHJpbmcmJiBoYXNoU2FsdCA9IHsgfSk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQg
PSB7IH0sIFBhZ2VJZGVudGlmaWVyID0geyB9KTsKIAogICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJl
ZFRhc2soRnVuY3Rpb248dm9pZCgpPiYmKTsKIApAQCAtMjczLDYgKzI3Nyw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9mcmFtZUNvdW50IHsgMCB9OwogI2VuZGlmCiAKKyAgICBQYWdlSWRl
bnRpZmllciBtX3BhZ2VJZGVudGlmaWVyOwogICAgIFN0cmluZyBtX2lkSGFzaFNhbHQ7CiAgICAg
U3RyaW5nIG1faGFzaGVkSUQ7CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVudElEOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCA5NDUyNjMyNGJkNDhhYjIyZTE5NDBjMTEyMDhm
NTNiMWI5MjFjMzRhLi4wMDc0ZDE0NDk1ZTljZjEwY2UwNTRiOWVmMDliNDFiNzdkNmI4NmRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBM
b2dnZXI+JiYgbG9nZ2VyLCBOZQogCiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGF1
ZGlvU291cmNlOwogICAgIGlmIChhdWRpb0RldmljZSkgewotICAgICAgICBhdXRvIHNvdXJjZSA9
IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShh
dWRpb0RldmljZSksIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWlu
dHMpOworICAgICAgICBhdXRvIHNvdXJjZSA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShhdWRpb0RldmljZSksIFN0cmluZyB7IGhhc2hTYWx0
IH0sICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwog
ICAgICAgICBpZiAoIXNvdXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFr
ZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRp
byBzb3VyY2U6ICIsIHNvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CkBAIC04OSw5ICs4OSw5IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRl
TWVkaWFTdHJlYW0oUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAgICAgaWYgKHZpZGVv
RGV2aWNlKSB7CiAgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZTsKICAgICAgICAg
aWYgKHZpZGVvRGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1l
cmEpCi0gICAgICAgICAgICBzb3VyY2UgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
JnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBzb3VyY2UgPSB2aWRlb0Nh
cHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZp
Y2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVz
dC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNvdXJjZSA9IGRp
c3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKFdURk1vdmUo
dmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50
cyk7CisgICAgICAgICAgICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVE
aXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2Fs
dCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwog
CiAgICAgICAgIGlmICghc291cmNlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFtIHZp
ZGVvIHNvdXJjZTogIiwgc291cmNlLmVycm9yTWVzc2FnZSkpKTsKQEAgLTIwNCw3ICsyMDQsNyBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldERpc3BsYXlNZWRpYURldmljZXMo
Y29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JgogICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gZGlz
cGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBT
dHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAg
YXV0byBzb3VyY2VPckVycm9yID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxh
eUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC52aWRl
b0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKHNvdXJj
ZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFp
bnRzKHJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAg
ICAgICAgZGlzcGxheURldmljZUluZm8uYXBwZW5kKHsgc291cmNlT3JFcnJvci5jYXB0dXJlU291
cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlIH0pOwogCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1l
ZGlhU3RyZWFtUmVxdWVzdCYgcmUKICAgICAgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgYXV0byBzb3VyY2VPckVy
cm9yID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZp
Y2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9y
RXJyb3IgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRl
dmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9LCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsK
ICAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNv
dXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFs
aWRDb25zdHJhaW50KSkKICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtz
b3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApA
QCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNl
ck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBp
ZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAg
ICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVx
dWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBz
b3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC52
aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgdmlk
ZW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNz
U2NvcmUoKSwgZGV2aWNlfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThlNTVkZjI3ZjRhM2Y2ODU4ZjEzYjU4NmE0
OGU5NjU1YWZlNjFmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCi0KLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiQ2FwdHVyZURldmljZS5oIgotI2luY2x1ZGUgIkNhcHR1
cmVEZXZpY2VNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk1lZGlh
U3RyZWFtUHJpdmF0ZS5oIgotI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKLSNpbmNs
dWRlIDx3dGYvU0hBMS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgU2luZ2xlU291
cmNlRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkK
LXsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChtX2FjdGl2ZVNvdXJjZSAmJiBtX2FjdGl2ZVNvdXJjZS0+aXNQcm9kdWNpbmdEYXRh
KCkpCi0gICAgICAgIG1fYWN0aXZlU291cmNlLT5zZXRNdXRlZCh0cnVlKTsKLSAgICBtX2FjdGl2
ZVNvdXJjZSA9ICZzb3VyY2U7Ci19Ci0KLXZvaWQgU2luZ2xlU291cmNlRmFjdG9yeTo6dW5zZXRB
Y3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQotewotICAgIGlmIChtX2Fj
dGl2ZVNvdXJjZSA9PSAmc291cmNlKQotICAgICAgICBtX2FjdGl2ZVNvdXJjZSA9IG51bGxwdHI7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRleCBiYTBkOTAzZTYyOWVk
OGFiZWRmN2NmY2YxZWY5NjUxMTNlMzg5MGJmLi42NjFkNTkyZWVjMjA3NjY4NjZlOWUyYWY4MDNj
MjQyNzZmNmQ3MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJQYWdlSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSwy
NyArNDIsMTAgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKIHN0cnVjdCBDYXB0dXJlU291
cmNlT3JFcnJvcjsKIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwogCi1jbGFzcyBXRUJDT1JFX0VY
UE9SVCBTaW5nbGVTb3VyY2VGYWN0b3J5IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TaW5nbGVT
b3VyY2VGYWN0b3J5KCkgPSBkZWZhdWx0OwotCi0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlJik7Ci0gICAgdmlydHVhbCB2b2lkIHVuc2V0QWN0aXZl
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKLQotICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRp
YVNvdXJjZSogYWN0aXZlU291cmNlKCkgeyByZXR1cm4gbV9hY3RpdmVTb3VyY2U7IH0KLQotcHJp
dmF0ZToKLSAgICBSZWFsdGltZU1lZGlhU291cmNlKiBtX2FjdGl2ZVNvdXJjZSB7IG51bGxwdHIg
fTsKLX07Ci0KLWNsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkKLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgIDogcHVibGljIFNpbmdsZVNvdXJjZUZhY3RvcnkKLSNlbmRpZgoteworY2xhc3Mg
QXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJl
RmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAgICB2
aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkg
PSAwOwogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2
aWNlcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVNwZWFrZXJEZXZpY2Vz
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykgY29uc3QgeyBjYWxsYmFjaygp
OyB9CkBAIC03NCwyOCArNTgsMjAgQEAgcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkoKSA9IGRlZmF1bHQ7CiB9OwogCi1jbGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5k
aWYKLXsKK2NsYXNzIFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwg
flZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYs
IFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVy
KSA9IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgdmlkZW9DYXB0dXJlRGV2
aWNlTWFuYWdlcigpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFZpZGVvQ2FwdHVyZUZhY3Rvcnko
KSA9IGRlZmF1bHQ7CiB9OwogCi1jbGFzcyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkKLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIDogcHVibGljIFNpbmdsZVNvdXJjZUZhY3RvcnkKLSNlbmRp
ZgoteworY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5EaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmlydHVh
bCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRl
bnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgRGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA4MmRlMjU4YmJjN2IxYTE4NmRjYjU3MGRjYTA0NDBk
OGFiNDAwOWUxLi4zMGIwYTI1OGQzYWQwMDljODM3NzNhZDY5ZDZiMWNjNjM2YmFiYzViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNSwyNSArMzUsMTMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6UmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYm
IGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQorUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogewogfQog
CiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6flJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNl
KCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJj
ZSgqdGhpcyk7Ci0jZW5kaWYKLX0KLQotdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6
cHJlcGFyZVRvUHJvZHVjZURhdGEoKQotewotICAgIEFTU0VSVChmcmFtZVJhdGUoKSk7Ci0KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwot
I2VuZGlmCiB9CiAKIGNvbnN0IFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiYgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U6OnByZXNldHMoKQpAQCAtMzY5LDYgKzM1Nyw3IEBAIHZvaWQgUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2U6OnNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxp
bnQ+IHdpZHRoLCBzCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9jdXJyZW50
UHJlc2V0ID0gbWF0Y2gtPmVuY29kaW5nUHJlc2V0OwogICAgIHNldEZyYW1lUmF0ZVdpdGhQcmVz
ZXQobWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSwgbWF0Y2gtPmVuY29kaW5nUHJlc2V0KTsKIAog
ICAgIGlmICghbWF0Y2gtPnJlcXVlc3RlZFNpemUuaXNFbXB0eSgpKQpAQCAtNDEyLDYgKzQwMSw3
IEBAIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmNsaWVudFVwZGF0ZWRTaXplQW5k
RnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50CiAgICAgaWYgKCFtYXRjaCkKICAgICAgICAgcmV0
dXJuOwogCisgICAgbV9jdXJyZW50UHJlc2V0ID0gbWF0Y2gtPmVuY29kaW5nUHJlc2V0OwogICAg
IHNldEZyYW1lUmF0ZVdpdGhQcmVzZXQobWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSwgbWF0Y2gt
PmVuY29kaW5nUHJlc2V0KTsKICAgICBzZXRTaXplKG1hdGNoLT5lbmNvZGluZ1ByZXNldC0+c2l6
ZSk7CiAgICAgc2V0RnJhbWVSYXRlKG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggNzAxNzJhYWU1NmNkNGZhNWY1ZWRmZjdmZDQ0
OGI1ZjM5NWNkMThhYi4uZGMxYzNkNWVhYTc1MTE0ZTJhYmYxMDhhMTU4OGZjYTQ5YWVmOWZkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC01MywxMCArNTMsMTEgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBlbnN1cmVJbnRyaW5zaWNTaXplTWFpbnRhaW5zQXNwZWN0UmF0aW8o
KTsKIAorICAgIGNvbnN0IFZpZGVvUHJlc2V0KiBjdXJyZW50UHJlc2V0KCkgY29uc3QgeyByZXR1
cm4gbV9jdXJyZW50UHJlc2V0LmdldCgpOyB9CisKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFz
aFNhbHQpOworICAgIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCi0gICAgdm9p
ZCBwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpOwogICAgIHZvaWQgc2V0U2l6ZUFuZEZyYW1lUmF0ZShz
dGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgcHJlZmVyc1By
ZXNldChWaWRlb1ByZXNldCYpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTkwLDYgKzkxLDcgQEAgcHJp
dmF0ZToKICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UiOyB9CiAjZW5kaWYKIAorICAgIFJlZlB0
cjxWaWRlb1ByZXNldD4gbV9jdXJyZW50UHJlc2V0OwogICAgIFZlY3RvcjxSZWY8VmlkZW9QcmVz
ZXQ+PiBtX3ByZXNldHM7CiAgICAgRGVxdWU8ZG91YmxlPiBtX29ic2VydmVkRnJhbWVUaW1lU3Rh
bXBzOwogICAgIGRvdWJsZSBtX29ic2VydmVkRnJhbWVSYXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmNwcAppbmRleCBjZTZlMDAzNTk3YThiNWRiZDlkMWFhODVjNDU1NjJiMjJhOTNmNDNjLi4x
ZDRmOTliZjJiMTNhYTY2YWZmYzI0OGJlY2U1OTgyZWIzMGQ0NjcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWFsdGlt
ZVZpZGVvU291cmNlOjpSZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZT4mJiBzb3VyY2UsIGJvb2wgc2hvdWxkVXNlSU9TdXJmYWNlKQotICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgU3RyaW5nIHsgc291cmNlLT5uYW1lKCkgfSwgU3Ry
aW5nIHsgc291cmNlLT5wZXJzaXN0ZW50SUQoKSB9LCBTdHJpbmcgeyBzb3VyY2UtPmRldmljZUlE
SGFzaFNhbHQoKSB9KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgU3Ry
aW5nIHsgc291cmNlLT5uYW1lKCkgfSwgU3RyaW5nIHsgc291cmNlLT5wZXJzaXN0ZW50SUQoKSB9
LCBTdHJpbmcgeyBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSB9LCBzb3VyY2UtPnBhZ2VJZGVu
dGlmaWVyKCkpCiAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgLCBtX3Nob3VsZFVzZUlPU3VyZmFjZShzaG91bGRVc2VJT1N1cmZhY2UpCkBA
IC05NSwxMiArOTUsMTUgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzZXRTaXplQW5kRnJh
bWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHQKICAgICBBU1NFUlQoc291
cmNlU2l6ZS5oZWlnaHQoKSk7CiAgICAgQVNTRVJUKHNvdXJjZVNpemUud2lkdGgoKSk7CiAKKyAg
ICBhdXRvKiBjdXJyZW50UHJlc2V0ID0gbV9zb3VyY2UtPmN1cnJlbnRQcmVzZXQoKTsKKyAgICBh
dXRvIGludHJpbnNpY1NpemUgPSBjdXJyZW50UHJlc2V0ID8gY3VycmVudFByZXNldC0+c2l6ZSA6
IHNvdXJjZVNpemU7CisKICAgICBpZiAoIXdpZHRoKQotICAgICAgICB3aWR0aCA9IHNvdXJjZVNp
emUud2lkdGgoKSAqIGhlaWdodC52YWx1ZSgpIC8gc291cmNlU2l6ZS5oZWlnaHQoKTsKKyAgICAg
ICAgd2lkdGggPSBpbnRyaW5zaWNTaXplLndpZHRoKCkgKiBoZWlnaHQudmFsdWUoKSAvIGludHJp
bnNpY1NpemUuaGVpZ2h0KCk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0V2lkdGgoKndpZHRo
KTsKIAogICAgIGlmICghaGVpZ2h0KQotICAgICAgICBoZWlnaHQgPSBzb3VyY2VTaXplLmhlaWdo
dCgpICogd2lkdGgudmFsdWUoKSAvIHNvdXJjZVNpemUud2lkdGgoKTsKKyAgICAgICAgaGVpZ2h0
ID0gaW50cmluc2ljU2l6ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBpbnRyaW5zaWNTaXpl
LndpZHRoKCk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0SGVpZ2h0KCpoZWlnaHQpOwogCiAg
ICAgaWYgKGZyYW1lUmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHAKaW5kZXggNTU0ZjhkZDI3YTRiZTVkZWQ2ZTVlMTZhNTJiY2Q0YWQ5MDZmNDJiNy4uMTY2
YTUzMDc3MzJiMTE1ZTQ1ZDYyMDcwZWZhMDBhMDEzODI4YmZhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKQEAgLTgzLDIzICs4MywyMyBAQCBzdGF0aWMg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRm9yRGV2aWNlKENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgdAogICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpO
b25lOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJv
ciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIHN3aXRjaCAoZGV2
aWNlLnR5cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVu
OgogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0
dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gY3JlYXRlKFJlcGxheUtp
dENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCkpLCBkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2Vsc2UKICNp
ZiBIQVZFKFNDUkVFTl9DQVBUVVJFX0tJVCkKICAgICAgICAgaWYgKFNjcmVlbkNhcHR1cmVLaXRD
YXB0dXJlU291cmNlOjppc0F2YWlsYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShT
Y3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMp
LCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICBy
ZXR1cm4gY3JlYXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNl
LCBjb25zdHJhaW50cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBw
YWdlSWRlbnRpZmllcik7CiAjZW5kaWYKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlT
dHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwg
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4g
Y3JlYXRlKENHRGlzcGxheVN0cmVhbVNjcmVlbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Uu
cGVyc2lzdGVudElkKCkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpXaW5kb3c6CiAjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChT
Y3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAg
IHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZp
Y2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMp
OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CkBAIC0xMTQs
MTIgKzExNCwxMiBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aQogICAgIHJldHVybiB7IH07CiB9
CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0
ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXJlcj4sIFN0cmlu
Zz4mJiBjYXB0dXJlciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewogICAgIGlmICghY2FwdHVyZXIuaGFzX3ZhbHVlKCkpCiAgICAg
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFdURk1vdmUoY2FwdHVyZXIuZXJyb3Io
KSkgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hKFdURk1vdmUoY2FwdHVyZXIudmFsdWUoKSksIFN0cmluZyB7IGRldmljZS5sYWJl
bCgpIH0sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0
KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hKFdURk1vdmUoY2FwdHVyZXIudmFsdWUoKSksIFN0cmluZyB7IGRldmljZS5sYWJlbCgp
IH0sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwg
cGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byBy
ZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAg
aWYgKHJlc3VsdCkKQEAgLTEyOSw4ICsxMjksOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBEaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cgog
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1
ZVJlZjxDYXB0dXJlcj4mJiBjYXB0dXJlciwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VU
eXBlRm9yRGV2aWNlKGNhcHR1cmVyLT5kZXZpY2VUeXBlKCkpLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCitEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiBjYXB0
dXJlciwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2Uoc291cmNlVHlwZUZvckRldmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmll
cikKICAgICAsIG1fY2FwdHVyZXIoV1RGTW92ZShjYXB0dXJlcikpCiAgICAgLCBtX3RpbWVyKFJ1
bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmVtaXRG
cmFtZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAppbmRleCAw
NDVjOGNjNDM1ZmNiMjljNWRlZDBiMmYxYWVjYTUyNDJjNWFlOGMwLi5iOWViMDg1ZDQ3NDkzNGM1
ZTA1MWE3NWFiMWRkMDNjYzU0ZTdmODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYS5oCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0
IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKICAgICB9OwogCi0gICAgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqKTsKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
KEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXJlcj4sIFN0cmluZz4mJiwgY29uc3QgQ2FwdHVyZURl
dmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBT
dHJpbmc+JiYsIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFNlY29uZHMgZWxhcHNlZFRpbWUoKTsK
ICAgICB2b2lkIHVwZGF0ZUZyYW1lU2l6ZSgpOwogCiBwcml2YXRlOgotICAgIERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EoVW5pcXVlUmVmPENhcHR1cmVyPiYmLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EoVW5pcXVlUmVmPENhcHR1cmVyPiYmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFs
IH5EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKCk7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291
cmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCmluZGV4IDQ4NmIwZTQ0ODZhM2M2NGUzYWMxM2YzNTdiZDAxNGRlMDMxODBkZjYuLjczZWNk
MjQwM2JjMGY0OGJkYTE5ZDUxOTkwMTQ3YTM1NzNiN2VhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Niw3ICs1Niw3IEBA
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVEZWJ1Z0NhdGVnb3J5KCkKIAogY2xhc3MgR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsK
IHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBHU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGUxM2Q1M2Iy
YjI0ZGNlOWQ1MDI2ZGEyMzcyODMzZTRlNDIxM2IxZTAuLjY5ZGEyMGI2ODBlODU5ZmQ3NmY2MjBi
OTMzYTVlYTZmMGViYmM0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogY2xhc3Mg
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBWaWRlb0Nh
cHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIHJl
dHVybiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9
CkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEdTdHJlYW1lckRpc3BsYXlDYXB0
dXJlU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3Rvcnkgewog
cHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBQYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIGF1dG8mIG1hbmFnZXIg
PSBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOwogICAg
ICAgICByZXR1cm4gbWFuYWdlci5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CkBAIC0xMjAsNyArMTIwLDcgQEAgRGlzcGxh
eUNhcHR1cmVGYWN0b3J5JiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BsYXlGYWN0
b3J5KCkKIH0KIAogR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBnY2hhciogc291cmNlRmFjdG9yeSwgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSBkZXZpY2VUeXBlLCBpbnQgZmQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCisg
ICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHsgfSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVu
aXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihzb3VyY2VGYWN0b3J5LCBkZXZpY2VUeXBlKSkK
ICAgICAsIG1fZGV2aWNlVHlwZShkZXZpY2VUeXBlKQogewpAQCAtMTMwLDcgKzEzMCw3IEBAIEdT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpCiB9CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0
cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9
LCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0
cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQogICAgICwgbV9jYXB0dXJlcihtYWtlVW5pcXVlPEdT
dHJlYW1lclZpZGVvQ2FwdHVyZXI+KGRldmljZSkpCiAgICAgLCBtX2RldmljZVR5cGUoQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYzc3ZGNhMjdj
M2FjN2EyYzYwNjI1YTMzMTYxMjNjNzk4ZTk2NDQ4NC4uNWNmNjI3YzkzYTQyZDc4MTFiZDcwYjEx
NTgwY2RiMTc2ZDRiNjEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBj
b25zdCBkb3VibGUgc19IdW1Wb2x1bWUgPSAwLjE7CiBzdGF0aWMgY29uc3QgZG91YmxlIHNfTm9p
c2VGcmVxdWVuY3kgPSAzMDAwOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNlVm9sdW1lID0g
MC4wNTsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBk
ZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJz
aXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNjMsNyArNjMsNyBAQCBSZWY8TW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U+IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpjcmVhdGVGb3JNb2Nr
QXVkaQogfQogCiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VHU3RyZWFtZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0KQotICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1v
dmUoaGFzaFNhbHQpLCB7IH0pCiB7CiAgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCmluZGV4IDk2Nzc3MWVmMGFjODQ4YTg1MWQ5MmRiZTM1OWM1ZWMxZmQwOTJj
M2MuLjhkYjc2ODBlMmJhODJmMWMyOTAyYTIzZTY2NTgzZGRhMGJiYzg5ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNw
cApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhcHR1cmVTb3Vy
Y2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsK
QEAgLTE0Nyw3ICsxNDcsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIE1v
Y2tEaXNwbGF5Q2FwdHVyZVNvdXJjZUdTdHJlYW1lcjo6c2V0dGluZ3MoKQogfQogCiBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lcjo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFt
ZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQot
ICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uo
V1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCB7IH0p
CiB7CiAgICAgZW5zdXJlR1N0cmVhbWVySW5pdGlhbGl6ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCmluZGV4IDY2NDg1ZTMyYjk3NGIyNmI2ZGI3MGVmMzFmNDE1
NDUwYzBjNjMxZmYuLmIxMDViM2UxMGM4MDk5OThjYTExNTk1NjgwYTRhZTg2NjM3YjNiYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaApAQCAtNDUsNyArNDUsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgYmVnaW5BdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oKSB7IGJlZ2lu
SW50ZXJydXB0aW9uKCk7IH0KICAgICB2b2lkIGVuZEF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbihB
dWRpb1Nlc3Npb246Ok1heVJlc3VtZSkgeyBlbmRJbnRlcnJ1cHRpb24oKTsgfQogCi0gICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmll
cikgZmluYWw7CiAgICAgdm9pZCBhZGRFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNpdmVPYnNlcnZl
ciYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2Jz
ZXJ2ZXImKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQpp
bmRleCA2NzA1OTJmMzUxNjdmNmIwNjE5OTZiMDE2NzRlYjliNTQ4NDQzYTUyLi5iYjMyOWZlMGUx
ZDg1N2VmYjYxNzE3NGJjNDk5MTM2YmFjODNlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUlPUy5tbQpAQCAtMTE2LDEzICsxMTYsMTMgQEAgdm9pZCBDb3JlQXVkaW9DYXB0
dXJlU291cmNlRmFjdG9yeUlPUzo6cmVtb3ZlRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2Jz
ZXJ2ZXIKICAgICAgICAgQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xl
dG9uKCkuZGlzYWJsZUFsbERldmljZXNRdWVyeSgpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJv
ciBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeUlPUzo6Y3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CiB7CiAgICAgLy8gV2UgZW5hYmxlIGV4aGF1c3RpdmUgcXVlcnkgdG8gYmUgc3VyZSB0byBzdGFy
dCBjYXB0dXJlIHdpdGggdGhlIHJpZ2h0IGRldmljZS4KICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IHN0b3AgdGhlIGF1eGlsaWFyeSBzZXNzaW9uIGFmdGVyIHN0YXJ0aW5nIGNhcHR1cmUuCiAgICAg
aWYgKG1fb2JzZXJ2ZXJzLmNvbXB1dGVzRW1wdHkoKSkKICAgICAgICAgQVZBdWRpb1Nlc3Npb25D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZW5hYmxlQWxsRGV2aWNlc1F1ZXJ5KCk7
Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAg
ICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVu
dGlmaWVyKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCBhNmQ3NDIx
NjM5YTc0Mjc2NDFjYWYyYjI3MjcxM2RlMWU1ZjE4ODBjLi4yNGUxMWFlMTNmYmJlN2MxYzg2ZmZh
NmE4ZjcwYjI0ZGY2MWZlNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTQs
NyArNTQsNyBAQCBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogCiBjbGFzcyBBVlZpZGVv
Q2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSwgcHJpdmF0
ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKQEAgLTcw
LDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZURldmljZVN1c3BlbmRlZERpZENo
YW5nZSgpOwogCiBwcml2YXRlOgotICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURl
dmljZSosIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgQVZW
aWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQ2FwdHVyZURldmljZSYs
IFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+QVZWaWRl
b0NhcHR1cmVTb3VyY2UoKTsKIAogICAgIHZvaWQgY2xlYXJTZXNzaW9uKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVT
b3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW0KaW5kZXggNTZlZDRjMjFhZWMwZTVkOWY2ZDczNWQ1ODIxYzg2YmQy
MzVmYzk2MC4uNzA3Y2I2NWM2ODE4NWFkYzc1NDdhNGVjYmYzN2RhNWE3ZmIyMDg3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtMTA4LDEzICsxMDgsMTMgQEAgcHVibGljOgog
ICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VGb3JtYXQ+IGZvcm1hdDsKIH07CiAKLUNhcHR1
cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKIHsKICAgICBhdXRvICphdkRldmljZSA9IFtQQUw6OmdldEFWQ2FwdHVyZURl
dmljZUNsYXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmRldmljZS5wZXJzaXN0ZW50SWQoKV07CiAg
ICAgaWYgKCFhdkRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5vIEFWVmlkZW9DYXB0dXJlU291
cmNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlk
ZW9DYXB0dXJlU291cmNlKGF2RGV2aWNlLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpKSk7Cisg
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGF2RGV2
aWNlLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlm
IChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqY29uc3RyYWludHMpOwogICAgICAgICBpZiAocmVzdWx0KQpAQCAtMTI0LDggKzEy
NCw4IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VP
ckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0K
IAotQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURl
dmljZSogYXZEZXZpY2UsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcoZGV2aWNlLmxh
YmVsKCkpLCBTdHJpbmcoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgV1RGTW92ZShoYXNoU2FsdCkp
CitBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2
aWNlKiBhdkRldmljZSwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZShTdHJpbmcoZGV2aWNlLmxhYmVsKCkpLCBTdHJpbmcoZGV2aWNlLnBlcnNp
c3RlbnRJZCgpKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9v
YmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVy
IGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKICAgICAsIG1fZGV2aWNlKGF2RGV2aWNl
KQogICAgICwgbV92ZXJpZnlDYXB0dXJpbmdUaW1lcigqdGhpcywgJkFWVmlkZW9DYXB0dXJlU291
cmNlOjp2ZXJpZnlJc0NhcHR1cmluZykKQEAgLTEzNyw5ICsxMzcsNiBAQCBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291cmNlKCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKGxv
Z2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFj
dG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogICAgIFttX29iamNPYnNl
cnZlciBkaXNjb25uZWN0XTsKICAgICBbbV9kZXZpY2UgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2Jz
ZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInN1c3BlbmRlZCJdOwogCkBAIC00NjksMTAgKzQ2Niw2
IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogewog
ICAgIEFMV0FZU19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIpOwogCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRp
ZgotCiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURl
dmljZUlucHV0PiB2aWRlb0luID0gYWRvcHROUyhbUEFMOjphbGxvY0FWQ2FwdHVyZURldmljZUlu
cHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjomZXJyb3JdKTsKICAg
ICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA5
YTBiMjllZGIxZDE3ODE1NjU0NTBmNThkZTkwOWY2OGM4NzNlYTAzLi5kMjRkNGIzMWZjNTQyMTBl
ZDhkNTg2MGFlNjc3ODM2Y2M1NDBhOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuY3BwCkBAIC02NjgsMjcgKzY2OCwyNyBAQCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
aW5pdGlhbGl6ZUNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoUmVmPENvcmVBdWRpb0NhcHR1cgogICAg
IHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1DYXB0
dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgYXV0byBkZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7
CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJObyBDb3JlQXVkaW9DYXB0dXJl
U291cmNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENv
cmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+
bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZpY2VJRCgpKSk7CisgICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92
ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0
KSwgZGV2aWNlLT5kZXZpY2VJRCgpLCBudWxscHRyLCBwYWdlSWRlbnRpZmllcikpOwogI2VsaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBhdXRvIGRldmljZSA9IEFWQXVkaW9TZXNzaW9uQ2Fw
dHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmF1ZGlvU2Vzc2lvbkRldmljZVdpdGhVSUQo
V1RGTW92ZShkZXZpY2VJRCkpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyAi
Tm8gQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlIGRldmljZSJfcyB9OwogCi0gICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZp
Y2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCkp
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIDAsIG51bGxwdHIsIHBhZ2VJZGVudGlmaWVyKSk7CiAjZW5kaWYKICAgICByZXR1
cm4gaW5pdGlhbGl6ZUNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShzb3VyY2UpLCBjb25z
dHJhaW50cyk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIEJh
c2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJyaWRlVW5pdCkKK0NhcHR1cmVTb3VyY2VPckVycm9yIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJyaWRlVW5pdCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobGFi
ZWwpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCwgJm92ZXJyaWRlVW5pdCkpOworICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNl
SUQpLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShoYXNoU2FsdCksIDAsICZvdmVycmlkZVVuaXQs
IHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgcmV0dXJuIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJl
U291cmNlKFdURk1vdmUoc291cmNlKSwgY29uc3RyYWludHMpOwogfQogCkBAIC03ODAsOCArNzgw
LDggQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6d2hlbkF1ZGlvQ2FwdHVy
ZVVuaXRJc05vdFJ1bm5pbmcoRnVuY3Rpb248dm8KICAgICByZXR1cm4gQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6dW5pdCgpLndoZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5uaW5nKFdURk1vdmUoY2Fs
bGJhY2spKTsKIH0KIAotQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0
LCB1aW50MzJfdCBjYXB0dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqIG92ZXJyaWRl
VW5pdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNo
U2FsdCkpCitDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQz
Ml90IGNhcHR1cmVEZXZpY2VJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCogb3ZlcnJpZGVVbml0LCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobGFiZWwpLCBXVEZNb3Zl
KGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9j
YXB0dXJlRGV2aWNlSUQoY2FwdHVyZURldmljZUlEKQogICAgICwgbV9vdmVycmlkZVVuaXQob3Zl
cnJpZGVVbml0KQogewpAQCAtODIxLDE5ICs4MjEsMTEgQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjppbml0aWFsaXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKQogCiBDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjp+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCku
dW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0KICAgICB1bml0KCkucmVtb3ZlQ2xp
ZW50KCp0aGlzKTsKIH0KIAogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzdGFydFByb2R1
Y2luZ0RhdGEoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0j
ZW5kaWYKLQogICAgIGluaXRpYWxpemVUb1N0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHVuaXQo
KS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
CmluZGV4IDMzMDM2ZTk5NmY2NzNlNTI3MDIzODViNDFlMGE5M2YxODAzNTFmOTkuLjBlYzY3MmJm
OWYxYzM2MDU2MjQ5NzBjMjQxZjZhMGExNTkzNTJkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaApAQCAtNTEsMTUgKzUxLDE1IEBAIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOwogCiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUZv
clRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJy
aWRlVW5pdCk7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQ
YWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUZv
clRlc3RpbmcoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIEJhc2VBdWRpb1NoYXJlZFVuaXQmIG92ZXJy
aWRlVW5pdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIENNQ2xvY2tSZWYgdGltZWJhc2VD
bG9jaygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBw
ZXJzaXN0ZW50SUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqID0gbnVsbHB0cik7CisgICAgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmlu
ZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQq
LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgp
OwogICAgIEJhc2VBdWRpb1NoYXJlZFVuaXQmIHVuaXQoKTsKICAgICBjb25zdCBCYXNlQXVkaW9T
aGFyZWRVbml0JiB1bml0KCkgY29uc3Q7CkBAIC0xMjksMTQgKzEyOSwxNCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aGVuQXVkaW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhG
dW5jdGlvbjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBvdmVycmlkZTsKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpIG92ZXJyaWRlOwog
ICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmlu
YWw7CiAgICAgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBzcGVha2VyRGV2aWNlcygpIGNv
bnN0IGZpbmFsOwogfTsKIAotaW5saW5lIENhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitpbmxpbmUgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0
dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lz
dGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICByZXR1cm4g
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQpp
bmRleCAwZGQzZDcxY2FlN2E2M2I2MzcyMDhmMjgzODIyMGU2NTllNDIxM2NlLi4zNDIyNzQyM2Q4
OWIwYTA0OWRlNjlhY2UzNWY4ZjM4ZjNkMzBjMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5p
dC5tbQpAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgdm9pZCBhZGRIdW0oZmxvYXQgYW1wbGl0dWRl
LCBmbG9hdCBmcmVxdWVuY3ksIGZsb2F0IHNhbXBsZVJhdGUsIHVpbnQ2NF90CiAgICAgfQogfQog
Ci1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gZGV2aWNlID0g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElE
KGRldmljZUlEKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKQEAgLTkxLDcgKzkxLDcgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1vY2sgbWljcm9waG9uZSBk
ZXZpY2UiX3MgfTsKIAogICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnNldERl
dmljZUlEKGRldmljZUlEKTsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlRm9yVGVzdGluZyhXVEZNb3ZlKGRldmljZUlEKSwgIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cywgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkp
OworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFdU
Rk1vdmUoZGV2aWNlSUQpLCAgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzLCBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKSwgcGFnZUlkZW50aWZpZXIp
OwogfQogCiBNb2NrQXVkaW9TaGFyZWRVbml0JiBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAppbmRleCA5NWNmMzVj
ZDRlYjEzMThkODY4MzI3M2E1ZDA5NmM3MzY0NDYwOGIwLi40ODI5NTc5ZDJmYTE2NTNjZWMwMDEy
N2MwM2YyNGNhMzA5NzZjZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMuaApAQCAtNDcsMTMgKzQ3LDEzIEBAIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAK
IGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjIGZpbmFsIDogcHVibGljIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlPiBjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgc3RhdGljIFJlZjxNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlm
aWVyKTsKIAogICAgIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYygpID0gZGVmYXVsdDsKIAog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U7Ci0gICAg
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJ
ZGVudGlmaWVyKTsKIAogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsK
ICAgICB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZlcigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGZkMTk0ZTYxOWE0NGI4ODExZGNiMTdlMDA0Njcx
ZjQ0NTM1ZTdhOTcuLjllMjVmNmQyZDQzMTNmOTBkZTljMGZiMWQ2MGRkODhiMDk3ODVkNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUyLDcgKzUyLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBA
IC02MSw3ICs2MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7
ICJObyBtb2NrIGNhbWVyYSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0gICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUoZGV2aWNl
SUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmlj
ZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7
CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGlmIChhdXRvIGVycm9yID0gc291cmNl
LT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgICAgICByZXR1cm4gV1RG
TW92ZShlcnJvci0+bWVzc2FnZSk7CkBAIC03MCwxMyArNzAsMTMgQEAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFdURk1vdmUoc291cmNlKSkpOwogfQogCi1SZWY8TW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxh
eUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCkKK1JlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhX
VEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJ
ZGVudGlmaWVyKSk7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQpCi0gICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmlj
ZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAg
LCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Ug
UmVuZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggOTdjOTdl
NTkwMzY0ZDQxOTcwY2E0NmUyODc4YTE2Yjg3ZWYxZjRhZi4uY2YwMDgyMGE0NDg4ZWZiNGIzNTVl
M2U2NTM3M2UwZDEzODYxOWU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLmNwcApAQCAtNDUsMTAgKzQ1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeU1hYyBmaW5hbCA6IHB1YmxpYyBWaWRlb0Nh
cHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAg
ICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYSk7Ci0gICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0
dXJuIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC01
Nyw5ICs1Nyw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIERpc3BsYXlDYXB0dXJlU291cmNlRmFjdG9y
eU1hYyBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAg
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRl
bnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBEaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRp
Zmllcik7CiAgICAgfQogcHJpdmF0ZToKICAgICBEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3Bs
YXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIERpc3BsYXlDYXB0dXJlTWFuYWdlckNv
Y29hOjpzaW5nbGV0b24oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBkMDg5NGQ1ZDRmZTgyNWY4
YjA2ZDZjOTI4YWFmMDk4NjM3N2NjNGIyLi45ZTg4YWIxZTU5ZTdhNzJiNzhjNzU1ZDgyNDc4YmFi
Zjk5NjRjZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDUsNyArNDUsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkp
ICYmICFVU0UoR1NUUkVBTUVSKQotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVH
CiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rl
dmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNjIsOCArNjIsOCBAQCBDYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJgogfQogI2VuZGlmCiAKLU1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVk
aWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSks
IFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAg
ICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UgUmVuZGVyIFF1ZXVlIikpCiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhp
cywgJk1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp0aWNrKQogewpAQCAtNzcsOSArNzcsNiBAQCBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbQogCiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6fk1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlKCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3MoKQpA
QCAtMTM2LDcgKzEzMyw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdz
RGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGltZU1lZGlhU291cmNlU2V0CiB2b2lkIE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CiAgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRp
b0NoYW5nZWQoKTsKICAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaAppbmRleCBmMGRhZGY3MWQyZDAzNTM1YTY4MmU1MGM3OWI5NDI0MmQw
ODY4ZmY4Li43YTBmNGQxNWI5NTNmMGEwOGU4MWZjYzQ5NWRmNWUzODJmOWE3ZTA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oCkBAIC00MiwxMyArNDIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfk1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENoYW5uZWxDb3Vu
dCh1bnNpZ25lZCk7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAg
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lk
IHJlbmRlcihTZWNvbmRzKSA9IDA7CiAgICAgdm9pZCBzZXR0aW5nc0RpZENoYW5nZShPcHRpb25T
ZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDA5MmQyZmU2MTE5MzQ4Zjk4NjVhODhmYjI3OTFlM2Ey
ZDcxNGE0MDEuLjZkMTJjNmJmMDc4ZGEyZjU0ZWY0Njc1NjdhMGZkMzU1YTA2OWQxNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0xMDEsMTMgKzEwMSwxMyBAQCBzdGF0aWMgaW5s
aW5lIFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKIAogY2xhc3MgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFZpZGVvQ2FwdHVyZUZhY3Rvcnkg
ewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAg
QVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
KTsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURl
dmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhLCBk
ZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBm
aW5kIG1vY2sgY2FtZXJhIGRldmljZSB3aXRoIGdpdmVuIHBlcnNpc3RlbnRJRCJfcyB9OwogCi0g
ICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5n
IHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oTUFDKQogY2xhc3MgTW9ja0Rpc3BsYXlDYXB0dXJlciBmaW5hbCA6
IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJlciB7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJik7Cisg
ICAgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiwgUGFnZUlkZW50aWZp
ZXIpOwogCiBwcml2YXRlOgogICAgIGJvb2wgc3RhcnQoKSBmaW5hbDsKQEAgLTEzNCw4ICsxMzQs
OCBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdz
OwogfTsKIAotTW9ja0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UpCi0gICAgOiBtX3NvdXJjZShNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgfSkpCitN
b2NrRGlzcGxheUNhcHR1cmVyOjpNb2NrRGlzcGxheUNhcHR1cmVyKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBtX3NvdXJj
ZShNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJl
cihTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVs
KCkgfSwgU3RyaW5nIHsgfSwgcGFnZUlkZW50aWZpZXIpKQogewogfQogCkBAIC0xNzcsNyArMTc3
LDcgQEAgSW50U2l6ZSBNb2NrRGlzcGxheUNhcHR1cmVyOjppbnRyaW5zaWNTaXplKCkgY29uc3QK
IAogY2xhc3MgTW9ja1JlYWx0aW1lRGlzcGxheVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgRGlzcGxh
eUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZp
bmFsCiAgICAgewogICAgICAgICBpZiAoIU1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpj
YXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2UudHlwZSgpLCBkZXZpY2UucGVyc2lz
dGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgZGlz
cGxheSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKQEAgLTE4NiwxMSArMTg2
LDExIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
Y3JlZW46CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93Ogog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hOjpjcmVhdGUoVW5pcXVlUmVmPERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkNhcHR1
cmVyPihtYWtlVW5pcXVlUmVmPE1vY2tEaXNwbGF5Q2FwdHVyZXI+KGRldmljZSkpLCBkZXZpY2Us
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihk
ZXZpY2UsIHBhZ2VJZGVudGlmaWVyKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZWxpZiBVU0UoR1NUUkVBTUVSKQogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tEaXNwbGF5Q2FwdHVyZVNvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlKGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICNlbHNlCi0gICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBk
ZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVu
dGlmaWVyKTsKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKQEAgLTIxMSwyMCArMjExLDE1IEBAIHBy
aXZhdGU6CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1
YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
IGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwogICAgICAgICBpZiAoIU1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQog
ICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgbWljcm9waG9uZSBkZXZp
Y2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKIAotICAgICAgICByZXR1cm4gTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0K
IHByaXZhdGU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldEFjdGl2ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9Ci0g
ICAgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZp
bmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0
aXZlU291cmNlKHNvdXJjZSk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlKiBhY3RpdmVTb3Vy
Y2UoKSBmaW5hbCB7IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xl
dG9uKCkuYWN0aXZlU291cmNlKCk7IH0KLSNlbmRpZgogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2Vy
JiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KTsgfQogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c3BlYWtl
ckRldmljZXMoKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggNjBjNWE4Y2Q2ZDUwZTkwMGU0
YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZC4uM2NmNzQ2MGM4MGUzYmUxZDViYTNmMGNlZDdjMTliMjVk
ZjI5YWJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAm
JiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAj
aWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTU5LDcgKzU5
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1vY2sg
Y2FtZXJhIGRldmljZSJfcyB9OwogI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3Ry
YWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAg
IHJldHVybiB7IH07CiAKQEAgLTczLDggKzczLDggQEAgc3RhdGljIEhhc2hTZXQ8TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UqPiYgYWxsTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgIHJldHVy
biB2aWRlb1NvdXJjZXM7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFdURk1v
dmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBt
X2VtaXRGcmFtZVRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJk1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpnZW5lcmF0ZUZyYW1lKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CkBAIC0yMzksNyArMjM5LDYgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRD
YXB0dXJlVGltZXIoKQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydFByb2R1
Y2luZ0RhdGEoKQogewotICAgIHByZXBhcmVUb1Byb2R1Y2VEYXRhKCk7CiAgICAgc3RhcnRDYXB0
dXJlVGltZXIoKTsKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCmluZGV4IDkzNWM2ZGRlY2I4ZDQ1OGM5MTY2ZjViMjY3YWM1YzQ5NGZmMzQzYjUu
LmZjNWZjN2FhMWNiNzZmYTZkOTczOTA1ODY1YmZhZmVjZWRlMzZiYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogCiBjbGFzcyBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSwgcHJp
dmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBz
dGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBh
Z2VJZGVudGlmaWVyKTsKICAgICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAogICAgIHN0
YXRpYyB2b2lkIHNldElzSW50ZXJydXB0ZWQoYm9vbCk7CkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIoKSBjb25zdDsKIAogcHJvdGVjdGVkOgot
ICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRl
bnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGFkMDc1ODIxNzUxMDEzNTdlMDU1YjEx
NDI2ODg5MmZhN2M3M2M5NDYuLjZiNzZkMzQyZWY3ZGE3YjJkNWZjNTdiNjE0ZTc2ZWU1NDc1MDVk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0yODksNyArMjg5LDcyIEBAIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KCkKICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwog
fQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgbWVkaWFDb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VH
UFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWljcm9waG9uZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBtZWRpYUNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHNvdXJjZU9yRXJy
b3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2Fs
dCksIG1lZGlhQ29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZU9y
RXJyb3IpCisgICAgICAgIHJldHVybiBzb3VyY2VPckVycm9yOworCisgICAgYXV0byYgcGVyUGFn
ZVNvdXJjZXMgPSBtX3BhZ2VTb3VyY2VzLmVuc3VyZShwYWdlSWRlbnRpZmllciwgW10geyByZXR1
cm4gUGFnZVNvdXJjZXMgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICAvLyBGSVhNRTog
U3VwcG9ydCBtdWx0aXBsZSBtaWNyb3Bob25lcyBzaW11bHRhbmVvdXNseS4KKyAgICBpZiAoYXV0
byogbWljcm9waG9uZVNvdXJjZSA9IHBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2UuZ2V0
KCkpIHsKKyAgICAgICAgaWYgKG1pY3JvcGhvbmVTb3VyY2UtPnBlcnNpc3RlbnRJRCgpICE9IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSAmJiAhbWljcm9waG9uZVNvdXJjZS0+aXNFbmRlZCgpKSB7Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJFbmRpbmcgbWljcm9waG9uZSBz
b3VyY2UgYXMgbmV3IHNvdXJjZSBpcyB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuIik7CisgICAg
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGZhaWwgdGhlIGNhcHR1cmUgaW4g
YSB3YXkgdGhhdCBzaG93cyBhIHNwZWNpZmljIGNvbnNvbGUgbG9nIG1lc3NhZ2UuCisgICAgICAg
ICAgICBtaWNyb3Bob25lU291cmNlLT5lbmRJbW1lZGlhdGx5KCk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgcGVyUGFn
ZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZSA9IFdlYWtQdHIgeyBzb3VyY2UuZ2V0KCkgfTsKKyAg
ICByZXR1cm4gc291cmNlOworfQorCitzdGF0aWMgYm9vbCBjYW5DYXB0dXJlRnJvbU11bHRpcGxl
Q2FtZXJhcygpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gZmFsc2U7
CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKK0NhcHR1cmVTb3VyY2VPckVy
cm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZUNhbWVyYVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBtZWRpYUNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikKK3sKKyAgICBhdXRvJiBwZXJQYWdlU291cmNlcyA9IG1fcGFnZVNvdXJjZXMuZW5zdXJlKHBh
Z2VJZGVudGlmaWVyLCBbXSB7IHJldHVybiBQYWdlU291cmNlcyB7IH07IH0pLml0ZXJhdG9yLT52
YWx1ZTsKKyAgICBhdXRvKiBjYW1lcmFTb3VyY2UgPSBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3Vy
Y2UuZ2V0KCk7CisgICAgaWYgKGNhbWVyYVNvdXJjZSkgeworICAgICAgICAvLyBGSVhNRTogT3B0
aW1pemUgbXVsdGlwbGUgY29uY3VycmVudCBjYW1lcmFzLgorICAgICAgICBpZiAoY2FtZXJhU291
cmNlLT5wZXJzaXN0ZW50SUQoKSA9PSBkZXZpY2UucGVyc2lzdGVudElkKCkgJiYgIWNhbWVyYVNv
dXJjZS0+aXNFbmRlZCgpKSB7CisgICAgICAgICAgICAvLyBXZSBjYW4gcmV1c2UgdGhlIHNvdXJj
ZSwgbGV0J3MgZG8gaXQuCisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9IGNhbWVyYVNvdXJjZS0+
Y2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChtZWRpYUNvbnN0cmFpbnRzKSB7CisgICAgICAgICAg
ICAgICAgYXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqbWVkaWFDb25zdHJh
aW50cyk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gV1RGTW92ZShlcnJvci0+bWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICByZXR1cm4gc291cmNlOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBzb3VyY2VPckVy
cm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJl
RmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VP
ckVycm9yKQorICAgICAgICByZXR1cm4gc291cmNlT3JFcnJvcjsKKworICAgIGlmICghY2FuQ2Fw
dHVyZUZyb21NdWx0aXBsZUNhbWVyYXMoKSAmJiBjYW1lcmFTb3VyY2UpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiRW5kaW5nIGNhbWVyYSBzb3VyY2UgYXMgbmV3IHNvdXJj
ZSBpcyB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuIik7CisgICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgcHJvYmFibHkgZmFpbCB0aGUgY2FwdHVyZSBpbiBhIHdheSB0aGF0IHNob3dzIGEgc3Bl
Y2lmaWMgY29uc29sZSBsb2cgbWVzc2FnZS4KKyAgICAgICAgY2FtZXJhU291cmNlLT5lbmRJbW1l
ZGlhdGx5KCk7CisgICAgfQorCisgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJj
ZSgpOworICAgIHNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmll
cik7CisgICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlID0gV2Vha1B0ciB7IHNvdXJjZS5n
ZXQoKSB9OworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRp
YUNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uUHJveHktPndpbGxTdGFydENhcHR1
cmUoZGV2aWNlLnR5cGUoKSkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSwgIlJlcXVlc3QgaXMgbm90IGFsbG93ZWQiX3MsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyB7IH0sIHsgfSwgeyB9LCB7IH0sIDApOwpAQCAtMjk5LDE2ICszNjQsMTQgQEAgdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWkKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOwog
ICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOworICAgICAgICBzb3VyY2VPckVycm9yID0gY3JlYXRlTWljcm9waG9uZVNvdXJj
ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwotICAg
ICAgICBpZiAoc291cmNlT3JFcnJvcikKLSAgICAgICAgICAgIHNvdXJjZU9yRXJyb3IuY2FwdHVy
ZVNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmllcik7CisgICAg
ICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVDYW1lcmFTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAg
IHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5k
aXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2Us
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3Ig
PSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZh
Y3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgogICAg
IGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaAppbmRleCA2NThiNWI3ZDE4ODZjNDgzMDZmMTgwM2EzODgwNGI5NTNk
ODU0ZjU0Li5kM2FiMGRhYWZhNWFhNmIzMTNjZjI4Zjc3ZGZjYzcyNmJkMjc5ZDM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
IAogICAgIHVzaW5nIENyZWF0ZVNvdXJjZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29y
ZTo6SW50U2l6ZSwgZG91YmxlKT47Ci0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vz
c1JlbW90ZUZyYW1lcywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7CisgICAgdm9pZCBjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRl
dmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wg
c2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CkBAIC05NCwx
MSArOTQsMjAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0
aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIHNob3VsZEFw
cGx5Um90YXRpb24pOwogCisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
TWljcm9waG9uZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2Ft
ZXJhU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKKwogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQ
cm94eTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8U291cmNlUHJveHk+PiBtX3Byb3hpZXM7CiAgICAgVW5pcXVlUmVm
PENvbm5lY3Rpb25Qcm94eT4gbV9jb25uZWN0aW9uUHJveHk7CiAgICAgV2ViQ29yZTo6T3JpZW50
YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXIgeyAwIH07CisKKyAgICBzdHJ1Y3Qg
UGFnZVNvdXJjZXMgeworICAgICAgICBXZWFrUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IG1pY3JvcGhvbmVTb3VyY2U7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY2FtZXJhU291cmNlOworICAgIH07CisgICAgSGFzaE1hcDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgUGFnZVNvdXJjZXM+IG1fcGFnZVNvdXJjZXM7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3YmNhNDUzZTczNzUz
NzY5YTdmYzU4ZTJlNzA3MzJiODU3ZDliODI5Li5lZDdmNGRhYjE2YmVhNzliNDIxZDk2NjBlZTFl
NDljM2Y2OTAxMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdl
cyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBk
ZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMg
Y29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykgLT4gKGJv
b2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0
YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKSBBc3lu
YworICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMgY29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1l
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nl
c3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyBjYXBhYmlsaXRpZXMsIFZlY3RvcjxXZWJDb3JlOjpWaWRlb1ByZXNldERhdGE+IHByZXNl
dHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgZG91YmxlIGZyYW1lUmF0ZSkgQXN5bmMKICAgICBT
dGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWQpCiAgICAgRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
ZjVhNjE2NGU4MzFjOTY4OTk1ZTMzMmVmMDI2OWMwYjhjMThjZjlmMi4uODhmZGE4NDkxNDYwYjc3
NzUwZDdkYTM1MDFiZWEwNWUwZjAzMzA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC0zOSwxMyArMzksMTMgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLVJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiBjYXB0dXJlRGV2aWNlKQorUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmlj
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSwgcGFnZUlkZW50aWZpZXIpKTsKIH0K
IAotU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYgY2FwdHVyZURldmljZSkKLSAgICA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZyB7IGNhcHR1cmVE
ZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0p
CitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikK
KzogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmlu
ZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSwgeyB9LCBwYWdlSWRlbnRpZmllcikK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIp
CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCmluZGV4IDc4YmZlNWI2NGIyMGRkMDkwMWI5OWFhNzNjMzVjOTA3MDIxZDliMDYuLjlhZmZm
MjgwMzVhMGQwMzI1ZjI2YzBkMmU5YzZkYWRkYWViYTVjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIFdlYkF1ZGlvQnVm
ZmVyTGlzdDsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICAgICAKLWNsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlPiB7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVh
dGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKIAogcHJp
dmF0ZToKLSAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAppbmRl
eCA2OGRjMTE1ZjE2OWYxOWVmODlmNjZmZTVjOGYyNDFjODViOTc4ZDcxLi5lM2E3MDRlMWJjMjI2
ZWQ0ODFhMGQ3NWQxODcwNWZhM2I5YTUyOTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJj
ZShTcGVlY2hSZWNvZ25pdAogICAgIH0KICNlbmRpZgogCi0gICAgc2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Q3JlYXRlU291cmNlKGlk
ZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRlbnRpZmll
ciwgY2FwdHVyZURldmljZSwgc291cmNlLnBhZ2VJZGVudGlmaWVyKCkpKTsKIH0KIAogdm9pZCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVT
b3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyZmRkYjg0OTUy
ZDA4ODlhODgyNTRlNDc3YmZmMjMyMGI2MGYwMWRjLi5lMjU5NjM5NjZkNWI5NzBhNDhiOGYxNjk4
ZDA3NGFmMzZhYmM5MGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTEwOTk2LDEyICsxMDk5NiwxMiBAQCBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
ciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZQogICAg
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiTm8gZGV2aWNlIGlzIGF2YWlsYWJs
ZSBmb3IgY2FwdHVyZSIgfTsKIAogICAgIGlmIChwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0lu
R1BVUHJvY2Vzc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUobV9w
cm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlKSB9OworICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9OwogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nl
c3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUobV9w
cm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJRCkgfTsKICNlbHNlCi0gICAgcmV0
dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNv
dXJjZSgqY2FwdHVyZURldmljZSk7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSwgbV93ZWJQ
YWdlSUQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IGI4MWRiYjIzZWZmNDUzM2EwNzI1NTc4OGEy
NmVlYTdjMzNlMDVhZTMuLjlmMDlmNjIyNjI4MjY4M2MyNjBiNTM0NTE2Zjk4MDhkYTRiN2M0MDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcApAQCAtMjA4LDkgKzIwOCw5IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQogCiAjZW5kaWYK
IAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjcmVh
dGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlKQordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2UpOworICAgIGF1
dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGlt
ZU1lZGlhU291cmNlKGRldmljZSwgcGFnZUlkZW50aWZpZXIpOwogICAgIGlmICghcmVzdWx0KSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFs
dGltZSBzb3VyY2UiKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChpZGVu
dGlmaWVyKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oCmluZGV4IDE4ODQ3NzFhODdiN2Y2Njk5MTkwYTVkZTU2OTExNmNjNDdmODYx
YjMuLjYyMzQ0OGZiYTlkZDdmODVhYjczMzU5MDZkNDhiYTk2OTQ4ZjMzNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVNlbmRlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw3ICs0Nyw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgotICAgIHZvaWQgY3JlYXRlU291cmNlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisgICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcik7CiAgICAgdm9pZCBkZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMjM4MmRmMWQ4ZTU5
ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBkNjYxZC4uYWI1ZTk4ZTQ5NzE5YWFkZWQ1ZTkxYmJkMzcz
ODA3ZTEwZDAxNzNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIENyZWF0ZVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiAg
ICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiAgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcik7CiAgICAgU3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCAyY2U5NTRm
NDhiZmZlMWY5NDEwNTU1YzVlNDljNjU2YWVkOTdlMTM4Li5mMTcwZGIwODgxM2U3MWVlN2FiNDU2
ZjExY2Q1MGZjMWUwZDNjOWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MywyOSAr
NDMsMjYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVh
dGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKKyAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJh
aW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3Vy
Y2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJl
bW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2U6OlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShu
YW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5h
Z2VyKQogewogICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6Ok1pY3JvcGhvbmUpOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNl
dEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2Us
IGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRv
KSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0
KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywg
YXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICgh
c3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1l
c3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg3LDEwICs4NCw2IEBAIFJlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2U6On5SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKCkKICAgICAgICAg
aWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ0dQ
VVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICBjb25uZWN0aW9uLT5yZW1vdmVDbGll
bnQoKnRoaXMpOwogICAgIH0KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVu
c2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTE5LDkgKzExMiwxMCBAQCB2b2lkIFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmIHRpbQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsK
LSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVu
dGlmaWVyKCkpOwotICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJl
bW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIGlmIChtX3Byb3h5Lmhhc0VuZGVkKCkpIHsK
KyAgICAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgICAgICBt
X21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRp
ZmllcigpKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2Fw
dHVyZVN0b3BwZWQoKQpAQCAtMTMwLDcgKzEyNCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQogICAgIGhhc0VuZGVkKCk7CiB9CiAKLXZvaWQgUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit2b2lkIFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6Om1hcmtBc0NhcHR1cmVGYWlsZWQoKQogewogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKICAgICBoYXNFbmRlZCgpOwpAQCAtMTQ5LDE0ICsx
NDMsNiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0
aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgIGlmIChpc0VuZGVkKCkpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKHRoaXMgIT0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLmFjdGl2ZVNvdXJjZSgpKSB7Ci0gICAgICAgIC8vIFRyYWNrIGlzIG11dGVkIGFuZCBoYXMg
bm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0ZWQsIGxldCdzIGVuZCBpdC4KLSAgICAgICAgY2FwdHVy
ZUZhaWxlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX21hbmFn
ZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9u
KGNvbm5lY3Rpb24oKSk7CiAgICAgbV9wcm94eS5yZXNldFJlYWR5KCk7CiAgICAgY3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4IGEzYzQxZGMwNGFhY2U1
ZGQ0ZWE3MzlhNjBmMmE1MzBlNWUzZDA3NWUuLjhiNDUyMjY5OGJmMDIwZjZhYTI0MWE5ODFiMTVm
MWYxYWNlMWM2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFz
cyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2UKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcywg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
KCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTY1LDEzICs2
NSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYm
IGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkgeyBtX3Byb3h5LmFwcGx5
Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJv
ck1lc3NhZ2UpKTsgfQogCiAgICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQgY2Fw
dHVyZUZhaWxlZCgpIGZpbmFsOworICAgIHZvaWQgbWFya0FzQ2FwdHVyZUZhaWxlZCgpOwogCiAg
ICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29s
IHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQogCiBwcml2YXRlOgotICAgIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0
YSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCmluZGV4IGM1NTMzNTMzYWM1NWIxZjVj
MmFkYWVlMTg4OTZmMzYxNGY3Y2VlMzUuLjM3YTJjNzE3NWYyMDNmOTJlZGE4YTQ3ZTA1NzkzOWI5
MDY4NWUwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCkBAIC0zOCwxNyArMzgsMTcg
QEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFn
ZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0g
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25z
dHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVE
aXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBk
ZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJj
ZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJl
bCgpIH0sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0
KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5KGlkZW50aWZpZXIsIGRldmljZSwgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3RyYWludHMpCiAgICAgLCBtX21hbmFnZXIobWFu
YWdlcikKIHsKQEAgLTU3LDcgKzU3LDcgQEAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW4KIAogdm9p
ZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkK
IHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQo
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwg
YXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVz
LCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291
cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2Fn
ZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1
dG8pIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlk
RmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAw
LDkgKzEwMCwxMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6YXBwbHlDb25z
dHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZAogCiB2b2lkIFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZTo6aGFzRW5kZWQoKQogewotICAgIG1fcHJveHkuaGFzRW5kZWQoKTsK
LSAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7Ci0gICAgbV9tYW5hZ2Vy
LnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7
CisgICAgaWYgKG1fcHJveHkuaGFzRW5kZWQoKSkgeworICAgICAgICBtX21hbmFnZXIucmVtb3Zl
U291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIH0KIH0KIAogdm9p
ZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVTdG9wcGVkKCkKQEAgLTExMSw3
ICsxMTIsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZVN0b3Bw
ZWQoKQogICAgIGhhc0VuZGVkKCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlOjpjYXB0dXJlRmFpbGVkKCkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpt
YXJrQXNDYXB0dXJlRmFpbGVkKCkKIHsKICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJl
RmFpbGVkKCk7CiAgICAgaGFzRW5kZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAppbmRleCA1
MmY1MzViM2Q3M2Q2ODk3NzhiOTVmMTk0N2Y4ZTcyZDgyOThkNmExLi4yOTYxMjY2YTkyMDMzNzY2
NDc4ZGVhMDFkYmMwZTJlMTI3MDA3ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCkBAIC00
Nyw3ICs0Nyw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyos
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKCk7CiAKICAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTU5LDEzICs1OSwxMyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENv
bnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkgeyBtX3Byb3h5LmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2Up
KTsgfQogCiAgICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQgY2FwdHVyZUZhaWxl
ZCgpIGZpbmFsOworICAgIHZvaWQgbWFya0FzQ2FwdHVyZUZhaWxlZCgpOwogCiAgICAgdm9pZCBy
ZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYgc2FtcGxlLCBX
ZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKSB7IHZpZGVvU2FtcGxlQXZhaWxh
YmxlKHNhbXBsZSwgbWV0YWRhdGEpOyB9CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9v
bCB2YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KIAogcHJpdmF0ZToKLSAgICBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAg
ICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBm
aW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eS5jcHAKaW5kZXggNGEyOTRkOGM1NDE3MWU2ZTEwMDViM2E0MDY2NTZiMjZjMTU5
YzA0ZC4uYmU3NTQ1NTgxOGI1MzVlNWVmMmQ2Yzg4NTQ2MTc0MDBiM2MwYzk0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTY4LDkgKzY4LDkgQEAgdm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQ
cm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJREhhc2hTYWx0LCBDcmVhdGVDYWxsYmFjayYmIGNhbGxiYWNrLCBib29sIHNob3Vs
ZFVzZVJlbW90ZUZyYW1lKQordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNy
ZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYgY2Fs
bGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlm
aWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFpbnRzLCBzaG91bGRV
c2VSZW1vdGVGcmFtZSksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBjb25uZWN0aW9uKCktPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZp
ZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29uc3RyYWludHMsIHNob3VsZFVz
ZVJlbW90ZUZyYW1lLCBwYWdlSWRlbnRpZmllciksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAog
dm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmFwcGx5Q29uc3RyYWludHMoY29u
c3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFw
cGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05OSw5ICs5OSwx
NCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6ZmFpbEFwcGx5Q29uc3Ry
YWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmCiAgICAgICAgIGNhbGxiYWNrcy50YWtlRmlyc3Qo
KShSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyB7IH0sIGVycm9y
TWVzc2FnZSB9KTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6Omhh
c0VuZGVkKCkKK2Jvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpoYXNFbmRlZCgp
CiB7CisgICAgaWYgKG1faXNFbmRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9p
c0VuZGVkID0gdHJ1ZTsKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OndoZW5S
ZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmgKaW5kZXggMDNjMWQ3MTIyMjdjZDViNTFhODA0MTk4ZjQ5NTlj
MjI5OGZkYTM2Mi4uMjA2ZjZmOTE3OGFjOWI4NGEzNjdmMDI3MDZhMDYzZTQ0ZDc1OGU3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaApAQCAtNTMsMTMgKzUzLDEzIEBAIHB1YmxpYzoK
ICAgICBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3M7IH0KIAogICAgIHVzaW5nIENyZWF0ZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBTdHJpbmcmJiwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50
U2l6ZSwgZG91YmxlKT47Ci0gICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBT
dHJpbmcmLCBDcmVhdGVDYWxsYmFjayYmLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lID0gZmFs
c2UpOworICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVt
b3RlRnJhbWUgPSBmYWxzZSk7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
KTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3Ry
YWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGZhaWxBcHBseUNvbnN0cmFp
bnRDYWxsYmFja3MoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIAotICAgIHZvaWQg
aGFzRW5kZWQoKTsKKyAgICBib29sIGhhc0VuZGVkKCk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2lu
Z0RhdGEoKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCk7CiAgICAgdm9pZCBhcHBseUNv
bnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKTsKQEAgLTc1LDEyICs3
NSwxNCBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwog
ICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJZGVudGlmaWVyOwogCiAgICAgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogICAgIERlcXVlPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0
cmFpbnRzQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKICAgICBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CiAgICAgU3RyaW5nIG1fZXJy
b3JNZXNzYWdlOworICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQ
cm94eShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggZDJkMjRhYmFiOWVjMzRhMGRhMjJlYjY1YThh
ZDNjYjVmMDA3ZDk3Yy4uNzQ5YjhiYjJjOWUyMjU3MzA0MzU1OWU3Mzk2ZDczZGFmYzQ2MjMyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDUsMjkgKzQ1LDI1IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
Ci1SZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcykKK1JlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwg
ZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1h
bmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAg
bWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBz
b3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0K
IAotUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFn
ZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQo
KSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Ms
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRp
ZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAg
ICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
aWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCi0g
ICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAg
IG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYg
ZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8m
JiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKKyAgICBtX3By
b3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50
aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2Nl
ZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJp
bGl0aWVzLCBhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplLCBhdXRvIGZyYW1lUmF0ZSkgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZh
aWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTkzLDEx
ICs4OSw2IEBAIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6On5SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlKCkKICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICBjb25u
ZWN0aW9uLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIH0KLQotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgaWYgKGRldmljZVR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpDYW1lcmEpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKQEAgLTE0Nyw5ICsx
MzgsMTAgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIAogdm9pZCBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpoYXNFbmRlZCgpCiB7Ci0gICAgbV9wcm94eS5oYXNFbmRlZCgpOwotICAgIG1f
bWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKLSAgICBtX21hbmFnZXIucmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICBp
ZiAobV9wcm94eS5oYXNFbmRlZCgpKSB7CisgICAgICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2Uo
aWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgfQogfQogCiB2b2lkIFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVTdG9wcGVkKCkKQEAgLTE1OCw3ICsxNTAsNyBA
QCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVTdG9wcGVkKCkKICAgICBo
YXNFbmRlZCgpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVG
YWlsZWQoKQordm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjptYXJrQXNDYXB0dXJlRmFp
bGVkKCkKIHsKICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7CiAgICAg
aGFzRW5kZWQoKTsKQEAgLTIwNCwxNCArMTk2LDYgQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8K
ICAgICBpZiAoaXNFbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6Q2FtZXJhICYmIHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpKSB7Ci0gICAgICAgIC8vIFRy
YWNrIGlzIG11dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0ZWQsIGxldCdzIGVu
ZCBpdC4KLSAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
I2VuZGlmCi0KICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRV
cGRhdGVTb3VyY2VDb25uZWN0aW9uKGNvbm5lY3Rpb24oKSk7CiAgICAgbV9wcm94eS5yZXNldFJl
YWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CmluZGV4IDMyYThhMTE1NDY0YjBiNjViN2VhZjNiZjBkYjgxN2ZlMWI4ZjlhOTcuLjUxNzYzODYy
ODViYjZmNDAwYTcwMDBlYzhhYjY3Zjk4ZGE0ZDAwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApA
QCAtNTUsNyArNTUsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIGZpbmFsIDog
cHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cgogI2VuZGlmCiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02NCwxMyArNjQsMTMgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiYpOwogCiAgICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQgY2FwdHVyZUZhaWxl
ZCgpIGZpbmFsOworICAgIHZvaWQgbWFya0FzQ2FwdHVyZUZhaWxlZCgpOwogCiAgICAgdm9pZCB2
aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYsIFdlYkNvcmU6OkludFNp
emUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEpOwogICAgIHZvaWQgc291cmNlTXV0ZWRD
aGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CiAKIHByaXZh
dGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpOworICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJv
eHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGY2ODdk
OGQ5ZmJlMDMwMjM3ZjRmY2E0MDczMGExYTQ1YmQ0YzA0YzMuLmI4YjEyMzg1MTkwNTg4MmQxYTE2
ZGE5NTg0ZTYxMTI5ZDY1MDZhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTQ2LDExICsx
NDYsMTEgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxlZChSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
c3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbXShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAg
c291cmNlLT5tYXJrQXNDYXB0dXJlRmFpbGVkKCk7CiAgICAgfSwgW10oUmVmPFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVk
KCk7CisgICAgICAgIHNvdXJjZS0+bWFya0FzQ2FwdHVyZUZhaWxlZCgpOwogICAgIH0sIFtdKFJl
ZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNl
LT5jYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHNvdXJjZS0+bWFya0FzQ2FwdHVyZUZhaWxlZCgp
OwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCkBAIC0yMTIsNyArMjEyLDcg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9
KTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1
ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1
ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQ
VV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yMjUs
NyArMjI1LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICAgICAgRGVwcmVjYXRlZEds
b2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsK
ICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNl
dFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKQEAgLTIzOCw3ICsyMzgsNyBA
QCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldFNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YQogICAgIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyA9IHZhbHVlOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmICFF
TkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykK
QEAgLTI0OCwxMCArMjQ4LDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAgICAgICAgIG1f
bWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAogICAgIGJvb2wgc2hvdWxkVXNl
SU9TdXJmYWNlID0gIW1fbWFuYWdlci5tX3Nob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXM7
Ci0gICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50
cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpLCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIp
LCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTI2MCw3ICsyNjAsNyBAQCBDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3Bs
YXlDYXB0dQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIG1f
bWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAotICAgIHJldHVybiBSZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAg
IHJldHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0
cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggOGNjNWI0ZjkyNjliMjQ0ZGI1OTk1YjdiNzQ0NGI5
MTU5N2YxNmE4Mi4uOGQyMmNkMzAyYjZjZTg2OTBhOTg4ODQ5N2UzMDkwYzIwNTNhODljYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBz
ZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wpOwogCiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZp
bmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQogICAg
ICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2Vz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQogCkBAIC04OCw3ICs4
OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyhib29sKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
KSBmaW5hbDsKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXIm
IHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9u
b09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYgbV9tYW5hZ2VyOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZv
aWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJl
U291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3JlOjpDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkRpc3Bs
YXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyBy
ZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAgICAgICAg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453946</attachid>
            <date>2022-03-07 00:29:53 -0800</date>
            <delta_ts>2022-03-08 04:32:33 -0800</delta_ts>
            <desc>Patch for landing - v3</desc>
            <filename>bug-237359-20220307092950.patch</filename>
            <type>text/plain</type>
            <size>156133</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZiZTdhZWY2OWM4Yzg4
MGU2ODM4OWM3OWE2MjI0MDIwODc5YjVjMS4uYTM5ZjNmNzljYmY0MzYzOTA0ZDhmZWE2MzM2NDI4
NjU3ZWUzNTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIyLTAzLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFBh
c3MgUGFnZUlkZW50aWZpZXIgd2hlbiBjcmVhdGluZyBjYXB0dXJlIHNvdXJjZXMuCisgICAgICAg
IFRoaXMgaXMgdXNlZCBhdCBXZWJLaXQgbGF5ZXIgdG8gYmV0dGVyIGhhbmRsZSBjcmVhdGlvbiBv
ZiBtdWxpdHBsZSBzb3VyY2VzLgorICAgICAgICBTaW5jZSB3ZSBhcmUgbm93IHNvbWV0aW1lcyBh
bnN3ZXJpbmcgdG8gZ2V0VXNlck1lZGlhIGJ5IGNsb25pbmcgc291cmNlcyBkaXJlY3RseSwKKyAg
ICAgICAgZml4IGEgYnVnIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2UgdG8gdXNlIHRoZSBwcmVzZXQg
YXNwZWN0IHJhdGlvIHRvIGNvbXB1dGUgbWlzc2luZyB3aWR0aCBvciBoZWlnaHQuCisgICAgICAg
IEludHJvZHVjZSBhIHdheSB0byBlbmQgaW1tZWRpYXRlbHkgYSBjYXB0dXJlIHNvdXJjZSwgdGhp
cyBpcyB1c2VkIG9uIEdQVVByb2Nlc3Mgc2lkZSBpbiBjYXNlIHN0YXJ0aW5nIGEgY2FwdHVyZSB1
c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1t
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja0F1ZGlvU2hhcmVkVW5pdC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisKIDIwMjItMDMtMDIg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW3dlYi1hbmlt
YXRpb25zXSBrZXlmcmFtZSB2YWx1ZXMgc2V0IHRvICJpbmhlcml0IiBzaG91bGQgcmVjb21wdXRl
IHRoZWlyIHZhbHVlcyB3aGVuIHRoZSBpbmhlcml0ZWQgdmFsdWUgY2hhbmdlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA5MTBiNDNkZDdjMDZlZTNkYWQ4MDM5YWNiOWIzNzE2NTU0YmI4N2QzLi40Zjg0MGM0Njg5Zjdj
MjM4NDZmYmI0NDJlZGUzZjc2YjIzMjVkZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisy
MDIyLTAzLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBT
Y29wZSBjYXB0dXJlIHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
LgorCisgICAgICAgIFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlcmUgYXBwcm9wcmlhdGUuCisgICAg
ICAgIE1ha2UgdXNlIG9mIFBhZ2VJZGVudGlmaWVyIGluIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6CisgICAgICAgIC0gRm9yIG1pY3JvcGhvbmUsIGlmIHRoZXJlIGlzIGEgc291cmNlIHdp
dGggYSBkaWZmZXJlbnQgZGV2aWNlLAorICAgICAgICAgIGZhaWwgdGhlIHNvdXJjZSBhcyB3ZSBh
cmUgbm90IHlldCBzdXBwb3J0aW5nIGNvbmN1cnJlbnQgY2FwdHVyZXMuCisgICAgICAgIC0gRm9y
IGNhbWVyYSwgaWYgdGhlcmUgaXMgYSBzb3VyY2Ugd2l0aCBhIGRpZmZlcmVudCBkZXZpY2UsCisg
ICAgICAgICAgZmFpbCB0aGUgc291cmNlIGFzIHdlIGFyZSBub3QgeWV0IHN1cHBvcnRpbmcgY29u
Y3VycmVudCBjYXB0dXJlcyAob25seSBvbiBpT1MpLgorICAgICAgICAgIE90aGVyd2lzZSwgaWYg
dGhlcmUgaXMgYSBtYXRjaGluZyBzb3VyY2UsIGNsb25lIGl0IHNvIHRoYXQgd2UgcmVkdWNlIHRo
ZSBvdmVyaGVhZAorICAgICAgICAgIG9mIGNyZWF0aW5nIGEgbmV3IHNvdXJjZSAoc2V0dGluZyB1
cCBhIGNhbWVyYSBjYW4gYmUgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbikuCisgICAgICAgIFdlIHNp
bGVudGx5IGZhaWwgKG1lYW5pbmcgdGhlcmUgaXMgbm8gY29uc29sZSBsb2cgbWVzc2FnZSBmb3Ig
bm93LCB3aGlsZSBzdGlsbCBmaXJpbmcgZW5kZWQgZXZlbnQpIGJ1dCBhZGQgcmVsZWFzZSBsb2dn
aW5nIHRvIGRldGVjdCB0aGlzIGNhc2UuCisgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRvIGhh
dmUgb25lIG1lc3NhZ2UgaW4gY2FzZSBjYXB0dXJlIHNvdXJjZSBlbmRzIChzdG9wcGVkIG9yIGZh
aWxpbmcpIGluc3RlYWQgb2YgdHdvLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46CisKIDIwMjIt
MDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJv
ZHVjZSByb3V0aW5lcyB0byBleGNoYW5nZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDI1NjdhNWU2M2EwOTMwNTkyYjE0NGI2YTUwOWI3Zjg2
NjliMmEwMWUuLjVjMTNiNDQyNDk4ZTY5YTg2ZWQ2ODAyZjBiOWQ0NjgzMDQzNGQxMjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtMTEzNyw3ICsxMTM3LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2Uv
UGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFnZUdyb3VwLmgKLSAgICBwYWdlL1BhZ2VJ
ZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJbmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5
LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0xMjk0LDYgKzEyOTMsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUE9E
SW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BPREludGVydmFsVHJlZS5oCiAgICAgcGxhdGZvcm0v
UE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCiAgICAgcGxh
dGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZENvbnRleHQuaAogICAg
IHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA1MDZmMzM3NGI3ZTZk
NzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4wZmFhOGJiNTVhMTk4NWU5ODBmNzM2YjYxZGEw
ZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBNZWRpYURldmlj
ZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFBy
b21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldERlZmF1bHRWaWRlb0NvbnN0cmFp
bnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3Jl
YXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RG
TW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2Vy
R2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVz
dCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1
ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUo
dmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5w
YWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKIAogICAgIGlmICghZG9jdW1lbnQtPnNldHRp
bmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7CiAgICAgICAgIHJlcXVlc3QtPnN0
YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlN
ZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6
OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVk
aWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVk
Z2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJl
cXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNw
bGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVBy
aXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgpIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAg
IHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGE0NWQxOWU1NDczOTk1
NmRiNzgwNjNjN2NhYmU4YThlMGYxMDRkNGQuLjI5NjkzNmRhZGViZmM5NDYyYjk0NzVkNzlhYzdj
NjRmZDNmYzE4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDY5LDU5ICs0NjksMzYgQEAgTWVkaWFQ
cm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVu
dChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAg
ICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVkKCkpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNv
dXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29y
ZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwotICAgIGlmICghcGFn
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2Fw
dHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7
Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1l
ZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0
aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkg
JiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFu
Z2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rvcnko
KS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VD
YXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkp
IHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMo
TWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwotICAgICAgICBh
Y3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigp
KTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVy
ZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkgPT0gJmRv
Y3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAgICBjYXB0dXJlVHJh
Y2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKIHsKICAgICBBU1NFUlQo
aXNDYXB0dXJlVHJhY2soKSk7Ci0gICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKTsK
KyAgICBhdXRvJiBkb2N1bWVudCA9ICp0aGlzLT5kb2N1bWVudCgpOworICAgIGF1dG8qIHBhZ2Ug
PSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChw
YWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlv
Q2FwdHVyZUlzTXV0ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRl
ZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlz
TXV0ZWQpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgICAgIHx8IChkb2N1bWVu
dC5oaWRkZW4oKSAmJiBkb2N1bWVudC5zZXR0aW5ncygpLmludGVycnVwdEF1ZGlvT25QYWdlVmlz
aWJpbGl0eUNoYW5nZUVuYWJsZWQoKSkKKyNlbmRpZgorICAgICAgICApOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAg
bV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9k
dWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpKTsKKyAgICAgICAgbV9wcml2YXRl
LT5zZXRNdXRlZChwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVk
U3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgICAgIHx8IGRvY3VtZW50LmhpZGRlbigpCisjZW5kaWYKKyAgICAgICAgKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmNwcAppbmRleCAzNDlhZGY2YjQyY2NiM2NjMWQ2YzA3YTJlNTQ0YzJiYzU5
M2FjYTRiLi5hZmJjZTdhOWY0NTZmN2Q1MDc2ODc4MDljYmUxNmUxMWJlNDBlMjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTYyLDkgKzYyLDkgQEAgc3RkOjpvcHRpb25h
bDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0
dXJlRGV2aWNlKCkKICAgICByZXR1cm4gY2FwdHVyZURldmljZTsKIH0KIAotQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitDYXB0dXJlU291
cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVjaElEIl9zLCB7IH0pOworICAgIHJldHVybiBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsICJTcGVlY2hJRCJfcywg
eyB9LCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0
YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
aAppbmRleCBjYTkwM2IxMmI3ZjIyMTkzNWY1ZGZhMTk4ZGJiMWE4YzRjNzlkMzQ5Li5lMzI4ZGMz
YzdjZDMwZjY5OTMwMjdjYjdkOTg0YzY2MTdmYjk2YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVD
YWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47
CiAgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxi
YWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURl
dmljZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRp
YVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgUGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDNhMzVlMjYwNWUwM2U2Mjk3OWIyMjlkODI2ZmU2
ZTczYmUyOTQyZGYuLjc3ZGFhNTgzZWU0OWFkY2ZhYmJlMGM3MDZlMTI5MmExNjFiNmVjMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0yMTkxLDcgKzIxOTEsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKLXBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
LmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENv
bnN0cmFpbnRzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGFhMjI3ZDU5OGU0MjlkODU1YmIzZGVlZGE5YjFkNDcyODBkNjI0M2Iu
LmMyNTY3NTkxNmUyOGY4MDA4YjI0YWU2ZmIyNmYwZGYyNDU2YjEyNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExODEsNiAr
MTE4MSw3IEBACiAJCTQxOEZDQkU3MjcxNUEyOEYwMEY5NkVDQSAvKiBSVENSdHBDb2RlY0NhcGFi
aWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RTBBN0RDMjNCQjYzREIwMDU2MTA2MCAvKiBSVENSdHBDb2RlY0NhcGFiaWxpdHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkwRjNBNTI0QTBC
NEVFMDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3IC8qIEZyYW1l
UmF0ZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EubW0gKi87IH07CisJCTQxOTJCQjEzMjdDRjYzODYwMEYyOUE0NiAvKiBQYWdlSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAw
OUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VX
b3JrZXJGZXRjaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxOUJDMkRGMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlCQzJERDE2ODUz
Mjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5oICovOyB9OwogCQk0MTlCRTc1OTFCQzdG
NDJCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QkU3NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdl
YkNvcmVCdWlsdGluTmFtZXMuaCAqLzsgfTsKQEAgLTEzNjIsNyArMTM2Myw2IEBACiAJCTQ2QTc4
QjM0Mjc5OUJENzEwMDExNTRGRSAvKiBXb3JrZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzFCMUQyNjI2RjE4QTRCMDA4ODJEQTIgLyog
V29ya2VyT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2Nv
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZBQUFB
M0EyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmggKi87IH07CiAJCTQ2
QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2M0Y2QjFDNkU4Q0RGMDAy
RTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2QjY1MEREMjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdl
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZCODU5M0MyNjE2NzIy
NzAwMTlFREM2IC8qIFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI4NTkzQTI2MTY3MjBDMDAxOUVEQzYg
LyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDZCOTUxOTUyMDdENjMz
NDAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4QTIwN0Q2MzI4MDBBN0QyREQgLyogQWJzdHJh
Y3RET01XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0NkI5NTE5NjIwN0Q2MzNBMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOEYyMDdENjMy
QjAwQTdEMkREIC8qIEFic3RyYWN0RnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjEwNSw3ICs2MTA1LDYgQEAKIAkJMDc1Mzg2MDAxNDQ4
OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMDc1NEE1RUIyMTVFQURGMzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1N0Ix
M0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3NjExREI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVVzYWdlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25N
YW5hZ2VySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04ODU5LDYgKzg4NTgs
NyBAQAogCQk0MTkwRjNBMTI0OUQxNTI3MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVJhdGVNb25pdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3
IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RnJhbWVSYXRlTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkyNDI0
NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE5MkJC
MTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxOTQ1Njk0MjAzNTAyQTUwMDRCQTI3NyAvKiBBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE5NDU2OTYyMDM1MDJBNjAwNEJBMjc3IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxv
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOEUx
Rjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTkzMTIsNyArOTMxMiw2IEBACiAJCTQ2QUFBQTNDMjVEMzYzMTQwMEJBRjQy
RiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2QUNEODExMjcwMTY1NkEwMEVGOENFRCAvKiBOYXZpZ2F0aW9uUmVxdWVzdGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRpb25SZXF1
ZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI2M0Y2QjFDNkU4Q0RG
MDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTQ2QjY1MERCMjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkI4NTkzQTI2MTY3MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVm
ZmVyU291cmNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QnVmZmVyU291cmNlUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZCOTUxOEEyMDdENjMyODAw
QTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFic3RyYWN0RE9NV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2Qjk1MThDMjA3RDYzMjkwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xODY5NSw3ICsxODY5NCw2IEBACiAJCQkJNEE0RjY1NkQxQUE5OTdG
MTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCAqLywKIAkJCQk0
QTBGRkE5RjFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAg
Ki8sCiAJCQkJNEEwRkZBQTAxQUFGNUVBMjAwNjI4MDNCIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaCAqLywKLQkJCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuY3BwICovLAogCQkJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovLAogCQkJCTQxQjg3NzYwMjNERTEwNDIwMDM2
MzhCOCAvKiBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oICovLAogCQkJCTRBNEY2NTZF
MUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuY3BwICovLApA
QCAtMjQyNjQsNyArMjQyNjIsNiBAQAogCQkJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQ
YWdlR3JvdXAuaCAqLywKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCi0JCQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8q
IFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBh
Z2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVy
bGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXku
aCAqLywKQEAgLTMwMTEwLDYgKzMwMTA3LDcgQEAKIAkJCQk0MTc4RUYxNjI0MTI1QjZDMDAxOTND
NzQgLyogTm93UGxheWluZ01hbmFnZXIuY3BwICovLAogCQkJCTQxNzhFRjE0MjQxMjVCNkMwMDE5
M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5oICovLAogCQkJCTQxODRGNTE1MUVBRjA1OTgwMEYx
OEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmaWVyLmggKi8sCisJCQkJNDE5MkJCMTIyN0NGNjM4MzAw
RjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJCQkJMkVFMDJBMUUxRjczMjQyODAwMDZB
RjcyIC8qIFBhc3RlYm9hcmQuY3BwICovLAogCQkJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAv
KiBQYXN0ZWJvYXJkLmggKi8sCiAJCQkJRjQwREFBRUIyNUQ5RjI1RTAwMTFCNEZBIC8qIFBhc3Rl
Ym9hcmRDb250ZXh0LmggKi8sCkBAIC0zNjU2Miw3ICszNjU2MCw3IEBACiAJCQkJOTMwMkIwQkYw
RDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E2NzRC
REMwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVCODFDQzQxRkFBNDRCQzAwMzdEMUU2IC8qIFBhZ2VIZWFwQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQ2QjY1MEREMjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE5MkJCMTMyN0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGREEwRTI3MTIyOUJBMDA1NTU5QTcg
LyogUGFnZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0IwNTI0MUZCNTFGMzMwMDA4
OUI5NyAvKiBQYWdlTmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDVDOUQwMDE5
QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlSWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGQ1
ZjhkMjk3NTYzZWUwMjljNDEzZTljZGE3NDk0YzVmYTRkOGFlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50
aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotZW51bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgUGFnZUlk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZDVmOGQy
OTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9
OwordXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVy
VHlwZT47CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKaW5kZXggYTRkNGI1MjViZTg5OWMyOTIxNjQwOWMy
ODk0NzZlMTlmNDZlNzcxZC4uZDA3OTU2ZjQ5YWFjYThiNWMzNTE5YTI5NzhiNjkyMGM4NDFhMTZi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1SZXF1ZXN0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIlBhZ2VJ
ZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArNDAsNyBAQCBz
dHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICBNZWRpYUNvbnN0cmFpbnRzIGF1ZGlvQ29u
c3RyYWludHM7CiAgICAgTWVkaWFDb25zdHJhaW50cyB2aWRlb0NvbnN0cmFpbnRzOwogICAgIGJv
b2wgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIHsgZmFsc2UgfTsKKyAgICBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcjsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTQ3LDE1ICs0OSwyMCBAQCBzdHJ1
Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICAgICAgZW5jb2RlciA8PCBhdWRpb0NvbnN0cmFp
bnRzOwogICAgICAgICBlbmNvZGVyIDw8IHZpZGVvQ29uc3RyYWludHM7CiAgICAgICAgIGVuY29k
ZXIgPDwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkOworICAgICAgICBlbmNvZGVyIDw8IHBhZ2VJ
ZGVudGlmaWVyOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxNZWRpYVN0cmVhbVJlcXVlc3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQogICAgIHsKICAgICAgICAgTWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3Q7Ci0gICAgICAgIGlm
IChkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnR5cGUpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3Qu
YXVkaW9Db25zdHJhaW50cykgJiYgZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCkp
Ci0gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDsKLQotICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlwZSkKKyAgICAgICAg
ICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpCisgICAgICAg
ICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKQorICAgICAg
ICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QuaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2Vk
KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QucGFnZUlkZW50aWZpZXIp
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4gcmVx
dWVzdDsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IGRlMGYxYTdhNGU2
MzVhMTM5ZTQ4MjhiNTQ3ZmRjZjA2NjE5YjM1YWIuLmYxYzllNjAyODEzYTNiZjZmYjMxNDE3ODhi
NjYwNGNhNDNiMDliOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00OCw4ICs0OCw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkK
K1JlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSB0eXBlLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9wYWdlSWRlbnRpZmllcihwYWdlSWRlbnRp
ZmllcikKKyAgICAsIG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fcGVy
c2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBt
X25hbWUoV1RGTW92ZShuYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBiMjU5Mzc2NzlhYjky
NzBmMTliNjJmZjQwZDUyNTExNDNiNjlhYjQ0Li5jNGI0NTdlMjk2MGYwZWRhOTA4YjcyMTI5ODcz
OGFlODNlNTE0NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02OSw2ICs2OSw3IEBAIHN0cnVj
dCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVN
ZWRpYVNvdXJjZQogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVk
aWFTb3VyY2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPgorICAgICwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgLCBwdWJsaWMgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAgLTEyNCw2ICsx
MjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0
OwogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIGVuZEltbWVk
aWF0bHkoKSB7IGVuZChudWxscHRyKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0VG9FbmQo
T2JzZXJ2ZXImIGNhbGxpbmdPYnNlcnZlcik7CiAgICAgYm9vbCBpc0VuZGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0VuZGVkOyB9CiAKQEAgLTIyMSw4ICsyMjMsMTAgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7
IH0KIAorICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9wYWdlSWRlbnRpZmllcjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYg
aGFzaFNhbHQgPSB7IH0pOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9LCBQ
YWdlSWRlbnRpZmllciA9IHsgfSk7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1
bmN0aW9uPHZvaWQoKT4mJik7CiAKQEAgLTI3Myw2ICsyNzcsNyBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1fZnJhbWVDb3VudCB7IDAgfTsKICNlbmRpZgogCisgICAgUGFnZUlkZW50aWZpZXIg
bV9wYWdlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OwogICAgIFN0cmluZyBt
X2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5jcHAKaW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQwYzExMjA4ZjUzYjFiOTIx
YzM0YS4uMDA3NGQxNDQ5NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZiODZkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYm
IGxvZ2dlciwgTmUKIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJj
ZTsKICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0Nh
cHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZp
Y2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAg
ICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVx
dWVzdC5hdWRpb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAg
aWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVj
dGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNl
OiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODks
OSArODksOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3Ry
ZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlmICh2aWRlb0RldmljZSkg
ewogICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAgIGlmICh2aWRl
b0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAg
ICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RG
TW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlk
ZW50aWZpZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzb3VyY2UgPSBkaXNwbGF5Q2Fw
dHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2
aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAg
ICAgICAgICAgc291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNh
cHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVx
dWVzdC52aWRlb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKIAogICAgICAg
ICBpZiAoIXNvdXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhw
ZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSB2aWRlbyBzb3Vy
Y2U6ICIsIHNvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1l
ZGlhU3RyZWFtUmVxdWVzdCYKICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsg
aGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJl
U291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJh
aW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChzb3VyY2VPckVycm9y
ICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1
ZXN0LnZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAgICAgIGRp
c3BsYXlEZXZpY2VJbmZvLmFwcGVuZCh7IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0
bmVzc1Njb3JlKCksIGRldmljZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVh
bVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJp
bmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0g
YXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0
cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAg
ICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1
cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3Ry
YWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JF
cnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAgLTIzNSw3
ICsyMzUsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURl
dmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZp
Y2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBh
dXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0
dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAgICAgICAgICAg
IGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJlcXVlc3QucGFn
ZUlkZW50aWZpZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JF
cnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25z
dHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNl
SW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCks
IGRldmljZX0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYxM2I1ODZhNDhlOTY1NWFm
ZTYxZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNl
TWFuYWdlci5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVBy
aXZhdGUuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSA8d3Rm
L1NIQTEuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rv
cnk6OnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCi17Ci0gICAg
aWYgKG1fYWN0aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAo
bV9hY3RpdmVTb3VyY2UgJiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgpKQotICAg
ICAgICBtX2FjdGl2ZVNvdXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAgbV9hY3RpdmVTb3VyY2Ug
PSAmc291cmNlOwotfQotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnVuc2V0QWN0aXZlU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9hY3RpdmVTb3Vy
Y2UgPT0gJnNvdXJjZSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBudWxscHRyOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYmEwZDkwM2U2MjllZDhhYmVkZjdj
ZmNmMWVmOTY1MTEzZTM4OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTllMmFmODAzYzI0Mjc2ZjZk
NzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsMjcgKzQyLDEw
IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJy
b3I7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgU2lu
Z2xlU291cmNlRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U2luZ2xlU291cmNlRmFj
dG9yeSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2Uq
IGFjdGl2ZVNvdXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNlOyB9Ci0KLXByaXZhdGU6Ci0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogbV9hY3RpdmVTb3VyY2UgeyBudWxscHRyIH07Ci19Owot
Ci1jbGFzcyBBdWRpb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIEF1ZGlvQ2Fw
dHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRp
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBD
YXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKICAg
ICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTcGVha2VyRGV2aWNlcyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spIGNvbnN0IHsgY2FsbGJhY2soKTsgfQpAQCAt
NzQsMjggKzU4LDIwIEBAIHByb3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBk
ZWZhdWx0OwogfTsKIAotY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2VuZGlmCi17Citj
bGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0Nh
cHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFn
ZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZh
dWx0OwogfTsKIAotY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2Ns
YXNzIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGlzcGxh
eUNhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIp
ID0gMDsKICAgICB2aXJ0dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZS5jcHAKaW5kZXggODJkZTI1OGJiYzdiMWExODZkY2I1NzBkY2EwNDQwZDhhYjQwMDll
MS4uMzBiMGEyNThkM2FkMDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEzIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2Fs
dCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBp
ZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAg
IDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKIHsKIH0KIAogUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2U6On5SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMp
OwotI2VuZGlmCi19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXBhcmVU
b1Byb2R1Y2VEYXRhKCkKLXsKLSAgICBBU1NFUlQoZnJhbWVSYXRlKCkpOwotCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgog
fQogCiBjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlOjpwcmVzZXRzKCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0
aCwgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVudFByZXNldCA9
IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNo
LT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAKICAgICBpZiAo
IW1hdGNoLT5yZXF1ZXN0ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2ICs0MDEsNyBAQCB2b2lk
IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVkU2l6ZUFuZEZyYW1lUmF0
ZShzdGQ6Om9wdGlvbmFsPGludAogICAgIGlmICghbWF0Y2gpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFt
ZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGlu
Z1ByZXNldCk7CiAgICAgc2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVzZXQtPnNpemUpOwogICAg
IHNldEZyYW1lUmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVkZmY3ZmQ0NDhiNWYzOTVj
ZDE4YWIuLmRjMWMzZDVlYWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFlZjlmZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDExIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZW5zdXJlSW50cmluc2ljU2l6ZU1haW50YWluc0FzcGVjdFJhdGlvKCk7CiAKKyAg
ICBjb25zdCBWaWRlb1ByZXNldCogY3VycmVudFByZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY3Vy
cmVudFByZXNldC5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsK
KyAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBp
ZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIHZvaWQgcHJlcGFy
ZVRvUHJvZHVjZURhdGEoKTsKICAgICB2b2lkIHNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRp
b25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQcmVzZXQoVmlk
ZW9QcmVzZXQmKSB7IHJldHVybiB0cnVlOyB9CkBAIC05MCw2ICs5MSw3IEBAIHByaXZhdGU6CiAg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlIjsgfQogI2VuZGlmCiAKKyAgICBSZWZQdHI8VmlkZW9Q
cmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gbV9w
cmVzZXRzOwogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKICAg
ICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
aW5kZXggY2U2ZTAwMzU5N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkzZjQzYy4uMWQ0Zjk5YmYy
YjEzYWE2NmFmZmMyNDhiZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+
JiYgc291cmNlLCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNv
dXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0
KCkgfSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNv
dXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5n
IHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSwgc291cmNlLT5wYWdlSWRlbnRpZmllcigp
KQogICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgICwgbV9zaG91bGRVc2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJmYWNlKQpAQCAtOTUsMTIg
Kzk1LDE1IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6ZUFuZEZyYW1lUmF0ZShz
dGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNTRVJUKHNvdXJjZVNpemUu
aGVpZ2h0KCkpOwogICAgIEFTU0VSVChzb3VyY2VTaXplLndpZHRoKCkpOwogCisgICAgYXV0byog
Y3VycmVudFByZXNldCA9IG1fc291cmNlLT5jdXJyZW50UHJlc2V0KCk7CisgICAgYXV0byBpbnRy
aW5zaWNTaXplID0gY3VycmVudFByZXNldCA/IGN1cnJlbnRQcmVzZXQtPnNpemUgOiBzb3VyY2VT
aXplOworCiAgICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBzb3VyY2VTaXplLndpZHRo
KCkgKiBoZWlnaHQudmFsdWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7CisgICAgICAgIHdpZHRo
ID0gaW50cmluc2ljU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBpbnRyaW5zaWNTaXpl
LmhlaWdodCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKCp3aWR0aCk7CiAKICAg
ICBpZiAoIWhlaWdodCkKLSAgICAgICAgaGVpZ2h0ID0gc291cmNlU2l6ZS5oZWlnaHQoKSAqIHdp
ZHRoLnZhbHVlKCkgLyBzb3VyY2VTaXplLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IGludHJp
bnNpY1NpemUuaGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50cmluc2ljU2l6ZS53aWR0aCgp
OwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0KTsKIAogICAgIGlmIChm
cmFtZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmlu
ZGV4IDU1NGY4ZGQyN2E0YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQyYjcuLjE2NmE1MzA3NzMy
YjExNWU0NWQ2MjA3MGVmYTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC04MywyMyArODMsMjMgQEAgc3RhdGljIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZvckRldmljZShDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlIHQKICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKIH0K
IAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBzd2l0Y2ggKGRldmljZS50eXBl
KCkpIHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICNpZiBQ
TEFURk9STShJT1MpCi0gICAgICAgIHJldHVybiBjcmVhdGUoUmVwbGF5S2l0Q2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0dXJl
U291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbHNlCiAjaWYgSEFWRShT
Q1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNv
dXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2Fw
dHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNl
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIGNy
ZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3Ry
YWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50
aWZpZXIpOwogI2VuZGlmCi0gICAgICAgIHJldHVybiBjcmVhdGUoQ0dEaXNwbGF5U3RyZWFtU2Ny
ZWVuQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShD
R0Rpc3BsYXlTdHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVu
dGlmaWVyKTsKICNlbmRpZgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2lu
ZG93OgogI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAoU2NyZWVuQ2Fw
dHVyZUtpdENhcHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4g
Y3JlYXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25z
dHJhaW50cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAg
ICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0
ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpAQCAtMTE0LDEyICsxMTQs
MTIgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3Jl
YXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICByZXR1cm4geyB9OwogfQogCi1DYXB0
dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0
ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVyLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2E6OmNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2Fw
dHVyZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKIHsKICAgICBpZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVyLmVycm9yKCkpIH07CiAK
LSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShX
VEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJp
bmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVu
dGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0g
c291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1
bHQpCkBAIC0xMjksOCArMTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXIKICAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2Fw
dHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZvckRl
dmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJj
ZVR5cGVGb3JEZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAg
LCBtX2NhcHR1cmVyKFdURk1vdmUoY2FwdHVyZXIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpj
dXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXggMDQ1YzhjYzQz
NWZjYjI5YzVkZWQwYjJmMWFlY2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0NzQ5MzRjNWUwNTFhNzVh
YjFkZDAzY2M1NGU3Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuaApAQCAtMTEyLDE0ICsxMTIsMTQgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2b2lkKiBt
X2xvZ0lkZW50aWZpZXI7CiAgICAgfTsKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShFeHBlY3Rl
ZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBT
dHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYm
LCBjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCk7CiAgICAgdm9p
ZCB1cGRhdGVGcmFtZVNpemUoKTsKIAogcHJpdmF0ZToKLSAgICBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
KFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+RGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYSgpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRl
eCA0ODZiMGU0NDg2YTNjNjRlM2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2Li43M2VjZDI0MDNiYzBm
NDhiZGExOWQ1MTk5MDE0N2EzNTczYjdlYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMg
dm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiAKIGNsYXNzIEdTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6
Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlk
ZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBlMTNkNTNiMmIyNGRjZTlk
NTAyNmRhMjM3MjgzM2U0ZTQyMTNiMWUwLi42OWRhMjBiNjgwZTg1OWZkNzZmNjIwYjkzM2E1ZWE2
ZjBlYmJjNGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIEdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpAQCAtNzIs
NyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoK
LSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFn
ZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRvJiBtYW5hZ2VyID0gR1N0cmVh
bWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICAgICAgcmV0
dXJuIG1hbmFnZXIuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIERpc3BsYXlDYXB0dXJl
RmFjdG9yeSYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFjdG9yeSgpCiB9
CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgZ2NoYXIqIHNvdXJjZUZhY3RvcnksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2
aWNlVHlwZSwgaW50IGZkKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCks
IFdURk1vdmUoaGFzaFNhbHQpLCB7IH0pCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlxdWU8R1N0
cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNlRmFjdG9yeSwgZGV2aWNlVHlwZSkpCiAgICAgLCBt
X2RldmljZVR5cGUoZGV2aWNlVHlwZSkKIHsKQEAgLTEzMCw3ICsxMzAsNyBAQCBHU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBk
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCkpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBk
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCksIHsgfSkKICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFtZXJW
aWRlb0NhcHR1cmVyPihkZXZpY2UpKQogICAgICwgbV9kZXZpY2VUeXBlKENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkNhbWVyYSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGM3N2RjYTI3YzNhYzdhMmM2
MDYyNWEzMzE2MTIzYzc5OGU5NjQ0ODQuLjVjZjYyN2M5M2E0MmQ3ODExYmQ3MGIxMTU4MGNkYjE3
NmQ0YjYxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgY29uc3QgZG91
YmxlIHNfSHVtVm9sdW1lID0gMC4xOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNlRnJlcXVl
bmN5ID0gMzAwMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc19Ob2lzZVZvbHVtZSA9IDAuMDU7CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElE
KGRldmljZUlEKTsKQEAgLTYzLDcgKzYzLDcgQEAgUmVmPE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
PiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlRm9yTW9ja0F1ZGkKIH0K
IAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZUF1ZGlvU291
cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgeyB9KQogewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVy
LmNwcAppbmRleCA5Njc3NzFlZjBhYzg0OGE4NTFkOTJkYmUzNTljNWVjMWZkMDkyYzNjLi44ZGI3
NjgwZTJiYTgyZjFjMjkwMmEyM2U2NjU4M2RkYTBiYmM4OWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMy
LDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNlT3JFcnJv
ciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKQog
ewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC0xNDcs
NyArMTQ3LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrRGlzcGxh
eUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OnNldHRpbmdzKCkKIH0KIAogTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQogewogICAg
IGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2VJT1MuaAppbmRleCA2NjQ4NWUzMmI5NzRiMjZiNmRiNzBlZjMxZjQxNTQ1MGMwYzYz
MWZmLi5iMTA1YjNlMTBjODA5OTk4Y2ExMTU5NTY4MGE0YWU4NjYzN2IzYmJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lv
cy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGJlZ2luQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9uKCkgeyBiZWdpbkludGVycnVw
dGlvbigpOyB9CiAgICAgdm9pZCBlbmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oQXVkaW9TZXNz
aW9uOjpNYXlSZXN1bWUpIHsgZW5kSW50ZXJydXB0aW9uKCk7IH0KIAotICAgIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYs
IFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgYWRkRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXImKSBmaW5h
bDsKICAgICB2b2lkIHJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyJikg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5kZXggNjcw
NTkyZjM1MTY3ZjZiMDYxOTk2YjAxNjc0ZWI5YjU0ODQ0M2E1Mi4uYmIzMjlmZTBlMWQ4NTdlZmI2
MTcxNzRiYzQ5OTEzNmJhYzgzZTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VJT1MubW0KQEAgLTExNiwxMyArMTE2LDEzIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUZhY3RvcnlJT1M6OnJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyCiAg
ICAgICAgIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRp
c2FibGVBbGxEZXZpY2VzUXVlcnkoKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAg
IC8vIFdlIGVuYWJsZSBleGhhdXN0aXZlIHF1ZXJ5IHRvIGJlIHN1cmUgdG8gc3RhcnQgY2FwdHVy
ZSB3aXRoIHRoZSByaWdodCBkZXZpY2UuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdG9wIHRo
ZSBhdXhpbGlhcnkgc2Vzc2lvbiBhZnRlciBzdGFydGluZyBjYXB0dXJlLgogICAgIGlmIChtX29i
c2VydmVycy5jb21wdXRlc0VtcHR5KCkpCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURl
dmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmVuYWJsZUFsbERldmljZXNRdWVyeSgpOwotICAgIHJl
dHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0dXJu
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVu
dElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggYTZkNzQyMTYzOWE3NDI3
NjQxY2FmMmIyNzI3MTNkZTFlNWYxODgwYy4uMjRlMTFhZTEzZmJiZTdjMWM4NmZmYTZhOGY3MGIy
NGRmNjFmZTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTU0LDcgKzU0LDcg
QEAgY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKIAogY2xhc3MgQVZWaWRlb0NhcHR1cmVT
b3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZhdGUgT3JpZW50
YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCkBAIC03MCw3ICs3MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VTdXNwZW5kZWREaWRDaGFuZ2UoKTsK
IAogcHJpdmF0ZToKLSAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBj
b25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIEFWVmlkZW9DYXB0
dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfkFWVmlkZW9DYXB0dXJl
U291cmNlKCk7CiAKICAgICB2b2lkIGNsZWFyU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJl
U291cmNlLm1tCmluZGV4IDU2ZWQ0YzIxYWVjMGU1ZDlmNmQ3MzVkNTgyMWM4NmJkMjM1ZmM5NjAu
LjcwN2NiNjVjNjgxODVhZGM3NTQ3YTRlY2JmMzdkYTVhN2ZiMjA4NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW0KQEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoKICAgICBSZXRh
aW5QdHI8QVZDYXB0dXJlRGV2aWNlRm9ybWF0PiBmb3JtYXQ7CiB9OwogCi1DYXB0dXJlU291cmNl
T3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCiB7CiAgICAgYXV0byAqYXZEZXZpY2UgPSBbUEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFz
cygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2UucGVyc2lzdGVudElkKCldOwogICAgIGlmICgh
YXZEZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJObyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBkZXZp
Y2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZShhdkRldmljZSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShhdkRldmljZSwgZGV2
aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3Ry
YWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMo
KmNvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdCkKQEAgLTEyNCw4ICsxMjQsOCBAQCBD
YXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgUwogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLUFWVmlk
ZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqIGF2
RGV2aWNlLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KQot
ICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nKGRldmljZS5sYWJlbCgpKSwg
U3RyaW5nKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIFdURk1vdmUoaGFzaFNhbHQpKQorQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSogYXZE
ZXZpY2UsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UoU3RyaW5nKGRldmljZS5sYWJlbCgpKSwgU3RyaW5nKGRldmljZS5wZXJzaXN0ZW50SWQo
KSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fb2JqY09ic2Vy
dmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhbGxvY10g
aW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2RldmljZShhdkRldmljZSkKICAgICAs
IG1fdmVyaWZ5Q2FwdHVyaW5nVGltZXIoKnRoaXMsICZBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dmVy
aWZ5SXNDYXB0dXJpbmcpCkBAIC0xMzcsOSArMTM3LDYgQEAgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
On5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7CiAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIo
KSwgTE9HSURFTlRJRklFUik7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51
bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKICAgICBbbV9vYmpjT2JzZXJ2ZXIgZGlz
Y29ubmVjdF07CiAgICAgW21fZGV2aWNlIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdl
dCgpIGZvcktleVBhdGg6QCJzdXNwZW5kZWQiXTsKIApAQCAtNDY5LDEwICs0NjYsNiBAQCBib29s
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAgICBBTFdB
WVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlk
ZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAg
IE5TRXJyb3IgKmVycm9yID0gbmlsOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VJbnB1
dD4gdmlkZW9JbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVEZXZpY2VJbnB1dEluc3Rh
bmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6JmVycm9yXSk7CiAgICAgaWYgKGVy
cm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggOWEwYjI5ZWRi
MWQxNzgxNTY1NDUwZjU4ZGU5MDlmNjhjODczZWEwMy4uZDI0ZDRiMzFmYzU0MjEwZWQ4ZDU4NjBh
ZTY3NzgzNmNjNTQwYTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApA
QCAtNjY4LDI3ICs2NjgsMjcgQEAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGluaXRpYWxp
emVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFJlZjxDb3JlQXVkaW9DYXB0dXIKICAgICByZXR1cm4g
Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlm
ICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyAiTm8gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSBk
ZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9D
YXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSkpOworICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNl
SUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmlj
ZS0+ZGV2aWNlSUQoKSwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIpKTsKICNlbGlmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRoVUlEKFdURk1vdmUo
ZGV2aWNlSUQpKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5vIEFWQXVk
aW9TZXNzaW9uQ2FwdHVyZURldmljZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBT
dHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDApKTsKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCAwLCBudWxscHRyLCBwYWdlSWRlbnRpZmllcikpOwogI2VuZGlmCiAgICAgcmV0dXJuIGluaXRp
YWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSwgY29uc3RyYWludHMp
OwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVh
dGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBCYXNlQXVkaW9T
aGFyZWRVbml0JiBvdmVycmlkZVVuaXQpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9D
YXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGxhYmVsKSwgV1RG
TW92ZShoYXNoU2FsdCksIDAsICZvdmVycmlkZVVuaXQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RG
TW92ZShsYWJlbCksIFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVVbml0LCBwYWdlSWRl
bnRpZmllcikpOwogICAgIHJldHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKHNvdXJjZSksIGNvbnN0cmFpbnRzKTsKIH0KIApAQCAtNzgwLDggKzc4MCw4IEBAIHZv
aWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OndoZW5BdWRpb0NhcHR1cmVVbml0SXNO
b3RSdW5uaW5nKEZ1bmN0aW9uPHZvCiAgICAgcmV0dXJuIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnVu
aXQoKS53aGVuQXVkaW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhXVEZNb3ZlKGNhbGxiYWNrKSk7
CiB9CiAKLUNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMy
X3QgY2FwdHVyZURldmljZUlELCBCYXNlQXVkaW9TaGFyZWRVbml0KiBvdmVycmlkZVVuaXQpCi0g
ICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
LCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQor
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBjYXB0
dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqIG92ZXJyaWRlVW5pdCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJ
RCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fY2FwdHVyZURl
dmljZUlEKGNhcHR1cmVEZXZpY2VJRCkKICAgICAsIG1fb3ZlcnJpZGVVbml0KG92ZXJyaWRlVW5p
dCkKIHsKQEAgLTgyMSwxOSArODIxLDExIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
aW5pdGlhbGl6ZVRvU3RhcnRQcm9kdWNpbmdEYXRhKCkKIAogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6fkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotCiAgICAgdW5pdCgpLnJlbW92ZUNsaWVudCgqdGhp
cyk7CiB9CiAKIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRh
KCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0K
ICAgICBpbml0aWFsaXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB1bml0KCkuc3RhcnRQ
cm9kdWNpbmdEYXRhKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAz
MzAzNmU5OTZmNjczZTUyNzAyMzg1YjQxZTBhOTNmMTgwMzUxZjk5Li4wZWM2NzJiZjlmMWMzNjA1
NjI0OTcwYzI0MWY2YTBhMTU5MzUyZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKQEAgLTUxLDE1ICs1MSwxNSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QzsKIAogY2xhc3MgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlh
U291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyopOwotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JUZXN0aW5n
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQp
OworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50
aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JUZXN0aW5n
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQs
IFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb0NhcHR1
cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBDTUNsb2NrUmVmIHRpbWViYXNlQ2xvY2soKTsK
IAogcHJvdGVjdGVkOgotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVyc2lzdGVu
dElELCBCYXNlQXVkaW9TaGFyZWRVbml0KiA9IG51bGxwdHIpOworICAgIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNo
U2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRVbml0KiwgUGFnZUlk
ZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICBC
YXNlQXVkaW9TaGFyZWRVbml0JiB1bml0KCk7CiAgICAgY29uc3QgQmFzZUF1ZGlvU2hhcmVkVW5p
dCYgdW5pdCgpIGNvbnN0OwpAQCAtMTI5LDE0ICsxMjksMTQgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgd2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoRnVuY3Rpb248
dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKikgb3ZlcnJpZGU7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBvdmVycmlkZTsKICAgICBDYXB0
dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOwogICAg
IGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5h
bDsKIH07CiAKLWlubGluZSBDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQoraW5saW5lIENhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VGYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0dXJuIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggMGRk
M2Q3MWNhZTdhNjNiNjM3MjA4ZjI4MzgyMjBlNjU5ZTQyMTNjZS4uMzQyMjc0MjNkODliMGEwNDlk
ZTY5YWNlMzVmOGYzOGYzZDMwYzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAg
LTgzLDcgKzgzLDcgQEAgc3RhdGljIHZvaWQgYWRkSHVtKGZsb2F0IGFtcGxpdHVkZSwgZmxvYXQg
ZnJlcXVlbmN5LCBmbG9hdCBzYW1wbGVSYXRlLCB1aW50NjRfdAogICAgIH0KIH0KIAotQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJ
RCk7CiAgICAgQVNTRVJUKGRldmljZSk7CkBAIC05MSw3ICs5MSw3IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIG1pY3JvcGhvbmUgZGV2aWNlIl9z
IH07CiAKICAgICBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKS5zZXREZXZpY2VJRChk
ZXZpY2VJRCk7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRl
c3RpbmcoV1RGTW92ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpKTsKKyAgICBy
ZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhXVEZNb3ZlKGRl
dmljZUlEKSwgIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
TW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCksIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAog
TW9ja0F1ZGlvU2hhcmVkVW5pdCYgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggOTVjZjM1Y2Q0ZWIxMzE4
ZDg2ODMyNzNhNWQwOTZjNzM2NDQ2MDhiMC4uNDgyOTU3OWQyZmExNjUzY2VjMDAxMjdjMDNmMjRj
YTMwOTc2Y2QzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAg
LTQ3LDEzICs0NywxMyBAQCBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogCiBjbGFzcyBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyBmaW5hbCA6IHB1YmxpYyBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIHN0YXRpYyBSZWY8TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U+IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAK
ICAgICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwotICAgIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmll
cik7CiAKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAgICAgdm9p
ZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5tbQppbmRleCBmZDE5NGU2MTlhNDRiODgxMWRjYjE3ZTAwNDY3MWY0NDUzNWU3
YTk3Li45ZTI1ZjZkMmQ0MzEzZjkwZGU5YzBmYjFkNjBkZDg4YjA5Nzg1ZDZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01Miw3ICs1Miw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
ICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNjEsNyAr
NjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAiTm8gbW9j
ayBjYW1lcmEgZGV2aWNlIl9zIH07CiAjZW5kaWYKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlm
IChjb25zdHJhaW50cykgewogICAgICAgICBpZiAoYXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlD
b25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJy
b3ItPm1lc3NhZ2UpOwpAQCAtNzAsMTMgKzcwLDEzIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
CiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNl
PiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJl
cihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCitS
ZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpj
cmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmll
cikpOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0KQotICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CisgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV93b3Jr
UXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZVZpZGVvU291cmNlIFJlbmRlciBR
dWV1ZSIsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IDk3Yzk3ZTU5MDM2NGQ0
MTk3MGNhNDZlMjg3OGExNmI4N2VmMWY0YWYuLmNmMDA4MjBhNDQ4OGVmYjRiMzU1ZTNlNjUzNzNl
MGQxMzg2MTllNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5jcHAKQEAgLTQ1LDEwICs0NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZp
ZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAg
ICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpD
YW1lcmEpOwotICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZp
Y2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0
cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNTcsOSArNTcs
OSBAQCBwcml2YXRlOgogCiBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmlu
YWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzKTsKKyAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShk
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwog
ICAgIH0KIHByaXZhdGU6CiAgICAgRGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVy
ZURldmljZU1hbmFnZXIoKSB7IHJldHVybiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6c2lu
Z2xldG9uKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggZDA4OTRkNWQ0ZmU4MjVmOGIwNmQ2Yzky
OGFhZjA5ODYzNzdjYzRiMi4uOWU4OGFiMWU1OWU3YTcyYjc4Yzc1NWQ4MjQ3OGJhYmY5OTY0Y2Ux
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhVVNF
KEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VP
ckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1
dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRo
UGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTYyLDggKzYyLDggQEAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYKIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
aGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291
cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV93
b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZUF1ZGlvU291cmNlIFJlbmRl
ciBRdWV1ZSIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6dGljaykKIHsKQEAgLTc3LDkgKzc3LDYgQEAgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6On5Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRB
Y3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkKQEAgLTEzNiw3
ICsxMzMsNiBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5nc0RpZENoYW5n
ZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldAogdm9pZCBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2Vk
KCk7CiAgICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkg
PT0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlv
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlv
U291cmNlLmgKaW5kZXggZjBkYWRmNzFkMmQwMzUzNWE2ODJlNTBjNzliOTQyNDJkMDg2OGZmOC4u
N2EwZjRkMTViOTUzZjBhMDhlODFmY2M0OTVkZjVlMzgyZjlhN2UwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApA
QCAtNDIsMTMgKzQyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
KTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsQ291bnQodW5zaWdu
ZWQpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZW5kZXIo
U2Vjb25kcykgPSAwOwogICAgIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcAppbmRleCAwOTJkMmZlNjExOTM0OGY5ODY1YTg4ZmIyNzkxZTNhMmQ3MTRhNDAx
Li42ZDEyYzZiZjA3OGRhMmY1NGVmNDY3NTY3YTBmZDM1NWEwNjlkMTcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcApAQCAtMTAxLDEzICsxMDEsMTMgQEAgc3RhdGljIGlubGluZSBWZWN0
b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2aWNlcygpCiAKIGNsYXNzIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1Ymxp
YzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChk
ZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7CiAgICAg
ICAgIGlmICghTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRo
UGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSwgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2Nr
IGNhbWVyYSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKIAotICAgICAgICBy
ZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmlj
ZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTExNyw3ICsxMTcsNyBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKE1BQykKIGNsYXNzIE1vY2tEaXNwbGF5Q2FwdHVyZXIgZmluYWwgOiBwdWJsaWMg
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXIgewogcHVibGljOgotICAgIGV4cGxp
Y2l0IE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIE1vY2tE
aXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYsIFBhZ2VJZGVudGlmaWVyKTsKIAog
cHJpdmF0ZToKICAgICBib29sIHN0YXJ0KCkgZmluYWw7CkBAIC0xMzQsOCArMTM0LDggQEAgcHJp
dmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIH07CiAK
LU1vY2tEaXNwbGF5Q2FwdHVyZXI6Ok1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlKQotICAgIDogbV9zb3VyY2UoTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6
OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IH0pKQorTW9ja0Rpc3Bs
YXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9zb3VyY2UoTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0
cmluZyB7IH0sIHBhZ2VJZGVudGlmaWVyKSkKIHsKIH0KIApAQCAtMTc3LDcgKzE3Nyw3IEBAIElu
dFNpemUgTW9ja0Rpc3BsYXlDYXB0dXJlcjo6aW50cmluc2ljU2l6ZSgpIGNvbnN0CiAKIGNsYXNz
IE1vY2tSZWFsdGltZURpc3BsYXlTb3VyY2VGYWN0b3J5IDogcHVibGljIERpc3BsYXlDYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxh
eUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAg
IHsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURl
dmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlLnR5cGUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
KSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIGRpc3BsYXkgZGV2
aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CkBAIC0xODYsMTEgKzE4NiwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgog
ICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJlcj4obWFr
ZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihkZXZpY2UpKSwgZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2E6OmNyZWF0ZShVbmlxdWVSZWY8RGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6Q2FwdHVyZXI+KG1ha2VVbmlxdWVSZWY8TW9ja0Rpc3BsYXlDYXB0dXJlcj4oZGV2aWNlLCBw
YWdlSWRlbnRpZmllcikpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogI2VsaWYgVVNFKEdTVFJFQU1FUikKICAgICAgICAgICAgIHJldHVy
biBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZShkZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAjZWxzZQotICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25z
dHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxh
YmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7
CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CkBAIC0yMTEsMjAgKzIxMSwxNSBAQCBwcml2YXRlOgog
CiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgQXVk
aW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAor
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6TWljcm9waG9uZSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAg
ICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIG1pY3JvcGhvbmUgZGV2aWNlIHdpdGgg
Z2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CiAKLSAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmlu
ZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Cisg
ICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICB9CiBwcml2YXRl
OgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VG
YWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2Uoc291cmNlKTsgfQotICAgIHZvaWQg
dW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS51bnNldEFjdGl2ZVNvdXJj
ZShzb3VyY2UpOyB9Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogYWN0aXZlU291cmNlKCkgZmlu
YWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLmFj
dGl2ZVNvdXJjZSgpOyB9Ci0jZW5kaWYKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7IH0KICAg
ICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNwZWFrZXJEZXZpY2Vz
KCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDYwYzVhOGNkNmQ1MGU5MDBlNGMxZWJkMWZk
OGUyZGRhZThiNmRiOWQuLjNjZjc0NjBjODBlM2JlMWQ1YmEzZjBjZWQ3YzE5YjI1ZGYyOWFiZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC01MCw3ICs1MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVVTRShH
U1RSRUFNRVIpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JF
cnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBO
REVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpt
b2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC01OSw3ICs1OSw3IEBAIENh
cHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIGNhbWVyYSBk
ZXZpY2UiX3MgfTsKICNlbmRpZgogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYm
IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4g
eyB9OwogCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBIYXNoU2V0PE1vY2tSZWFsdGltZVZpZGVv
U291cmNlKj4mIGFsbE1vY2tSZWFsdGltZVZpZGVvU291cmNlKCkKICAgICByZXR1cm4gdmlkZW9T
b3VyY2VzOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAg
OiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmlj
ZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9lbWl0RnJh
bWVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Z2VuZXJhdGVGcmFtZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjM5
LDcgKzIzOSw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0Q2FwdHVyZVRp
bWVyKCkKIAogdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRh
KCkKIHsKLSAgICBwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpOwogICAgIHN0YXJ0Q2FwdHVyZVRpbWVy
KCk7CiAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aAppbmRleCA5MzVjNmRkZWNiOGQ0NThjOTE2NmY1YjI2N2FjNWM0OTRmZjM0M2I1Li5mYzVmYzdh
YTFjYjc2ZmE2ZDk3MzkwNTg2NWJmYWZlY2VkZTM2YmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00OCw3
ICs0OCw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZhdGUgT3Jp
ZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRp
Zmllcik7CiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKICAgICBzdGF0aWMgdm9p
ZCBzZXRJc0ludGVycnVwdGVkKGJvb2wpOwpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAg
SW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIp
OwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNhbXBsZUJ1ZmZlcigpID0gMDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBhZDA3NTgyMTc1MTAxMzU3ZTA1NWIxMTQyNjg4OTJm
YTdjNzNjOTQ2Li4yNWQ4YjQ2MDgzMGI5Y2IxZTJmNTM3MDMyNGFiZmEyZmQ1ODY5N2JiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTM4LDExICsxMzgsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgewotICAgICAgICBpZiAo
bV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKLSAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkNhcHR1cmVGYWlsZWQobV9p
ZCksIDApOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZVN0b3Bw
ZWQobV9pZCksIDApOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTdG9wcGVkKG1faWQsIG1fc291cmNlLT5jYXB0dXJl
RGlkRmFpbCgpKSwgMCk7CiAgICAgfQogCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBm
aW5hbCB7CkBAIC0yODksNyArMjg1LDcyIEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgbWVk
aWFDb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVh
dGVTb3VyY2VDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWljcm9waG9uZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBtZWRpYUNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIG1lZGlhQ29uc3RyYWludHMsIHBhZ2VJ
ZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpCisgICAgICAgIHJldHVybiBzb3Vy
Y2VPckVycm9yOworCisgICAgYXV0byYgcGVyUGFnZVNvdXJjZXMgPSBtX3BhZ2VTb3VyY2VzLmVu
c3VyZShwYWdlSWRlbnRpZmllciwgW10geyByZXR1cm4gUGFnZVNvdXJjZXMgeyB9OyB9KS5pdGVy
YXRvci0+dmFsdWU7CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBtdWx0aXBsZSBtaWNyb3Bob25l
cyBzaW11bHRhbmVvdXNseS4KKyAgICBpZiAoYXV0byogbWljcm9waG9uZVNvdXJjZSA9IHBlclBh
Z2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2UuZ2V0KCkpIHsKKyAgICAgICAgaWYgKG1pY3JvcGhv
bmVTb3VyY2UtPnBlcnNpc3RlbnRJRCgpICE9IGRldmljZS5wZXJzaXN0ZW50SWQoKSAmJiAhbWlj
cm9waG9uZVNvdXJjZS0+aXNFbmRlZCgpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihXZWJSVEMsICJFbmRpbmcgbWljcm9waG9uZSBzb3VyY2UgYXMgbmV3IHNvdXJjZSBpcyB1c2lu
ZyBhIGRpZmZlcmVudCBkZXZpY2UuIik7CisgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IHByb2JhYmx5IGZhaWwgdGhlIGNhcHR1cmUgaW4gYSB3YXkgdGhhdCBzaG93cyBhIHNwZWNpZmlj
IGNvbnNvbGUgbG9nIG1lc3NhZ2UuCisgICAgICAgICAgICBtaWNyb3Bob25lU291cmNlLT5lbmRJ
bW1lZGlhdGx5KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJj
ZU9yRXJyb3Iuc291cmNlKCk7CisgICAgcGVyUGFnZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZSA9
IFdlYWtQdHIgeyBzb3VyY2UuZ2V0KCkgfTsKKyAgICByZXR1cm4gc291cmNlOworfQorCitzdGF0
aWMgYm9vbCBjYW5DYXB0dXJlRnJvbU11bHRpcGxlQ2FtZXJhcygpCit7CisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIHJldHVybiB0cnVlOwor
I2VuZGlmCit9CisKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmNyZWF0ZUNhbWVyYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBtZWRpYUNvbnN0cmFpbnRz
LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sKKyAgICBhdXRvJiBwZXJQYWdlU291
cmNlcyA9IG1fcGFnZVNvdXJjZXMuZW5zdXJlKHBhZ2VJZGVudGlmaWVyLCBbXSB7IHJldHVybiBQ
YWdlU291cmNlcyB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRvKiBjYW1lcmFTb3Vy
Y2UgPSBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UuZ2V0KCk7CisgICAgaWYgKGNhbWVyYVNv
dXJjZSkgeworICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUgbXVsdGlwbGUgY29uY3VycmVudCBj
YW1lcmFzLgorICAgICAgICBpZiAoY2FtZXJhU291cmNlLT5wZXJzaXN0ZW50SUQoKSA9PSBkZXZp
Y2UucGVyc2lzdGVudElkKCkgJiYgIWNhbWVyYVNvdXJjZS0+aXNFbmRlZCgpKSB7CisgICAgICAg
ICAgICAvLyBXZSBjYW4gcmV1c2UgdGhlIHNvdXJjZSwgbGV0J3MgZG8gaXQuCisgICAgICAgICAg
ICBhdXRvIHNvdXJjZSA9IGNhbWVyYVNvdXJjZS0+Y2xvbmUoKTsKKyAgICAgICAgICAgIGlmICht
ZWRpYUNvbnN0cmFpbnRzKSB7CisgICAgICAgICAgICAgICAgYXV0byBlcnJvciA9IHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50cygqbWVkaWFDb25zdHJhaW50cyk7CisgICAgICAgICAgICAgICAgaWYg
KGVycm9yKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvci0+bWVzc2Fn
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9
CisgICAgfQorCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBtZWRpYUNvbnN0cmFpbnRzLCBwYWdl
SWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKQorICAgICAgICByZXR1cm4gc291
cmNlT3JFcnJvcjsKKworICAgIGlmICghY2FuQ2FwdHVyZUZyb21NdWx0aXBsZUNhbWVyYXMoKSAm
JiBjYW1lcmFTb3VyY2UpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiRW5k
aW5nIGNhbWVyYSBzb3VyY2UgYXMgbmV3IHNvdXJjZSBpcyB1c2luZyBhIGRpZmZlcmVudCBkZXZp
Y2UuIik7CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgZmFpbCB0aGUgY2Fw
dHVyZSBpbiBhIHdheSB0aGF0IHNob3dzIGEgc3BlY2lmaWMgY29uc29sZSBsb2cgbWVzc2FnZS4K
KyAgICAgICAgY2FtZXJhU291cmNlLT5lbmRJbW1lZGlhdGx5KCk7CisgICAgfQorCisgICAgYXV0
byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOworICAgIHNvdXJjZS0+bW9uaXRvck9y
aWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmllcik7CisgICAgcGVyUGFnZVNvdXJjZXMuY2Ft
ZXJhU291cmNlID0gV2Vha1B0ciB7IHNvdXJjZS5nZXQoKSB9OworICAgIHJldHVybiBzb3VyY2U7
Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVz
ZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBD
cmVhdGVTb3VyY2VDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9j
b25uZWN0aW9uUHJveHktPndpbGxTdGFydENhcHR1cmUoZGV2aWNlLnR5cGUoKSkpCiAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSwgIlJlcXVlc3QgaXMgbm90IGFsbG93ZWQi
X3MsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IH0sIHsgfSwgeyB9LCB7IH0sIDApOwpA
QCAtMjk5LDE2ICszNjAsMTQgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojpj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOwogICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkg
ewogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICBzb3VyY2VP
ckVycm9yID0gY3JlYXRlTWljcm9waG9uZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgc291
cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwotICAgICAgICBpZiAoc291cmNlT3JFcnJvcikKLSAg
ICAgICAgICAgIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9u
KG1fb3JpZW50YXRpb25Ob3RpZmllcik7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVD
YW1lcmFTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJ
ZGVudGlmaWVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVh
dGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50
aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA2NThi
NWI3ZDE4ODZjNDgzMDZmMTgwM2EzODgwNGI5NTNkODU0ZjU0Li5kM2FiMGRhYWZhNWFhNmIzMTNj
ZjI4Zjc3ZGZjYzcyNmJkMjc5ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC04NCw3
ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogICAgIHVzaW5nIENyZWF0ZVNvdXJjZUNh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGlu
dmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNv
cmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47Ci0gICAg
dm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgQ3JlYXRlU291cmNl
Q2FsbGJhY2smJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZy
YW1lcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwog
ICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGVuZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcik7CkBAIC05NCwxMSArOTQsMjAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7
CiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pOwogCisgICAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlTWljcm9waG9uZVNvdXJjZShjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FtZXJhU291cmNlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKwogICAgIGNsYXNzIFNvdXJjZVBy
b3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKICAgICBIYXNoTWFwPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U291cmNlUHJv
eHk+PiBtX3Byb3hpZXM7CiAgICAgVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4gbV9jb25uZWN0
aW9uUHJveHk7CiAgICAgV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllciBtX29yaWVudGF0aW9u
Tm90aWZpZXIgeyAwIH07CisKKyAgICBzdHJ1Y3QgUGFnZVNvdXJjZXMgeworICAgICAgICBXZWFr
UHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1pY3JvcGhvbmVTb3VyY2U7CisgICAg
ICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FtZXJhU291cmNlOwor
ICAgIH07CisgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUGFnZVNvdXJjZXM+
IG1fcGFnZVNvdXJjZXM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA3YmNhNDUzZTczNzUzNzY5YTdmYzU4ZTJlNzA3MzJiODU3ZDliODI5
Li5lZDdmNGRhYjE2YmVhNzliNDIxZDk2NjBlZTFlNDljM2Y2OTAxMzNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3Ry
dWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNl
R1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywg
VmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6
ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKSBBc3luYworICAgIENyZWF0ZU1lZGlhU291cmNlRm9y
Q2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNo
U2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMsIGJvb2wg
c2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWlu
dHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMsIFZlY3RvcjxX
ZWJDb3JlOjpWaWRlb1ByZXNldERhdGE+IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwg
ZG91YmxlIGZyYW1lUmF0ZSkgQXN5bmMKICAgICBTdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgRW5kKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZjVhNjE2NGU4MzFjOTY4OTk1ZTMzMmVmMDI2
OWMwYjhjMThjZjlmMi4uODhmZGE4NDkxNDYwYjc3NzUwZDdkYTM1MDFiZWEwNWUwZjAzMzA3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zOSwxMyAr
MzksMTMgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBt
YW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQorUmVm
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVy
ZURldmljZSwgcGFnZUlkZW50aWZpZXIpKTsKIH0KIAotU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdl
ciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKLSAgICA6IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBj
YXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0pCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2Vy
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKzogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsg
Y2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVu
dElkKCkgfSwgeyB9LCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDc4YmZlNWI2NGIyMGRkMDkw
MWI5OWFhNzNjMzVjOTA3MDIxZDliMDYuLjlhZmZmMjgwMzVhMGQwMzI1ZjI2YzBkMmU5YzZkYWRk
YWViYTVjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00
Niw5ICs0Niw5IEBAIGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjsKICAgICAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiB7CitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
KTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CiAKICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKIAogcHJpdmF0ZToKLSAgICBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAppbmRleCA2OGRjMTE1ZjE2OWYxOWVmODlmNjZmZTVj
OGYyNDFjODViOTc4ZDcxLi5lM2E3MDRlMWJjMjI2ZWQ0ODFhMGQ3NWQxODcwNWZhM2I5YTUyOTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdAogICAgIH0KICNl
bmRpZgogCi0gICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6Q3JlYXRlU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSwgc291cmNlLnBh
Z2VJZGVudGlmaWVyKCkpKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCAyZmRkYjg0OTUyZDA4ODlhODgyNTRlNDc3YmZmMjMyMGI2MGYw
MWRjLi5lMjU5NjM5NjZkNWI5NzBhNDhiOGYxNjk4ZDA3NGFmMzZhYmM5MGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwOTk2LDEyICsxMDk5NiwxMiBA
QCBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0
aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgeyAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKIAogICAgIGlm
IChwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKLSAgICAg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlKSB9
OworICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVE
ZXZpY2UsIG1fd2ViUGFnZUlEKSB9OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBy
ZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07Cisg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlLCBt
X3dlYlBhZ2VJRCkgfTsKICNlbHNlCi0gICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7CisgICAg
cmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRp
YVNvdXJjZSgqY2FwdHVyZURldmljZSwgbV93ZWJQYWdlSUQpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmlu
ZGV4IGI4MWRiYjIzZWZmNDUzM2EwNzI1NTc4OGEyNmVlYTdjMzNlMDVhZTMuLjlmMDlmNjIyNjI4
MjY4M2MyNjBiNTM0NTE2Zjk4MDhkYTRiN2M0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMjA4LDkgKzIwOCw5IEBA
IHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tl
U2FuZGJveEV4dGVuc2lvbnMoKQogCiAjZW5kaWYKIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBh
dXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRp
bWVNZWRpYVNvdXJjZShkZXZpY2UpOworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSwgcGFnZUlk
ZW50aWZpZXIpOwogICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhLCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3VyY2UiKTsKICAgICAgICAgc2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCmluZGV4IDE4ODQ3NzFh
ODdiN2Y2Njk5MTkwYTVkZTU2OTExNmNjNDdmODYxYjMuLjYyMzQ0OGZiYTlkZDdmODVhYjczMzU5
MDZkNDhiYTk2OTQ4ZjMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNhbmRi
b3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAv
LyBNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgot
ICAgIHZvaWQgY3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCBjcmVhdGVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkZWxl
dGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgc3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KaW5kZXggMjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBkNjYx
ZC4uYWI1ZTk4ZTQ5NzE5YWFkZWQ1ZTkxYmJkMzczODA3ZTEwZDAxNzNhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
IG1lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIg
Tm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNl
KQorICAgIENyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiAgICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgU3RhcnQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CiAgICAgU3RvcChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcAppbmRleCAyY2U5NTRmNDhiZmZlMWY5NDEwNTU1YzVlNDljNjU2YWVk
OTdlMTM4Li5iY2E4MzQ3ZWU4NzEzYzNiMmJlMTM3YWU2NDQ4NTQ5NjdhNjQxYWI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MywyOSArNDMsMjYgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikK
IHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBj
b25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVu
dGlmaWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAg
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29w
eVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0
dXJuIHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdU
Rk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSkKK1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1f
cHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25z
dHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewogICAgIEFTU0VSVChkZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJ
REhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBz
dWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNh
cGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1v
dGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBl
cnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYm
LCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBt
X3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTg3LDEwICs4NCw2IEBAIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6On5SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlKCkKICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAg
ICAgICAgICBjb25uZWN0aW9uLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIH0KLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNl
bmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldENhcGFiaWxpdGll
cyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTE5
LDIwICsxMTIsMjAgQEAgdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpyZW1vdGVBdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW0KIAogdm9pZCBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlOjpoYXNFbmRlZCgpCiB7Ci0gICAgbV9wcm94eS5oYXNFbmRlZCgpOwor
ICAgIGlmIChtX3Byb3h5LmlzRW5kZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm94
eS5lbmQoKTsKICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiAgICAg
bV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50
aWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2FwdHVyZVN0
b3BwZWQoKQordm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0dXJlU3RvcHBlZChi
b29sIGRpZEZhaWwpCiB7Ci0gICAgc3RvcCgpOwotICAgIGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQg
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCi17Ci0gICAgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpOworICAgIGlmIChkaWRGYWlsKQorICAgICAg
ICBjYXB0dXJlRmFpbGVkKCk7CisgICAgZWxzZQorICAgICAgICBlbmQoKTsKICAgICBoYXNFbmRl
ZCgpOwogfQogCkBAIC0xNDksMTQgKzE0Miw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvCiAg
ICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKLSAgICAgICAgLy8g
VHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcgdW5tdXRlZCwgbGV0J3Mg
ZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRp
ZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAgICBtX3Byb3h5LnJlc2V0
UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
LmgKaW5kZXggYTNjNDFkYzA0YWFjZTVkZDRlYTczOWE2MGYyYTUzMGU1ZTNkMDc1ZS4uNWUxZWYz
MmJmNWZiNWIxY2VhODYxZTVlYTBjZTNhYjE5ZmUxNTQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5o
CkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgflJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50
aWZpZXIoKTsgfQpAQCAtNjQsMTQgKzY0LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYp
OwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJh
aW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7IH0K
IAotICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKLSAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBm
aW5hbDsKKyAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCk7CiAKICAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBXZWJD
b3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpOwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUp
IHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcik7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFy
dFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKaW5kZXggYzU1MzM1MzNhYzU1YjFmNWMyYWRhZWUx
ODg5NmYzNjE0ZjdjZWUzNS4uNjZiYjM4MjQ4MzFhMDM1N2JlNTYwZThhZTRkYTcyNmYzOGUxNmU5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKQEAgLTM4LDE3ICszOCwxNyBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hT
YWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRz
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcykp
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwg
Y29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcikpOwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJj
ZS5jb3B5UmVmKCkpOwogICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5h
ZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZSgpOwogICAgIHJldHVybiBzb3VyY2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
OjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwg
U3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdl
SWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQog
ewpAQCAtNTcsNyArNTcsNyBAQCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbgogCiB2b2lkIFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAg
IG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYg
ZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8m
JiwgYXV0bywgYXV0bykgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2
aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRv
JiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgewog
ICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewogICAgICAgICAgICAgbV9wcm94eS5kaWRGYWlsKFdU
Rk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDAsMjAgKzEw
MCwyMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6YXBwbHlDb25zdHJhaW50
c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZAogCiB2b2lkIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZTo6aGFzRW5kZWQoKQogewotICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKKyAgICBp
ZiAobV9wcm94eS5pc0VuZGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJveHkuZW5k
KCk7CiAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogICAgIG1fbWFu
YWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVy
KCkpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZVN0b3Bw
ZWQoKQotewotICAgIHN0b3AoKTsKLSAgICBoYXNFbmRlZCgpOwotfQotCi12b2lkIFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit2b2lkIFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKQogewotICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKKyAgICBpZiAoZGlkRmFpbCkKKyAgICAg
ICAgY2FwdHVyZUZhaWxlZCgpOworICAgIGVsc2UKKyAgICAgICAgZW5kKCk7CiAgICAgaGFzRW5k
ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCmluZGV4IDUyZjUzNWIzZDczZDY4OTc3
OGI5NWYxOTQ3ZjhlNzJkODI5OGQ2YTEuLmQwOTU3OTg5ODcxMDhlMTI0NTZiNjUzZTQ3ZDQzODFi
MzE3MjYxZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xh
c3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwog
ICAgIH5SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3By
b3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNTgsMTQgKzU4LDEzIEBAIHB1YmxpYzoKICAgICB2b2lk
IGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWls
ZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7IH0KIAotICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKLSAgICB2b2lkIGNhcHR1cmVG
YWlsZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCk7CiAK
ICAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
JiBzYW1wbGUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEgbWV0YWRhdGEpIHsgdmlkZW9T
YW1wbGVBdmFpbGFibGUoc2FtcGxlLCBtZXRhZGF0YSk7IH0KICAgICB2b2lkIHNvdXJjZU11dGVk
Q2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQogCiBwcml2
YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAppbmRleCA0YTI5NGQ4YzU0MTcxZTZlMTAwNWIzYTQw
NjY1NmIyNmMxNTljMDRkLi4wMzM5ZTUxYTg1MjhjODFmYTg2N2NmNjE1OWRmODZkMTRkMWY2NWMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApAQCAtNjgsOSArNjgsOSBAQCB2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEoKQog
ICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKLXZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0ZUNhbGxiYWNrJiYgY2FsbGJhY2ss
IGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJREhh
c2hTYWx0LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgQ3JlYXRlQ2Fs
bGJhY2smJiBjYWxsYmFjaywgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSkKIHsKLSAgICBjb25u
ZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29uc3RyYWlu
dHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIGNvbm5l
Y3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25zdHJhaW50
cywgc2hvdWxkVXNlUmVtb3RlRnJhbWUsIHBhZ2VJZGVudGlmaWVyKSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlDb25z
dHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKQEAg
LTk5LDggKzk5LDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpmYWls
QXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYKICAgICAgICAgY2FsbGJhY2tz
LnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNFcnJvciB7
IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6aGFzRW5kZWQoKQordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6
OmVuZCgpCiB7CisgICAgQVNTRVJUKCFtX2lzRW5kZWQpOworICAgIG1faXNFbmRlZCA9IHRydWU7
CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuaAppbmRleCAwM2MxZDcxMjIyN2NkNWI1MWE4MDQxOThmNDk1OWMyMjk4ZmRhMzYy
Li5iMGU1Mjk0MWY3ODMwNjg0ODE0MGMxOGJiOGRjYjY4MDRkMmRjMzA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oCkBAIC01MywxMyArNTMsMTQgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcgQ3JlYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBW
ZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3Vi
bGUpPjsKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYsIENy
ZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CisgICAg
dm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9
IGZhbHNlKTsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJp
bmcmJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNr
cyhjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci0gICAgCi0gICAgdm9pZCBoYXNFbmRlZCgp
OworCisgICAgYm9vbCBpc0VuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuZGVkOyB9CisgICAg
dm9pZCBlbmQoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3Rv
cFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5
Q29uc3RyYWludHNIYW5kbGVyJiYpOwpAQCAtNzUsMTIgKzc2LDE0IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAg
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9kZXZpY2U7CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1f
cGFnZUlkZW50aWZpZXI7CiAKICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3Ry
YWludHM7CiAgICAgRGVxdWU8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25z
dHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAg
Ym9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgYm9vbCBt
X2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIAogaW5saW5lIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5KFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmIGRldmljZSwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNw
cAppbmRleCBkMmQyNGFiYWI5ZWMzNGEwZGEyMmViNjVhOGFkM2NiNWYwMDdkOTdjLi5jNGI3MDUx
OWQ1MDE2OGYwZTRjMjcwMzgzMTEwY2VlM2Y3MTcxZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwCkBAIC00NSwyOSArNDUsMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYg
bWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3Vy
Y2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCku
YWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVk
aWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShu
YW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
KQorUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFn
ZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUp
LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBh
Z2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIp
CiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNv
dXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVN
ZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVm
IHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBz
ZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwg
YXV0byBmcmFtZVJhdGUpIG11dGFibGUgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFT
b3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNz
YWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRz
LCBhdXRvIHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNj
ZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2Fn
ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTMsMTEgKzg5LDYgQEAgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgICAgICBpZiAo
YXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgq
dGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNl
VHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKLSAgICAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgp
LnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTQ3LDIwICsxMzgsMjAgQEAgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2Fw
YWJpbGl0aWVzKCkKIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRlZCgp
CiB7Ci0gICAgbV9wcm94eS5oYXNFbmRlZCgpOworICAgIGlmIChtX3Byb3h5LmlzRW5kZWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm94eS5lbmQoKTsKICAgICBtX21hbmFnZXIucmVt
b3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQordm9pZCBSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpjYXB0dXJlU3RvcHBlZChib29sIGRpZEZhaWwpCiB7Ci0gICAgc3RvcCgp
OwotICAgIGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y2FwdHVyZUZhaWxlZCgpCi17Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxl
ZCgpOworICAgIGlmIChkaWRGYWlsKQorICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgZWxz
ZQorICAgICAgICBlbmQoKTsKICAgICBoYXNFbmRlZCgpOwogfQogCkBAIC0yMDQsMTQgKzE5NSw2
IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25E
aWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvCiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgp
ID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiB0aGlzICE9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3Rp
dmVTb3VyY2UoKSkgewotICAgICAgICAvLyBUcmFjayBpcyBtdXRlZCBhbmQgaGFzIG5vIGNoYW5j
ZSBvZiBiZWluZyB1bm11dGVkLCBsZXQncyBlbmQgaXQuCi0gICAgICAgIGNhcHR1cmVGYWlsZWQo
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAgbV9tYW5hZ2VyLnJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihjb25uZWN0
aW9uKCkpOwogICAgIG1fcHJveHkucmVzZXRSZWFkeSgpOwogICAgIGNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAzMmE4YTExNTQ2NGIwYjY1YjdlYWYz
YmYwZGI4MTdmZTFiOGY5YTk3Li5hNDVmNTU1ZWQ0Mzk3ZWZmODZhN2E4MjAxNmQ1ZjM0NGJlNzUx
ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXIKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgflJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50aWZpZXIoKTsgfQpA
QCAtNjMsMTQgKzYzLDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogCi0gICAgdm9pZCBjYXB0dXJlU3Rv
cHBlZCgpOwotICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOworICAgIHZvaWQgY2FwdHVy
ZVN0b3BwZWQoYm9vbCBkaWRGYWlsKTsKIAogICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUo
V2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBXZWJDb3JlOjpJbnRTaXplLCBXZWJDb3JlOjpWaWRlb1Nh
bXBsZU1ldGFkYXRhKTsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7
IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0
YSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBmNjg3ZDhkOWZiZTAzMDIzN2Y0ZmNhNDA3
MzBhMWE0NWJkNGMwNGMzLi4zNDIwZmY3ZDljNGZiZTU3MzI1Njk3MWViMTNlMzRhZjhmMmE5NWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTEyNCwzMyArMTI0LDE4IEBAIHZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmCiAgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZChSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
c291cmNlU3RvcHBlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBi
b29sIGRpZEZhaWwpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50
aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW10oUmVmPFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBl
ZCgpOwotICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7
Ci0gICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoKTsKLSAgICB9LCBbXShSZWY8UmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+Y2FwdHVy
ZVN0b3BwZWQoKTsKLSAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKLX0KLQotdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxlZChSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMu
ZmluZChpZGVudGlmaWVyKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFtdKFJlZjxS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+Y2Fw
dHVyZUZhaWxlZCgpOwotICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYg
c291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOwotICAgIH0sIFtdKFJl
ZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNl
LT5jYXB0dXJlRmFpbGVkKCk7CisgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbZGlkRmFp
bF0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291
cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsKKyAgICB9LCBbZGlkRmFpbF0oUmVmPFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5jYXB0dXJl
U3RvcHBlZChkaWRGYWlsKTsKKyAgICB9LCBbZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKGRp
ZEZhaWwpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCkBAIC0yMTIsNyAr
MTk3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0Zh
aWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKICAgICB9LCBbXShzdGQ6Om51bGxwdHJf
dCkgeyB9KTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5B
QkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBA
IC0yMjUsNyArMjEwLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICAgICAgRGVwcmVj
YXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0
cnVlKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFn
ZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlk
ZW50aWZpZXIpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rv
cnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKQEAgLTIzOCw3ICsy
MjMsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldFNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YQogICAgIG1fc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcyA9IHZhbHVlOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewog
I2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcykKQEAgLTI0OCwxMCArMjMzLDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAgICAg
ICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAogICAgIGJvb2wgc2hv
dWxkVXNlSU9TdXJmYWNlID0gIW1fbWFuYWdlci5tX3Nob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVG
cmFtZXM7Ci0gICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25z
dHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpLCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKKyAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFz
aFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50
aWZpZXIpLCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVy
cm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxh
eUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTI2MCw3ICsyNDUsNyBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0
ZURpc3BsYXlDYXB0dQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAg
ICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAotICAgIHJldHVybiBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
OworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mo
Ym9vbCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggOGNjNWI0ZjkyNjliMjQ0ZGI1OTk1Yjdi
NzQ0NGI5MTU5N2YxNmE4Mi4uN2MxYzAzNzgzODE3YTg0MjFkY2Q5MjRjYjFjMTRlNDMwNjMxYzA0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
dm9pZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wpOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAg
ICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsg
fQogICAgICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIHNwZWFrZXJE
ZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQogCkBAIC04
OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1h
bmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFn
ZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6
OkRpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmlu
YWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAg
ICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTEyNCw4ICsxMjQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKICAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIKLSAgICB2b2lkIGNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgc291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIGRpZEZhaWwpOwogICAgIHZv
aWQgc291cmNlTXV0ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBib29sIG11dGVkKTsKICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCmlu
ZGV4IGEwNWY2ZGQyZWE4N2Y5MGJjZWNlNWM3NjRjY2NkYzE1NWI0NDNkZTQuLmRlOGY1MDVhN2Iz
MzlmM2RkNWY1MWFjNGI4YmRkZDg3ODJiZGVjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTI0LDggKzI0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
CiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKLSAg
ICBDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
KQotICAgIFNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWQpCisgICAgU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCwgYm9vbCBkaWRGYWlsKQogICAgIFNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlZCkKICAgICBTb3Vy
Y2VTZXR0aW5nc0NoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBB
cHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3Mp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNWJmZjA2NTZkN2VjZjVjNzM3Y2M3MmFhZGI1YTk5NGViYjVhZjIyYS4uZDI2YWJj
Y2E2NTUyOGRhY2M3ZjI0MDEwMWQzMTljZDUyM2JlM2EyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDIyLTAzLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBTY29wZSBjYXB0dXJlIHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHBsYXRmb3JtL2lvcy9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUuaHRtbCBub3cgdGhhdCB3ZSBu
byBsb25nZXIgaGFuZGxlIG11bHRpIGNhcHR1cmUgaW4gV2ViUHJvY2VzcyBidXQgaW4gR1BVUHJv
Y2Vzcy4KKyAgICAgICAgVXBkYXRlIHBsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9hdWRpby1tdXRl
ZC1pbi1iYWNrZ3JvdW5kLXRhYi1ncHUtcHJvY2Vzcy5odG1sIHRvIGJlIGxpa2UgcGxhdGZvcm0v
aW9zL21lZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWwKKyAgICAg
ICAgc28gdGhhdCB0ZXN0IGlzIG5vIGxvbmdlciBkZXBlbmRlbnQgb24gc3luY2hyb25vdXMgZXZl
bnQgZmlyaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2F1ZGlvLW11
dGVkLWluLWJhY2tncm91bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWw6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJN
ZWRpYS1zaW5nbGUtY2FwdHVyZS1ncHUtcHJvY2Vzcy5odG1sOgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUuaHRtbDogUmVtb3Zl
ZC4KKwogMjAyMi0wMy0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgd2VicnRjL2NhbnZhcy10by1wZWVyLWNvbm5lY3Rpb24uaHRtbCBpcyBmbGFraWx5IGZh
aWxpbmcgYSB0ZXN0IGFzc2VydGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL21lZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLWdwdS1wcm9jZXNz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQt
aW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbAppbmRleCBmNjhmNzc4NjMzMjMxOWU2
YzQyMzA4ZWJhZmNlOGNlMWMzNzA2MmFmLi45YmUwMWZiMzZhMDIzZWMwMTcyY2YyOTkyNGY1YTEw
YjA5Y2VkMzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJl
YW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dy
b3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbApAQCAtMjksMzYgKzI5LDQ4IEBACiAgICAgICAgICAg
ICAgICAgfSkKIAogICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3lu
YyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNp
YmlsaXR5KGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYXVkaW9UcmFjay5t
dXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IGF1ZGlvVHJhY2sub25tdXRlID0gcmVzb2x2ZSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmlkZW9UcmFjay5tdXRlZCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHZpZGVv
VHJhY2sub25tdXRlID0gcmVzb2x2ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
dHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKICAgICAgICAg
ICAgICAgICAgICAgfSwgIkhpZGUgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSBtdXRl
ZCIpOwogICAgICAgICAgICAgICAgIH0pCiAKICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBw
cm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRQYWdlVmlzaWJpbGl0eSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChhdWRpb1RyYWNrLm11dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gYXVkaW9UcmFjay5vbnVubXV0ZSA9IHJlc29sdmUpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRp
byB0cmFjayBpcyBhY3RpdmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWRlb1Ry
YWNrLm11dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gdmlkZW9UcmFjay5vbnVubXV0ZSA9IHJlc29sdmUpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBp
cyBhY3RpdmUiKTsKICAgICAgICAgICAgICAgICAgICAgfSwgIlNob3cgcGFnZSwgdmlkZW8gYW5k
IGF1ZGlvIHNob3VsZCBiZSB1bm11dGVkIik7CiAgICAgICAgICAgICAgICAgfSkKIAogICAgICAg
ICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHkoZmFsc2UpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZU11dGVk
KCJjYXB0dXJlZGV2aWNlcyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrLm11dGVkKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gYXVkaW9UcmFjay5vbm11dGUg
PSByZXNvbHZlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGF1ZGlvVHJh
Y2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCF2aWRlb1RyYWNrLm11dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdmlkZW9UcmFjay5vbm11dGUgPSByZXNvbHZlKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2
aWRlbyB0cmFjayBpcyBtdXRlZCIpOwogICAgICAgICAgICAgICAgICAgICB9LCAiSGlkZSBhbmQg
bXV0ZSBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hvdWxkIGJlIG11dGVkIik7CiAgICAgICAgICAg
ICAgICAgfSkKIAogICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2VfdGVzdChhc3lu
YyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNp
YmlsaXR5KHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9U
cmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5YzUwYWQ4MzAxN2JjMjE0Zjk3NWVhMmMyYzI5YjgxNDBmZDVkNTgwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBBU1MgVGVzdGluZyBzdWNj
ZXNzaXZlIGdldFVzZXJNZWRpYSBjYWxscwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLWdwdS1wcm9j
ZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1l
ZGlhLXNpbmdsZS1jYXB0dXJlLWdwdS1wcm9jZXNzLmh0bWwKaW5kZXggN2U1MzI0MzE1NzM0MWUw
MmMzYWQ0MTg5MjA1NDhhNGIxNjE0ZTJiYi4uZmEwYjUzMTU2MGNiYTE4Nzg0Y2RjN2Y0Y2M4YTMw
OGU3YTE0MDE0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1ncHUtcHJvY2Vzcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNh
cHR1cmUtZ3B1LXByb2Nlc3MuaHRtbApAQCAtMTAsMTIgKzEwLDIyIEBACiAgICAgPGJvZHk+CiAg
ICAgICAgIDxzY3JpcHQ+CiAKLWFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JUcmFja011dGVkKHRyYWNr
KQorYXN5bmMgZnVuY3Rpb24gd2FpdEZvclRyYWNrRW5kZWQodHJhY2spCiB7Ci0gICAgaWYgKHRy
YWNrLm11dGVkKQorICAgIGlmICh0cmFjay5yZWFkeVN0YXRlID09PSAiZW5kZWQiKQogICAgICAg
ICByZXR1cm47CiAKLSAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0cmFjay5vbm11
dGUgPSByZXNvbHZlKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geyB0cmFjay5vbmVuZGVkID0gcmVzb2x2ZTsgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIndh
aXRGb3JUcmFja0VuZGVkIHRpbWVkIG91dCBmb3IgdHJhY2sgIiArIHRyYWNrLmtpbmQpLCA1MDAw
KTsgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGdldE90aGVyTWljcm9waG9uZURldmljZSh0cmFj
aykKK3sKKyAgICBjb25zdCBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5l
bnVtZXJhdGVEZXZpY2VzKCk7CisgICAgZm9yIChsZXQgZGV2aWNlIG9mIGRldmljZXMpIHsKKyAg
ICAgICAgaWYgKGRldmljZS5raW5kID09PSAiYXVkaW9pbnB1dCIgJiYgdHJhY2sua2luZCA9PT0g
ImF1ZGlvIiAmJiBkZXZpY2UuZGV2aWNlSWQgIT09IHRyYWNrLmdldFNldHRpbmdzKCkuZGV2aWNl
SWQpCisgICAgICAgICAgICAgcmV0dXJuIGRldmljZS5kZXZpY2VJZDsKKyAgICB9CisgICAgcmV0
dXJuICIiOwogfQogCiBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKQEAgLTI1LDI3ICszNSwyOCBA
QCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICB2YXIgZmlyc3RTdHJlYW07CiAgICAgdmFy
IGF1ZGlvVHJhY2s7CiAgICAgdmFyIHZpZGVvVHJhY2s7Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVvOiB7IGZhY2luZ01v
ZGU6IHsgZXhhY3Q6IFsndXNlciddIH0gfSB9KS50aGVuKChzdHJlYW0pID0+IHsKKyAgICByZXR1
cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSwgdmlk
ZW86IHsgZmFjaW5nTW9kZTogeyBleGFjdDogWyd1c2VyJ10gfSB9IH0pLnRoZW4oYXN5bmMgKHN0
cmVhbSkgPT4gewogICAgICAgICBmaXJzdFN0cmVhbSA9IHN0cmVhbTsKICAgICAgICAgYXVkaW9U
cmFjayA9IGZpcnN0U3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CiAgICAgICAgIHZpZGVvVHJh
Y2sgPSBmaXJzdFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOwogCi0gICAgICAgIGFzc2VydF9m
YWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAgICAg
IGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoYXVkaW9UcmFjay5yZWFkeVN0YXRlLCAibGl2ZSIsICJh
dWRpbyB0cmFjayBpcyBsaXZlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW9UcmFjay5y
ZWFkeVN0YXRlLCAibGl2ZSIsICJ2aWRlbyB0cmFjayBpcyBsaXZlIik7CiAKLSAgICAgICAgcmV0
dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWV9KTsK
KyAgICAgICAgY29uc3QgbmV3TWljcm9waG9uZURldmljZUlkID0gYXdhaXQgZ2V0T3RoZXJNaWNy
b3Bob25lRGV2aWNlKGF1ZGlvVHJhY2spOworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogeyBkZXZpY2VJZCA6IG5ld01pY3JvcGhvbmVE
ZXZpY2VJZH0gfSk7CiAgICAgfSkudGhlbihhc3luYyAoc3RyZWFtKSA9PiB7Ci0gICAgICAgIGF3
YWl0IHdhaXRGb3JUcmFja011dGVkKGF1ZGlvVHJhY2spOworICAgICAgICBhd2FpdCB3YWl0Rm9y
VHJhY2tFbmRlZChhdWRpb1RyYWNrKTsKIAotICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNr
Lm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHZp
ZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhhdWRpb1RyYWNrLnJlYWR5U3RhdGUsICJlbmRlZCIsICJhdWRpbyB0cmFjayBpcyBl
bmRlZCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvVHJhY2sucmVhZHlTdGF0ZSwgImxp
dmUiLCAidmlkZW8gdHJhY2sgaXMgbGl2ZSIpOwogCiAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IGZhY2luZ01vZGU6IHsgZXhhY3Q6
IFsiZW52aXJvbm1lbnQiXSB9IH0gfSk7CiAgICAgfSkudGhlbihhc3luYyAoc3RyZWFtKSA9PiB7
Ci0gICAgICAgIGF3YWl0IHdhaXRGb3JUcmFja011dGVkKHZpZGVvVHJhY2spOworICAgICAgICBh
d2FpdCB3YWl0Rm9yVHJhY2tFbmRlZCh2aWRlb1RyYWNrKTsKIAotICAgICAgICBhc3NlcnRfdHJ1
ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQsIHNlY29uZCBjaGVjayIp
OwotICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMg
bXV0ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhhdWRpb1RyYWNrLnJlYWR5U3RhdGUsICJl
bmRlZCIsICJhdWRpbyB0cmFjayBpcyBlbmRlZCwgc2Vjb25kIGNoZWNrIik7CisgICAgICAgIGFz
c2VydF9lcXVhbHModmlkZW9UcmFjay5yZWFkeVN0YXRlLCAiZW5kZWQiLCAidmlkZW8gdHJhY2sg
aXMgZW5kZWQiKTsKICAgICB9KTsKIH0sICJUZXN0aW5nIHN1Y2Nlc3NpdmUgZ2V0VXNlck1lZGlh
IGNhbGxzIik7CiAgICAgICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS5odG1sIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUt
Y2FwdHVyZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjY4MmVlMzM5ZDJl
OTRlMzUxZTI5OWI0YjEzMzVlMjI2NDQ0MmM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICsw
LDAgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNz
RW5hYmxlZD1mYWxzZSBDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkPWZhbHNlIF0gLS0+
Ci08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci0gICAgICAgIDx0aXRsZT5pT1Mgc3BlY2lmaWMgY29uc3RyYWludHMgb2Yg
b25lIGFjdGl2ZSBjYXB0dXJlIHNvdXJjZSBhdCBhIHRpbWU8L3RpdGxlPgotICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8c2NyaXB0Pgot
Ci1hc3luYyBmdW5jdGlvbiB3YWl0Rm9yVHJhY2tNdXRlZCh0cmFjaykKLXsKLSAgICBpZiAodHJh
Y2subXV0ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHRyYWNrLm9ubXV0ZSA9IHJlc29sdmUpOwotfQotCi1wcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKLQotICAgIHZhciBmaXJzdFN0cmVhbTsKLSAgICB2
YXIgYXVkaW9UcmFjazsKLSAgICB2YXIgdmlkZW9UcmFjazsKLSAgICByZXR1cm4gbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSwgdmlkZW86IHsgZmFjaW5n
TW9kZTogeyBleGFjdDogWyd1c2VyJ10gfSB9IH0pLnRoZW4oKHN0cmVhbSkgPT4gewotICAgICAg
ICBmaXJzdFN0cmVhbSA9IHN0cmVhbTsKLSAgICAgICAgYXVkaW9UcmFjayA9IGZpcnN0U3RyZWFt
LmdldEF1ZGlvVHJhY2tzKClbMF07Ci0gICAgICAgIHZpZGVvVHJhY2sgPSBmaXJzdFN0cmVhbS5n
ZXRWaWRlb1RyYWNrcygpWzBdOwotCi0gICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11
dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZSh2aWRl
b1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0KLSAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWV9KTsKLSAg
ICB9KS50aGVuKGFzeW5jIChzdHJlYW0pID0+IHsKLSAgICAgICAgYXdhaXQgd2FpdEZvclRyYWNr
TXV0ZWQoYXVkaW9UcmFjayk7Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRl
ZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZSh2aWRlb1Ry
YWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0KLSAgICAgICAgcmV0dXJuIG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgZmFjaW5nTW9kZTog
eyBleGFjdDogWyJlbnZpcm9ubWVudCJdIH0gfSB9KTsKLSAgICB9KS50aGVuKGFzeW5jIChzdHJl
YW0pID0+IHsKLSAgICAgICAgYXdhaXQgd2FpdEZvclRyYWNrTXV0ZWQodmlkZW9UcmFjayk7Ci0K
LSAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11
dGVkLCBzZWNvbmQgY2hlY2siKTsKLSAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRl
ZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgfSk7Ci19LCAiVGVzdGluZyBzdWNjZXNz
aXZlIGdldFVzZXJNZWRpYSBjYWxscyIpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+
Ci08L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454101</attachid>
            <date>2022-03-08 04:32:40 -0800</date>
            <delta_ts>2022-03-08 04:34:28 -0800</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-237359-20220308133237.patch</filename>
            <type>text/plain</type>
            <size>155071</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYyMTMyOTNhMjY4Zjg5
ZjY5Mjc1NGIxZGIzYTY0ODYzZTdjOTc4Yi4uNDViOTAyZDMxMmVmZTBmZDRhY2UwZDI3NTFlMzFj
YzVhYTFkZGY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIyLTAzLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFBh
c3MgUGFnZUlkZW50aWZpZXIgd2hlbiBjcmVhdGluZyBjYXB0dXJlIHNvdXJjZXMuCisgICAgICAg
IFRoaXMgaXMgdXNlZCBhdCBXZWJLaXQgbGF5ZXIgdG8gYmV0dGVyIGhhbmRsZSBjcmVhdGlvbiBv
ZiBtdWxpdHBsZSBzb3VyY2VzLgorICAgICAgICBTaW5jZSB3ZSBhcmUgbm93IHNvbWV0aW1lcyBh
bnN3ZXJpbmcgdG8gZ2V0VXNlck1lZGlhIGJ5IGNsb25pbmcgc291cmNlcyBkaXJlY3RseSwKKyAg
ICAgICAgZml4IGEgYnVnIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2UgdG8gdXNlIHRoZSBwcmVzZXQg
YXNwZWN0IHJhdGlvIHRvIGNvbXB1dGUgbWlzc2luZyB3aWR0aCBvciBoZWlnaHQuCisgICAgICAg
IEludHJvZHVjZSBhIHdheSB0byBlbmQgaW1tZWRpYXRlbHkgYSBjYXB0dXJlIHNvdXJjZSwgdGhp
cyBpcyB1c2VkIG9uIEdQVVByb2Nlc3Mgc2lkZSBpbiBjYXNlIHN0YXJ0aW5nIGEgY2FwdHVyZSB1
c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1t
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja0F1ZGlvU2hhcmVkVW5pdC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisKIDIwMjItMDMtMDgg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHByZWZl
cmVuY2UgdG8gbXV0ZSB2aWRlbyBjYXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBnZXRzIGlu
dGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU3MTA5ZGIwN2E1Nzk5N2VmZmRkNTY1ZDA0OTA5ZGQwNjFk
ODk3ZmIuLmMwZmNiN2IyOTM4YzE4ZGQ0MzVhZmI3MzhiNGVmNzJmODUxZDgzZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDUgQEAKKzIwMjItMDMtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIFNjb3BlIGNhcHR1cmUgc291cmNlcyBieSBwYWdlIGlkZW50aWZp
ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcz
NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVy
ZSBhcHByb3ByaWF0ZS4KKyAgICAgICAgTWFrZSB1c2Ugb2YgUGFnZUlkZW50aWZpZXIgaW4gVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eToKKyAgICAgICAgLSBGb3IgbWljcm9waG9uZSwgaWYg
dGhlcmUgaXMgYSBzb3VyY2Ugd2l0aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAgICAgICAgZmFp
bCB0aGUgc291cmNlIGFzIHdlIGFyZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3VycmVudCBjYXB0
dXJlcy4KKyAgICAgICAgLSBGb3IgY2FtZXJhLCBpZiB0aGVyZSBpcyBhIHNvdXJjZSB3aXRoIGEg
ZGlmZmVyZW50IGRldmljZSwKKyAgICAgICAgICBmYWlsIHRoZSBzb3VyY2UgYXMgd2UgYXJlIG5v
dCB5ZXQgc3VwcG9ydGluZyBjb25jdXJyZW50IGNhcHR1cmVzIChvbmx5IG9uIGlPUykuCisgICAg
ICAgICAgT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIHNvdXJjZSwgY2xvbmUgaXQg
c28gdGhhdCB3ZSByZWR1Y2UgdGhlIG92ZXJoZWFkCisgICAgICAgICAgb2YgY3JlYXRpbmcgYSBu
ZXcgc291cmNlIChzZXR0aW5nIHVwIGEgY2FtZXJhIGNhbiBiZSBhbiBleHBlbnNpdmUgb3BlcmF0
aW9uKS4KKyAgICAgICAgV2Ugc2lsZW50bHkgZmFpbCAobWVhbmluZyB0aGVyZSBpcyBubyBjb25z
b2xlIGxvZyBtZXNzYWdlIGZvciBub3csIHdoaWxlIHN0aWxsIGZpcmluZyBlbmRlZCBldmVudCkg
YnV0IGFkZCByZWxlYXNlIGxvZ2dpbmcgdG8gZGV0ZWN0IHRoaXMgY2FzZS4KKyAgICAgICAgTWlu
b3IgcmVmYWN0b3JpbmcgdG8gaGF2ZSBvbmUgbWVzc2FnZSBpbiBjYXNlIGNhcHR1cmUgc291cmNl
IGVuZHMgKHN0b3BwZWQgb3IgZmFpbGluZykgaW5zdGVhZCBvZiB0d28uCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKwogMjAyMi0wMy0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4g
Y2FzZSBhdWRpbyBjYXB0dXJlIGdldHMgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IDA5OWQxM2EwNzJmNmE5YTYxODc2MWE2NjNjMDJiMDYwNGU5Yjg1MzIuLmFlMDg4NWYzMjZjZTQw
YTZmMDFlZmQzYTM5YTMzYjFlZTUyYzQzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNyw3
ICsxMTM3LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAg
IHBhZ2UvUGFnZUdyb3VwLmgKLSAgICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1Bh
Z2VJbmxpbmVzLmgKICAgICBwYWdlL1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oCkBAIC0xMjk0LDYgKzEyOTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3Jt
L1BPREludGVydmFsVHJlZS5oCiAgICAgcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBw
bGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAg
cGxhdGZvcm0vUGFzdGVib2FyZENvbnRleHQuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0
b21EYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcAppbmRleCA1MDZmMzM3NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcy
N2U5Li4wZmFhOGJiNTVhMTk4NWU5ODBmNzM2YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBA
IC0xNDIsNyArMTQyLDcgQEAgdm9pZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBT
dHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWludHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0Nv
bnN0cmFpbnRzLnNldERlZmF1bHRWaWRlb0NvbnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0
byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0
cmVhbVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwg
V1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNy
ZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdU
Rk1vdmUoYXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNl
ckdlc3R1cmVQcml2aWxlZGdlZCwgKmRvY3VtZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21p
c2UpKTsKIAogICAgIGlmICghZG9jdW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWly
ZXNGb2N1cygpKSB7CiAgICAgICAgIHJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcg
QEAgdm9pZCBNZWRpYURldmljZXM6OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFT
dHJlYW1Db25zdHJhaW50cyYgY29uc3RyYWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVk
aWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0Nv
bnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkp
OworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQs
IHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2
aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBh
Z2VJRCgpIH0sIFdURk1vdmUocHJvbWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwCmluZGV4IDNlMzk0NGJjZDUwMTdkYjIyN2Y5MjhlYWE3YWI0OTY5NDcxMmFi
Y2EuLjQ2ZWNkODNkYTBkOGU0MDYwNjk5ZTA3NDk2ZmJmYjM1ODA3YzgwNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcApAQCAtNDcwLDQ0ICs0NzAsMTIgQEAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBN
ZWRpYVN0cmVhbVRyYWNrOjpjYXB0dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJl
dHVybiBzdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBp
c1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBz
b3VyY2UsIERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxs
Q2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9j
dW1lbnQgfHwgdHJhY2stPmVuZGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAg
ICBpZiAodHJhY2stPnNvdXJjZSgpLmlzU2FtZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVk
aWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgYXV0byogYWN0aXZlQXVkaW9Tb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYg
KGFjdGl2ZUF1ZGlvU291cmNlICYmIGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50
KCphY3RpdmVBdWRpb1NvdXJjZSwgZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVk
ID0gcGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpB
dWRpb0NhcHR1cmVJc011dGVkKTsKLSAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVk
KHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5p
bnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0K
LSAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBp
ZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1l
bnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0
ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6
OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwotICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0
ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZv
ciAoYXV0byogY2FwdHVyZVRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlm
IChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2st
PmVuZGVkKCkpCiAgICAgICAgICAgICBjYXB0dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3Rh
dGUoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlVmlkZW9DYXB0dXJl
QWNjb3JkaW5nTWljcm9waG9uZUludGVycnVwdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
aXNNaWNyb3Bob25lSW50ZXJydXB0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApp
bmRleCAzNDlhZGY2YjQyY2NiM2NjMWQ2YzA3YTJlNTQ0YzJiYzU5M2FjYTRiLi5hZmJjZTdhOWY0
NTZmN2Q1MDc2ODc4MDljYmUxNmUxMWJlNDBlMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5jcHAKQEAgLTYyLDkgKzYyLDkgQEAgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKICAgICBy
ZXR1cm4gY2FwdHVyZURldmljZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCiB7Ci0gICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURl
dmljZSwgIlNwZWVjaElEIl9zLCB7IH0pOworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsICJTcGVlY2hJRCJfcywgeyB9LCBwYWdlSWRlbnRpZmll
cik7CiB9CiAKIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCBjYTkwM2IxMmI3
ZjIyMTkzNWY1ZGZhMTk4ZGJiMWE4YzRjNzlkMzQ5Li5lMzI4ZGMzYzdjZDMwZjY5OTMwMjdjYjdk
OTg0YzY2MTdmYjk2YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNTEsNyAr
NTEsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CiAgICAgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiwgUGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDI1ZDMyNmUzOThiM2ZhZWM1MzA4Nzc5ZjI3OTU2MjVjNmM3ZjFhZjUuLmQxZTFh
MDNkMWIzZjlkN2M5MTg1YjlhMjczMzMwZGEzYmU5NzE1NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0y
MTkwLDcgKzIxOTAsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKLXBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcAogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmNwcAogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcAogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4
MzI0MDVjZTc5Nzg4NDk0OWNiMzQzMDIzYjkwMDFhYmVlYjYzZjUuLjExOGQwZTI2M2RmNjZhNWUw
NTAzYmM3NWI5ZmJiNjdhNjQxYmMwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExODEsNiArMTE4MSw3IEBACiAJCTQxOEZD
QkU3MjcxNUEyOEYwMEY5NkVDQSAvKiBSVENSdHBDb2RlY0NhcGFiaWxpdHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTBBN0RDMjNCQjYzREIwMDU2
MTA2MCAvKiBSVENSdHBDb2RlY0NhcGFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkwRjNBNTI0QTBCNEVFMDA1MzFDNTcgLyogRnJh
bWVSYXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkyNDI0OTIx
MjdCOTNFMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkyNDI0NzIxMjdC
N0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi87IH07
CisJCTQxOTJCQjEzMjdDRjYzODYwMEYyOUE0NiAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MkJCMTIyN0NGNjM4MzAw
RjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZpY2VX
b3JrZXJGZXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOUJDMkRGMTY4
NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlCQzJERDE2ODUzMjk5MDBENjRENkQgLyogVmlz
aXRlZExpbmtTdGF0ZS5oICovOyB9OwogCQk0MTlCRTc1OTFCQzdGNDJCMDBFMUM4NUIgLyogV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE5QkU3NTIxQkM3RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMu
aCAqLzsgfTsKQEAgLTEzNjMsNyArMTM2NCw2IEBACiAJCTQ2QTc4QjM0Mjc5OUJENzEwMDExNTRG
RSAvKiBXb3JrZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzFCMUQyNjI2RjE4QTRCMDA4ODJEQTIgLyogV29ya2VyT3B0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QUFBQTNE
MjVEMzYzMjAwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZBQUFBM0EyNUQzNjMxNDAwQkFGNDJG
IC8qIEF1ZGlvRmlsZVJlYWRlckNvY29hLmggKi87IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJF
OTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRh
cmdldEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTQ2QjY1MEREMjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCNjUwREIyMjk2MjYy
NzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZCODU5M0MyNjE2NzIyNzAwMTlFREM2IC8qIFNjcmlw
dEJ1ZmZlclNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NkI4NTkzQTI2MTY3MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291
cmNlUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3Ry
YWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkI5NTE4QTIwN0Q2MzI4MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI5NTE5NjIw
N0Q2MzNBMDBBN0QyREQgLyogQWJzdHJhY3RGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOEYyMDdENjMyQjAwQTdEMkREIC8qIEFic3Ry
YWN0RnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtNjEwNSw3ICs2MTA1LDYgQEAKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENh
Y2hlZFRleHRUcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
YWNoZWRUZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYw
MTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc1NEE1RUIyMTVF
QURGMzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBE
IC8qIFZpZGVvUHJlc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVv
UHJlc2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjExREI4MjQzRkI3NUMw
MEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVVzYWdlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYz
OEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04ODU5LDYgKzg4NTgsNyBAQAogCQk0MTkwRjNBMTI0
OUQxNTI3MDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVJhdGVNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVSYXRlTW9uaXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0Yg
LyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2
IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
Z2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTQ1Njk0MjAz
NTAyQTUwMDRCQTI3NyAvKiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZVJlc291cmNl
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTYyMDM1MDJB
NjAwNEJBMjc3IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8q
IFNlcnZpY2VXb3JrZXJGZXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXJ2aWNlV29ya2VyRmV0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMTQs
NyArOTMxNCw2IEBACiAJCTQ2QUFBQTNDMjVEMzYzMTQwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFk
ZXJDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0Zp
bGVSZWFkZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QUNEODEx
MjcwMTY1NkEwMEVGOENFRCAvKiBOYXZpZ2F0aW9uUmVxdWVzdGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRpb25SZXF1ZXN0ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVu
dFRhcmdldEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50
VGFyZ2V0Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2QjY1MERCMjI5
NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYWdlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkI4NTkzQTI2MTY3MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZCOTUxOEEyMDdENjMyODAwQTdEMkREIC8qIEFic3RyYWN0
RE9NV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0RE9N
V2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1MThDMjA3RDYzMjkw
MEE3RDJERCAvKiBSZW1vdGVGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODY5NSw3ICsxODY5NCw2IEBACiAJCQkJNEE0RjY1NkQxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCAqLywKIAkJCQk0QTBGRkE5RjFBQUY1RUEyMDA2
MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgKi8sCiAJCQkJNEEwRkZBQTAx
QUFGNUVBMjAwNjI4MDNCIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCAqLywKLQkJCQkw
NzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3Bw
ICovLAogCQkJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5oICovLAogCQkJCTQxQjg3NzYwMjNERTEwNDIwMDM2MzhCOCAvKiBSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllci5oICovLAogCQkJCTRBNEY2NTZFMUFBOTk3RjEwMEUzOENERCAv
KiBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuY3BwICovLApAQCAtMjQyNjYsNyArMjQyNjQs
NiBAQAogCQkJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLywKIAkJ
CQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAq
LywKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVy
LmggKi8sCi0JCQkJNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmgg
Ki8sCiAJCQkJQ0RFRkRBMEQyNzEyMjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJ
CQkJMkQ1QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQky
RDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCAqLywKQEAgLTMwMTExLDYg
KzMwMTA4LDcgQEAKIAkJCQk0MTc4RUYxNjI0MTI1QjZDMDAxOTNDNzQgLyogTm93UGxheWluZ01h
bmFnZXIuY3BwICovLAogCQkJCTQxNzhFRjE0MjQxMjVCNkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5n
TWFuYWdlci5oICovLAogCQkJCTQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlv
bk5vdGlmaWVyLmggKi8sCisJCQkJNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVu
dGlmaWVyLmggKi8sCiAJCQkJMkVFMDJBMUUxRjczMjQyODAwMDZBRjcyIC8qIFBhc3RlYm9hcmQu
Y3BwICovLAogCQkJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8s
CiAJCQkJRjQwREFBRUIyNUQ5RjI1RTAwMTFCNEZBIC8qIFBhc3RlYm9hcmRDb250ZXh0LmggKi8s
CkBAIC0zNjU2MSw3ICszNjU1OSw3IEBACiAJCQkJOTMwMkIwQkYwRDc5RjgyQzAwQzdFRTgzIC8q
IFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E2NzRCREMwRjlFQkY0RTAwNkNGMDk5
IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQzQx
RkFBNDRCQzAwMzdEMUU2IC8qIFBhZ2VIZWFwQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2
QjY1MEREMjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDE5MkJCMTMyN0NGNjM4NjAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDREVGREEwRTI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1Q0IwNTI0MUZCNTFGMzMwMDA4OUI5NyAvKiBQYWdlTmV0d29y
a0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDVDOUQwMDE5QzdCNTJFMDBCM0M1QzEgLyog
UGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmll
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGQ1ZjhkMjk3NTYzZWUwMjljNDEz
ZTljZGE3NDk0YzVmYTRkOGFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51
bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJ
ZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BhZ2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYWdlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNk
YTc0OTRjNWZhNGQ4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYWdlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBQYWdlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUGFnZUlkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVx
dWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1S
ZXF1ZXN0LmgKaW5kZXggYTRkNGI1MjViZTg5OWMyOTIxNjQwOWMyODk0NzZlMTlmNDZlNzcxZC4u
ZDA3OTU2ZjQ5YWFjYThiNWMzNTE5YTI5NzhiNjkyMGM4NDFhMTZiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVk
ZSAiTWVkaWFDb25zdHJhaW50cy5oIgorI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArNDAsNyBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1S
ZXF1ZXN0IHsKICAgICBNZWRpYUNvbnN0cmFpbnRzIGF1ZGlvQ29uc3RyYWludHM7CiAgICAgTWVk
aWFDb25zdHJhaW50cyB2aWRlb0NvbnN0cmFpbnRzOwogICAgIGJvb2wgaXNVc2VyR2VzdHVyZVBy
aXZpbGVkZ2VkIHsgZmFsc2UgfTsKKyAgICBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcjsK
IAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKQEAgLTQ3LDE1ICs0OSwyMCBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1
ZXN0IHsKICAgICAgICAgZW5jb2RlciA8PCBhdWRpb0NvbnN0cmFpbnRzOwogICAgICAgICBlbmNv
ZGVyIDw8IHZpZGVvQ29uc3RyYWludHM7CiAgICAgICAgIGVuY29kZXIgPDwgaXNVc2VyR2VzdHVy
ZVByaXZpbGVkZ2VkOworICAgICAgICBlbmNvZGVyIDw8IHBhZ2VJZGVudGlmaWVyOwogICAgIH0K
IAogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRp
YVN0cmVhbVJlcXVlc3Q+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAg
TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3Q7Ci0gICAgICAgIGlmIChkZWNvZGVyLmRlY29kZShy
ZXF1ZXN0LnR5cGUpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykg
JiYgZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRl
Y29kZShyZXF1ZXN0LmlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCkpCi0gICAgICAgICAgICByZXR1
cm4gcmVxdWVzdDsKLQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlcXVlc3QudHlwZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRl
Y29kZShyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5k
ZWNvZGUocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKQorICAgICAgICAgICAgfHwgIWRlY29kZXIu
ZGVjb2RlKHJlcXVlc3QuaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkKQorICAgICAgICAgICAgfHwg
IWRlY29kZXIuZGVjb2RlKHJlcXVlc3QucGFnZUlkZW50aWZpZXIpKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4gcmVxdWVzdDsKICAgICB9CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IGRlMGYxYTdhNGU2MzVhMTM5ZTQ4MjhiNTQ3ZmRj
ZjA2NjE5YjM1YWIuLmYxYzllNjAyODEzYTNiZjZmYjMxNDE3ODhiNjYwNGNhNDNiMDliOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00OCw4ICs0OCw5IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5
cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkK
LSAgICA6IG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlm
aWVyKQorICAgIDogbV9wYWdlSWRlbnRpZmllcihwYWdlSWRlbnRpZmllcikKKyAgICAsIG1faWRI
YXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fcGVyc2lzdGVudElEKFdURk1vdmUo
ZGV2aWNlSUQpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1l
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJmZjQwZDUyNTEx
NDNiNjlhYjQ0Li5jNGI0NTdlMjk2MGYwZWRhOTA4YjcyMTI5ODczOGFlODNlNTE0NDJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCkBAIC02OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JF
cnJvcjsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6RGVz
dHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBw
dWJsaWMgTG9nZ2VySGVscGVyCiAjZW5kaWYKQEAgLTEyNCw2ICsxMjUsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0OwogICAgIHZvaWQgc3RhcnQo
KTsKICAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIGVuZEltbWVkaWF0bHkoKSB7IGVuZChudWxs
cHRyKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIGNhbGxpbmdP
YnNlcnZlcik7CiAgICAgYm9vbCBpc0VuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuZGVkOyB9
CiAKQEAgLTIyMSw4ICsyMjMsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNldFNo
b3VsZEFwcGx5Um90YXRpb24oYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsg
fQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0pOwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2
aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9LCBQYWdlSWRlbnRpZmllciA9IHsg
fSk7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7
CiAKQEAgLTI3Myw2ICsyNzcsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVDb3Vu
dCB7IDAgfTsKICNlbmRpZgogCisgICAgUGFnZUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsK
ICAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OwogICAgIFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0
cmluZyBtX3BlcnNpc3RlbnRJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5k
ZXggOTQ1MjYzMjRiZDQ4YWIyMmUxOTQwYzExMjA4ZjUzYjFiOTIxYzM0YS4uMDA3NGQxNDQ5NWU5
Y2YxMGNlMDU0YjllZjA5YjQxYjc3ZDZiODZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgTmUKIAogICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBhdWRpb1NvdXJjZTsKICAgICBpZiAoYXVkaW9E
ZXZpY2UpIHsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0byBzb3VyY2Ug
PSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUo
YXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFp
bnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZh
aWxlZCB0byBjcmVhdGUgTWVkaWFTdHJlYW0gYXVkaW8gc291cmNlOiAiLCBzb3VyY2UuZXJyb3JN
ZXNzYWdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODksOSArODksOSBAQCB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dn
ZXI+JiYgbG9nZ2VyLCBOZQogICAgIGlmICh2aWRlb0RldmljZSkgewogICAgICAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBzb3VyY2U7CiAgICAgICAgIGlmICh2aWRlb0RldmljZS50eXBlKCkgPT0g
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAgc291cmNlID0g
dmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZp
ZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMp
OworICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVv
Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZy
ZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBzb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVh
dGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNo
U2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0g
ZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoV1RGTW92
ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzLCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKIAogICAgICAgICBpZiAoIXNvdXJjZSkgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygi
RmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSB2aWRlbyBzb3VyY2U6ICIsIHNvdXJjZS5lcnJv
ck1lc3NhZ2UpKSk7CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYK
ICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVl
c3QudmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3Bs
YXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3Ry
aW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdl
SWRlbnRpZmllcik7CiAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3Iu
Y2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LnZpZGVvQ29uc3RyYWlu
dHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAgICAgIGRpc3BsYXlEZXZpY2VJbmZvLmFw
cGVuZCh7IHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmlj
ZSB9KTsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAg
ICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7
IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0s
IHsgfSwgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JF
cnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMo
cmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAg
ICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNl
LT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3Ig
PSB2aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwg
U3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNl
LCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAg
ICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNl
LT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgaW52YWxpZENv
bnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlSW5mby5hcHBlbmQoe3NvdXJj
ZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZX0pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1OGYxM2I1ODZhNDhlOTY1NWFmZTYxZmQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkNh
cHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgotI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL1NIQTEuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnNldEFjdGl2ZVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCi17Ci0gICAgaWYgKG1fYWN0aXZlU291cmNl
ID09ICZzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgJiYg
bV9hY3RpdmVTb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICBtX2FjdGl2ZVNvdXJj
ZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0gICAgbV9hY3RpdmVTb3VyY2UgPSAmc291cmNlOwotfQotCi12
b2lkIFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2UmIHNvdXJjZSkKLXsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAg
ICAgICAgbV9hY3RpdmVTb3VyY2UgPSBudWxscHRyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5LmgKaW5kZXggYmEwZDkwM2U2MjllZDhhYmVkZjdjZmNmMWVmOTY1MTEzZTM4OTBi
Zi4uNjYxZDU5MmVlYzIwNzY2ODY2ZTllMmFmODAzYzI0Mjc2ZjZkNzA5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsMjcgKzQyLDEwIEBAIGNsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2U7CiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1Y3QgTWVkaWFD
b25zdHJhaW50czsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgU2luZ2xlU291cmNlRmFjdG9yeSB7
Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U2luZ2xlU291cmNlRmFjdG9yeSgpID0gZGVmYXVsdDsK
LQotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYp
OwotICAgIHZpcnR1YWwgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
Jik7Ci0KLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSgpIHsg
cmV0dXJuIG1fYWN0aXZlU291cmNlOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNv
dXJjZSogbV9hY3RpdmVTb3VyY2UgeyBudWxscHRyIH07Ci19OwotCi1jbGFzcyBBdWRpb0NhcHR1
cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVT
b3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVi
bGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAg
dmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAw
OworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyosIFBhZ2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdl
ciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVTcGVha2VyRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY2FsbGJhY2spIGNvbnN0IHsgY2FsbGJhY2soKTsgfQpAQCAtNzQsMjggKzU4LDIwIEBAIHBy
b3RlY3RlZDoKICAgICBBdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xh
c3MgVmlkZW9DYXB0dXJlRmFjdG9yeQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgOiBw
dWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2VuZGlmCi17CitjbGFzcyBWaWRlb0NhcHR1cmVG
YWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBk
ZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVy
ZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7CiAKIHByb3Rl
Y3RlZDoKICAgICBWaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3Mg
RGlzcGxheUNhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1
YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIERpc3BsYXlDYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVGYWN0b3J5KCkg
PSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxh
eUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFs
IERpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAw
OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXgg
ODJkZTI1OGJiYzdiMWExODZkY2I1NzBkY2EwNDQwZDhhYjQwMDllMS4uMzBiMGEyNThkM2FkMDA5
YzgzNzczYWQ2OWQ2YjFjYzYzNmJhYmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmNwcApAQCAtMzUsMjUgKzM1LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1l
TWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUoaWQpLCBXVEZN
b3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNh
bHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFz
aFNhbHQpLCBwYWdlSWRlbnRpZmllcikKIHsKIH0KIAogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2U6On5SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Nh
cHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi19Ci0KLXZv
aWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXBhcmVUb1Byb2R1Y2VEYXRhKCkKLXsK
LSAgICBBU1NFUlQoZnJhbWVSYXRlKCkpOwotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0
b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiBjb25zdCBWZWN0b3I8
UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkK
QEAgLTM2OSw2ICszNTcsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpzZXRT
aXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgcwogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1By
ZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJh
dGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAKICAgICBpZiAoIW1hdGNoLT5yZXF1ZXN0ZWRT
aXplLmlzRW1wdHkoKSkKQEAgLTQxMiw2ICs0MDEsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlOjpjbGllbnRVcGRhdGVkU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGlu
dAogICAgIGlmICghbWF0Y2gpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fY3VycmVudFByZXNl
dCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1h
dGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAgICAgc2V0
U2l6ZShtYXRjaC0+ZW5jb2RpbmdQcmVzZXQtPnNpemUpOwogICAgIHNldEZyYW1lUmF0ZShtYXRj
aC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmlu
ZGV4IDcwMTcyYWFlNTZjZDRmYTVmNWVkZmY3ZmQ0NDhiNWYzOTVjZDE4YWIuLmRjMWMzZDVlYWE3
NTExNGUyYWJmMTA4YTE1ODhmY2E0OWFlZjlmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UuaApAQCAtNTMsMTAgKzUzLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5zdXJlSW50
cmluc2ljU2l6ZU1haW50YWluc0FzcGVjdFJhdGlvKCk7CiAKKyAgICBjb25zdCBWaWRlb1ByZXNl
dCogY3VycmVudFByZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFByZXNldC5nZXQoKTsg
fQorCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNh
bHQsIFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVjZURhdGEoKTsK
ICAgICB2b2lkIHNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBz
dGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBib29sIHByZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQmKSB7IHJldHVy
biB0cnVlOyB9CkBAIC05MCw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogbG9n
Q2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlIjsgfQogI2VuZGlmCiAKKyAgICBSZWZQdHI8VmlkZW9QcmVzZXQ+IG1fY3VycmVudFBy
ZXNldDsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwogICAgIERlcXVl
PGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKICAgICBkb3VibGUgbV9vYnNlcnZl
ZEZyYW1lUmF0ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggY2U2ZTAwMzU5N2E4
YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIyYTkzZjQzYy4uMWQ0Zjk5YmYyYjEzYWE2NmFmZmMyNDhiZWNl
NTk4MmViMzBkNDY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRl
b1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlLCBib29sIHNo
b3VsZFVzZUlPU3VyZmFjZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8s
IFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElE
KCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSkKKyAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0
cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJ
REhhc2hTYWx0KCkgfSwgc291cmNlLT5wYWdlSWRlbnRpZmllcigpKQogICAgICwgbV9zb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV9zaG91bGRVc2VJ
T1N1cmZhY2Uoc2hvdWxkVXNlSU9TdXJmYWNlKQpAQCAtOTUsMTIgKzk1LDE1IEBAIHZvaWQgUmVh
bHRpbWVWaWRlb1NvdXJjZTo6c2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4g
d2lkdGgsIHN0ZDo6b3B0CiAgICAgQVNTRVJUKHNvdXJjZVNpemUuaGVpZ2h0KCkpOwogICAgIEFT
U0VSVChzb3VyY2VTaXplLndpZHRoKCkpOwogCisgICAgYXV0byogY3VycmVudFByZXNldCA9IG1f
c291cmNlLT5jdXJyZW50UHJlc2V0KCk7CisgICAgYXV0byBpbnRyaW5zaWNTaXplID0gY3VycmVu
dFByZXNldCA/IGN1cnJlbnRQcmVzZXQtPnNpemUgOiBzb3VyY2VTaXplOworCiAgICAgaWYgKCF3
aWR0aCkKLSAgICAgICAgd2lkdGggPSBzb3VyY2VTaXplLndpZHRoKCkgKiBoZWlnaHQudmFsdWUo
KSAvIHNvdXJjZVNpemUuaGVpZ2h0KCk7CisgICAgICAgIHdpZHRoID0gaW50cmluc2ljU2l6ZS53
aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBpbnRyaW5zaWNTaXplLmhlaWdodCgpOwogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFdpZHRoKCp3aWR0aCk7CiAKICAgICBpZiAoIWhlaWdodCkKLSAg
ICAgICAgaGVpZ2h0ID0gc291cmNlU2l6ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBzb3Vy
Y2VTaXplLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IGludHJpbnNpY1NpemUuaGVpZ2h0KCkg
KiB3aWR0aC52YWx1ZSgpIC8gaW50cmluc2ljU2l6ZS53aWR0aCgpOwogICAgIG1fY3VycmVudFNl
dHRpbmdzLnNldEhlaWdodCgqaGVpZ2h0KTsKIAogICAgIGlmIChmcmFtZVJhdGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDU1NGY4ZGQyN2E0YmU1
ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2ZjQyYjcuLjE2NmE1MzA3NzMyYjExNWU0NWQ2MjA3MGVmYTAw
YTAxMzgyOGJmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2Eu
Y3BwCkBAIC04MywyMyArODMsMjMgQEAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUg
c291cmNlVHlwZUZvckRldmljZShDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHQKICAgICByZXR1
cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKIHsKICAgICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICNpZiBQTEFURk9STShJT1MpCi0gICAg
ICAgIHJldHVybiBjcmVhdGUoUmVwbGF5S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5w
ZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZShSZXBsYXlLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2
aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWlu
dHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbHNlCiAjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQp
CiAgICAgICAgIGlmIChTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUo
KSkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJl
S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCi0g
ICAgICAgIHJldHVybiBjcmVhdGUoQ0dEaXNwbGF5U3RyZWFtU2NyZWVuQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlTdHJlYW1TY3Jl
ZW5DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogI2lmIEhBVkUoU0NS
RUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3Vy
Y2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gY3JlYXRlKFNjcmVlbkNhcHR1
cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cyksIGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVh
dGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFp
bnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlm
aWVyKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlN5c3RlbUF1ZGlvOgpAQCAtMTE0LDEyICsxMTQsMTIgQEAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmkKICAgICByZXR1cm4geyB9OwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBE
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1
cmVyPiwgU3RyaW5nPiYmIGNhcHR1cmVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0Nh
cHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShFeHBl
Y3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBp
ZiAoIWNhcHR1cmVyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgeyBXVEZNb3ZlKGNhcHR1cmVyLmVycm9yKCkpIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVy
LnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVy
c2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZh
bHVlKCkpLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lz
dGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYg
KGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0
cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0xMjksOCArMTI5
LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3Jl
YXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXIKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZvckRldmljZShjYXB0dXJlci0+ZGV2
aWNlVHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFz
aFNhbHQpKQorRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGb3JEZXZpY2UoY2Fw
dHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2NhcHR1cmVyKFdURk1v
dmUoY2FwdHVyZXIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZE
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5kZXggMDQ1YzhjYzQzNWZjYjI5YzVkZWQwYjJmMWFl
Y2E1MjQyYzVhZThjMC4uYjllYjA4NWQ0NzQ5MzRjNWUwNTFhNzVhYjFkZDAzY2M1NGU3Zjg1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAtMTEyLDE0ICsx
MTIsMTQgQEAgcHVibGljOgogICAgICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAg
ICAgfTsKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2Fw
dHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Ci0gICAgc3Rh
dGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVy
ZXI+LCBTdHJpbmc+JiYsIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwg
UGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
RXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7
CiAKICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lKCk7CiAgICAgdm9pZCB1cGRhdGVGcmFtZVNpemUo
KTsKIAogcHJpdmF0ZToKLSAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxD
YXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhh
c2hTYWx0KTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJl
cj4mJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0
LCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YSgpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA0ODZiMGU0NDg2YTNjNjRl
M2FjMTNmMzU3YmQwMTRkZTAzMTgwZGY2Li43M2VjZDI0MDNiYzBmNDhiZGExOWQ1MTk5MDE0N2Ez
NTczYjdlYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVi
dWdDYXRlZ29yeSgpCiAKIGNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnkg
OiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAg
ICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
U3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25z
dHJhaW50cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlLmNwcAppbmRleCBlMTNkNTNiMmIyNGRjZTlkNTAyNmRhMjM3MjgzM2U0ZTQy
MTNiMWUwLi42OWRhMjBiNjgwZTg1OWZkNzZmNjIwYjkzM2E1ZWE2ZjBlYmJjNGVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAt
NjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0g
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRl
OgogCiBjbGFzcyBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBw
dWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFs
CiAgICAgewogICAgICAgICBhdXRvJiBtYW5hZ2VyID0gR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVE
ZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICAgICAgcmV0dXJuIG1hbmFnZXIuY3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWlu
dHMpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYgR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFjdG9yeSgpCiB9CiAKIEdTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2NoYXIqIHNvdXJj
ZUZhY3RvcnksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgaW50IGZkKQot
ICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQp
LCB7IH0pCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJl
cj4oc291cmNlRmFjdG9yeSwgZGV2aWNlVHlwZSkpCiAgICAgLCBtX2RldmljZVR5cGUoZGV2aWNl
VHlwZSkKIHsKQEAgLTEzMCw3ICsxMzAsNyBAQCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6
OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaQogfQog
CiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAg
OiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElk
KCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAg
OiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElk
KCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHsgfSkK
ICAgICAsIG1fY2FwdHVyZXIobWFrZVVuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihkZXZp
Y2UpKQogICAgICwgbV9kZXZpY2VUeXBlKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwCmluZGV4IGM3N2RjYTI3YzNhYzdhMmM2MDYyNWEzMzE2MTIzYzc5OGU5
NjQ0ODQuLjVjZjYyN2M5M2E0MmQ3ODExYmQ3MGIxMTU4MGNkYjE3NmQ0YjYxMmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHNfSHVtVm9sdW1lID0g
MC4xOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzX05vaXNlRnJlcXVlbmN5ID0gMzAwMDsKIHN0YXRp
YyBjb25zdCBkb3VibGUgc19Ob2lzZVZvbHVtZSA9IDAuMDU7CiAKLUNhcHR1cmVTb3VyY2VPckVy
cm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIp
CiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTYz
LDcgKzYzLDcgQEAgUmVmPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlRm9yTW9ja0F1ZGkKIH0KIAogTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQogewogICAg
IGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA5Njc3NzFl
ZjBhYzg0OGE4NTFkOTJkYmUzNTljNWVjMWZkMDkyYzNjLi44ZGI3NjgwZTJiYTgyZjFjMjkwMmEy
M2U2NjU4M2RkYTBiYmM4OWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcK
ICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2
aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC0xNDcsNyArMTQ3LDcgQEAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3Ry
ZWFtZXI6OnNldHRpbmdzKCkKIH0KIAogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6
Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291
cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkK
KyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3Zl
KG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQogewogICAgIGVuc3VyZUdTdHJlYW1lcklu
aXRpYWxpemVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaAppbmRl
eCA2NjQ4NWUzMmI5NzRiMjZiNmRiNzBlZjMxZjQxNTQ1MGMwYzYzMWZmLi5iMTA1YjNlMTBjODA5
OTk4Y2ExMTU5NTY4MGE0YWU4NjYzN2IzYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlSU9TLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2luQXVk
aW9TZXNzaW9uSW50ZXJydXB0aW9uKCkgeyBiZWdpbkludGVycnVwdGlvbigpOyB9CiAgICAgdm9p
ZCBlbmRBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb24oQXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUpIHsg
ZW5kSW50ZXJydXB0aW9uKCk7IH0KIAotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgYWRkRXh0
ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5zaXZlT2JzZXJ2ZXImKSBmaW5hbDsKICAgICB2b2lkIHJlbW92
ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyJikgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9z
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KaW5kZXggNjcwNTkyZjM1MTY3ZjZiMDYxOTk2
YjAxNjc0ZWI5YjU0ODQ0M2E1Mi4uYmIzMjlmZTBlMWQ4NTdlZmI2MTcxNzRiYzQ5OTEzNmJhYzgz
ZTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9z
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KQEAgLTExNiwx
MyArMTE2LDEzIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OnJlbW92
ZUV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9ic2VydmVyCiAgICAgICAgIEFWQXVkaW9TZXNz
aW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRpc2FibGVBbGxEZXZpY2VzUXVl
cnkoKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZh
Y3RvcnlJT1M6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5
SU9TOjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogICAgIC8vIFdlIGVuYWJsZSBleGhh
dXN0aXZlIHF1ZXJ5IHRvIGJlIHN1cmUgdG8gc3RhcnQgY2FwdHVyZSB3aXRoIHRoZSByaWdodCBk
ZXZpY2UuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdG9wIHRoZSBhdXhpbGlhcnkgc2Vzc2lv
biBhZnRlciBzdGFydGluZyBjYXB0dXJlLgogICAgIGlmIChtX29ic2VydmVycy5jb21wdXRlc0Vt
cHR5KCkpCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmds
ZXRvbigpLmVuYWJsZUFsbERldmljZXNRdWVyeSgpOwotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLmgKaW5kZXggYTZkNzQyMTYzOWE3NDI3NjQxY2FmMmIyNzI3MTNkZTFl
NWYxODgwYy4uMjRlMTFhZTEzZmJiZTdjMWM4NmZmYTZhOGY3MGIyNGRmNjFmZTZhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDsKIAogY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBD
YXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0
dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNhcHR1cmVEZXZpY2VTdXNwZW5kZWREaWRDaGFuZ2UoKTsKIAogcHJpdmF0ZToKLSAgICBB
VlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVy
ZURldmljZSosIGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlk
ZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfkFWVmlkZW9DYXB0dXJlU291cmNlKCk7CiAKICAgICB2
b2lkIGNsZWFyU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDU2
ZWQ0YzIxYWVjMGU1ZDlmNmQ3MzVkNTgyMWM4NmJkMjM1ZmM5NjAuLjcwN2NiNjVjNjgxODVhZGM3
NTQ3YTRlY2JmMzdkYTVhN2ZiMjA4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0K
QEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2
aWNlRm9ybWF0PiBmb3JtYXQ7CiB9OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgYXV0byAq
YXZEZXZpY2UgPSBbUEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlx
dWVJRDpkZXZpY2UucGVyc2lzdGVudElkKCldOwogICAgIGlmICghYXZEZXZpY2UpCiAgICAgICAg
IHJldHVybiB7ICJObyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShhdkRldmljZSwg
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShhdkRldmljZSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAg
YXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAg
ICAgICAgaWYgKHJlc3VsdCkKQEAgLTEyNCw4ICsxMjQsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJv
ciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgUwogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLUFWVmlkZW9DYXB0dXJlU291cmNlOjpB
VlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqIGF2RGV2aWNlLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoU3RyaW5nKGRldmljZS5sYWJlbCgpKSwgU3RyaW5nKGRldmljZS5wZXJz
aXN0ZW50SWQoKSksIFdURk1vdmUoaGFzaFNhbHQpKQorQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFW
VmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSogYXZEZXZpY2UsIGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nKGRldmlj
ZS5sYWJlbCgpKSwgU3RyaW5nKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIFdURk1vdmUoaGFzaFNh
bHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJD
b3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0
aGlzXSkpCiAgICAgLCBtX2RldmljZShhdkRldmljZSkKICAgICAsIG1fdmVyaWZ5Q2FwdHVyaW5n
VGltZXIoKnRoaXMsICZBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dmVyaWZ5SXNDYXB0dXJpbmcpCkBA
IC0xMzcsOSArMTM3LDYgQEAgQVZWaWRlb0NhcHR1cmVTb3VyY2U6On5BVlZpZGVvQ2FwdHVyZVNv
dXJjZSgpCiB7CiAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUik7
CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgq
dGhpcyk7Ci0jZW5kaWYKICAgICBbbV9vYmpjT2JzZXJ2ZXIgZGlzY29ubmVjdF07CiAgICAgW21f
ZGV2aWNlIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJz
dXNwZW5kZWQiXTsKIApAQCAtNDY5LDEwICs0NjYsNiBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291
cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0
cigpLCBMT0dJREVOVElGSUVSKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgp
LnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAgIE5TRXJyb3IgKmVycm9yID0g
bmlsOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VJbnB1dD4gdmlkZW9JbiA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NBVkNhcHR1cmVEZXZpY2VJbnB1dEluc3RhbmNlKCkgaW5pdFdpdGhEZXZp
Y2U6ZGV2aWNlKCkgZXJyb3I6JmVycm9yXSk7CiAgICAgaWYgKGVycm9yKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggZTYzMGM0YzVjMDI5ZTI2MjY5NGZlNGMwNzU2
YTc4OTgxMTZjMmY2Yi4uZjU3YjA2NGI4MzVjMzYxYzRlYmEyMTA4ZTZjODk4Zjg3ZTZlNDVkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjY4LDI3ICs2NjgsMjcg
QEAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJl
U291cmNlKFJlZjxDb3JlQXVkaW9DYXB0dXIKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJy
b3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JF
cnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFn
ZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGF1
dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNv
cmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNlKQogICAgICAg
ICByZXR1cm4geyAiTm8gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSBkZXZpY2UiX3MgfTsKIAotICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1v
dmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2Fs
dCksIGRldmljZS0+ZGV2aWNlSUQoKSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZp
Y2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSwgbnVs
bHB0ciwgcGFnZUlkZW50aWZpZXIpKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
YXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0
b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRoVUlEKFdURk1vdmUoZGV2aWNlSUQpKTsKICAgICBp
ZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5vIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURl
dmljZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxh
YmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDApKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3RyaW5n
IHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCAwLCBudWxscHRyLCBwYWdl
SWRlbnRpZmllcikpOwogI2VuZGlmCiAgICAgcmV0dXJuIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0
dXJlU291cmNlKFdURk1vdmUoc291cmNlKSwgY29uc3RyYWludHMpOwogfQogCi1DYXB0dXJlU291
cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlk
ZVVuaXQpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVh
dGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBCYXNlQXVkaW9T
aGFyZWRVbml0JiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShoYXNoU2FsdCksIDAs
ICZvdmVycmlkZVVuaXQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShsYWJlbCksIFdURk1v
dmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVVbml0LCBwYWdlSWRlbnRpZmllcikpOwogICAgIHJl
dHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSksIGNv
bnN0cmFpbnRzKTsKIH0KIApAQCAtNzcxLDggKzc3MSw4IEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk6OndoZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5uaW5nKEZ1bmN0aW9u
PHZvCiAgICAgcmV0dXJuIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnVuaXQoKS53aGVuQXVkaW9DYXB0
dXJlVW5pdElzTm90UnVubmluZyhXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLUNvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgY2FwdHVyZURldmljZUlE
LCBCYXNlQXVkaW9TaGFyZWRVbml0KiBvdmVycmlkZVVuaXQpCi0gICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwg
V1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBjYXB0dXJlRGV2aWNlSUQsIEJhc2VB
dWRpb1NoYXJlZFVuaXQqIG92ZXJyaWRlVW5pdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNh
bHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fY2FwdHVyZURldmljZUlEKGNhcHR1cmVEZXZp
Y2VJRCkKICAgICAsIG1fb3ZlcnJpZGVVbml0KG92ZXJyaWRlVW5pdCkKIHsKQEAgLTgxMiwxOSAr
ODEyLDExIEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZVRvU3RhcnRQ
cm9kdWNpbmdEYXRhKCkKIAogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6fkNvcmVBdWRpb0NhcHR1
cmVTb3VyY2UoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsK
LSNlbmRpZgotCiAgICAgdW5pdCgpLnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0
b24oKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0KICAgICBpbml0aWFsaXplVG9T
dGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB1bml0KCkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA2ZTE3OTFjZTk4MTRmYWQ5NGEx
MzMzNmVkNTRhYWQwZjEwY2U4YjUyLi5hMGU4YzQ2YmU0OWE5NjZiZWViYjBhOWU3ZGM3M2ViYTll
NzA0MjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUxLDE1ICs1MSwx
NSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIAogY2xhc3MgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwotICAgIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQpOworICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVudGlmaWVyKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5
KCk7CiAKICAgICBDTUNsb2NrUmVmIHRpbWViYXNlQ2xvY2soKTsKIAogcHJvdGVjdGVkOgotICAg
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVs
LCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9TaGFy
ZWRVbml0KiA9IG51bGxwdHIpOworICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVy
c2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRVbml0KiwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZp
cnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICBCYXNlQXVkaW9TaGFyZWRVbml0
JiB1bml0KCk7CiAgICAgY29uc3QgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgdW5pdCgpIGNvbnN0OwpA
QCAtMTI4LDE0ICsxMjgsMTQgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hl
bkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogcHJp
dmF0ZToKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikg
b3ZlcnJpZGU7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyosIFBhZ2VJZGVudGlmaWVyKSBvdmVycmlkZTsKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYg
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOwogICAgIGNvbnN0IFZlY3RvcjxDYXB0
dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5hbDsKIH07CiAKLWlubGluZSBD
YXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6Y3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQoraW5saW5lIENh
cHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CisgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrQXVkaW9TaGFyZWRVbml0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KaW5kZXggMGRkM2Q3MWNhZTdhNjNiNjM3MjA4
ZjI4MzgyMjBlNjU5ZTQyMTNjZS4uMzQyMjc0MjNkODliMGEwNDlkZTY5YWNlMzVmOGYzOGYzZDMw
YzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tBdWRpb1NoYXJlZFVuaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQubW0KQEAgLTgzLDcgKzgzLDcgQEAgc3Rh
dGljIHZvaWQgYWRkSHVtKGZsb2F0IGFtcGxpdHVkZSwgZmxvYXQgZnJlcXVlbmN5LCBmbG9hdCBz
YW1wbGVSYXRlLCB1aW50NjRfdAogICAgIH0KIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKIHsKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CiAgICAgQVNTRVJUKGRl
dmljZSk7CkBAIC05MSw3ICs5MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAg
IHJldHVybiB7ICJObyBtb2NrIG1pY3JvcGhvbmUgZGV2aWNlIl9zIH07CiAKICAgICBNb2NrQXVk
aW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKS5zZXREZXZpY2VJRChkZXZpY2VJRCk7Ci0gICAgcmV0
dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoV1RGTW92ZShkZXZp
Y2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIE1v
Y2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhXVEZNb3ZlKGRldmljZUlEKSwgIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgTW9ja0F1ZGlvU2hhcmVkVW5p
dDo6c2luZ2xldG9uKCksIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogTW9ja0F1ZGlvU2hhcmVkVW5p
dCYgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLmgKaW5kZXggOTVjZjM1Y2Q0ZWIxMzE4ZDg2ODMyNzNhNWQwOTZjNzM2
NDQ2MDhiMC4uNDgyOTU3OWQyZmExNjUzY2VjMDAxMjdjMDNmMjRjYTMwOTc2Y2QzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAgLTQ3LDEzICs0NywxMyBAQCBj
bGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYyBmaW5hbCA6IHB1YmxpYyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlRm9yTW9ja0Rp
c3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpOworICAgIHN0YXRpYyBSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0
ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICB+TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwotICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7Cisg
ICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVTYW1wbGVCdWZm
ZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQppbmRl
eCBmZDE5NGU2MTlhNDRiODgxMWRjYjE3ZTAwNDY3MWY0NDUzNWU3YTk3Li45ZTI1ZjZkMmQ0MzEz
ZjkwZGU5YzBmYjFkNjBkZDg4YjA5Nzg1ZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjLm1tCkBAIC01Miw3ICs1Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rldmlj
ZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwpAQCAtNjEsNyArNjEsNyBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAiTm8gbW9jayBjYW1lcmEgZGV2aWNlIl9z
IH07CiAjZW5kaWYKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1v
dmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlmIChjb25zdHJhaW50cykgewog
ICAgICAgICBpZiAoYXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3Ry
YWludHMpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3ItPm1lc3NhZ2UpOwpAQCAt
NzAsMTMgKzcwLDEzIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgcmV0dXJuIENhcHR1
cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJj
ZSkpKTsKIH0KIAotUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCitSZWY8TW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxh
eUNhcHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikpOwogfQogCi1Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1v
dmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZSho
YXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoIk1vY2tSZWFsdGltZVZpZGVvU291cmNlIFJlbmRlciBRdWV1ZSIsIFdvcmtRdWV1ZTo6
UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IDk3Yzk3ZTU5MDM2NGQ0MTk3MGNhNDZlMjg3OGExNmI4
N2VmMWY0YWYuLmNmMDA4MjBhNDQ4OGVmYjRiMzU1ZTNlNjUzNzNlMGQxMzg2MTllNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAgLTQ1LDEwICs0
NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZpZGVvQ2FwdHVyZVNvdXJjZUZh
Y3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0g
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNl
LnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpOwotICAgICAgICBy
ZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRp
Zmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNTcsOSArNTcsOSBAQCBwcml2YXRlOgogCiBj
bGFzcyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgRGlzcGxh
eUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZp
bmFsCiAgICAgewotICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3Jl
YXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0
dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFz
aFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIHByaXZhdGU6CiAg
ICAgRGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKSB7
IHJldHVybiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6c2luZ2xldG9uKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKaW5kZXggMmFhZTE5MWMxN2VmM2VjYTdhYTAwN2EzYTI4YjVhMTFhZWFjY2E1Yy4u
NzAzMDg0MjgzNDg5NTliMDQ1ZmViZDQ2NmUwNTA3YzU3ODViZTdhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKQEAgLTQ5LDcgKzQ5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1
cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFn
ZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmlj
ZUlEKTsKQEAgLTY2LDggKzY2LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKIH0KICNlbmRp
ZgogCi1Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDog
UmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVl
OjpjcmVhdGUoIk1vY2tSZWFsdGltZUF1ZGlvU291cmNlIFJlbmRlciBRdWV1ZSIpKQogICAgICwg
bV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6dGljaykKIHsKQEAgLTgxLDkgKzgxLDYgQEAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW0KIAog
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6On5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpCiB7Ci0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMp
OwotI2VuZGlmCiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkKQEAgLTE0MCw3ICsxMzcsNiBAQCB2b2lkIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRp
bWVNZWRpYVNvdXJjZVNldAogdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9k
dWNpbmdEYXRhKCkKIHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcigpLnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAgQVNTRVJUKEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggNTVm
OWVkMmE2YzI4OTQ4ZDQwY2U4MDY0OGY1MGRkODc3Y2UzNjllMy4uZGExMGU0NDIxZTQ0MzIwY2M0
Mzg4YTVkMmI4ZWU3MDRlZjY1MjRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsNyArNDIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmll
cik7CiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIHN0YXRp
YyB2b2lkIHNldElzSW50ZXJydXB0ZWQoYm9vbCk7CkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCk7CiAKIHBy
b3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbmRlcihTZWNvbmRzKSA9
IDA7CiAgICAgdm9pZCBzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzOjpGbGFnPikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
CmluZGV4IGMzOWZhN2JjZTQzYzM3ZWIzZGViNzEzZTk3ZDllOTIwOWNiMmZiNTkuLmI3OTFiYzI3
ZTA1ZWU5OTIxZDM2ZGMzNzMyYWQ4OGVjN2EzMTFjNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwCkBAIC0xMDEsMTMgKzEwMSwxMyBAQCBzdGF0aWMgaW5saW5lIFZlY3RvcjxNb2NrTWVk
aWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VGYWN0b3J5IDogcHVibGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRl
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBl
KCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKTsKICAgICAgICAgaWYgKCFN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50
SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhLCBkZXZpY2UucGVyc2lzdGVudElk
KCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgY2FtZXJhIGRl
dmljZSB3aXRoIGdpdmVuIHBlcnNpc3RlbnRJRCJfcyB9OwogCi0gICAgICAgIHJldHVybiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQo
KSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAg
fQogCiBwcml2YXRlOgpAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0o
TUFDKQogY2xhc3MgTW9ja0Rpc3BsYXlDYXB0dXJlciBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hOjpDYXB0dXJlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTW9ja0Rp
c3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJik7CisgICAgTW9ja0Rpc3BsYXlDYXB0
dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiwgUGFnZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgog
ICAgIGJvb2wgc3RhcnQoKSBmaW5hbDsKQEAgLTEzNCw4ICsxMzQsOCBAQCBwcml2YXRlOgogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwogfTsKIAotTW9ja0Rpc3Bs
YXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UpCi0gICAgOiBtX3NvdXJjZShNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9y
TW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3Ry
aW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgfSkpCitNb2NrRGlzcGxheUNhcHR1cmVy
OjpNb2NrRGlzcGxheUNhcHR1cmVyKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBtX3NvdXJjZShNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgfSwg
cGFnZUlkZW50aWZpZXIpKQogewogfQogCkBAIC0xNzcsNyArMTc3LDcgQEAgSW50U2l6ZSBNb2Nr
RGlzcGxheUNhcHR1cmVyOjppbnRyaW5zaWNTaXplKCkgY29uc3QKIAogY2xhc3MgTW9ja1JlYWx0
aW1lRGlzcGxheVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsK
IHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAg
ICBpZiAoIU1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBl
cnNpc3RlbnRJRChkZXZpY2UudHlwZSgpLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAg
ICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgZGlzcGxheSBkZXZpY2Ugd2l0aCBn
aXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKQEAgLTE4NiwxMSArMTg2LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICAgICAgICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoVW5p
cXVlUmVmPERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkNhcHR1cmVyPihtYWtlVW5pcXVlUmVm
PE1vY2tEaXNwbGF5Q2FwdHVyZXI+KGRldmljZSkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJl
cj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihkZXZpY2UsIHBhZ2VJZGVudGlm
aWVyKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRp
Zmllcik7CiAjZWxpZiBVU0UoR1NUUkVBTUVSKQogICAgICAgICAgICAgcmV0dXJuIE1vY2tEaXNw
bGF5Q2FwdHVyZVNvdXJjZUdTdHJlYW1lcjo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzKTsKICNlbHNlCi0gICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3Ry
aW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsK
KyAgICAgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZToKQEAgLTIxMSwyMCArMjExLDE1IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBBdWRpb0NhcHR1cmVG
YWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAg
ICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
Ok1pY3JvcGhvbmUpOwogICAgICAgICBpZiAoIU1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpNaWNyb3Bob25lLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJu
IHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgbWljcm9waG9uZSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJz
aXN0ZW50SUQiX3MgfTsKIAotICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNl
LmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0
dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIHByaXZhdGU6Ci0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNp
bmdsZXRvbigpLnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9Ci0gICAgdm9pZCB1bnNldEFjdGl2
ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnVuc2V0QWN0aXZlU291cmNlKHNvdXJjZSk7
IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlKiBhY3RpdmVTb3VyY2UoKSBmaW5hbCB7IHJldHVy
biBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuYWN0aXZlU291cmNl
KCk7IH0KLSNlbmRpZgogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKTsgfQogICAgIGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c3BlYWtlckRldmljZXMoKTsgfQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKaW5kZXggNjBjNWE4Y2Q2ZDUwZTkwMGU0YzFlYmQxZmQ4ZTJkZGFlOGI2
ZGI5ZC4uM2NmNzQ2MGM4MGUzYmUxZDViYTNmMGNlZDdjMTliMjVkZjI5YWJmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikK
LUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAg
IGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VX
aXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTU5LDcgKzU5LDcgQEAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYKICAgICAgICAgcmV0dXJuIHsgIk5vIG1vY2sgY2FtZXJhIGRldmljZSJfcyB9
OwogI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFz
aFNhbHQpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgcGFnZUlkZW50aWZpZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5h
cHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAg
LTczLDggKzczLDggQEAgc3RhdGljIEhhc2hTZXQ8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UqPiYg
YWxsTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgIHJldHVybiB2aWRlb1NvdXJjZXM7CiB9
CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShoYXNoU2FsdCkpCitNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2VtaXRGcmFtZVRpbWVyKFJ1
bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJk1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpnZW5lcmF0
ZUZyYW1lKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0yMzksNyArMjM5LDYg
QEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRDYXB0dXJlVGltZXIoKQogCiB2
b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewotICAg
IHByZXBhcmVUb1Byb2R1Y2VEYXRhKCk7CiAgICAgc3RhcnRDYXB0dXJlVGltZXIoKTsKICAgICBt
X3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDkz
NWM2ZGRlY2I4ZDQ1OGM5MTY2ZjViMjY3YWM1YzQ5NGZmMzQzYjUuLmZjNWZjN2FhMWNiNzZmYTZk
OTczOTA1ODY1YmZhZmVjZWRlMzZiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
Y2xhc3MgR3JhcGhpY3NDb250ZXh0OwogCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6
IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5v
dGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKICAg
ICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldElzSW50
ZXJydXB0ZWQoYm9vbCk7CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZl
ciogaW1hZ2VCdWZmZXIoKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCmluZGV4IDc4N2JiMTIxZTc0YzY2OTY1ODE4YjYyMDQ5YjIxZmU5Yjk1ZTcyZjcu
LmJmODBlNTRiOGJkZGZjNjU3NzEzMjlmNWMwOWZiYmI1MThlMDMwMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCkBAIC0xMzgsMTEgKzEzOCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7Ci0gICAgICAgIGlmIChtX3NvdXJjZS0+
Y2FwdHVyZURpZEZhaWwoKSkgewotICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Q2FwdHVyZUZhaWxlZChtX2lkKSwgMCk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlU3RvcHBlZChtX2lkKSwg
MCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlNvdXJjZVN0b3BwZWQobV9pZCwgbV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkp
LCAwKTsKICAgICB9CiAKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsIHsKQEAg
LTI4OSw3ICsyODUsNzIgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkoKQogICAgIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFp
bnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMsIENyZWF0ZVNvdXJjZUNh
bGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNaWNyb3Bob25lU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIG1lZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorewor
ICAgIGF1dG8gc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2
aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWVkaWFDb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIp
OworICAgIGlmICghc291cmNlT3JFcnJvcikKKyAgICAgICAgcmV0dXJuIHNvdXJjZU9yRXJyb3I7
CisKKyAgICBhdXRvJiBwZXJQYWdlU291cmNlcyA9IG1fcGFnZVNvdXJjZXMuZW5zdXJlKHBhZ2VJ
ZGVudGlmaWVyLCBbXSB7IHJldHVybiBQYWdlU291cmNlcyB7IH07IH0pLml0ZXJhdG9yLT52YWx1
ZTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IG11bHRpcGxlIG1pY3JvcGhvbmVzIHNpbXVsdGFu
ZW91c2x5LgorICAgIGlmIChhdXRvKiBtaWNyb3Bob25lU291cmNlID0gcGVyUGFnZVNvdXJjZXMu
bWljcm9waG9uZVNvdXJjZS5nZXQoKSkgeworICAgICAgICBpZiAobWljcm9waG9uZVNvdXJjZS0+
cGVyc2lzdGVudElEKCkgIT0gZGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmICFtaWNyb3Bob25lU291
cmNlLT5pc0VuZGVkKCkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywg
IkVuZGluZyBtaWNyb3Bob25lIHNvdXJjZSBhcyBuZXcgc291cmNlIGlzIHVzaW5nIGEgZGlmZmVy
ZW50IGRldmljZS4iKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkg
ZmFpbCB0aGUgY2FwdHVyZSBpbiBhIHdheSB0aGF0IHNob3dzIGEgc3BlY2lmaWMgY29uc29sZSBs
b2cgbWVzc2FnZS4KKyAgICAgICAgICAgIG1pY3JvcGhvbmVTb3VyY2UtPmVuZEltbWVkaWF0bHko
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gc291cmNlID0gc291cmNlT3JFcnJvci5z
b3VyY2UoKTsKKyAgICBwZXJQYWdlU291cmNlcy5taWNyb3Bob25lU291cmNlID0gV2Vha1B0ciB7
IHNvdXJjZS5nZXQoKSB9OworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3N0YXRpYyBib29sIGNh
bkNhcHR1cmVGcm9tTXVsdGlwbGVDYW1lcmFzKCkKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30K
KworQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3Jl
YXRlQ2FtZXJhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIG1lZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJZGVudGlmaWVyKQoreworICAgIGF1dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9w
YWdlU291cmNlcy5lbnN1cmUocGFnZUlkZW50aWZpZXIsIFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2Vz
IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8qIGNhbWVyYVNvdXJjZSA9IHBlclBh
Z2VTb3VyY2VzLmNhbWVyYVNvdXJjZS5nZXQoKTsKKyAgICBpZiAoY2FtZXJhU291cmNlKSB7Cisg
ICAgICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSBtdWx0aXBsZSBjb25jdXJyZW50IGNhbWVyYXMuCisg
ICAgICAgIGlmIChjYW1lcmFTb3VyY2UtPnBlcnNpc3RlbnRJRCgpID09IGRldmljZS5wZXJzaXN0
ZW50SWQoKSAmJiAhY2FtZXJhU291cmNlLT5pc0VuZGVkKCkpIHsKKyAgICAgICAgICAgIC8vIFdl
IGNhbiByZXVzZSB0aGUgc291cmNlLCBsZXQncyBkbyBpdC4KKyAgICAgICAgICAgIGF1dG8gc291
cmNlID0gY2FtZXJhU291cmNlLT5jbG9uZSgpOworICAgICAgICAgICAgaWYgKG1lZGlhQ29uc3Ry
YWludHMpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGVycm9yID0gc291cmNlLT5hcHBseUNvbnN0
cmFpbnRzKCptZWRpYUNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yLT5tZXNzYWdlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRl
dmljZSwgV1RGTW92ZShoYXNoU2FsdCksIG1lZGlhQ29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVy
KTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpCisgICAgICAgIHJldHVybiBzb3VyY2VPckVycm9y
OworCisgICAgaWYgKCFjYW5DYXB0dXJlRnJvbU11bHRpcGxlQ2FtZXJhcygpICYmIGNhbWVyYVNv
dXJjZSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJFbmRpbmcgY2FtZXJh
IHNvdXJjZSBhcyBuZXcgc291cmNlIGlzIHVzaW5nIGEgZGlmZmVyZW50IGRldmljZS4iKTsKKyAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBmYWlsIHRoZSBjYXB0dXJlIGluIGEg
d2F5IHRoYXQgc2hvd3MgYSBzcGVjaWZpYyBjb25zb2xlIGxvZyBtZXNzYWdlLgorICAgICAgICBj
YW1lcmFTb3VyY2UtPmVuZEltbWVkaWF0bHkoKTsKKyAgICB9CisKKyAgICBhdXRvIHNvdXJjZSA9
IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgc291cmNlLT5tb25pdG9yT3JpZW50YXRpb24o
bV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2Ug
PSBXZWFrUHRyIHsgc291cmNlLmdldCgpIH07CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vz
c1JlbW90ZUZyYW1lcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJj
ZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Q
cm94eS0+d2lsbFN0YXJ0Q2FwdHVyZShkZXZpY2UudHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlLCAiUmVxdWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCk7CkBAIC0yOTksMTYg
KzM2MCwxNCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIENhcHR1cmVTb3VyY2VPckVy
cm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAg
ICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
YXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBj
cmVhdGVNaWNyb3Bob25lU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBzb3VyY2VPckVycm9y
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChzb3VyY2VPckVycm9yKQotICAgICAgICAgICAg
c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRh
dGlvbk5vdGlmaWVyKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IGNyZWF0ZUNhbWVyYVNvdXJj
ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNjcmVlbjoKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAg
ICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRl
dmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U3lzdGVtQXVkaW86CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTcGVha2VyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDY1OGI1YjdkMTg4NmM0
ODMwNmYxODAzYTM4ODA0Yjk1M2Q4NTRmNTQuLmQzYWIwZGFhZmE1YWE2YjMxM2NmMjhmNzdkZmNj
NzI2YmQyNzlkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTg0LDcgKzg0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdXNpbmcgQ3JlYXRlU291cmNlQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9Q
cmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYg
ZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9v
bCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYm
KTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKQEAgLTk0LDExICs5NCwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVz
dFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lk
IHNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbik7CiAKKyAgICBXZWJDb3JlOjpDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVNaWNyb3Bob25lU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVDYW1lcmFTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAg
ZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJv
eGllczsKICAgICBVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsK
ICAgICBXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7
IDAgfTsKKworICAgIHN0cnVjdCBQYWdlU291cmNlcyB7CisgICAgICAgIFdlYWtQdHI8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gbWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgV2Vha1B0
cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjYW1lcmFTb3VyY2U7CisgICAgfTsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBQYWdlU291cmNlcz4gbV9wYWdlU291
cmNlczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGZkNjQ4M2IwZTZkMDQ2ZDQwNmMzNmJmMTEzNmMxN2YwNzBlZGE5MGIuLmVkN2Y0ZGFi
MTZiZWE3OWI0MjFkOTY2MGVlMWU0OWMzZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90
UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNz
UmVtb3RlRnJhbWVzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRz
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2Vi
Q29yZTo6VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRv
dWJsZSBmcmFtZVJhdGUpCisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9j
ZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikg
LT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJl
c2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRl
KSBBc3luYwogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcAppbmRleCBmNWE2MTY0ZTgzMWM5Njg5OTVlMzMyZWYwMjY5YzBiOGMxOGNmOWYyLi44
OGZkYTg0OTE0NjBiNzc3NTBkN2RhMzUwMWJlYTA1ZTBmMDMzMDc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCitSZWY8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2Vy
LCBjYXB0dXJlRGV2aWNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBwYWdlSWRl
bnRpZmllcikpOwogfQogCi1TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQotICAgIDogV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3Ry
aW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVy
c2lzdGVudElkKCkgfSkKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxh
YmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9LCB7IH0sIHBh
Z2VJZGVudGlmaWVyKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21h
bmFnZXIobWFuYWdlcikKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKaW5kZXggNzhiZmU1YjY0YjIwZGQwOTAxYjk5YWE3M2MzNWM5MDcw
MjFkOWIwNi4uOWFmZmYyODAzNWEwZDAzMjVmMjZjMGQyZTljNmRhZGRhZWJhNWMzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xh
c3MgV2ViQXVkaW9CdWZmZXJMaXN0OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwogICAgIAotY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHN0YXRpYyBS
ZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3RlU291cmNlU3Rv
cHBlZCgpOwogCiBwcml2YXRlOgotICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8g
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCmluZGV4IDY4ZGMxMTVmMTY5ZjE5ZWY4OWY2NmZlNWM4ZjI0MWM4NWI5NzhkNzEu
LmUzYTcwNGUxYmMyMjZlZDQ4MWEwZDc1ZDE4NzA1ZmEzYjlhNTI5MmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC01OSw3ICs1
OSw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0CiAgICAgfQogI2VuZGlmCiAKLSAgICBzZW5k
KE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpD
cmVhdGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkNyZWF0ZVNv
dXJjZShpZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlLCBzb3VyY2UucGFnZUlkZW50aWZpZXIoKSkp
OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UmIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDk5ZGY0NzU1NDQyNjQ4ODY0MmYwYWI4ZGU4MTM2OWUyNzhiNjdiZTUuLjNhMDA4MGM4YTY4
MzAwMGEyNDgxODM2ZTU1YmEwMDE5NzQzODVmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMTA5OTYsMTIgKzEwOTk2LDEyIEBAIFdlYkNvcmU6OkNhcHR1
cmVTb3VyY2VPckVycm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZv
clNwZWVjaFJlCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OwogCiAgICAgaWYgKHByZWZlcmVuY2VzKCku
Y2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgICAgIHJldHVy
biBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSwgbV93ZWJQYWdl
SUQpIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSkgfTsKKyAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9Owog
I2Vsc2UKLSAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVS
ZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICByZXR1cm4gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJl
RGV2aWNlLCBtX3dlYlBhZ2VJRCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKaW5kZXggYjgxZGJiMjNlZmY0
NTMzYTA3MjU1Nzg4YTI2ZWVhN2MzM2UwNWFlMy4uOWYwOWY2MjI2MjgyNjgzYzI2MGI1MzQ1MTZm
OTgwOGRhNGI3YzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0yMDgsOSArMjA4LDkgQEAgdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9u
cygpCiAKICNlbmRpZgogCi12b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRl
dmljZSk7CisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLCBwYWdlSWRlbnRpZmllcik7CiAgICAg
aWYgKCFyZXN1bHQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQg
dG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0
dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKaW5kZXggMTg4NDc3MWE4N2I3ZjY2OTkxOTBhNWRl
NTY5MTE2Y2M0N2Y4NjFiMy4uNjIzNDQ4ZmJhOWRkN2Y4NWFiNzMzNTkwNmQ0OGJhOTY5NDhmMzM2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNp
bmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCi0gICAgdm9pZCBjcmVhdGVT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGNyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGRlbGV0ZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdGFydChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRl
eCAyMzgyZGYxZDhlNTlmMGE4ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFkLi5hYjVlOThlNDk3MTlh
YWRlZDVlOTFiYmQzNzM4MDdlMTBkMDE3M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0y
NCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsK
LSAgICBDcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgQ3JlYXRlU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SWRlbnRpZmllcikKICAgICBEZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CmluZGV4IDJjZTk1NGY0OGJmZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2UxMzguLmJjYTgzNDdl
ZTg3MTNjM2IyYmUxMzdhZTY0NDg1NDk2N2E2NDFhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKQEAgLTQzLDI5ICs0MywyNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBk
ZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFu
YWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBt
YW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNv
dXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQog
Ci1SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdl
ciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVy
LCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiB7CiAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAg
ICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYm
IGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRv
JiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRl
dmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0
byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsK
ICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChX
VEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcsMTAgKzg0
LDYgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rp
b24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQg
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCkBAIC0xMTksMjAgKzExMiwyMCBAQCB2
b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmIHRpbQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6
Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7CisgICAgaWYgKG1fcHJveHku
aXNFbmRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3h5LmVuZCgpOwogICAgIG1f
bWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKICAgICBtX21hbmFnZXIucmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKIH0KIAot
dm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCit2b2lkIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCkKIHsK
LSAgICBzdG9wKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKLXsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpj
YXB0dXJlRmFpbGVkKCk7CisgICAgaWYgKGRpZEZhaWwpCisgICAgICAgIGNhcHR1cmVGYWlsZWQo
KTsKKyAgICBlbHNlCisgICAgICAgIGVuZCgpOwogICAgIGhhc0VuZGVkKCk7CiB9CiAKQEAgLTE0
OSwxNCArMTQyLDYgQEAgdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpncHVQcm9jZXNz
Q29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8KICAgICBpZiAoaXNFbmRlZCgp
KQogICAgICAgICByZXR1cm47CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICh0
aGlzICE9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKSkgewotICAgICAgICAvLyBUcmFjayBpcyBtdXRlZCBh
bmQgaGFzIG5vIGNoYW5jZSBvZiBiZWluZyB1bm11dGVkLCBsZXQncyBlbmQgaXQuCi0gICAgICAg
IGNhcHR1cmVGYWlsZWQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAg
bV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuZGlkVXBkYXRlU291cmNlQ29u
bmVjdGlvbihjb25uZWN0aW9uKCkpOwogICAgIG1fcHJveHkucmVzZXRSZWFkeSgpOwogICAgIGNy
ZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRleCAyYTMzZjk3
NjgwMzBhMDZhNzhlNDhmMzBkN2FjYzYzYmViNmQzYmM0Li41Y2MwMWYxM2IwZmEzOGJlOWMxZTgw
NmZmNmZhY2E1ZGZlODJkYTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTUzLDcgKzUzLDcg
QEAgY2xhc3MgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZSgpOwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02
NCwxNCArNjQsMTMgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRl
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CiAgICAgdm9pZCBhcHBs
eUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVy
cm9yTWVzc2FnZSkgeyBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWls
ZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsgfQogCi0gICAgdm9pZCBjYXB0
dXJlU3RvcHBlZCgpOwotICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOworICAgIHZvaWQg
Y2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKTsKIAogICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7
CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRl
ZCk7CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpOworICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBSZWFs
dGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1f
cHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAK
aW5kZXggYzU1MzM1MzNhYzU1YjFmNWMyYWRhZWUxODg5NmYzNjE0ZjdjZWUzNS4uNjZiYjM4MjQ4
MzFhMDM1N2JlNTYwZThhZTRkYTcyNmYzOGUxNmU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZS5jcHAKQEAgLTM4LDE3ICszOCwxNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6
Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdl
ciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNh
bHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcikp
OwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIG1hbmFnZXIu
cmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7
CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIHJldHVybiBzb3Vy
Y2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxhYmVs
KCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
KQorUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQor
ICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
bywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHko
aWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50
cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewpAQCAtNTcsNyArNTcsNyBAQCBSZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbgogCiB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3Jl
YXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFT
b3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGlu
Z3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgeworICAgIG1fcHJv
eHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRp
ZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2Vl
ZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmls
aXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgewogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewog
ICAgICAgICAgICAgbV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xMDAsMjAgKzEwMCwyMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZAogCiB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6aGFzRW5kZWQoKQogewot
ICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKKyAgICBpZiAobV9wcm94eS5pc0VuZGVkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJveHkuZW5kKCk7CiAgICAgbV9tYW5hZ2VyLnJlbW92ZVNv
dXJjZShpZGVudGlmaWVyKCkpOwogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQotewotICAgIHN0b3AoKTsKLSAgICBo
YXNFbmRlZCgpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVy
ZUZhaWxlZCgpCit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZVN0b3Bw
ZWQoYm9vbCBkaWRGYWlsKQogewotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWls
ZWQoKTsKKyAgICBpZiAoZGlkRmFpbCkKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgIGVs
c2UKKyAgICAgICAgZW5kKCk7CiAgICAgaGFzRW5kZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZS5oCmluZGV4IGY5YzkyMjQ1YTIyNGNmNTJkNDU4MjY1ZWE0NjY4MzJlMWJjYmUyN2QuLjdh
M2Q5Zjg2NmMwODFkM2U0OWM2NzRmODM4NDZiNTljNmZjNTQwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICNlbmRpZgog
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNTgs
MTQgKzU4LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJv
ck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVk
Q29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7IH0KIAotICAgIHZvaWQgY2FwdHVy
ZVN0b3BwZWQoKTsKLSAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNh
cHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCk7CiAKICAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUsIFdlYkNvcmU6OlZpZGVvU2Ft
cGxlTWV0YWRhdGEgbWV0YWRhdGEpIHsgdmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlLCBtZXRh
ZGF0YSk7IH0KICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlLCBib29sIGlu
dGVycnVwdGVkKTsKIAogcHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKTsKKyAgICBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNp
bmdEYXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggMjQ0NmUz
OThlOGMzNjg3OGQ0MTQ0MjBjYTVkYmM3YmI1ZTg0NTE4Ni4uZTkxMGI2MTYwNTg5MDZhOTE5ZGU1
MDhiNTliN2E5MjUxODJkMDBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAK
QEAgLTcwLDkgKzcwLDkgQEAgdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OnN0
b3BQcm9kdWNpbmdEYXRhKCkKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVy
IH0sIDApOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRl
UmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0LCBDcmVhdGVD
YWxsYmFjayYmIGNhbGxiYWNrLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lKQordm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYgY2FsbGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3Rl
RnJhbWUpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhh
c2hTYWx0LCBtX2NvbnN0cmFpbnRzLCBzaG91bGRVc2VSZW1vdGVGcmFtZSksIFdURk1vdmUoY2Fs
bGJhY2spKTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFz
aFNhbHQsIG1fY29uc3RyYWludHMsIHNob3VsZFVzZVJlbW90ZUZyYW1lLCBwYWdlSWRlbnRpZmll
ciksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHk6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3Ry
YWludHMsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC0xMDEsOCArMTAxLDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5OjpmYWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmlu
ZyYKICAgICAgICAgY2FsbGJhY2tzLnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFw
cGx5Q29uc3RyYWludHNFcnJvciB7IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6aGFzRW5kZWQoKQordm9pZCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHk6OmVuZCgpCiB7CisgICAgQVNTRVJUKCFtX2lzRW5kZWQpOwor
ICAgIG1faXNFbmRlZCA9IHRydWU7CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaAppbmRleCA1OWUyYzI4MzQ1YzkwZjdkMmM0
ZWE3ZjMwNmJhNDUwZjVhMTI1NzZmLi5iMTEwZDFlN2Q2NWZhYzJhZjU0NDgyOWY3MmU0ZmVjYjI1
ZTQ4MzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCkBAIC01MywxMyArNTMsMTQg
QEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcgQ3JlYXRl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBX
ZWJDb3JlOjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291
cmNlKGNvbnN0IFN0cmluZyYsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVtb3Rl
RnJhbWUgPSBmYWxzZSk7CisgICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwgYm9vbCBz
aG91bGRVc2VSZW1vdGVGcmFtZSA9IGZhbHNlKTsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50
c1N1Y2NlZWRlZCgpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBm
YWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZmFpbEFw
cGx5Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci0gICAg
Ci0gICAgdm9pZCBoYXNFbmRlZCgpOworCisgICAgYm9vbCBpc0VuZGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc0VuZGVkOyB9CisgICAgdm9pZCBlbmQoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5n
RGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpOwpAQCAtNzgsNiArNzks
NyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwogICAg
IGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJZGVudGlmaWVyOwogCiAgICAgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogICAgIERlcXVlPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFp
bnRzQ2FsbGJhY2tzOwpAQCAtODUsNiArODcsNyBAQCBwcml2YXRlOgogICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3Nh
Z2U7CiAgICAgYm9vbCBtX2ludGVycnVwdGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNFbmRl
ZCB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYg
ZGV2aWNlLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4
IGQyZDI0YWJhYjllYzM0YTBkYTIyZWI2NWE4YWQzY2I1ZjAwN2Q5N2MuLmM0YjcwNTE5ZDUwMTY4
ZjBlNGMyNzAzODMxMTBjZWUzZjcxNzFmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAg
LTQ1LDI5ICs0NSwyNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8UmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1h
bmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRl
KCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQp
LCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzLCBwYWdlSWRlbnRpZmllcikpOwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5
UmVmKCkpOwogICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3Vy
Y2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJj
ZSgpOwogICAgIHJldHVybiBzb3VyY2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6
OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCitSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRl
dmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmll
cikKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50
aWZpZXIpCiAgICAgLCBtX3Byb3h5KGlkZW50aWZpZXIsIGRldmljZSwgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgY29uc3RyYWludHMpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKIHsKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0
aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291
cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdz
LCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplLCBhdXRvIGZy
YW1lUmF0ZSkgbXV0YWJsZSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShk
ZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1
dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8g
c2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11dGFibGUgewogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkg
ewogICAgICAgICAgICAgbV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAg
ICAgICAgICAgICByZXR1cm47CkBAIC05MywxMSArODksNiBAQCBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjp+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvKiBj
b25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdHUFVQcm9jZXNzQ29u
bmVjdGlvbigpKQogICAgICAgICAgICAgY29ubmVjdGlvbi0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsK
ICAgICB9Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkg
PT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRB
Y3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
JiBjYXBhYmlsaXRpZXMpCkBAIC0xNDcsMjAgKzEzOCwyMCBAQCBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRp
ZXMoKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAg
ICBtX3Byb3h5Lmhhc0VuZGVkKCk7CisgICAgaWYgKG1fcHJveHkuaXNFbmRlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Byb3h5LmVuZCgpOwogICAgIG1fbWFuYWdlci5yZW1vdmVTb3Vy
Y2UoaWRlbnRpZmllcigpKTsKICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCit2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OmNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCkKIHsKLSAgICBzdG9wKCk7Ci0gICAg
aGFzRW5kZWQoKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJl
RmFpbGVkKCkKLXsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7Cisg
ICAgaWYgKGRpZEZhaWwpCisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICBlbHNlCisgICAg
ICAgIGVuZCgpOwogICAgIGhhc0VuZGVkKCk7CiB9CiAKQEAgLTIwNCwxNCArMTk1LDYgQEAgdm9p
ZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3Nl
KEdQVVByb2Nlc3NDb25uZWN0aW8KICAgICBpZiAoaXNFbmRlZCgpKQogICAgICAgICByZXR1cm47
CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYmIHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJj
ZSgpKSB7Ci0gICAgICAgIC8vIFRyYWNrIGlzIG11dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJl
aW5nIHVubXV0ZWQsIGxldCdzIGVuZCBpdC4KLSAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKGNvbm5lY3Rpb24oKSk7
CiAgICAgbV9wcm94eS5yZXNldFJlYWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDViNDY1MTFmNDE4NzMyNDg2YjMyNmUwZGI5YTFl
ZTk3MTg5YWEyNzMuLjllZjBiYzcyYjUzOWMwZjk2OTljYTFhYTMzMjYzZTI1ODI2OGU4OTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJl
U291cgogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZSgpOwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02Mywx
NCArNjMsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CiAKLSAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7
Ci0gICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CisgICAgdm9pZCBjYXB0dXJlU3RvcHBl
ZChib29sIGRpZEZhaWwpOwogCiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpNZWRpYVNhbXBsZSYsIFdlYkNvcmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0
YWRhdGEpOwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50
ZXJydXB0ZWQpOwogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAg
Ly8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAppbmRleCA0Y2EyNTRmNDZkZWJhZDlhMmM1ZDYxZDdlNWM4ZDhhMmViYzE2NTU4Li5l
MTQ0MDFiYjcwN2U2NTdmMTVjMTE5ZmViM2NmY2ZlM2QwZTM1OGU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAKQEAgLTEyNCwzMyArMTI0LDE4IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnJlbW92ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmCiAgICAg
bV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6c291cmNlU3RvcHBlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZChSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCiB7CiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChp
dGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN3aXRj
aE9uKGl0ZXJhdG9yLT52YWx1ZSwgW10oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBz
b3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZCgpOwotICAgIH0sIFtdKFJl
ZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+
Y2FwdHVyZVN0b3BwZWQoKTsKLSAgICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoKTsKLSAgICB9
LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKLX0KLQotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y2FwdHVyZUZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQotewotICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsK
LSAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFtdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOwotICAg
IH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAg
IHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOwotICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVkKCk7
CisgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBl
ZChkaWRGYWlsKTsKKyAgICB9LCBbZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsK
KyAgICB9LCBbZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJj
ZSkgeworICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKGRpZEZhaWwpOwogICAgIH0sIFtd
KHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCkBAIC0yMTIsNyArMTk3LDcgQEAgdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmkKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQog
ICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yMjUsNyArMjEwLDcgQEAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9y
eTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgogCi0g
ICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0
cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFn
ZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpOwogfQogCiB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKQEAgLTIzOCw3ICsyMjMsNyBAQCB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MoYm9vbCB2YQogICAgIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IHZhbHVlOwog
fQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9G
YWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9G
YWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BS
T0NFU1MpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTI0OCwxMCAr
MjMzLDEwIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpW
aWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAgICAgICAgIG1fbWFuYWdlci5tX3Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoJldl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAogICAgIGJvb2wgc2hvdWxkVXNlSU9TdXJmYWNlID0g
IW1fbWFuYWdlci5tX3Nob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXM7Ci0gICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpLCBz
aG91bGRVc2VJT1N1cmZhY2UpKTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIs
IG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpLCBzaG91bGRVc2VJ
T1N1cmZhY2UpKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQog
ewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykKQEAgLTI2MCw3ICsyNDUsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dQogICAg
IGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIG1fbWFuYWdlci5tX3Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoJldl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eSgpKTsKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
bV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHJldHVybiBSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBh
Z2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxh
eUZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgKaW5kZXggZDhmYjgwYjRmZThkYWU3Njk5NTQ4MmEyMzkxN2QyZmVhNTkyMGUxZi4u
YjAxNDg0MWEyYmYxYjA4NGEzOWI3OTczMGU2ZjI3ZjZmYjk0ZjEzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRTaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKGJvb2wpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAgICAgICBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJu
IG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQogICAgICAgICBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9zcGVha2VyRGV2aWNlczsgfQogCkBAIC04OCw3ICs4OCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAg
ICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBm
aW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVy
ZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURl
dmljZU1hbmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5h
Z2VyOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNv
cmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyopIGZpbmFsOworICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlTWFu
YWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5h
Z2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAgICAgICAgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTEyNCw4ICsxMjQsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
ZmluYWw7CiAKICAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKLSAgICB2
b2lkIGNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIp
OwotICAgIHZvaWQgc291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllcik7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBib29sIGRpZEZhaWwpOwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFu
Z2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIG11dGVkLCBi
b29sIGludGVycnVwdGVkKTsKIAogICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5k
ZXggOTc5Y2NlMjU4OTYwMDUzZmUxNGY3MGU2ZDIzNjIwMTkwYjE2YWRiMC4uYjAzNjI5OWNiMzcx
ZmQyOWQ5YTM3OGQyMTcyMjA4NTBhMThjYjNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
IG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAg
IENhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQp
Ci0gICAgU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCkKKyAgICBTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkLCBib29sIGRpZEZhaWwpCiAgICAgU291cmNlTXV0ZWRDaGFuZ2VkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBib29sIG11dGVkLCBib29sIGludGVy
cnVwdGVkKQogICAgIFNvdXJjZVNldHRpbmdzQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
IHNldHRpbmdzKQogICAgIEFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBzZXR0aW5ncykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMzM0ZGE0MjIyMTRkMTRiMWY2OGM5NGYwNmMyMThk
MThmOGI0NWI5Li43NTVlZGVjMzg1MjdkY2QzNTg5NzgwMmJlZDk1M2E5NGZjODYzY2ZkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDMtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIFNjb3BlIGNhcHR1cmUgc291cmNlcyBieSBwYWdlIGlkZW50aWZp
ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcz
NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmUgcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS5o
dG1sIG5vdyB0aGF0IHdlIG5vIGxvbmdlciBoYW5kbGUgbXVsdGkgY2FwdHVyZSBpbiBXZWJQcm9j
ZXNzIGJ1dCBpbiBHUFVQcm9jZXNzLgorICAgICAgICBVcGRhdGUgcGxhdGZvcm0vaW9zL21lZGlh
c3RyZWFtL2F1ZGlvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWwgdG8g
YmUgbGlrZSBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3Vu
ZC10YWIuaHRtbAorICAgICAgICBzbyB0aGF0IHRlc3QgaXMgbm8gbG9uZ2VyIGRlcGVuZGVudCBv
biBzeW5jaHJvbm91cyBldmVudCBmaXJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvbWVk
aWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1j
YXB0dXJlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLWdwdS1wcm9jZXNzLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2Fw
dHVyZS5odG1sOiBSZW1vdmVkLgorCiAyMDIyLTAzLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIG11dGUgdmlkZW8gY2Fw
dHVyZSBpbiBjYXNlIGF1ZGlvIGNhcHR1cmUgZ2V0cyBpbnRlcnJ1cHRlZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWluLWJhY2tn
cm91bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVk
aWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbApp
bmRleCBmNjhmNzc4NjMzMjMxOWU2YzQyMzA4ZWJhZmNlOGNlMWMzNzA2MmFmLi45YmUwMWZiMzZh
MDIzZWMwMTcyY2YyOTkyNGY1YTEwYjA5Y2VkMzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1
LXByb2Nlc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0v
YXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbApAQCAtMjksMzYg
KzI5LDQ4IEBACiAgICAgICAgICAgICAgICAgfSkKIAogICAgICAgICAgICAgICAgIC50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghYXVkaW9UcmFjay5tdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGF1ZGlvVHJhY2sub25tdXRlID0gcmVzb2x2ZSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAi
YXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmlk
ZW9UcmFjay5tdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHZpZGVvVHJhY2sub25tdXRlID0gcmVzb2x2ZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sg
aXMgbXV0ZWQiKTsKICAgICAgICAgICAgICAgICAgICAgfSwgIkhpZGUgcGFnZSwgdmlkZW8gYW5k
IGF1ZGlvIHNob3VsZCBiZSBtdXRlZCIpOwogICAgICAgICAgICAgICAgIH0pCiAKICAgICAgICAg
ICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4gewor
ICAgICAgICAgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eSh0cnVlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrLm11dGVkKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gYXVkaW9UcmFjay5vbnVu
bXV0ZSA9IHJlc29sdmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGF1
ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBhY3RpdmUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh2aWRlb1RyYWNrLm11dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdmlkZW9UcmFjay5vbnVubXV0ZSA9IHJl
c29sdmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2su
bXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKICAgICAgICAgICAgICAgICAgICAgfSwg
IlNob3cgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSB1bm11dGVkIik7CiAgICAgICAg
ICAgICAgICAgfSkKIAogICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2VfdGVzdChh
c3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFn
ZVZpc2liaWxpdHkoZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZU11dGVkKCJjYXB0dXJlZGV2aWNlcyIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrLm11dGVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gYXVkaW9UcmFjay5vbm11dGUgPSByZXNvbHZlKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2aWRlb1RyYWNrLm11dGVkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdmlkZW9UcmFj
ay5vbm11dGUgPSByZXNvbHZlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVl
KHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBtdXRlZCIpOwogICAgICAgICAgICAg
ICAgICAgICB9LCAiSGlkZSBhbmQgbXV0ZSBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hvdWxkIGJl
IG11dGVkIik7CiAgICAgICAgICAgICAgICAgfSkKIAogICAgICAgICAgICAgICAgIC50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KHRydWUpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXNpbmdsZS1jYXB0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzUwYWQ4MzAxN2JjMjE0Zjk3NWVhMmMy
YzI5YjgxNDBmZDVkNTgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
c2luZ2xlLWNhcHR1cmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0KLVBBU1MgVGVzdGluZyBzdWNjZXNzaXZlIGdldFVzZXJNZWRpYSBjYWxscwotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNp
bmdsZS1jYXB0dXJlLWdwdS1wcm9jZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLWdwdS1wcm9jZXNzLmh0bWwK
aW5kZXggN2U1MzI0MzE1NzM0MWUwMmMzYWQ0MTg5MjA1NDhhNGIxNjE0ZTJiYi4uZmEwYjUzMTU2
MGNiYTE4Nzg0Y2RjN2Y0Y2M4YTMwOGU3YTE0MDE0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1ncHUt
cHJvY2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZ3B1LXByb2Nlc3MuaHRtbApAQCAtMTAsMTIgKzEw
LDIyIEBACiAgICAgPGJvZHk+CiAgICAgICAgIDxzY3JpcHQ+CiAKLWFzeW5jIGZ1bmN0aW9uIHdh
aXRGb3JUcmFja011dGVkKHRyYWNrKQorYXN5bmMgZnVuY3Rpb24gd2FpdEZvclRyYWNrRW5kZWQo
dHJhY2spCiB7Ci0gICAgaWYgKHRyYWNrLm11dGVkKQorICAgIGlmICh0cmFjay5yZWFkeVN0YXRl
ID09PSAiZW5kZWQiKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXR1cm4gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB0cmFjay5vbm11dGUgPSByZXNvbHZlKTsKKyAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyB0cmFjay5vbmVuZGVkID0gcmVzb2x2ZTsgc2V0VGlt
ZW91dCgoKSA9PiByZWplY3QoIndhaXRGb3JUcmFja0VuZGVkIHRpbWVkIG91dCBmb3IgdHJhY2sg
IiArIHRyYWNrLmtpbmQpLCA1MDAwKTsgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGdldE90aGVy
TWljcm9waG9uZURldmljZSh0cmFjaykKK3sKKyAgICBjb25zdCBkZXZpY2VzID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgICAgZm9yIChsZXQgZGV2
aWNlIG9mIGRldmljZXMpIHsKKyAgICAgICAgaWYgKGRldmljZS5raW5kID09PSAiYXVkaW9pbnB1
dCIgJiYgdHJhY2sua2luZCA9PT0gImF1ZGlvIiAmJiBkZXZpY2UuZGV2aWNlSWQgIT09IHRyYWNr
LmdldFNldHRpbmdzKCkuZGV2aWNlSWQpCisgICAgICAgICAgICAgcmV0dXJuIGRldmljZS5kZXZp
Y2VJZDsKKyAgICB9CisgICAgcmV0dXJuICIiOwogfQogCiBwcm9taXNlX3Rlc3QoKHRlc3QpID0+
IHsKQEAgLTI1LDI3ICszNSwyOCBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICB2YXIg
Zmlyc3RTdHJlYW07CiAgICAgdmFyIGF1ZGlvVHJhY2s7CiAgICAgdmFyIHZpZGVvVHJhY2s7Ci0g
ICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRy
dWUsIHZpZGVvOiB7IGZhY2luZ01vZGU6IHsgZXhhY3Q6IFsndXNlciddIH0gfSB9KS50aGVuKChz
dHJlYW0pID0+IHsKKyAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoeyBhdWRpbzogdHJ1ZSwgdmlkZW86IHsgZmFjaW5nTW9kZTogeyBleGFjdDogWyd1c2VyJ10g
fSB9IH0pLnRoZW4oYXN5bmMgKHN0cmVhbSkgPT4gewogICAgICAgICBmaXJzdFN0cmVhbSA9IHN0
cmVhbTsKICAgICAgICAgYXVkaW9UcmFjayA9IGZpcnN0U3RyZWFtLmdldEF1ZGlvVHJhY2tzKClb
MF07CiAgICAgICAgIHZpZGVvVHJhY2sgPSBmaXJzdFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBd
OwogCi0gICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sg
aXMgYWN0aXZlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlk
ZW8gdHJhY2sgaXMgYWN0aXZlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYXVkaW9UcmFjay5y
ZWFkeVN0YXRlLCAibGl2ZSIsICJhdWRpbyB0cmFjayBpcyBsaXZlIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHModmlkZW9UcmFjay5yZWFkeVN0YXRlLCAibGl2ZSIsICJ2aWRlbyB0cmFjayBpcyBs
aXZlIik7CiAKLSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHsgYXVkaW86IHRydWV9KTsKKyAgICAgICAgY29uc3QgbmV3TWljcm9waG9uZURldmljZUlk
ID0gYXdhaXQgZ2V0T3RoZXJNaWNyb3Bob25lRGV2aWNlKGF1ZGlvVHJhY2spOworICAgICAgICBy
ZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogeyBkZXZp
Y2VJZCA6IG5ld01pY3JvcGhvbmVEZXZpY2VJZH0gfSk7CiAgICAgfSkudGhlbihhc3luYyAoc3Ry
ZWFtKSA9PiB7Ci0gICAgICAgIGF3YWl0IHdhaXRGb3JUcmFja011dGVkKGF1ZGlvVHJhY2spOwor
ICAgICAgICBhd2FpdCB3YWl0Rm9yVHJhY2tFbmRlZChhdWRpb1RyYWNrKTsKIAotICAgICAgICBh
c3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3Rp
dmUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhhdWRpb1RyYWNrLnJlYWR5U3RhdGUsICJlbmRl
ZCIsICJhdWRpbyB0cmFjayBpcyBlbmRlZCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVv
VHJhY2sucmVhZHlTdGF0ZSwgImxpdmUiLCAidmlkZW8gdHJhY2sgaXMgbGl2ZSIpOwogCiAgICAg
ICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7
IGZhY2luZ01vZGU6IHsgZXhhY3Q6IFsiZW52aXJvbm1lbnQiXSB9IH0gfSk7CiAgICAgfSkudGhl
bihhc3luYyAoc3RyZWFtKSA9PiB7Ci0gICAgICAgIGF3YWl0IHdhaXRGb3JUcmFja011dGVkKHZp
ZGVvVHJhY2spOworICAgICAgICBhd2FpdCB3YWl0Rm9yVHJhY2tFbmRlZCh2aWRlb1RyYWNrKTsK
IAotICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMg
bXV0ZWQsIHNlY29uZCBjaGVjayIpOwotICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11
dGVkLCAidmlkZW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhhdWRp
b1RyYWNrLnJlYWR5U3RhdGUsICJlbmRlZCIsICJhdWRpbyB0cmFjayBpcyBlbmRlZCwgc2Vjb25k
IGNoZWNrIik7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW9UcmFjay5yZWFkeVN0YXRlLCAi
ZW5kZWQiLCAidmlkZW8gdHJhY2sgaXMgZW5kZWQiKTsKICAgICB9KTsKIH0sICJUZXN0aW5nIHN1
Y2Nlc3NpdmUgZ2V0VXNlck1lZGlhIGNhbGxzIik7CiAgICAgICAgIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1z
aW5nbGUtY2FwdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFt
L2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkNjY4MmVlMzM5ZDJlOTRlMzUxZTI5OWI0YjEzMzVlMjI2NDQ0MmM5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQ2Fw
dHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZD1mYWxzZSBDYXB0dXJlVmlkZW9JbkdQVVByb2Nl
c3NFbmFibGVkPWZhbHNlIF0gLS0+Ci08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgICAgIDx0aXRsZT5pT1Mgc3Bl
Y2lmaWMgY29uc3RyYWludHMgb2Ygb25lIGFjdGl2ZSBjYXB0dXJlIHNvdXJjZSBhdCBhIHRpbWU8
L3RpdGxlPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5
PgotICAgICAgICA8c2NyaXB0PgotCi1hc3luYyBmdW5jdGlvbiB3YWl0Rm9yVHJhY2tNdXRlZCh0
cmFjaykKLXsKLSAgICBpZiAodHJhY2subXV0ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJl
dHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRyYWNrLm9ubXV0ZSA9IHJlc29sdmUpOwotfQot
Ci1wcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKLQotICAgIHZh
ciBmaXJzdFN0cmVhbTsKLSAgICB2YXIgYXVkaW9UcmFjazsKLSAgICB2YXIgdmlkZW9UcmFjazsK
LSAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzog
dHJ1ZSwgdmlkZW86IHsgZmFjaW5nTW9kZTogeyBleGFjdDogWyd1c2VyJ10gfSB9IH0pLnRoZW4o
KHN0cmVhbSkgPT4gewotICAgICAgICBmaXJzdFN0cmVhbSA9IHN0cmVhbTsKLSAgICAgICAgYXVk
aW9UcmFjayA9IGZpcnN0U3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07Ci0gICAgICAgIHZpZGVv
VHJhY2sgPSBmaXJzdFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOwotCi0gICAgICAgIGFzc2Vy
dF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgYWN0aXZlIik7Ci0gICAg
ICAgIGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZl
Iik7Ci0KLSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHsgYXVkaW86IHRydWV9KTsKLSAgICB9KS50aGVuKGFzeW5jIChzdHJlYW0pID0+IHsKLSAgICAg
ICAgYXdhaXQgd2FpdEZvclRyYWNrTXV0ZWQoYXVkaW9UcmFjayk7Ci0KLSAgICAgICAgYXNzZXJ0
X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAg
IGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7
Ci0KLSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsg
dmlkZW86IHsgZmFjaW5nTW9kZTogeyBleGFjdDogWyJlbnZpcm9ubWVudCJdIH0gfSB9KTsKLSAg
ICB9KS50aGVuKGFzeW5jIChzdHJlYW0pID0+IHsKLSAgICAgICAgYXdhaXQgd2FpdEZvclRyYWNr
TXV0ZWQodmlkZW9UcmFjayk7Ci0KLSAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRl
ZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkLCBzZWNvbmQgY2hlY2siKTsKLSAgICAgICAgYXNzZXJ0
X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgfSk7
Ci19LCAiVGVzdGluZyBzdWNjZXNzaXZlIGdldFVzZXJNZWRpYSBjYWxscyIpOwotICAgICAgICA8
L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454102</attachid>
            <date>2022-03-08 04:34:37 -0800</date>
            <delta_ts>2022-03-08 05:36:44 -0800</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-237359-20220308133432.patch</filename>
            <type>text/plain</type>
            <size>154991</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYyMTMyOTNhMjY4Zjg5
ZjY5Mjc1NGIxZGIzYTY0ODYzZTdjOTc4Yi4uYTM0NzQyYjFiMDE1Njg4NGM3OTgyMWU4YjIzYTk4
YWU5YmNjYjllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlbiBjcmVhdGluZyBjYXB0dXJl
IHNvdXJjZXMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBhdCBXZWJLaXQgbGF5ZXIgdG8gYmV0dGVy
IGhhbmRsZSBjcmVhdGlvbiBvZiBtdWxpdHBsZSBzb3VyY2VzLgorICAgICAgICBTaW5jZSB3ZSBh
cmUgbm93IHNvbWV0aW1lcyBhbnN3ZXJpbmcgdG8gZ2V0VXNlck1lZGlhIGJ5IGNsb25pbmcgc291
cmNlcyBkaXJlY3RseSwKKyAgICAgICAgZml4IGEgYnVnIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
dG8gdXNlIHRoZSBwcmVzZXQgYXNwZWN0IHJhdGlvIHRvIGNvbXB1dGUgbWlzc2luZyB3aWR0aCBv
ciBoZWlnaHQuCisgICAgICAgIEludHJvZHVjZSBhIHdheSB0byBlbmQgaW1tZWRpYXRlbHkgYSBj
YXB0dXJlIHNvdXJjZSwgdGhpcyBpcyB1c2VkIG9uIEdQVVByb2Nlc3Mgc2lkZSBpbiBjYXNlIHN0
YXJ0aW5nIGEgY2FwdHVyZSB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUlPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
bW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
Lmg6CisKIDIwMjItMDMtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBjYXB0dXJlIGluIGNhc2UgYXVk
aW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU3MTA5ZGIwN2E1Nzk5N2Vm
ZmRkNTY1ZDA0OTA5ZGQwNjFkODk3ZmIuLjRhNjdhNmM5MDY0OTJmYTllYzk0Y2YwZDIwY2NkM2Rh
MzQ2ZTdlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDMtMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNjb3BlIGNhcHR1cmUgc291cmNl
cyBieSBwYWdlIGlkZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzczNTkKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVyZSBhcHByb3ByaWF0ZS4KKyAgICAg
ICAgTWFrZSB1c2Ugb2YgUGFnZUlkZW50aWZpZXIgaW4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eToKKyAgICAgICAgLSBGb3IgbWljcm9waG9uZSwgaWYgdGhlcmUgaXMgYSBzb3VyY2Ugd2l0
aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAgICAgICAgZmFpbCB0aGUgc291cmNlIGFzIHdlIGFy
ZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3VycmVudCBjYXB0dXJlcy4KKyAgICAgICAgLSBGb3Ig
Y2FtZXJhLCBpZiB0aGVyZSBpcyBhIHNvdXJjZSB3aXRoIGEgZGlmZmVyZW50IGRldmljZSwKKyAg
ICAgICAgICBmYWlsIHRoZSBzb3VyY2UgYXMgd2UgYXJlIG5vdCB5ZXQgc3VwcG9ydGluZyBjb25j
dXJyZW50IGNhcHR1cmVzIChvbmx5IG9uIGlPUykuCisgICAgICAgICAgT3RoZXJ3aXNlLCBpZiB0
aGVyZSBpcyBhIG1hdGNoaW5nIHNvdXJjZSwgY2xvbmUgaXQgc28gdGhhdCB3ZSByZWR1Y2UgdGhl
IG92ZXJoZWFkCisgICAgICAgICAgb2YgY3JlYXRpbmcgYSBuZXcgc291cmNlIChzZXR0aW5nIHVw
IGEgY2FtZXJhIGNhbiBiZSBhbiBleHBlbnNpdmUgb3BlcmF0aW9uKS4KKyAgICAgICAgV2Ugc2ls
ZW50bHkgZmFpbCAobWVhbmluZyB0aGVyZSBpcyBubyBjb25zb2xlIGxvZyBtZXNzYWdlIGZvciBu
b3csIHdoaWxlIHN0aWxsIGZpcmluZyBlbmRlZCBldmVudCkgYnV0IGFkZCByZWxlYXNlIGxvZ2dp
bmcgdG8gZGV0ZWN0IHRoaXMgY2FzZS4KKyAgICAgICAgTWlub3IgcmVmYWN0b3JpbmcgdG8gaGF2
ZSBvbmUgbWVzc2FnZSBpbiBjYXNlIGNhcHR1cmUgc291cmNlIGVuZHMgKHN0b3BwZWQgb3IgZmFp
bGluZykgaW5zdGVhZCBvZiB0d28uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAyMi0w
My0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEg
cHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdl
dHMgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDA5OWQxM2EwNzJmNmE5YTYxODc2
MWE2NjNjMDJiMDYwNGU5Yjg1MzIuLmFlMDg4NWYzMjZjZTQwYTZmMDFlZmQzYTM5YTMzYjFlZTUy
YzQzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNyw3ICsxMTM3LDYgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFnZUdyb3VwLmgKLSAg
ICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJbmxpbmVzLmgKICAgICBwYWdl
L1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0xMjk0
LDYgKzEyOTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BPREludGVydmFsVHJlZS5oCiAg
ICAgcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0Zm9ybS9QYWdlSWRlbnRpZmll
ci5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZENv
bnRleHQuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA1
MDZmMzM3NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4wZmFhOGJiNTVhMTk4NWU5
ODBmNzM2YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9p
ZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWludHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldERlZmF1bHRW
aWRlb0NvbnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlh
UmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVz
ZXJNZWRpYSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFp
bnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAg
IGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVk
aWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50
cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwg
KmRvY3VtZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKIAogICAgIGlmICghZG9j
dW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7CiAgICAgICAg
IHJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6
OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJN
ZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBl
OjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2Vz
dHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9
IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0
OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNV
c2VyR2VzdHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgpIH0sIFdURk1vdmUocHJv
bWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDNl
Mzk0NGJjZDUwMTdkYjIyN2Y5MjhlYWE3YWI0OTY5NDcxMmFiY2EuLjQ2ZWNkODNkYTBkOGU0MDYw
Njk5ZTA3NDk2ZmJmYjM1ODA3YzgwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDcwLDQ0ICs0NzAs
MTIgQEAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0
dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRy
YWNrSW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1
bWVudCkKLXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0g
ICAgICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVk
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgp
LmlzU2FtZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRl
Q2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwot
ICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogYWN0aXZlQXVkaW9T
b3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYm
IGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwg
ZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgp
LmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsK
LSAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1l
bnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZp
c2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBhY3RpdmVWaWRl
b1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2Fw
dHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2Ug
JiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNl
LCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQp
OwotICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3Vt
ZW50LmhpZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNr
IDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3Vt
ZW50KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAg
ICBjYXB0dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYK
IH0KIAogc3RhdGljIHZvaWQgdXBkYXRlVmlkZW9DYXB0dXJlQWNjb3JkaW5nTWljcm9waG9uZUlu
dGVycnVwdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAppbmRleCAzNDlhZGY2YjQyY2NiM2Nj
MWQ2YzA3YTJlNTQ0YzJiYzU5M2FjYTRiLi5hZmJjZTdhOWY0NTZmN2Q1MDc2ODc4MDljYmUxNmUx
MWJlNDBlMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTYyLDkgKzYy
LDkgQEAgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKICAgICByZXR1cm4gY2FwdHVyZURldmljZTsK
IH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVy
ZURldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgIlNwZWVjaElEIl9zLCB7
IH0pOworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZp
Y2UsICJTcGVlY2hJRCJfcywgeyB9LCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwg
RGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVV
cGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCBjYTkwM2IxMmI3ZjIyMTkzNWY1ZGZhMTk4ZGJiMWE4
YzRjNzlkMzQ5Li5lMzI4ZGMzYzdjZDMwZjY5OTMwMjdjYjdkOTg0YzY2MTdmYjk2YzFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUmKT47CiAgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYm
LCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgUGFnZUlkZW50
aWZpZXIpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI1ZDMyNmUzOThi
M2ZhZWM1MzA4Nzc5ZjI3OTU2MjVjNmM3ZjFhZjUuLmQxZTFhMDNkMWIzZjlkN2M5MTg1YjlhMjcz
MzMwZGEzYmU5NzE1NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMTkwLDcgKzIxOTAsNiBAQCBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKLXBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4MzI0MDVjZTc5Nzg4NDk0OWNiMzQz
MDIzYjkwMDFhYmVlYjYzZjUuLjExOGQwZTI2M2RmNjZhNWUwNTAzYmM3NWI5ZmJiNjdhNjQxYmMw
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTExODEsNiArMTE4MSw3IEBACiAJCTQxOEZDQkU3MjcxNUEyOEYwMEY5NkVDQSAv
KiBSVENSdHBDb2RlY0NhcGFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRTBBN0RDMjNCQjYzREIwMDU2MTA2MCAvKiBSVENSdHBDb2RlY0Nh
cGFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTkwRjNBNTI0QTBCNEVFMDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MEYzQTMyNDlEMTUy
ODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRGQ0YgLyogUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi87IH07CisJCTQxOTJCQjEzMjdDRjYzODYw
MEYyOUE0NiAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlm
aWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QUNGOEUxRjk3RTdENTAw
OUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOUJDMkRGMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNp
dGVkTGlua1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTlCQzJERDE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5oICovOyB9
OwogCQk0MTlCRTc1OTFCQzdGNDJCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QkU3NTIxQkM3
RjNEQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCAqLzsgfTsKQEAgLTEzNjMsNyAr
MTM2NCw2IEBACiAJCTQ2QTc4QjM0Mjc5OUJENzEwMDExNTRGRSAvKiBXb3JrZXJPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzFCMUQyNjI2
RjE4QTRCMDA4ODJEQTIgLyogV29ya2VyT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQyRiAvKiBB
dWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDZBQUFBM0EyNUQzNjMxNDAwQkFGNDJGIC8qIEF1ZGlvRmlsZVJlYWRlckNv
Y29hLmggKi87IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0
Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2QjY1MEREMjI5NjI2
MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCNjUwREIyMjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVu
dGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDZCODU5M0MyNjE2NzIyNzAwMTlFREM2IC8qIFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI4NTkz
QTI2MTY3MjBDMDAxOUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCAqLzsgfTsK
IAkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI5NTE4QTIwN0Q2MzI4
MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkI5NTE5NjIwN0Q2MzNBMDBBN0QyREQgLyogQWJz
dHJhY3RGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZCOTUxOEYyMDdENjMyQjAwQTdEMkREIC8qIEFic3RyYWN0RnJhbWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjEwNSw3ICs2MTA1LDYg
QEAKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2suY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyog
Q2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hl
ZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVFODIxNUVB
M0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc1NEE1RUIyMTVFQURGMzAwMkQzQTk5IC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdl
SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVVzYWdlSW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIg
LyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC04ODU5LDYgKzg4NTgsNyBAQAogCQk0MTkwRjNBMTI0OUQxNTI3MDA1MzFDNTcgLyogRnJh
bWVSYXRlTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
cmFtZVJhdGVNb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5MEYz
QTMyNDlEMTUyODAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVSYXRlTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTQ1Njk0MjAzNTAyQTUwMDRCQTI3NyAvKiBBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NDU2OTYyMDM1MDJBNjAwNEJBMjc3IC8qIEFwcGxpY2F0
aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2guaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMTQsNyArOTMxNCw2IEBACiAJCTQ2QUFB
QTNDMjVEMzYzMTQwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QUNEODExMjcwMTY1NkEwMEVGOENFRCAvKiBO
YXZpZ2F0aW9uUmVxdWVzdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE5hdmlnYXRpb25SZXF1ZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2QjY1MERCMjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdl
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlSWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkI4NTkzQTI2MTY3MjBDMDAx
OUVEQzYgLyogU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
aXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDZCOTUxOEEyMDdENjMyODAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0RE9NV2luZG93Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1MThDMjA3RDYzMjkwMEE3RDJERCAvKiBSZW1vdGVGcmFt
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVGcmFtZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY5NSw3ICsxODY5NCw2IEBACiAJ
CQkJNEE0RjY1NkQxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMuaCAqLywKIAkJCQk0QTBGRkE5RjFBQUY1RUEyMDA2MjgwM0IgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAgKi8sCiAJCQkJNEEwRkZBQTAxQUFGNUVBMjAwNjI4MDNCIC8qIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCAqLywKLQkJCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNB
OTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovLAogCQkJCTA3NTRBNUU4MjE1
RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovLAogCQkJCTQx
Qjg3NzYwMjNERTEwNDIwMDM2MzhCOCAvKiBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5o
ICovLAogCQkJCTRBNEY2NTZFMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MuY3BwICovLApAQCAtMjQyNjYsNyArMjQyNjQsNiBAQAogCQkJCTkzMDJCMEJFMEQ3
OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLywKIAkJCQk3QTY3NEJEOTBGOUVCRjRFMDA2
Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3QTY3NEJEQTBGOUVC
RjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCi0JCQkJNDZCNjUwREIy
Mjk2MjYyNzAwRkQ4QUE0IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJCQkJQ0RFRkRBMEQyNzEy
MjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggKi8sCiAJCQkJMkQ1QzlDRkIxOUM3QjUyRTAw
QjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDVDOUNGQzE5QzdCNTJFMDBCM0M1
QzEgLyogUGFnZU92ZXJsYXkuaCAqLywKQEAgLTMwMTExLDYgKzMwMTA4LDcgQEAKIAkJCQk0MTc4
RUYxNjI0MTI1QjZDMDAxOTNDNzQgLyogTm93UGxheWluZ01hbmFnZXIuY3BwICovLAogCQkJCTQx
NzhFRjE0MjQxMjVCNkMwMDE5M0M3NCAvKiBOb3dQbGF5aW5nTWFuYWdlci5oICovLAogCQkJCTQx
ODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmaWVyLmggKi8sCisJCQkJ
NDE5MkJCMTIyN0NGNjM4MzAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggKi8sCiAJCQkJMkVF
MDJBMUUxRjczMjQyODAwMDZBRjcyIC8qIFBhc3RlYm9hcmQuY3BwICovLAogCQkJCTRCMjcwOEM1
MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8sCiAJCQkJRjQwREFBRUIyNUQ5RjI1
RTAwMTFCNEZBIC8qIFBhc3RlYm9hcmRDb250ZXh0LmggKi8sCkBAIC0zNjU2MSw3ICszNjU1OSw3
IEBACiAJCQkJOTMwMkIwQkYwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0E2NzRCREMwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZl
cnJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQzQxRkFBNDRCQzAwMzdEMUU2IC8qIFBh
Z2VIZWFwQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2QjY1MEREMjI5NjI2MjcwMEZEOEFB
NCAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE5MkJCMTMyN0NGNjM4
NjAwRjI5QTQ2IC8qIFBhZ2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGREEw
RTI3MTIyOUJBMDA1NTU5QTcgLyogUGFnZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
Q0IwNTI0MUZCNTFGMzMwMDA4OUI5NyAvKiBQYWdlTmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDVDOUQwMDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlSWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0NGQ1ZjhkMjk3NTYzZWUwMjljNDEzZTljZGE3NDk0YzVmYTRkOGFlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBQYWdlSWRlbnRpZmllclR5cGUg
eyB9OwotdXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlm
aWVyVHlwZT47Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BhZ2VJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ0ZDVmOGQyOTc1NjNlZTAyOWM0MTNlOWNkYTc0OTRjNWZhNGQ4YWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRpZmllci5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBQYWdl
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUGFnZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFBhZ2VJZGVudGlmaWVyVHlwZT47CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKaW5kZXggYTRkNGI1
MjViZTg5OWMyOTIxNjQwOWMyODk0NzZlMTlmNDZlNzcxZC4uZDA3OTU2ZjQ5YWFjYThiNWMzNTE5
YTI5NzhiNjkyMGM4NDFhMTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZXF1ZXN0LmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5o
IgorI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzksNiArNDAsNyBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICBNZWRpYUNv
bnN0cmFpbnRzIGF1ZGlvQ29uc3RyYWludHM7CiAgICAgTWVkaWFDb25zdHJhaW50cyB2aWRlb0Nv
bnN0cmFpbnRzOwogICAgIGJvb2wgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIHsgZmFsc2UgfTsK
KyAgICBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcjsKIAogICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTQ3
LDE1ICs0OSwyMCBAQCBzdHJ1Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0IHsKICAgICAgICAgZW5jb2Rl
ciA8PCBhdWRpb0NvbnN0cmFpbnRzOwogICAgICAgICBlbmNvZGVyIDw8IHZpZGVvQ29uc3RyYWlu
dHM7CiAgICAgICAgIGVuY29kZXIgPDwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkOworICAgICAg
ICBlbmNvZGVyIDw8IHBhZ2VJZGVudGlmaWVyOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVN0cmVhbVJlcXVlc3Q+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgTWVkaWFTdHJlYW1SZXF1ZXN0IHJl
cXVlc3Q7Ci0gICAgICAgIGlmIChkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnR5cGUpICYmIGRlY29k
ZXIuZGVjb2RlKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cykgJiYgZGVjb2Rlci5kZWNvZGUocmVx
dWVzdC52aWRlb0NvbnN0cmFpbnRzKSAmJiBkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmlzVXNlckdl
c3R1cmVQcml2aWxlZGdlZCkpCi0gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDsKLQotICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVl
c3QudHlwZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmF1ZGlvQ29u
c3RyYWludHMpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC52aWRlb0Nv
bnN0cmFpbnRzKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QuaXNVc2Vy
R2VzdHVyZVByaXZpbGVkZ2VkKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVl
c3QucGFnZUlkZW50aWZpZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4gcmVxdWVzdDsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CmluZGV4IGRlMGYxYTdhNGU2MzVhMTM5ZTQ4MjhiNTQ3ZmRjZjA2NjE5YjM1YWIuLmYxYzllNjAy
ODEzYTNiZjZmYjMxNDE3ODhiNjYwNGNhNDNiMDliOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CkBAIC00OCw4ICs0OCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVNZWRp
YVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IG1faWRIYXNoU2FsdChX
VEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
aGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogbV9wYWdlSWRl
bnRpZmllcihwYWdlSWRlbnRpZmllcikKKyAgICAsIG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hT
YWx0KSkKICAgICAsIG1fcGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90
eXBlKHR5cGUpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApp
bmRleCBiMjU5Mzc2NzlhYjkyNzBmMTliNjJmZjQwZDUyNTExNDNiNjlhYjQ0Li5jNGI0NTdlMjk2
MGYwZWRhOTA4YjcyMTI5ODczOGFlODNlNTE0NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02
OSw2ICs2OSw3IEBAIHN0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIAogY2xhc3MgV0VCQ09S
RV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5S
dW5Mb29wPgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwdWJsaWMgTG9nZ2VySGVscGVyCiAj
ZW5kaWYKQEAgLTEyNCw2ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUHJv
ZHVjaW5nRGF0YSgpIGNvbnN0OwogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsK
KyAgICB2b2lkIGVuZEltbWVkaWF0bHkoKSB7IGVuZChudWxscHRyKTsgfQogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIGNhbGxpbmdPYnNlcnZlcik7CiAgICAgYm9vbCBp
c0VuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuZGVkOyB9CiAKQEAgLTIyMSw4ICsyMjMsMTAg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9v
bCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAg
UmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJ
RCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0pOworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2UoVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYm
IGhhc2hTYWx0ID0geyB9LCBQYWdlSWRlbnRpZmllciA9IHsgfSk7CiAKICAgICB2b2lkIHNjaGVk
dWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKQEAgLTI3Myw2ICsyNzcsNyBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVDb3VudCB7IDAgfTsKICNlbmRpZgogCisg
ICAgUGFnZUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9pZEhhc2hT
YWx0OwogICAgIFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggOTQ1MjYzMjRiZDQ4YWIyMmUx
OTQwYzExMjA4ZjUzYjFiOTIxYzM0YS4uMDA3NGQxNDQ5NWU5Y2YxMGNlMDU0YjllZjA5YjQxYjc3
ZDZiODZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTc3LDcgKzc3
LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShS
ZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgTmUKIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlPiBhdWRpb1NvdXJjZTsKICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAgICAgYXV0
byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRp
b0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBhdWRpb0NhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcg
eyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVu
dGlmaWVyKTsKICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFT
dHJlYW0gYXVkaW8gc291cmNlOiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtODksOSArODksOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKFJlZjxjb25zdCBMb2dnZXI+JiYgbG9nZ2VyLCBOZQogICAg
IGlmICh2aWRlb0RldmljZSkgewogICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2U7
CiAgICAgICAgIGlmICh2aWRlb0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAgc291cmNlID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgp
LmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZSho
YXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNl
ID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWlu
dHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBz
b3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCksICZyZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMpOworICAgICAgICAgICAgc291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1v
dmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCByZXF1ZXN0LnBhZ2VJZGVu
dGlmaWVyKTsKIAogICAgICAgICBpZiAoIXNvdXJjZSkgewogICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiRmFpbGVkIHRvIGNyZWF0ZSBNZWRp
YVN0cmVhbSB2aWRlbyBzb3VyY2U6ICIsIHNvdXJjZS5lcnJvck1lc3NhZ2UpKSk7CkBAIC0yMDQs
NyArMjA0LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVk
aWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICAgICAgaWYgKCFkZXZpY2Uu
ZW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gc291cmNlT3JF
cnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNl
KGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7
CisgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJl
cXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmllcik7CiAgICAgICAg
IGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9y
dHNDb25zdHJhaW50cyhyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50
KSkKICAgICAgICAgICAgIGRpc3BsYXlEZXZpY2VJbmZvLmFwcGVuZCh7IHNvdXJjZU9yRXJyb3Iu
Y2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZSB9KTsKIApAQCAtMjIxLDcgKzIy
MSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNl
cyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5l
bmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8g
c291cmNlT3JFcnJvciA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0pOworICAgICAgICAgICAgYXV0
byBzb3VyY2VPckVycm9yID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSwgcmVxdWVzdC5wYWdlSWRl
bnRpZmllcik7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9y
LmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFp
bnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZv
LmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2
aWNlfSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAg
ICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwg
eyB9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9
LCB7IH0sIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9y
RXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRz
KHJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAg
ICAgICAgIHZpZGVvRGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJj
ZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZX0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFj
dG9yeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4ZTU1ZGYyN2Y0YTNmNjg1
OGYxM2I1ODZhNDhlOTY1NWFmZTYxZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIgotCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNs
dWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNs
dWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNl
LmgiCi0jaW5jbHVkZSA8d3RmL1NIQTEuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lk
IFNpbmdsZVNvdXJjZUZhY3Rvcnk6OnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
JiBzb3VyY2UpCi17Ci0gICAgaWYgKG1fYWN0aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAg
IHJldHVybjsKLSAgICBpZiAobV9hY3RpdmVTb3VyY2UgJiYgbV9hY3RpdmVTb3VyY2UtPmlzUHJv
ZHVjaW5nRGF0YSgpKQotICAgICAgICBtX2FjdGl2ZVNvdXJjZS0+c2V0TXV0ZWQodHJ1ZSk7Ci0g
ICAgbV9hY3RpdmVTb3VyY2UgPSAmc291cmNlOwotfQotCi12b2lkIFNpbmdsZVNvdXJjZUZhY3Rv
cnk6OnVuc2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKLXsKLSAg
ICBpZiAobV9hY3RpdmVTb3VyY2UgPT0gJnNvdXJjZSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2Ug
PSBudWxscHRyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggYmEw
ZDkwM2U2MjllZDhhYmVkZjdjZmNmMWVmOTY1MTEzZTM4OTBiZi4uNjYxZDU5MmVlYzIwNzY2ODY2
ZTllMmFmODAzYzI0Mjc2ZjZkNzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVk
ZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgpAQCAtNDEsMjcgKzQyLDEwIEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CiBzdHJ1Y3Qg
Q2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIAotY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgU2luZ2xlU291cmNlRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+U2luZ2xlU291cmNlRmFjdG9yeSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwotICAgIHZpcnR1YWwgdm9pZCB1
bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJik7Ci0KLSAgICB2aXJ0dWFsIFJl
YWx0aW1lTWVkaWFTb3VyY2UqIGFjdGl2ZVNvdXJjZSgpIHsgcmV0dXJuIG1fYWN0aXZlU291cmNl
OyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZSogbV9hY3RpdmVTb3VyY2Ug
eyBudWxscHRyIH07Ci19OwotCi1jbGFzcyBBdWRpb0NhcHR1cmVGYWN0b3J5Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0b3J5Ci0jZW5kaWYK
LXsKK2NsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0
cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSA9
IDA7CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcigpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
c3BlYWtlckRldmljZXMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTcGVh
a2VyRGV2aWNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spIGNvbnN0IHsg
Y2FsbGJhY2soKTsgfQpAQCAtNzQsMjggKzU4LDIwIEBAIHByb3RlY3RlZDoKICAgICBBdWRpb0Nh
cHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9y
eQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFj
dG9yeQotI2VuZGlmCi17CitjbGFzcyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2
aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdl
SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVv
Q2FwdHVyZURldmljZU1hbmFnZXIoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBWaWRlb0NhcHR1
cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwogfTsKIAotY2xhc3MgRGlzcGxheUNhcHR1cmVGYWN0b3J5
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICA6IHB1YmxpYyBTaW5nbGVTb3VyY2VGYWN0
b3J5Ci0jZW5kaWYKLXsKK2NsYXNzIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1
YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwor
ICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiwgUGFnZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIERpc3BsYXlDYXB0dXJlTWFuYWdl
ciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggODJkZTI1OGJiYzdiMWExODZkY2I1
NzBkY2EwNDQwZDhhYjQwMDllMS4uMzBiMGEyNThkM2FkMDA5YzgzNzczYWQ2OWQ2YjFjYzYzNmJh
YmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzUsMjUgKzM1
LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2U6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlk
LCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6Vmlk
ZW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmll
cikKIHsKIH0KIAogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6On5SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRB
Y3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2U6OnByZXBhcmVUb1Byb2R1Y2VEYXRhKCkKLXsKLSAgICBBU1NFUlQoZnJhbWVSYXRl
KCkpOwotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNl
KCp0aGlzKTsKLSNlbmRpZgogfQogCiBjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkKQEAgLTM2OSw2ICszNTcsNyBAQCB2
b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpzZXRTaXplQW5kRnJhbWVSYXRlKHN0ZDo6
b3B0aW9uYWw8aW50PiB3aWR0aCwgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1ByZXNldDsKICAgICBzZXRGcmFtZVJh
dGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUsIG1hdGNoLT5lbmNvZGluZ1By
ZXNldCk7CiAKICAgICBpZiAoIW1hdGNoLT5yZXF1ZXN0ZWRTaXplLmlzRW1wdHkoKSkKQEAgLTQx
Miw2ICs0MDEsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRh
dGVkU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludAogICAgIGlmICghbWF0Y2gpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIG1fY3VycmVudFByZXNldCA9IG1hdGNoLT5lbmNvZGluZ1By
ZXNldDsKICAgICBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJh
dGUsIG1hdGNoLT5lbmNvZGluZ1ByZXNldCk7CiAgICAgc2V0U2l6ZShtYXRjaC0+ZW5jb2RpbmdQ
cmVzZXQtPnNpemUpOwogICAgIHNldEZyYW1lUmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDcwMTcyYWFlNTZjZDRmYTVm
NWVkZmY3ZmQ0NDhiNWYzOTVjZDE4YWIuLmRjMWMzZDVlYWE3NTExNGUyYWJmMTA4YTE1ODhmY2E0
OWFlZjlmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUz
LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5zdXJlSW50cmluc2ljU2l6ZU1haW50YWluc0Fz
cGVjdFJhdGlvKCk7CiAKKyAgICBjb25zdCBWaWRlb1ByZXNldCogY3VycmVudFByZXNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fY3VycmVudFByZXNldC5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAg
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0
cmluZyYmIGhhc2hTYWx0KTsKKyAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsK
IAotICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVjZURhdGEoKTsKICAgICB2b2lkIHNldFNpemVBbmRG
cmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVp
Z2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29s
IHByZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQmKSB7IHJldHVybiB0cnVlOyB9CkBAIC05MCw2ICs5
MSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlIjsgfQogI2VuZGlmCiAK
KyAgICBSZWZQdHI8VmlkZW9QcmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBWZWN0b3I8UmVm
PFZpZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZy
YW1lVGltZVN0YW1wczsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggY2U2ZTAwMzU5N2E4YjVkYmQ5ZDFhYTg1YzQ1NTYyYjIy
YTkzZjQzYy4uMWQ0Zjk5YmYyYjEzYWE2NmFmZmMyNDhiZWNlNTk4MmViMzBkNDY3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlLCBib29sIHNob3VsZFVzZUlPU3VyZmFjZSkKLSAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFt
ZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNl
LT5kZXZpY2VJREhhc2hTYWx0KCkgfSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6
VmlkZW8sIFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lz
dGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSwgc291cmNl
LT5wYWdlSWRlbnRpZmllcigpKQogICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgICwgbV9zaG91bGRVc2VJT1N1cmZhY2Uoc2hvdWxkVXNlSU9T
dXJmYWNlKQpAQCAtOTUsMTIgKzk1LDE1IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0
U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0CiAgICAg
QVNTRVJUKHNvdXJjZVNpemUuaGVpZ2h0KCkpOwogICAgIEFTU0VSVChzb3VyY2VTaXplLndpZHRo
KCkpOwogCisgICAgYXV0byogY3VycmVudFByZXNldCA9IG1fc291cmNlLT5jdXJyZW50UHJlc2V0
KCk7CisgICAgYXV0byBpbnRyaW5zaWNTaXplID0gY3VycmVudFByZXNldCA/IGN1cnJlbnRQcmVz
ZXQtPnNpemUgOiBzb3VyY2VTaXplOworCiAgICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGgg
PSBzb3VyY2VTaXplLndpZHRoKCkgKiBoZWlnaHQudmFsdWUoKSAvIHNvdXJjZVNpemUuaGVpZ2h0
KCk7CisgICAgICAgIHdpZHRoID0gaW50cmluc2ljU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVl
KCkgLyBpbnRyaW5zaWNTaXplLmhlaWdodCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdp
ZHRoKCp3aWR0aCk7CiAKICAgICBpZiAoIWhlaWdodCkKLSAgICAgICAgaGVpZ2h0ID0gc291cmNl
U2l6ZS5oZWlnaHQoKSAqIHdpZHRoLnZhbHVlKCkgLyBzb3VyY2VTaXplLndpZHRoKCk7CisgICAg
ICAgIGhlaWdodCA9IGludHJpbnNpY1NpemUuaGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gaW50
cmluc2ljU2l6ZS53aWR0aCgpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldEhlaWdodCgqaGVp
Z2h0KTsKIAogICAgIGlmIChmcmFtZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EuY3BwCmluZGV4IDU1NGY4ZGQyN2E0YmU1ZGVkNmU1ZTE2YTUyYmNkNGFkOTA2
ZjQyYjcuLjE2NmE1MzA3NzMyYjExNWU0NWQ2MjA3MGVmYTAwYTAxMzgyOGJmYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC04MywyMyArODMsMjMg
QEAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZvckRldmljZShD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHQKICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6Tm9uZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBz
d2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlNjcmVlbjoKICNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHJldHVybiBjcmVhdGUoUmVw
bGF5S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZShSZXBsYXlLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwg
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsK
ICNlbHNlCiAjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCiAgICAgICAgIGlmIChTY3JlZW5D
YXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVy
biBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNv
bnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25z
dHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VuZGlmCi0gICAgICAgIHJldHVybiBjcmVhdGUo
Q0dEaXNwbGF5U3RyZWFtU2NyZWVuQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0
ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAg
ICAgcmV0dXJuIGNyZWF0ZShDR0Rpc3BsYXlTdHJlYW1TY3JlZW5DYXB0dXJlU291cmNlOjpjcmVh
dGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6V2luZG93OgogI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAg
ICAgICBpZiAoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0g
ICAgICAgICAgICByZXR1cm4gY3JlYXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNv
bnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlv
OgpAQCAtMTE0LDEyICsxMTQsMTIgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmkKICAgICByZXR1
cm4geyB9OwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmIGNhcHR1
cmVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIERp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVy
ZXI+LCBTdHJpbmc+JiYgY2FwdHVyZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWNhcHR1cmVyLmhhc192YWx1
ZSgpKQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBXVEZNb3ZlKGNhcHR1
cmVyLmVycm9yKCkpIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBk
ZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKGNhcHR1cmVyLnZhbHVlKCkpLCBTdHJpbmcgeyBkZXZp
Y2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7
CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0xMjksOCArMTI5LDggQEAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJl
ZjxDYXB0dXIKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2Up
KTsKIH0KIAotRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2Uoc291cmNlVHlwZUZvckRldmljZShjYXB0dXJlci0+ZGV2aWNlVHlwZSgpKSwgV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVy
ZXI+JiYgY2FwdHVyZXIsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGb3JEZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFn
ZUlkZW50aWZpZXIpCiAgICAgLCBtX2NhcHR1cmVyKFdURk1vdmUoY2FwdHVyZXIpKQogICAgICwg
bV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hOjplbWl0RnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
LmgKaW5kZXggMDQ1YzhjYzQzNWZjYjI5YzVkZWQwYjJmMWFlY2E1MjQyYzVhZThjMC4uYjllYjA4
NWQ0NzQ5MzRjNWUwNTFhNzVhYjFkZDAzY2M1NGU3Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAtMTEyLDE0ICsxMTIsMTQgQEAgcHVibGljOgogICAg
ICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAgICAgfTsKIAotICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYm
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2FwdHVyZXI+LCBTdHJpbmc+JiYsIGNvbnN0
IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYs
IFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENh
cHR1cmVyPiwgU3RyaW5nPiYmLCBjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBTZWNvbmRzIGVsYXBz
ZWRUaW1lKCk7CiAgICAgdm9pZCB1cGRhdGVGcmFtZVNpemUoKTsKIAogcHJpdmF0ZToKLSAgICBE
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBEaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hKFVuaXF1ZVJlZjxDYXB0dXJlcj4mJiwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAg
ICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSgpOwogCiAgICAgLy8gUmVhbHRp
bWVNZWRpYVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlLmNwcAppbmRleCA0ODZiMGU0NDg2YTNjNjRlM2FjMTNmMzU3YmQwMTRkZTAzMTgw
ZGY2Li43M2VjZDI0MDNiYzBmNDhiZGExOWQ1MTk5MDE0N2EzNTczYjdlYTMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTYs
NyArNTYsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGVidWdDYXRlZ29yeSgpCiAKIGNsYXNz
IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4g
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRl
eCBlMTNkNTNiMmIyNGRjZTlkNTAyNmRhMjM3MjgzM2U0ZTQyMTNiMWUwLi42OWRhMjBiNjgwZTg1
OWZkNzZmNjIwYjkzM2E1ZWE2ZjBlYmJjNGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJs
aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewog
ICAgICAgICByZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50
cyk7CiAgICAgfQpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBHU3RyZWFtZXJE
aXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVG
YWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRv
JiBtYW5hZ2VyID0gR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0
b24oKTsKICAgICAgICAgcmV0dXJuIG1hbmFnZXIuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2Uo
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwpAQCAtMTIwLDcgKzEyMCw3
IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpk
aXNwbGF5RmFjdG9yeSgpCiB9CiAKIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2NoYXIqIHNvdXJjZUZhY3RvcnksIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgaW50IGZkKQotICAgIDogUmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFz
aFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCB7IH0pCiAgICAgLCBtX2NhcHR1
cmVyKG1ha2VVbmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNlRmFjdG9yeSwgZGV2
aWNlVHlwZSkpCiAgICAgLCBtX2RldmljZVR5cGUoZGV2aWNlVHlwZSkKIHsKQEAgLTEzMCw3ICsx
MzAsNyBAQCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2
aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNl
LmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNl
LmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHsgfSkKICAgICAsIG1fY2FwdHVyZXIobWFr
ZVVuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihkZXZpY2UpKQogICAgICwgbV9kZXZpY2VU
eXBlKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IGM3N2RjYTI3YzNhYzdhMmM2MDYyNWEzMzE2MTIzYzc5OGU5NjQ0ODQuLjVjZjYyN2M5M2E0MmQ3
ODExYmQ3MGIxMTU4MGNkYjE3NmQ0YjYxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMzksNyArMzksNyBA
QCBzdGF0aWMgY29uc3QgZG91YmxlIHNfSHVtVm9sdW1lID0gMC4xOwogc3RhdGljIGNvbnN0IGRv
dWJsZSBzX05vaXNlRnJlcXVlbmN5ID0gMzAwMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc19Ob2lz
ZVZvbHVtZSA9IDAuMDU7CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwog
ICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZp
Y2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTYzLDcgKzYzLDcgQEAgUmVmPE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcjo6Y3Jl
YXRlRm9yTW9ja0F1ZGkKIH0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAg
ICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQogewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRp
YWxpemVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA5Njc3NzFlZjBhYzg0OGE4NTFkOTJkYmUzNTlj
NWVjMWZkMDkyYzNjLi44ZGI3NjgwZTJiYTgyZjFjMjkwMmEyM2U2NjU4M2RkYTBiYmM4OWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdT
dHJlYW1lci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1D
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChk
ZXZpY2VJRCk7CkBAIC0xNDcsNyArMTQ3LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6OnNldHRpbmdzKCkKIH0K
IAogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6Ok1vY2tSZWFsdGltZVZpZGVvU291
cmNlR1N0cmVhbWVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgeyB9KQogewogICAgIGVuc3VyZUdTdHJlYW1lckluaXRpYWxpemVkKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
aW9zL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaAppbmRleCA2NjQ4NWUzMmI5NzRiMjZiNmRi
NzBlZjMxZjQxNTQ1MGMwYzYzMWZmLi5iMTA1YjNlMTBjODA5OTk4Y2ExMTU5NTY4MGE0YWU4NjYz
N2IzYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9p
b3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2luQXVkaW9TZXNzaW9uSW50ZXJydXB0aW9u
KCkgeyBiZWdpbkludGVycnVwdGlvbigpOyB9CiAgICAgdm9pZCBlbmRBdWRpb1Nlc3Npb25JbnRl
cnJ1cHRpb24oQXVkaW9TZXNzaW9uOjpNYXlSZXN1bWUpIHsgZW5kSW50ZXJydXB0aW9uKCk7IH0K
IAotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBmaW5h
bDsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFn
ZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgYWRkRXh0ZW5zaXZlT2JzZXJ2ZXIoRXh0ZW5z
aXZlT2JzZXJ2ZXImKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4
dGVuc2l2ZU9ic2VydmVyJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VJT1MubW0KaW5kZXggNjcwNTkyZjM1MTY3ZjZiMDYxOTk2YjAxNjc0ZWI5YjU0ODQ0M2E1Mi4u
YmIzMjlmZTBlMWQ4NTdlZmI2MTcxNzRiYzQ5OTEzNmJhYzgzZTNjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0KQEAgLTExNiwxMyArMTE2LDEzIEBAIHZvaWQgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OnJlbW92ZUV4dGVuc2l2ZU9ic2VydmVyKEV4
dGVuc2l2ZU9ic2VydmVyCiAgICAgICAgIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFn
ZXI6OnNpbmdsZXRvbigpLmRpc2FibGVBbGxEZXZpY2VzUXVlcnkoKTsKIH0KIAotQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnlJT1M6OmNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VP
ckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewogICAgIC8vIFdlIGVuYWJsZSBleGhhdXN0aXZlIHF1ZXJ5IHRvIGJlIHN1
cmUgdG8gc3RhcnQgY2FwdHVyZSB3aXRoIHRoZSByaWdodCBkZXZpY2UuCiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBzdG9wIHRoZSBhdXhpbGlhcnkgc2Vzc2lvbiBhZnRlciBzdGFydGluZyBjYXB0
dXJlLgogICAgIGlmIChtX29ic2VydmVycy5jb21wdXRlc0VtcHR5KCkpCiAgICAgICAgIEFWQXVk
aW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmVuYWJsZUFsbERldmlj
ZXNRdWVyeSgpOwotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cyk7CisgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
LCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKaW5k
ZXggYTZkNzQyMTYzOWE3NDI3NjQxY2FmMmIyNzI3MTNkZTFlNWYxODgwYy4uMjRlMTFhZTEzZmJi
ZTdjMWM4NmZmYTZhOGY3MGIyNGRmNjFmZTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNl
LmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKIAogY2xh
c3MgQVZWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYs
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGlj
IENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgp
OwogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VTdXNw
ZW5kZWREaWRDaGFuZ2UoKTsKIAogcHJpdmF0ZToKLSAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShB
VkNhcHR1cmVEZXZpY2UqLCBjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQp
OworICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IENhcHR1
cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1
YWwgfkFWVmlkZW9DYXB0dXJlU291cmNlKCk7CiAKICAgICB2b2lkIGNsZWFyU2Vzc2lvbigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDU2ZWQ0YzIxYWVjMGU1ZDlmNmQ3MzVk
NTgyMWM4NmJkMjM1ZmM5NjAuLjcwN2NiNjVjNjgxODVhZGM3NTQ3YTRlY2JmMzdkYTVhN2ZiMjA4
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTEwOCwxMyArMTA4LDEzIEBA
IHB1YmxpYzoKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlRm9ybWF0PiBmb3JtYXQ7CiB9
OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgYXV0byAqYXZEZXZpY2UgPSBbUEFMOjpnZXRB
VkNhcHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2UucGVyc2lzdGVu
dElkKCldOwogICAgIGlmICghYXZEZXZpY2UpCiAgICAgICAgIHJldHVybiB7ICJObyBBVlZpZGVv
Q2FwdHVyZVNvdXJjZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShhdkRldmljZSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hT
YWx0KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNv
dXJjZShhdkRldmljZSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIp
KTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3VyY2Ut
PmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdCkKQEAg
LTEyNCw4ICsxMjQsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgUwogICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZShzb3Vy
Y2UpKSk7CiB9CiAKLUFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShB
VkNhcHR1cmVEZXZpY2UqIGF2RGV2aWNlLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0
cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5n
KGRldmljZS5sYWJlbCgpKSwgU3RyaW5nKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIFdURk1vdmUo
aGFzaFNhbHQpKQorQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFW
Q2FwdHVyZURldmljZSogYXZEZXZpY2UsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nKGRldmljZS5sYWJlbCgpKSwgU3RyaW5nKGRl
dmljZS5wZXJzaXN0ZW50SWQoKSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikK
ICAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3Vy
Y2VPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2Rldmlj
ZShhdkRldmljZSkKICAgICAsIG1fdmVyaWZ5Q2FwdHVyaW5nVGltZXIoKnRoaXMsICZBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6dmVyaWZ5SXNDYXB0dXJpbmcpCkBAIC0xMzcsOSArMTM3LDYgQEAgQVZW
aWRlb0NhcHR1cmVTb3VyY2U6On5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7CiAgICAgQUxXQVlT
X0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUik7CiAKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKICAgICBb
bV9vYmpjT2JzZXJ2ZXIgZGlzY29ubmVjdF07CiAgICAgW21fZGV2aWNlIHJlbW92ZU9ic2VydmVy
Om1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJzdXNwZW5kZWQiXTsKIApAQCAtNDY5
LDEwICs0NjYsNiBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNz
aW9uKCkKIHsKICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsK
IAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhp
cyk7Ci0jZW5kaWYKLQogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwogICAgIFJldGFpblB0cjxB
VkNhcHR1cmVEZXZpY2VJbnB1dD4gdmlkZW9JbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkNhcHR1
cmVEZXZpY2VJbnB1dEluc3RhbmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6JmVy
cm9yXSk7CiAgICAgaWYgKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAKaW5kZXggZTYzMGM0YzVjMDI5ZTI2MjY5NGZlNGMwNzU2YTc4OTgxMTZjMmY2Yi4uZjU3YjA2
NGI4MzVjMzYxYzRlYmEyMTA4ZTZjODk4Zjg3ZTZlNDVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmNwcApAQCAtNjY4LDI3ICs2NjgsMjcgQEAgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFJlZjxDb3JlQXVkaW9D
YXB0dXIKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsK
IH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50
aWZpZXIpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQo
ZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyAiTm8gQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZSBkZXZpY2UiX3MgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcg
eyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQo
KSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291
cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92
ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIp
KTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlv
U2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZp
Y2VXaXRoVUlEKFdURk1vdmUoZGV2aWNlSUQpKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAg
cmV0dXJuIHsgIk5vIEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZSBkZXZpY2UiX3MgfTsKIAot
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdU
Rk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIDApKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCAwLCBudWxscHRyLCBwYWdlSWRlbnRpZmllcikpOwogI2VuZGlm
CiAgICAgcmV0dXJuIGluaXRpYWxpemVDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoc291
cmNlKSwgY29uc3RyYWludHMpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9D
YXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVuaXQpCitDYXB0dXJlU291cmNl
T3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBCYXNlQXVkaW9TaGFyZWRVbml0JiBvdmVycmlkZVVu
aXQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShoYXNoU2FsdCksIDAsICZvdmVycmlkZVVuaXQpKTsKKyAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZN
b3ZlKGRldmljZUlEKSwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3Zl
cnJpZGVVbml0LCBwYWdlSWRlbnRpZmllcikpOwogICAgIHJldHVybiBpbml0aWFsaXplQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSksIGNvbnN0cmFpbnRzKTsKIH0KIApAQCAt
NzcxLDggKzc3MSw4IEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OndoZW5B
dWRpb0NhcHR1cmVVbml0SXNOb3RSdW5uaW5nKEZ1bmN0aW9uPHZvCiAgICAgcmV0dXJuIENvcmVB
dWRpb1NoYXJlZFVuaXQ6OnVuaXQoKS53aGVuQXVkaW9DYXB0dXJlVW5pdElzTm90UnVubmluZyhX
VEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRp
b0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcm
JiBoYXNoU2FsdCwgdWludDMyX3QgY2FwdHVyZURldmljZUlELCBCYXNlQXVkaW9TaGFyZWRVbml0
KiBvdmVycmlkZVVuaXQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdU
Rk1vdmUoaGFzaFNhbHQpKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hT
YWx0LCB1aW50MzJfdCBjYXB0dXJlRGV2aWNlSUQsIEJhc2VBdWRpb1NoYXJlZFVuaXQqIG92ZXJy
aWRlVW5pdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVs
KSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikK
ICAgICAsIG1fY2FwdHVyZURldmljZUlEKGNhcHR1cmVEZXZpY2VJRCkKICAgICAsIG1fb3ZlcnJp
ZGVVbml0KG92ZXJyaWRlVW5pdCkKIHsKQEAgLTgxMiwxOSArODEyLDExIEBAIHZvaWQgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZVRvU3RhcnRQcm9kdWNpbmdEYXRhKCkKIAogQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6fkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKQogewotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNp
bmdsZXRvbigpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotCiAgICAgdW5pdCgp
LnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2Uo
KnRoaXMpOwotI2VuZGlmCi0KICAgICBpbml0aWFsaXplVG9TdGFydFByb2R1Y2luZ0RhdGEoKTsK
ICAgICB1bml0KCkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaAppbmRleCA2ZTE3OTFjZTk4MTRmYWQ5NGExMzMzNmVkNTRhYWQwZjEwY2U4YjUy
Li5hMGU4YzQ2YmU0OWE5NjZiZWViYjBhOWU3ZGM3M2ViYTllNzA0MjI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUxLDE1ICs1MSwxNSBAQCBjbGFzcyBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzsKIAogY2xhc3MgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1
YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOwotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRV
bml0JiBvdmVycmlkZVVuaXQpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVGb3JUZXN0aW5nKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBCYXNlQXVkaW9TaGFyZWRV
bml0JiBvdmVycmlkZVVuaXQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBDTUNsb2NrUmVm
IHRpbWViYXNlQ2xvY2soKTsKIAogcHJvdGVjdGVkOgotICAgIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwg
dWludDMyX3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9TaGFyZWRVbml0KiA9IG51bGxwdHIpOwor
ICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxh
YmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElELCBCYXNlQXVkaW9T
aGFyZWRVbml0KiwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1
cmVTb3VyY2UoKTsKICAgICBCYXNlQXVkaW9TaGFyZWRVbml0JiB1bml0KCk7CiAgICAgY29uc3Qg
QmFzZUF1ZGlvU2hhcmVkVW5pdCYgdW5pdCgpIGNvbnN0OwpAQCAtMTI4LDE0ICsxMjgsMTQgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05v
dFJ1bm5pbmcoRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYs
IFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgb3ZlcnJpZGU7CisgICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKSBv
dmVycmlkZTsKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlcigpIGZpbmFsOwogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgc3BlYWtlckRl
dmljZXMoKSBjb25zdCBmaW5hbDsKIH07CiAKLWlubGluZSBDYXB0dXJlU291cmNlT3JFcnJvciBD
b3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQoraW5saW5lIENhcHR1cmVTb3VyY2VPckVycm9yIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQog
ewotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Cisg
ICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRl
bnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJl
ZFVuaXQubW0KaW5kZXggMGRkM2Q3MWNhZTdhNjNiNjM3MjA4ZjI4MzgyMjBlNjU5ZTQyMTNjZS4u
MzQyMjc0MjNkODliMGEwNDlkZTY5YWNlMzVmOGYzOGYzZDMwYzM0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRp
b1NoYXJlZFVuaXQubW0KQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIHZvaWQgYWRkSHVtKGZsb2F0
IGFtcGxpdHVkZSwgZmxvYXQgZnJlcXVlbmN5LCBmbG9hdCBzYW1wbGVSYXRlLCB1aW50NjRfdAog
ICAgIH0KIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICAgICBhdXRv
IGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBl
cnNpc3RlbnRJRChkZXZpY2VJRCk7CiAgICAgQVNTRVJUKGRldmljZSk7CkBAIC05MSw3ICs5MSw3
IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVybiB7ICJObyBtb2NrIG1p
Y3JvcGhvbmUgZGV2aWNlIl9zIH07CiAKICAgICBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0
b24oKS5zZXREZXZpY2VJRChkZXZpY2VJRCk7Ci0gICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZUZvclRlc3RpbmcoV1RGTW92ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNp
bmdsZXRvbigpKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9y
VGVzdGluZyhXVEZNb3ZlKGRldmljZUlEKSwgIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cywgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCksIHBhZ2VJ
ZGVudGlmaWVyKTsKIH0KIAogTW9ja0F1ZGlvU2hhcmVkVW5pdCYgTW9ja0F1ZGlvU2hhcmVkVW5p
dDo6c2luZ2xldG9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5k
ZXggOTVjZjM1Y2Q0ZWIxMzE4ZDg2ODMyNzNhNWQwOTZjNzM2NDQ2MDhiMC4uNDgyOTU3OWQyZmEx
NjUzY2VjMDAxMjdjMDNmMjRjYTMwOTc2Y2QzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjLmgKQEAgLTQ3LDEzICs0NywxMyBAQCBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUOwogCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyBmaW5hbCA6IHB1Ymxp
YyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIHN0YXRp
YyBSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVy
ZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQ
YWdlSWRlbnRpZmllcik7CiAKICAgICB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSA9IGRl
ZmF1bHQ7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOwotICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQppbmRleCBmZDE5NGU2MTlhNDRiODgxMWRj
YjE3ZTAwNDY3MWY0NDUzNWU3YTk3Li45ZTI1ZjZkMmQ0MzEzZjkwZGU5YzBmYjFkNjBkZDg4YjA5
Nzg1ZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01
Miw3ICs1Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2
aWNlSUQpOwpAQCAtNjEsNyArNjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAg
ICByZXR1cm4geyAiTm8gbW9jayBjYW1lcmEgZGV2aWNlIl9zIH07CiAjZW5kaWYKIAotICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhXVEZN
b3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRl
bnRpZmllcikpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBpZiAoYXV0byBlcnJv
ciA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICAgICAg
cmV0dXJuIFdURk1vdmUoZXJyb3ItPm1lc3NhZ2UpOwpAQCAtNzAsMTMgKzcwLDEzIEBAIENhcHR1
cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotUmVmPE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9y
TW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQpCitSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aGFzaFNhbHQpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNh
bHQpLCBwYWdlSWRlbnRpZmllcikpOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3Zl
KGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlm
aWVyKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGltZVZp
ZGVvU291cmNlIFJlbmRlciBRdWV1ZSIsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUp
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmlu
ZGV4IDk3Yzk3ZTU5MDM2NGQ0MTk3MGNhNDZlMjg3OGExNmI4N2VmMWY0YWYuLmNmMDA4MjBhNDQ4
OGVmYjRiMzU1ZTNlNjUzNzNlMGQxMzg2MTllNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAgLTQ1LDEwICs0NSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJs
aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
IGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpOwotICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Cisg
ICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgV1RGTW92
ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtNTcsOSArNTcsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1
YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewotICAgICAgICBy
ZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywg
cGFnZUlkZW50aWZpZXIpOwogICAgIH0KIHByaXZhdGU6CiAgICAgRGlzcGxheUNhcHR1cmVNYW5h
Z2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKSB7IHJldHVybiBEaXNwbGF5Q2FwdHVy
ZU1hbmFnZXJDb2NvYTo6c2luZ2xldG9uKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggMmFhZTE5
MWMxN2VmM2VjYTdhYTAwN2EzYTI4YjVhMTFhZWFjY2E1Yy4uNzAzMDg0MjgzNDg5NTliMDQ1ZmVi
ZDQ2NmUwNTA3YzU3ODViZTdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIpCiB7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKQEAgLTY2LDggKzY2LDgg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVu
dGlmaWVyKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIk1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlIFJlbmRlciBRdWV1ZSIpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJy
ZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6dGljaykKIHsKQEAgLTgxLDkg
KzgxLDYgQEAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6On5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNl
dHRpbmdzKCkKQEAgLTE0MCw3ICsxMzcsNiBAQCB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldAogdm9p
ZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNlc3Npb25DYW5Q
cm9kdWNlQXVkaW9DaGFuZ2VkKCk7CiAgICAgQVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRS
ZWNvcmQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggNTVmOWVkMmE2YzI4OTQ4ZDQwY2U4MDY0
OGY1MGRkODc3Y2UzNjllMy4uZGExMGU0NDIxZTQ0MzIwY2M0Mzg4YTVkMmI4ZWU3MDRlZjY1MjRm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2UgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+TW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldElzSW50ZXJydXB0
ZWQoYm9vbCk7CkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldENoYW5uZWxDb3VudCh1bnNpZ25lZCk7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwog
CiAgICAgdmlydHVhbCB2b2lkIHJlbmRlcihTZWNvbmRzKSA9IDA7CiAgICAgdm9pZCBzZXR0aW5n
c0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGMzOWZhN2JjZTQzYzM3
ZWIzZGViNzEzZTk3ZDllOTIwOWNiMmZiNTkuLmI3OTFiYzI3ZTA1ZWU5OTIxZDM2ZGMzNzMyYWQ4
OGVjN2EzMTFjNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0xMDEsMTMgKzEw
MSwxMyBAQCBzdGF0aWMgaW5saW5lIFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZp
Y2VzKCkKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5h
bAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6Q2FtZXJhKTsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0
dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1vY2sgY2FtZXJhIGRldmljZSB3aXRoIGdpdmVuIHBlcnNp
c3RlbnRJRCJfcyB9OwogCi0gICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2Uu
bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1
cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lz
dGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMTE3
LDcgKzExNyw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogY2xhc3MgTW9ja0Rpc3Bs
YXlDYXB0dXJlciBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0
dXJlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBD
YXB0dXJlRGV2aWNlJik7CisgICAgTW9ja0Rpc3BsYXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2
aWNlJiwgUGFnZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIGJvb2wgc3RhcnQoKSBmaW5h
bDsKQEAgLTEzNCw4ICsxMzQsOCBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBtX3NldHRpbmdzOwogfTsKIAotTW9ja0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3Bs
YXlDYXB0dXJlcihjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCi0gICAgOiBtX3NvdXJjZShN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkg
fSwgU3RyaW5nIHsgfSkpCitNb2NrRGlzcGxheUNhcHR1cmVyOjpNb2NrRGlzcGxheUNhcHR1cmVy
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZp
ZXIpCisgICAgOiBtX3NvdXJjZShNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9y
TW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3Ry
aW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgfSwgcGFnZUlkZW50aWZpZXIpKQogewog
fQogCkBAIC0xNzcsNyArMTc3LDcgQEAgSW50U2l6ZSBNb2NrRGlzcGxheUNhcHR1cmVyOjppbnRy
aW5zaWNTaXplKCkgY29uc3QKIAogY2xhc3MgTW9ja1JlYWx0aW1lRGlzcGxheVNvdXJjZUZhY3Rv
cnkgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAoIU1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2UudHlw
ZSgpLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJs
ZSB0byBmaW5kIG1vY2sgZGlzcGxheSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3Mg
fTsKQEAgLTE4NiwxMSArMTg2LDExIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6V2luZG93OgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgICAgIHJldHVybiBE
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoVW5pcXVlUmVmPERpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2E6OkNhcHR1cmVyPihtYWtlVW5pcXVlUmVmPE1vY2tEaXNwbGF5Q2FwdHVyZXI+
KGRldmljZSkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAg
ICAgICAgICByZXR1cm4gRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1ZVJl
ZjxEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxNb2Nr
RGlzcGxheUNhcHR1cmVyPihkZXZpY2UsIHBhZ2VJZGVudGlmaWVyKSksIGRldmljZSwgV1RGTW92
ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZWxpZiBVU0UoR1NU
UkVBTUVSKQogICAgICAgICAgICAgcmV0dXJuIE1vY2tEaXNwbGF5Q2FwdHVyZVNvdXJjZUdTdHJl
YW1lcjo6Y3JlYXRlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICNl
bHNlCi0gICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKQEAgLTIx
MSwyMCArMjExLDE1IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwogICAgICAg
ICBpZiAoIU1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBl
cnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2Uu
cGVyc2lzdGVudElkKCkpKQogICAgICAgICAgICAgcmV0dXJuIHsgIlVuYWJsZSB0byBmaW5kIG1v
Y2sgbWljcm9waG9uZSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50SUQiX3MgfTsKIAotICAg
ICAgICByZXR1cm4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7
IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlk
ZW50aWZpZXIpOwogICAgIH0KIHByaXZhdGU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICB2b2lkIHNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGZpbmFs
IHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpLnNldEFjdGl2ZVNv
dXJjZShzb3VyY2UpOyB9Ci0gICAgdm9pZCB1bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlJiBzb3VyY2UpIGZpbmFsIHsgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNp
bmdsZXRvbigpLnVuc2V0QWN0aXZlU291cmNlKHNvdXJjZSk7IH0KLSAgICBSZWFsdGltZU1lZGlh
U291cmNlKiBhY3RpdmVTb3VyY2UoKSBmaW5hbCB7IHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291
cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuYWN0aXZlU291cmNlKCk7IH0KLSNlbmRpZgogICAgIENh
cHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyBy
ZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2Fw
dHVyZURldmljZU1hbmFnZXIoKTsgfQogICAgIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
c3BlYWtlckRldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c3BlYWtlckRldmljZXMoKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXgg
NjBjNWE4Y2Q2ZDUwZTkwMGU0YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZC4uM2NmNzQ2MGM4MGUzYmUx
ZDViYTNmMGNlZDdjMTliMjVkZjI5YWJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTUwLDcgKzUw
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiAhVVNFKEdTVFJFQU1FUikKLUNhcHR1cmVTb3VyY2VPckVycm9y
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFn
ZUlkZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmlj
ZUlEKTsKQEAgLTU5LDcgKzU5LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAg
cmV0dXJuIHsgIk5vIG1vY2sgY2FtZXJhIGRldmljZSJfcyB9OwogI2VuZGlmCiAKLSAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIp
KTsKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25z
dHJhaW50cykpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTczLDggKzczLDggQEAgc3RhdGlj
IEhhc2hTZXQ8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UqPiYgYWxsTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UoKQogICAgIHJldHVybiB2aWRlb1NvdXJjZXM7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkp
CitNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlk
ZW50aWZpZXIpCiAgICAgLCBtX2VtaXRGcmFtZVRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhp
cywgJk1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpnZW5lcmF0ZUZyYW1lKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CkBAIC0yMzksNyArMjM5LDYgQEAgdm9pZCBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZTo6c3RhcnRDYXB0dXJlVGltZXIoKQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewotICAgIHByZXBhcmVUb1Byb2R1Y2VEYXRh
KCk7CiAgICAgc3RhcnRDYXB0dXJlVGltZXIoKTsKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25p
Y1RpbWU6Om5vdygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDkzNWM2ZGRlY2I4ZDQ1OGM5MTY2ZjVi
MjY3YWM1YzQ5NGZmMzQzYjUuLmZjNWZjN2FhMWNiNzZmYTZkOTczOTA1ODY1YmZhZmVjZWRlMzZi
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0
OwogCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB+TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UoKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldElzSW50ZXJydXB0ZWQoYm9vbCk7CkBAIC01
Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIoKSBjb25z
dDsKIAogcHJvdGVjdGVkOgotICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2Ft
cGxlQnVmZmVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDc4N2Ji
MTIxZTc0YzY2OTY1ODE4YjYyMDQ5YjIxZmU5Yjk1ZTcyZjcuLmJmODBlNTRiOGJkZGZjNjU3NzEz
MjlmNWMwOWZiYmI1MThlMDMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0x
MzgsMTEgKzEzOCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3Bw
ZWQoKSBmaW5hbCB7Ci0gICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgewot
ICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6Q2FwdHVyZUZhaWxlZChtX2lkKSwgMCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6U291cmNlU3RvcHBlZChtX2lkKSwgMCk7CisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZVN0b3Bw
ZWQobV9pZCwgbV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpLCAwKTsKICAgICB9CiAKICAgICB2
b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsIHsKQEAgLTI4OSw3ICsyODUsNzIgQEAgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHko
KQogICAgIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9
CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQ
VVByb2Nlc3NSZW1vdGVGcmFtZXMsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlvbkhh
bmRsZXIpCitDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpjcmVhdGVNaWNyb3Bob25lU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIG1lZGlhQ29uc3RyYWludHMs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQoreworICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgbWVkaWFDb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOworICAgIGlmICghc291cmNlT3JF
cnJvcikKKyAgICAgICAgcmV0dXJuIHNvdXJjZU9yRXJyb3I7CisKKyAgICBhdXRvJiBwZXJQYWdl
U291cmNlcyA9IG1fcGFnZVNvdXJjZXMuZW5zdXJlKHBhZ2VJZGVudGlmaWVyLCBbXSB7IHJldHVy
biBQYWdlU291cmNlcyB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAgIC8vIEZJWE1FOiBT
dXBwb3J0IG11bHRpcGxlIG1pY3JvcGhvbmVzIHNpbXVsdGFuZW91c2x5LgorICAgIGlmIChhdXRv
KiBtaWNyb3Bob25lU291cmNlID0gcGVyUGFnZVNvdXJjZXMubWljcm9waG9uZVNvdXJjZS5nZXQo
KSkgeworICAgICAgICBpZiAobWljcm9waG9uZVNvdXJjZS0+cGVyc2lzdGVudElEKCkgIT0gZGV2
aWNlLnBlcnNpc3RlbnRJZCgpICYmICFtaWNyb3Bob25lU291cmNlLT5pc0VuZGVkKCkpIHsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkVuZGluZyBtaWNyb3Bob25lIHNv
dXJjZSBhcyBuZXcgc291cmNlIGlzIHVzaW5nIGEgZGlmZmVyZW50IGRldmljZS4iKTsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgZmFpbCB0aGUgY2FwdHVyZSBpbiBh
IHdheSB0aGF0IHNob3dzIGEgc3BlY2lmaWMgY29uc29sZSBsb2cgbWVzc2FnZS4KKyAgICAgICAg
ICAgIG1pY3JvcGhvbmVTb3VyY2UtPmVuZEltbWVkaWF0bHkoKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGF1dG8gc291cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKKyAgICBwZXJQYWdl
U291cmNlcy5taWNyb3Bob25lU291cmNlID0gV2Vha1B0ciB7IHNvdXJjZS5nZXQoKSB9OworICAg
IHJldHVybiBzb3VyY2U7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhcHR1cmVGcm9tTXVsdGlwbGVD
YW1lcmFzKCkKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJldHVybiBmYWxzZTsK
KyNlbHNlCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlQ2FtZXJhU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIG1lZGlhQ29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQoreworICAgIGF1dG8mIHBlclBhZ2VTb3VyY2VzID0gbV9wYWdlU291cmNlcy5lbnN1cmUocGFn
ZUlkZW50aWZpZXIsIFtdIHsgcmV0dXJuIFBhZ2VTb3VyY2VzIHsgfTsgfSkuaXRlcmF0b3ItPnZh
bHVlOworICAgIGF1dG8qIGNhbWVyYVNvdXJjZSA9IHBlclBhZ2VTb3VyY2VzLmNhbWVyYVNvdXJj
ZS5nZXQoKTsKKyAgICBpZiAoY2FtZXJhU291cmNlKSB7CisgICAgICAgIC8vIEZJWE1FOiBPcHRp
bWl6ZSBtdWx0aXBsZSBjb25jdXJyZW50IGNhbWVyYXMuCisgICAgICAgIGlmIChjYW1lcmFTb3Vy
Y2UtPnBlcnNpc3RlbnRJRCgpID09IGRldmljZS5wZXJzaXN0ZW50SWQoKSAmJiAhY2FtZXJhU291
cmNlLT5pc0VuZGVkKCkpIHsKKyAgICAgICAgICAgIC8vIFdlIGNhbiByZXVzZSB0aGUgc291cmNl
LCBsZXQncyBkbyBpdC4KKyAgICAgICAgICAgIGF1dG8gc291cmNlID0gY2FtZXJhU291cmNlLT5j
bG9uZSgpOworICAgICAgICAgICAgaWYgKG1lZGlhQ29uc3RyYWludHMpIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIGVycm9yID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCptZWRpYUNvbnN0cmFp
bnRzKTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBXVEZNb3ZlKGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHJldHVybiBzb3VyY2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHNvdXJjZU9yRXJy
b3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2Fs
dCksIG1lZGlhQ29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZU9y
RXJyb3IpCisgICAgICAgIHJldHVybiBzb3VyY2VPckVycm9yOworCisgICAgaWYgKCFjYW5DYXB0
dXJlRnJvbU11bHRpcGxlQ2FtZXJhcygpICYmIGNhbWVyYVNvdXJjZSkgeworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihXZWJSVEMsICJFbmRpbmcgY2FtZXJhIHNvdXJjZSBhcyBuZXcgc291cmNl
IGlzIHVzaW5nIGEgZGlmZmVyZW50IGRldmljZS4iKTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBwcm9iYWJseSBmYWlsIHRoZSBjYXB0dXJlIGluIGEgd2F5IHRoYXQgc2hvd3MgYSBzcGVj
aWZpYyBjb25zb2xlIGxvZyBtZXNzYWdlLgorICAgICAgICBjYW1lcmFTb3VyY2UtPmVuZEltbWVk
aWF0bHkoKTsKKyAgICB9CisKKyAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNl
KCk7CisgICAgc291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVy
KTsKKyAgICBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UgPSBXZWFrUHRyIHsgc291cmNlLmdl
dCgpIH07CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlh
Q29uc3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgUGFnZUlk
ZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Qcm94eS0+d2lsbFN0YXJ0Q2FwdHVy
ZShkZXZpY2UudHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
LCAiUmVxdWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
IHsgfSwgeyB9LCB7IH0sIHsgfSwgMCk7CkBAIC0yOTksMTYgKzM2MCwxNCBAQCB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaQogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAg
ICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgp
LmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25z
dHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBjcmVhdGVNaWNyb3Bob25lU291cmNl
KGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6Q2FtZXJhOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2Fw
dHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7Ci0gICAg
ICAgIGlmIChzb3VyY2VPckVycm9yKQotICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJl
U291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAg
ICAgc291cmNlT3JFcnJvciA9IGNyZWF0ZUNhbWVyYVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFz
aFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBj
YXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAg
c291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRp
c3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2Fs
dCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3lzdGVtQXVkaW86CiAgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oCmluZGV4IDY1OGI1YjdkMTg4NmM0ODMwNmYxODAzYTM4ODA0Yjk1M2Q4
NTRmNTQuLmQzYWIwZGFhZmE1YWE2YjMxM2NmMjhmNzdkZmNjNzI2YmQyNzlkMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwog
CiAgICAgdXNpbmcgQ3JlYXRlU291cmNlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3Jl
OjpJbnRTaXplLCBkb3VibGUpPjsKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmluZyYmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNz
UmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmKTsKKyAgICB2b2lkIGNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2
aWNlSUQsIFN0cmluZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCBz
aG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Q3JlYXRlU291cmNlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgZW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKQEAgLTk0LDEx
ICs5NCwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRp
b24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBw
bHlSb3RhdGlvbik7CiAKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVN
aWNyb3Bob25lU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYW1l
cmFTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOworCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVBy
b3h5OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsKICAgICBVbmlxdWVSZWY8
Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKICAgICBXZWJDb3JlOjpPcmllbnRh
dGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsKKworICAgIHN0cnVjdCBQ
YWdlU291cmNlcyB7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gbWljcm9waG9uZVNvdXJjZTsKKyAgICAgICAgV2Vha1B0cjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjYW1lcmFTb3VyY2U7CisgICAgfTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBQYWdlU291cmNlcz4gbV9wYWdlU291cmNlczsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGZkNjQ4M2IwZTZkMDQ2
ZDQwNmMzNmJmMTEzNmMxN2YwNzBlZGE5MGIuLmVkN2Y0ZGFiMTZiZWE3OWI0MjFkOTY2MGVlMWU0
OWMzZjY5MDEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2Vz
IC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRl
dmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBj
b25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAoYm9v
bCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRh
PiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpCisgICAg
Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
IGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2VzcywgU3Ry
aW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNh
cGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywgV2Vi
Q29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKSBBc3luYwogICAgIFN0YXJ0UHJv
ZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAg
ICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBmNWE2MTY0
ZTgzMWM5Njg5OTVlMzMyZWYwMjY5YzBiOGMxOGNmOWYyLi44OGZkYTg0OTE0NjBiNzc3NTBkN2Rh
MzUwMWJlYTA1ZTBmMDMzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKQEAgLTM5LDEzICszOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVm
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGNhcHR1cmVEZXZpY2UpCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBwYWdlSWRlbnRpZmllcikpOwogfQogCi1TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0
dXJlRGV2aWNlKQotICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5s
YWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkKK1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1
cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorOiBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2Fw
dHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9LCB7IH0sIHBhZ2VJZGVudGlmaWVyKQogICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICNpZiBQ
TEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKaW5k
ZXggNzhiZmU1YjY0YjIwZGQwOTAxYjk5YWE3M2MzNWM5MDcwMjFkOWIwNi4uOWFmZmYyODAzNWEw
ZDAzMjVmMjZjMGQyZTljNmRhZGRhZWJhNWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0
OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwogICAgIAotY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U+IHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOwogICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTYyLDcgKzYyLDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwogCiBwcml2YXRlOgot
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IDY4ZGMx
MTVmMTY5ZjE5ZWY4OWY2NmZlNWM4ZjI0MWM4NWI5NzhkNzEuLmUzYTcwNGUxYmMyMjZlZDQ4MWEw
ZDc1ZDE4NzA1ZmEzYjlhNTI5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNwZWVj
aFJlY29nbml0CiAgICAgfQogI2VuZGlmCiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRlbnRpZmll
ciwgY2FwdHVyZURldmljZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVyLCBjYXB0
dXJlRGV2aWNlLCBzb3VyY2UucGFnZUlkZW50aWZpZXIoKSkpOwogfQogCiB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDk5ZGY0NzU1NDQyNjQ4ODY0
MmYwYWI4ZGU4MTM2OWUyNzhiNjdiZTUuLjNhMDA4MGM4YTY4MzAwMGEyNDgxODM2ZTU1YmEwMDE5
NzQzODVmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTA5OTYsMTIgKzEwOTk2LDEyIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFdlYlBh
Z2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlCiAgICAgICAgIHJl
dHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBj
YXB0dXJlIiB9OwogCiAgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3Mt
PmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIo
KSwgKmNhcHR1cmVEZXZpY2UpIH07CisgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
ciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1f
cHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcigpLCAqY2FwdHVyZURldmljZSwgbV93ZWJQYWdlSUQpIH07CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5z
dXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAq
Y2FwdHVyZURldmljZSkgfTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3Mt
PmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIo
KSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9OwogI2Vsc2UKLSAgICByZXR1cm4gU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpj
YXB0dXJlRGV2aWNlKTsKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJRCk7
CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5jcHAKaW5kZXggYjgxZGJiMjNlZmY0NTMzYTA3MjU1Nzg4YTI2ZWVhN2Mz
M2UwNWFlMy4uOWYwOWY2MjI2MjgyNjgzYzI2MGI1MzQ1MTZmOTgwOGRhNGI3YzQwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
CkBAIC0yMDgsOSArMjA4LDkgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCiAKICNlbmRpZgogCi12b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNyZWF0ZVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7CisgICAgYXV0byByZXN1
bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoZGV2aWNlLCBwYWdlSWRlbnRpZmllcik7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1lIHNv
dXJjZSIpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50aWZpZXIp
LCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgKaW5kZXggMTg4NDc3MWE4N2I3ZjY2OTkxOTBhNWRlNTY5MTE2Y2M0N2Y4NjFiMy4uNjIz
NDQ4ZmJhOWRkN2Y4NWFiNzMzNTkwNmQ0OGJhOTY5NDhmMzM2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVy
LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGlj
OgogCiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyCi0gICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsK
KyAgICB2b2lkIGNyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGRlbGV0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllcik7CiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAyMzgyZGYxZDhlNTlmMGE4ZjY4
MDFlMjY0NmE4N2YwZDc1MGQ2NjFkLi5hYjVlOThlNDk3MTlhYWRlZDVlOTFiYmQzNzM4MDdlMTBk
MDE3M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Ug
ZGV2aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKICAgICBEZWxl
dGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKICAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyKTsKICAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDJjZTk1NGY0OGJmZmUx
Zjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2UxMzguLmJjYTgzNDdlZTg3MTNjM2IyYmUxMzdhZTY0NDg1
NDk2N2E2NDFhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQzLDI5ICs0MywyNiBA
QAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFs
dGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3Vy
Y2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCku
YWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVk
aWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlOjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBT
dHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJ
ZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7
CiAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZl
U291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90
ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYm
IHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAg
ICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgcGFn
ZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29s
IHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYg
Y2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKICAgICAgICAgaWYgKCFzdWNjZWVk
ZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkp
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcsMTAgKzg0LDYgQEAgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhp
cyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBj
YXBhYmlsaXRpZXMpCkBAIC0xMTksMjAgKzExMiwyMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRp
bQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBt
X3Byb3h5Lmhhc0VuZGVkKCk7CisgICAgaWYgKG1fcHJveHkuaXNFbmRlZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3Byb3h5LmVuZCgpOwogICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2Uo
aWRlbnRpZmllcigpKTsKICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIo
KS5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCit2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OmNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCkKIHsKLSAgICBzdG9wKCk7Ci0gICAgaGFz
RW5kZWQoKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXB0dXJlRmFp
bGVkKCkKLXsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7CisgICAg
aWYgKGRpZEZhaWwpCisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICBlbHNlCisgICAgICAg
IGVuZCgpOwogICAgIGhhc0VuZGVkKCk7CiB9CiAKQEAgLTE0OSwxNCArMTQyLDYgQEAgdm9pZCBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQ
VVByb2Nlc3NDb25uZWN0aW8KICAgICBpZiAoaXNFbmRlZCgpKQogICAgICAgICByZXR1cm47CiAK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICh0aGlzICE9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3Vy
Y2UoKSkgewotICAgICAgICAvLyBUcmFjayBpcyBtdXRlZCBhbmQgaGFzIG5vIGNoYW5jZSBvZiBi
ZWluZyB1bm11dGVkLCBsZXQncyBlbmQgaXQuCi0gICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyKCkuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihjb25uZWN0aW9uKCkp
OwogICAgIG1fcHJveHkucmVzZXRSZWFkeSgpOwogICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRleCAyYTMzZjk3NjgwMzBhMDZhNzhlNDhmMzBkN2Fj
YzYzYmViNmQzYmM0Li41Y2MwMWYxM2IwZmEzOGJlOWMxZTgwNmZmNmZhY2E1ZGZlODJkYTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZSgpOwogCiAgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02NCwxNCArNjQsMTMgQEAgcHVibGlj
OgogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0
cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkgeyBtX3Byb3h5
LmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92
ZShlcnJvck1lc3NhZ2UpKTsgfQogCi0gICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZv
aWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOworICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoYm9vbCBk
aWRGYWlsKTsKIAogICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29y
ZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7CiAgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6Ci0gICAg
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAg
IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdE
YXRhKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKaW5kZXggYzU1MzM1MzNhYzU1YjFm
NWMyYWRhZWUxODg5NmYzNjE0ZjdjZWUzNS4uNjZiYjM4MjQ4MzFhMDM1N2JlNTYwZThhZTRkYTcy
NmYzOGUxNmU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKQEAgLTM4LDE3ICszOCwx
NyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsK
LSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNv
bnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCks
IGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcikpOwogICAgIG1hbmFnZXIuYWRkU291
cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgc291cmNlLT5jcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIHJldHVybiBzb3VyY2U7CiB9CiAKLVJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNl
LnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLmxh
YmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlciht
YW5hZ2VyKQogewpAQCAtNTcsNyArNTcsNyBAQCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6
OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbgogCiB2
b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
KQogewotICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2Fs
dCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVk
LCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRp
ZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgeworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFT
b3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRlbnRpZmllcigpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNz
YWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywg
YXV0bykgewogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewogICAgICAgICAgICAgbV9wcm94eS5k
aWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MDAsMjAgKzEwMCwyMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6YXBwbHlD
b25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZAogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZTo6aGFzRW5kZWQoKQogewotICAgIG1fcHJveHkuaGFzRW5kZWQo
KTsKKyAgICBpZiAobV9wcm94eS5pc0VuZGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cHJveHkuZW5kKCk7CiAgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwog
ICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShp
ZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2Fw
dHVyZVN0b3BwZWQoKQotewotICAgIHN0b3AoKTsKLSAgICBoYXNFbmRlZCgpOwotfQotCi12b2lk
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit2b2lkIFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKQogewot
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKKyAgICBpZiAoZGlkRmFp
bCkKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgIGVsc2UKKyAgICAgICAgZW5kKCk7CiAg
ICAgaGFzRW5kZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCmluZGV4IGY5YzkyMjQ1
YTIyNGNmNTJkNDU4MjY1ZWE0NjY4MzJlMWJjYmUyN2QuLjdhM2Q5Zjg2NmMwODFkM2U0OWM2NzRm
ODM4NDZiNTljNmZjNTQwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKQEAgLTQ3LDcgKzQ3
LDcgQEAgY2xhc3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIpOwogICAgIH5SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoKTsKIAogICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNTgsMTQgKzU4LDEzIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJp
bmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5h
cHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUo
ZXJyb3JNZXNzYWdlKSk7IH0KIAotICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKLSAgICB2b2lk
IGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKGJvb2wgZGlk
RmFpbCk7CiAKICAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlJiBzYW1wbGUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEgbWV0YWRhdGEp
IHsgdmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlLCBtZXRhZGF0YSk7IH0KICAgICB2b2lkIHNv
dXJjZU11dGVkQ2hhbmdlZChib29sIHZhbHVlLCBib29sIGludGVycnVwdGVkKTsKIAogcHJpdmF0
ZToKLSAgICBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2lu
Z0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKaW5kZXggMjQ0NmUzOThlOGMzNjg3OGQ0MTQ0MjBjYTVk
YmM3YmI1ZTg0NTE4Ni4uZTkxMGI2MTYwNTg5MDZhOTE5ZGU1MDhiNTliN2E5MjUxODJkMDBlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAKQEAgLTcwLDkgKzcwLDkgQEAgdm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAg
ICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0LCBDcmVhdGVDYWxsYmFjayYmIGNhbGxiYWNrLCBi
b29sIHNob3VsZFVzZVJlbW90ZUZyYW1lKQordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNo
U2FsdCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIENyZWF0ZUNhbGxi
YWNrJiYgY2FsbGJhY2ssIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUpCiB7Ci0gICAgY29ubmVj
dGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFpbnRz
LCBzaG91bGRVc2VSZW1vdGVGcmFtZSksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBjb25uZWN0
aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQsIG1fY29uc3RyYWludHMs
IHNob3VsZFVzZVJlbW90ZUZyYW1lLCBwYWdlSWRlbnRpZmllciksIFdURk1vdmUoY2FsbGJhY2sp
KTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmFwcGx5Q29uc3Ry
YWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0x
MDEsOCArMTAxLDEwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpmYWls
QXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYKICAgICAgICAgY2FsbGJhY2tz
LnRha2VGaXJzdCgpKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNFcnJvciB7
IHsgfSwgZXJyb3JNZXNzYWdlIH0pOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eTo6aGFzRW5kZWQoKQordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6
OmVuZCgpCiB7CisgICAgQVNTRVJUKCFtX2lzRW5kZWQpOworICAgIG1faXNFbmRlZCA9IHRydWU7
CiAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuaAppbmRleCA1OWUyYzI4MzQ1YzkwZjdkMmM0ZWE3ZjMwNmJhNDUwZjVhMTI1NzZm
Li5iMTEwZDFlN2Q2NWZhYzJhZjU0NDgyOWY3MmU0ZmVjYjI1ZTQ4MzZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oCkBAIC01MywxMyArNTMsMTQgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzczsgfQogCiAgICAgdXNpbmcgQ3JlYXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wsIFN0cmluZyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmLCBW
ZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiYmLCBXZWJDb3JlOjpJbnRTaXplLCBkb3Vi
bGUpPjsKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYsIENy
ZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxzZSk7CisgICAg
dm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ3JlYXRlQ2FsbGJhY2smJiwgYm9vbCBzaG91bGRVc2VSZW1vdGVGcmFtZSA9
IGZhbHNlKTsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOwogICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJp
bmcmJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNr
cyhjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci0gICAgCi0gICAgdm9pZCBoYXNFbmRlZCgp
OworCisgICAgYm9vbCBpc0VuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuZGVkOyB9CisgICAg
dm9pZCBlbmQoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3Rv
cFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5
Q29uc3RyYWludHNIYW5kbGVyJiYpOwpAQCAtNzgsNiArNzksNyBAQCBwcml2YXRlOgogICAgIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwogICAgIGJvb2wgbV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3Bh
Z2VJZGVudGlmaWVyOwogCiAgICAgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBtX2NvbnN0cmFp
bnRzOwogICAgIERlcXVlPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3Ry
YWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOwpAQCAtODUs
NiArODcsNyBAQCBwcml2YXRlOgogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4g
bV9jYWxsYmFjazsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgYm9vbCBtX2ludGVy
cnVwdGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07CiB9OwogCiBp
bmxpbmUgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBib29sIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGQyZDI0YWJhYjllYzM0YTBkYTIy
ZWI2NWE4YWQzY2I1ZjAwN2Q5N2MuLmM0YjcwNTE5ZDUwMTY4ZjBlNGMyNzAzODMxMTBjZWUzZjcx
NzFmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ1LDI5ICs0NSwyNSBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAotUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpCitSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWlu
dHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNh
bHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcikp
OwogICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIG1hbmFnZXIu
cmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7
CiAgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIHJldHVybiBzb3Vy
Y2U7CiB9CiAKLVJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgOiBSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lz
dGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCitSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5
KGlkZW50aWZpZXIsIGRldmljZSwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3RyYWlu
dHMpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2Ft
ZXJhKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRl
b0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkK
IHsKLSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQo
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwg
YXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVz
LCBhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplLCBhdXRvIGZyYW1lUmF0ZSkgbXV0YWJsZSB7Cisg
ICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBh
Z2VJZGVudGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9v
bCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYm
IGNhcGFiaWxpdGllcywgYXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUp
IG11dGFibGUgewogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewogICAgICAgICAgICAgbV9wcm94
eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBA
IC05MywxMSArODksNiBAQCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjp+UmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZXhpc3RpbmdHUFVQcm9jZXNzQ29ubmVjdGlvbigpKQogICAgICAgICAg
ICAgY29ubmVjdGlvbi0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKICAgICB9Ci0KLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwot
I2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0Q2FwYWJpbGl0
aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCkBAIC0x
NDcsMjAgKzEzOCwyMCBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7
CisgICAgaWYgKG1fcHJveHkuaXNFbmRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3By
b3h5LmVuZCgpOwogICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKICAg
ICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRl
bnRpZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJl
U3RvcHBlZCgpCit2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVTdG9wcGVk
KGJvb2wgZGlkRmFpbCkKIHsKLSAgICBzdG9wKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9p
ZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKLXsKLSAgICBSZWFs
dGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7CisgICAgaWYgKGRpZEZhaWwpCisgICAg
ICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICBlbHNlCisgICAgICAgIGVuZCgpOwogICAgIGhhc0Vu
ZGVkKCk7CiB9CiAKQEAgLTIwNCwxNCArMTk1LDYgQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8K
ICAgICBpZiAoaXNFbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6Q2FtZXJhICYmIHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpKSB7Ci0gICAgICAgIC8vIFRy
YWNrIGlzIG11dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0ZWQsIGxldCdzIGVu
ZCBpdC4KLSAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
I2VuZGlmCi0KICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRV
cGRhdGVTb3VyY2VDb25uZWN0aW9uKGNvbm5lY3Rpb24oKSk7CiAgICAgbV9wcm94eS5yZXNldFJl
YWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CmluZGV4IDViNDY1MTFmNDE4NzMyNDg2YjMyNmUwZGI5YTFlZTk3MTg5YWEyNzMuLjllZjBiYzcy
YjUzOWMwZjk2OTljYTFhYTMzMjYzZTI1ODI2OGU4OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApA
QCAtNTUsNyArNTUsNyBAQCBjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIGZpbmFsIDog
cHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cgogI2VuZGlmCiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CkBAIC02MywxNCArNjMsMTMgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmJik7CiAKLSAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7Ci0gICAgdm9pZCBjYXB0dXJlRmFp
bGVkKCkgZmluYWw7CisgICAgdm9pZCBjYXB0dXJlU3RvcHBlZChib29sIGRpZEZhaWwpOwogCiAg
ICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYsIFdlYkNv
cmU6OkludFNpemUsIFdlYkNvcmU6OlZpZGVvU2FtcGxlTWV0YWRhdGEpOwogICAgIHZvaWQgc291
cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwogCiBwcml2YXRl
OgotICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKKyAgICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5
LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA0Y2EyNTRm
NDZkZWJhZDlhMmM1ZDYxZDdlNWM4ZDhhMmViYzE2NTU4Li5lMTQ0MDFiYjcwN2U2NTdmMTVjMTE5
ZmViM2NmY2ZlM2QwZTM1OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTEyNCwzMyArMTI0
LDE4IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmCiAgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVu
dGlmaWVyKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBl
ZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1f
c291cmNlcy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3NvdXJjZXMu
ZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwg
W10oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKLSAgICAgICAgc291
cmNlLT5jYXB0dXJlU3RvcHBlZCgpOwotICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoKTsKLSAg
ICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7Ci0gICAg
ICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoKTsKLSAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkg
eyB9KTsKLX0KLQotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxlZChS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIGF1dG8gaXRl
cmF0b3IgPSBtX3NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0g
bV9zb3VyY2VzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzd2l0Y2hPbihpdGVyYXRv
ci0+dmFsdWUsIFtdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0g
ICAgICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOwotICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxl
ZCgpOwotICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2Up
IHsKLSAgICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVkKCk7CisgICAgc3dpdGNoT24oaXRlcmF0
b3ItPnZhbHVlLCBbZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3Vy
Y2UpIHsKKyAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsKKyAgICB9LCBb
ZGlkRmFpbF0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAg
ICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZChkaWRGYWlsKTsKKyAgICB9LCBbZGlkRmFpbF0oUmVm
PFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2Ut
PmNhcHR1cmVTdG9wcGVkKGRpZEZhaWwpOwogICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0p
OwogfQogCkBAIC0yMTIsNyArMTk3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKICAgICB9
LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCkBAIC0yMjUsNyArMjEwLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJl
U28KICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRp
b1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAg
cmV0dXJuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFp
bnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2
YWx1ZSkKQEAgLTIzOCw3ICsyMjMsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpW
aWRlb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YQogICAgIG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IHZhbHVlOwogfQogCi1DYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0Nh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0Nh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTI0OCwxMCArMjMzLDEwIEBAIENhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvCiAgICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLnNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgp
KTsKIAogICAgIGJvb2wgc2hvdWxkVXNlSU9TdXJmYWNlID0gIW1fbWFuYWdlci5tX3Nob3VsZFVz
ZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXM7Ci0gICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
KFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5h
Z2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpLCBzaG91bGRVc2VJT1N1cmZhY2UpKTsK
KyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3Jl
YXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRz
LCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcywgcGFnZUlkZW50aWZpZXIpLCBzaG91bGRVc2VJT1N1cmZhY2UpKTsKIH0KIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5
OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
K0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFj
dG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewogI2lmICFFTkFCTEUoR1BVX1BS
T0NFU1MpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKQEAgLTI2MCw3ICsy
NDUsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlz
cGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpCiAgICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLnNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgp
KTsKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZp
Y2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5h
Z2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNldFNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggZDhmYjgw
YjRmZThkYWU3Njk5NTQ4MmEyMzkxN2QyZmVhNTkyMGUxZi4uYjAxNDg0MWEyYmYxYjA4NGEzOWI3
OTczMGU2ZjI3ZjZmYjk0ZjEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTc0LDcgKzc0LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wp
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFs
OworICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpIGZpbmFsOwogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0
dXJlRGV2aWNlTWFuYWdlcjsgfQogICAgICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4mIHNwZWFrZXJEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zcGVha2Vy
RGV2aWNlczsgfQogCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0
U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBmaW5hbDsKICAgICAgICAgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5h
bCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KIAogICAg
ICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwpAQCAtMTAwLDcgKzEwMCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhi
b29sKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOwor
ICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7
CiAgICAgICAgIFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZp
Y2VNYW5hZ2VyOyB9CiAKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdl
cjsKQEAgLTEyNCw4ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKICAgICAvLyBNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKLSAgICB2b2lkIGNhcHR1cmVGYWlsZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgc291cmNlU3Rv
cHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBz
b3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29s
IGRpZEZhaWwpOwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIG11dGVkLCBib29sIGludGVycnVwdGVkKTsKIAog
ICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggOTc5Y2NlMjU4OTYwMDUzZmUx
NGY3MGU2ZDIzNjIwMTkwYjE2YWRiMC4uYjAzNjI5OWNiMzcxZmQyOWQ5YTM3OGQyMTcyMjA4NTBh
MThjYjNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsOCAr
MjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAgIENhcHR1cmVGYWlsZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCi0gICAgU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKKyAgICBTb3VyY2VTdG9w
cGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBib29sIGRpZEZh
aWwpCiAgICAgU291cmNlTXV0ZWRDaGFuZ2VkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkLCBib29sIG11dGVkLCBib29sIGludGVycnVwdGVkKQogICAgIFNvdXJjZVNl
dHRpbmdzQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIEFwcGx5
Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBkMzM0ZGE0MjIyMTRkMTRiMWY2OGM5NGYwNmMyMThkMThmOGI0NWI5Li42ZjM4MzFhODU5
NjY0MTFlOWZmNWNjZjE3MmY4NTJjMDkzYWZhZGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MjItMDMtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNj
b3BlIGNhcHR1cmUgc291cmNlcyBieSBwYWdlIGlkZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczNTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUmVtb3ZlIHBsYXRmb3JtL2lvcy9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUuaHRtbCBub3cgdGhhdCB3ZSBubyBsb25n
ZXIgaGFuZGxlIG11bHRpIGNhcHR1cmUgaW4gV2ViUHJvY2VzcyBidXQgaW4gR1BVUHJvY2Vzcy4K
KyAgICAgICAgVXBkYXRlIHBsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9hdWRpby1tdXRlZC1pbi1i
YWNrZ3JvdW5kLXRhYi1ncHUtcHJvY2Vzcy5odG1sIHRvIGJlIGxpa2UgcGxhdGZvcm0vaW9zL21l
ZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLmh0bWwKKyAgICAgICAgc28g
dGhhdCB0ZXN0IGlzIG5vIGxvbmdlciBkZXBlbmRlbnQgb24gc3luY2hyb25vdXMgZXZlbnQgZmly
aW5nLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWlu
LWJhY2tncm91bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1z
aW5nbGUtY2FwdHVyZS1ncHUtcHJvY2Vzcy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUuaHRtbDogUmVtb3ZlZC4KKwog
MjAyMi0wMy0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIGEgcHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0
dXJlIGdldHMgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9tZWRpYXN0cmVhbS9hdWRpby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi1ncHUtcHJvY2Vzcy5o
dG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWlu
LWJhY2tncm91bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWwKaW5kZXggZjY4Zjc3ODYzMzIzMTllNmM0
MjMwOGViYWZjZThjZTFjMzcwNjJhZi4uOWJlMDFmYjM2YTAyM2VjMDE3MmNmMjk5MjRmNWExMGIw
OWNlZDM3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFt
L2F1ZGlvLW11dGVkLWluLWJhY2tncm91bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2F1ZGlvLW11dGVkLWluLWJhY2tncm91
bmQtdGFiLWdwdS1wcm9jZXNzLmh0bWwKQEAgLTI5LDM2ICsyOSw0OCBAQAogICAgICAgICAgICAg
ICAgIH0pCiAKICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRlc3QoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJp
bGl0eShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2subXV0
ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2
ZSA9PiBhdWRpb1RyYWNrLm9ubXV0ZSA9IHJlc29sdmUpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2subXV0ZWQpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB2aWRlb1Ry
YWNrLm9ubXV0ZSA9IHJlc29sdmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11dGVkIik7CiAgICAgICAgICAg
ICAgICAgICAgIH0sICJIaWRlIHBhZ2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0ZWQi
KTsKICAgICAgICAgICAgICAgICB9KQogCiAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcHJv
bWlzZV90ZXN0KGFzeW5jICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0UGFnZVZpc2liaWxpdHkodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
YXVkaW9UcmFjay5tdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IGF1ZGlvVHJhY2sub251bm11dGUgPSByZXNvbHZlKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8g
dHJhY2sgaXMgYWN0aXZlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlkZW9UcmFj
ay5tdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHZpZGVvVHJhY2sub251bm11dGUgPSByZXNvbHZlKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9mYWxzZSh2aWRlb1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMg
YWN0aXZlIik7CiAgICAgICAgICAgICAgICAgICAgIH0sICJTaG93IHBhZ2UsIHZpZGVvIGFuZCBh
dWRpbyBzaG91bGQgYmUgdW5tdXRlZCIpOwogICAgICAgICAgICAgICAgIH0pCiAKICAgICAgICAg
ICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QoKCkgPT4gewor
ICAgICAgICAgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VWaXNpYmlsaXR5KGZhbHNlKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VNdXRlZCgi
Y2FwdHVyZWRldmljZXMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghYXVkaW9UcmFjay5tdXRlZCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGF1ZGlvVHJhY2sub25tdXRlID0g
cmVzb2x2ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNr
Lm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghdmlkZW9UcmFjay5tdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHZpZGVvVHJhY2sub25tdXRlID0gcmVzb2x2ZSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlk
ZW8gdHJhY2sgaXMgbXV0ZWQiKTsKICAgICAgICAgICAgICAgICAgICAgfSwgIkhpZGUgYW5kIG11
dGUgcGFnZSwgdmlkZW8gYW5kIGF1ZGlvIHNob3VsZCBiZSBtdXRlZCIpOwogICAgICAgICAgICAg
ICAgIH0pCiAKICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRlc3QoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJp
bGl0eSh0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGF1ZGlvVHJh
Y2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXNpbmdsZS1jYXB0dXJlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOWM1MGFkODMwMTdiYzIxNGY5NzVlYTJjMmMyOWI4MTQwZmQ1ZDU4MC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFRlc3Rpbmcgc3VjY2Vz
c2l2ZSBnZXRVc2VyTWVkaWEgY2FsbHMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1ncHUtcHJvY2Vz
cy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1zaW5nbGUtY2FwdHVyZS1ncHUtcHJvY2Vzcy5odG1sCmluZGV4IDdlNTMyNDMxNTczNDFlMDJj
M2FkNDE4OTIwNTQ4YTRiMTYxNGUyYmIuLmZhMGI1MzE1NjBjYmExODc4NGNkYzdmNGNjOGEzMDhl
N2ExNDAxNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVh
bS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZ3B1LXByb2Nlc3MuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0
dXJlLWdwdS1wcm9jZXNzLmh0bWwKQEAgLTEwLDEyICsxMCwyMiBAQAogICAgIDxib2R5PgogICAg
ICAgICA8c2NyaXB0PgogCi1hc3luYyBmdW5jdGlvbiB3YWl0Rm9yVHJhY2tNdXRlZCh0cmFjaykK
K2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JUcmFja0VuZGVkKHRyYWNrKQogewotICAgIGlmICh0cmFj
ay5tdXRlZCkKKyAgICBpZiAodHJhY2sucmVhZHlTdGF0ZSA9PT0gImVuZGVkIikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdHJhY2sub25tdXRl
ID0gcmVzb2x2ZSk7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsgdHJhY2sub25lbmRlZCA9IHJlc29sdmU7IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJ3YWl0
Rm9yVHJhY2tFbmRlZCB0aW1lZCBvdXQgZm9yIHRyYWNrICIgKyB0cmFjay5raW5kKSwgNTAwMCk7
IH0pOworfQorCithc3luYyBmdW5jdGlvbiBnZXRPdGhlck1pY3JvcGhvbmVEZXZpY2UodHJhY2sp
Cit7CisgICAgY29uc3QgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51
bWVyYXRlRGV2aWNlcygpOworICAgIGZvciAobGV0IGRldmljZSBvZiBkZXZpY2VzKSB7CisgICAg
ICAgIGlmIChkZXZpY2Uua2luZCA9PT0gImF1ZGlvaW5wdXQiICYmIHRyYWNrLmtpbmQgPT09ICJh
dWRpbyIgJiYgZGV2aWNlLmRldmljZUlkICE9PSB0cmFjay5nZXRTZXR0aW5ncygpLmRldmljZUlk
KQorICAgICAgICAgICAgIHJldHVybiBkZXZpY2UuZGV2aWNlSWQ7CisgICAgfQorICAgIHJldHVy
biAiIjsKIH0KIAogcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CkBAIC0yNSwyNyArMzUsMjggQEAg
cHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgdmFyIGZpcnN0U3RyZWFtOwogICAgIHZhciBh
dWRpb1RyYWNrOwogICAgIHZhciB2aWRlb1RyYWNrOwotICAgIHJldHVybiBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlLCB2aWRlbzogeyBmYWNpbmdNb2Rl
OiB7IGV4YWN0OiBbJ3VzZXInXSB9IH0gfSkudGhlbigoc3RyZWFtKSA9PiB7CisgICAgcmV0dXJu
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVv
OiB7IGZhY2luZ01vZGU6IHsgZXhhY3Q6IFsndXNlciddIH0gfSB9KS50aGVuKGFzeW5jIChzdHJl
YW0pID0+IHsKICAgICAgICAgZmlyc3RTdHJlYW0gPSBzdHJlYW07CiAgICAgICAgIGF1ZGlvVHJh
Y2sgPSBmaXJzdFN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwogICAgICAgICB2aWRlb1RyYWNr
ID0gZmlyc3RTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKIAotICAgICAgICBhc3NlcnRfZmFs
c2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOwotICAgICAgICBh
c3NlcnRfZmFsc2UodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2ZSIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvVHJhY2sucmVhZHlTdGF0ZSwgImxpdmUiLCAiYXVk
aW8gdHJhY2sgaXMgbGl2ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvVHJhY2sucmVh
ZHlTdGF0ZSwgImxpdmUiLCAidmlkZW8gdHJhY2sgaXMgbGl2ZSIpOwogCi0gICAgICAgIHJldHVy
biBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlfSk7Cisg
ICAgICAgIGNvbnN0IG5ld01pY3JvcGhvbmVEZXZpY2VJZCA9IGF3YWl0IGdldE90aGVyTWljcm9w
aG9uZURldmljZShhdWRpb1RyYWNrKTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHsgZGV2aWNlSWQgOiBuZXdNaWNyb3Bob25lRGV2
aWNlSWR9IH0pOwogICAgIH0pLnRoZW4oYXN5bmMgKHN0cmVhbSkgPT4gewotICAgICAgICBhd2Fp
dCB3YWl0Rm9yVHJhY2tNdXRlZChhdWRpb1RyYWNrKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvclRy
YWNrRW5kZWQoYXVkaW9UcmFjayk7CiAKLSAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5t
dXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZSh2aWRl
b1RyYWNrLm11dGVkLCAidmlkZW8gdHJhY2sgaXMgYWN0aXZlIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoYXVkaW9UcmFjay5yZWFkeVN0YXRlLCAiZW5kZWQiLCAiYXVkaW8gdHJhY2sgaXMgZW5k
ZWQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlb1RyYWNrLnJlYWR5U3RhdGUsICJsaXZl
IiwgInZpZGVvIHRyYWNrIGlzIGxpdmUiKTsKIAogICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyBmYWNpbmdNb2RlOiB7IGV4YWN0OiBb
ImVudmlyb25tZW50Il0gfSB9IH0pOwogICAgIH0pLnRoZW4oYXN5bmMgKHN0cmVhbSkgPT4gewot
ICAgICAgICBhd2FpdCB3YWl0Rm9yVHJhY2tNdXRlZCh2aWRlb1RyYWNrKTsKKyAgICAgICAgYXdh
aXQgd2FpdEZvclRyYWNrRW5kZWQodmlkZW9UcmFjayk7CiAKLSAgICAgICAgYXNzZXJ0X3RydWUo
YXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkLCBzZWNvbmQgY2hlY2siKTsK
LSAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIG11
dGVkIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYXVkaW9UcmFjay5yZWFkeVN0YXRlLCAiZW5k
ZWQiLCAiYXVkaW8gdHJhY2sgaXMgZW5kZWQsIHNlY29uZCBjaGVjayIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHZpZGVvVHJhY2sucmVhZHlTdGF0ZSwgImVuZGVkIiwgInZpZGVvIHRyYWNrIGlz
IGVuZGVkIik7CiAgICAgfSk7CiB9LCAiVGVzdGluZyBzdWNjZXNzaXZlIGdldFVzZXJNZWRpYSBj
YWxscyIpOwogICAgICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUuaHRtbCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNh
cHR1cmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDY2ODJlZTMzOWQyZTk0
ZTM1MWUyOTliNGIxMzM1ZTIyNjQ0NDJjOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCww
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0Vu
YWJsZWQ9ZmFsc2UgQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZD1mYWxzZSBdIC0tPgot
PCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+aU9TIHNwZWNpZmljIGNvbnN0cmFpbnRzIG9mIG9u
ZSBhY3RpdmUgY2FwdHVyZSBzb3VyY2UgYXQgYSB0aW1lPC90aXRsZT4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHNjcmlwdD4KLQot
YXN5bmMgZnVuY3Rpb24gd2FpdEZvclRyYWNrTXV0ZWQodHJhY2spCi17Ci0gICAgaWYgKHRyYWNr
Lm11dGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB0cmFjay5vbm11dGUgPSByZXNvbHZlKTsKLX0KLQotcHJvbWlzZV90ZXN0KCh0ZXN0KSA9
PiB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7Ci0KLSAgICB2YXIgZmlyc3RTdHJlYW07Ci0gICAgdmFy
IGF1ZGlvVHJhY2s7Ci0gICAgdmFyIHZpZGVvVHJhY2s7Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVvOiB7IGZhY2luZ01v
ZGU6IHsgZXhhY3Q6IFsndXNlciddIH0gfSB9KS50aGVuKChzdHJlYW0pID0+IHsKLSAgICAgICAg
Zmlyc3RTdHJlYW0gPSBzdHJlYW07Ci0gICAgICAgIGF1ZGlvVHJhY2sgPSBmaXJzdFN0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpWzBdOwotICAgICAgICB2aWRlb1RyYWNrID0gZmlyc3RTdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXTsKLQotICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRl
ZCwgImF1ZGlvIHRyYWNrIGlzIGFjdGl2ZSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UodmlkZW9U
cmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2ZSIpOwotCi0gICAgICAgIHJldHVybiBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlfSk7Ci0gICAg
fSkudGhlbihhc3luYyAoc3RyZWFtKSA9PiB7Ci0gICAgICAgIGF3YWl0IHdhaXRGb3JUcmFja011
dGVkKGF1ZGlvVHJhY2spOwotCi0gICAgICAgIGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQs
ICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOwotICAgICAgICBhc3NlcnRfZmFsc2UodmlkZW9UcmFj
ay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2ZSIpOwotCi0gICAgICAgIHJldHVybiBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IGZhY2luZ01vZGU6IHsg
ZXhhY3Q6IFsiZW52aXJvbm1lbnQiXSB9IH0gfSk7Ci0gICAgfSkudGhlbihhc3luYyAoc3RyZWFt
KSA9PiB7Ci0gICAgICAgIGF3YWl0IHdhaXRGb3JUcmFja011dGVkKHZpZGVvVHJhY2spOwotCi0g
ICAgICAgIGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRl
ZCwgc2Vjb25kIGNoZWNrIik7Ci0gICAgICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQs
ICJ2aWRlbyB0cmFjayBpcyBtdXRlZCIpOwotICAgIH0pOwotfSwgIlRlc3Rpbmcgc3VjY2Vzc2l2
ZSBnZXRVc2VyTWVkaWEgY2FsbHMiKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5Pgot
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454111</attachid>
            <date>2022-03-08 05:36:51 -0800</date>
            <delta_ts>2022-03-09 00:05:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237359-20220308143648.patch</filename>
            <type>text/plain</type>
            <size>156183</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYyMTMyOTNhMjY4Zjg5
ZjY5Mjc1NGIxZGIzYTY0ODYzZTdjOTc4Yi4uYTM0NzQyYjFiMDE1Njg4NGM3OTgyMWU4YjIzYTk4
YWU5YmNjYjllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAzLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBjYXB0dXJlIHNv
dXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIFBhc3MgUGFnZUlkZW50aWZpZXIgd2hlbiBjcmVhdGluZyBjYXB0dXJl
IHNvdXJjZXMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBhdCBXZWJLaXQgbGF5ZXIgdG8gYmV0dGVy
IGhhbmRsZSBjcmVhdGlvbiBvZiBtdWxpdHBsZSBzb3VyY2VzLgorICAgICAgICBTaW5jZSB3ZSBh
cmUgbm93IHNvbWV0aW1lcyBhbnN3ZXJpbmcgdG8gZ2V0VXNlck1lZGlhIGJ5IGNsb25pbmcgc291
cmNlcyBkaXJlY3RseSwKKyAgICAgICAgZml4IGEgYnVnIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
dG8gdXNlIHRoZSBwcmVzZXQgYXNwZWN0IHJhdGlvIHRvIGNvbXB1dGUgbWlzc2luZyB3aWR0aCBv
ciBoZWlnaHQuCisgICAgICAgIEludHJvZHVjZSBhIHdheSB0byBlbmQgaW1tZWRpYXRlbHkgYSBj
YXB0dXJlIHNvdXJjZSwgdGhpcyBpcyB1c2VkIG9uIEdQVVByb2Nlc3Mgc2lkZSBpbiBjYXNlIHN0
YXJ0aW5nIGEgY2FwdHVyZSB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZUlPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
bW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
Lmg6CisKIDIwMjItMDMtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBhIHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBjYXB0dXJlIGluIGNhc2UgYXVk
aW8gY2FwdHVyZSBnZXRzIGludGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU3MTA5ZGIwN2E1Nzk5N2Vm
ZmRkNTY1ZDA0OTA5ZGQwNjFkODk3ZmIuLjRhNjdhNmM5MDY0OTJmYTllYzk0Y2YwZDIwY2NkM2Rh
MzQ2ZTdlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDMtMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNjb3BlIGNhcHR1cmUgc291cmNl
cyBieSBwYWdlIGlkZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzczNTkKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgUGFzcyBQYWdlSWRlbnRpZmllciB3aGVyZSBhcHByb3ByaWF0ZS4KKyAgICAg
ICAgTWFrZSB1c2Ugb2YgUGFnZUlkZW50aWZpZXIgaW4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eToKKyAgICAgICAgLSBGb3IgbWljcm9waG9uZSwgaWYgdGhlcmUgaXMgYSBzb3VyY2Ugd2l0
aCBhIGRpZmZlcmVudCBkZXZpY2UsCisgICAgICAgICAgZmFpbCB0aGUgc291cmNlIGFzIHdlIGFy
ZSBub3QgeWV0IHN1cHBvcnRpbmcgY29uY3VycmVudCBjYXB0dXJlcy4KKyAgICAgICAgLSBGb3Ig
Y2FtZXJhLCBpZiB0aGVyZSBpcyBhIHNvdXJjZSB3aXRoIGEgZGlmZmVyZW50IGRldmljZSwKKyAg
ICAgICAgICBmYWlsIHRoZSBzb3VyY2UgYXMgd2UgYXJlIG5vdCB5ZXQgc3VwcG9ydGluZyBjb25j
dXJyZW50IGNhcHR1cmVzIChvbmx5IG9uIGlPUykuCisgICAgICAgICAgT3RoZXJ3aXNlLCBpZiB0
aGVyZSBpcyBhIG1hdGNoaW5nIHNvdXJjZSwgY2xvbmUgaXQgc28gdGhhdCB3ZSByZWR1Y2UgdGhl
IG92ZXJoZWFkCisgICAgICAgICAgb2YgY3JlYXRpbmcgYSBuZXcgc291cmNlIChzZXR0aW5nIHVw
IGEgY2FtZXJhIGNhbiBiZSBhbiBleHBlbnNpdmUgb3BlcmF0aW9uKS4KKyAgICAgICAgV2Ugc2ls
ZW50bHkgZmFpbCAobWVhbmluZyB0aGVyZSBpcyBubyBjb25zb2xlIGxvZyBtZXNzYWdlIGZvciBu
b3csIHdoaWxlIHN0aWxsIGZpcmluZyBlbmRlZCBldmVudCkgYnV0IGFkZCByZWxlYXNlIGxvZ2dp
bmcgdG8gZGV0ZWN0IHRoaXMgY2FzZS4KKyAgICAgICAgTWlub3IgcmVmYWN0b3JpbmcgdG8gaGF2
ZSBvbmUgbWVzc2FnZSBpbiBjYXNlIGNhcHR1cmUgc291cmNlIGVuZHMgKHN0b3BwZWQgb3IgZmFp
bGluZykgaW5zdGVhZCBvZiB0d28uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAyMi0w
My0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEg
cHJlZmVyZW5jZSB0byBtdXRlIHZpZGVvIGNhcHR1cmUgaW4gY2FzZSBhdWRpbyBjYXB0dXJlIGdl
dHMgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDA5OWQxM2EwNzJmNmE5YTYxODc2
MWE2NjNjMDJiMDYwNGU5Yjg1MzIuLmFlMDg4NWYzMjZjZTQwYTZmMDFlZmQzYTM5YTMzYjFlZTUy
YzQzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEzNyw3ICsxMTM3LDYgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aAogICAgIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAogICAgIHBhZ2UvUGFnZUdyb3VwLmgKLSAg
ICBwYWdlL1BhZ2VJZGVudGlmaWVyLmgKICAgICBwYWdlL1BhZ2VJbmxpbmVzLmgKICAgICBwYWdl
L1BhZ2VPdmVybGF5LmgKICAgICBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0xMjk0
LDYgKzEyOTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vUE9ESW50ZXJ2YWwuaAogICAgIHBsYXRmb3JtL1BPREludGVydmFsVHJlZS5oCiAg
ICAgcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKyAgICBwbGF0Zm9ybS9QYWdlSWRlbnRpZmll
ci5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZC5oCiAgICAgcGxhdGZvcm0vUGFzdGVib2FyZENv
bnRleHQuaAogICAgIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA1
MDZmMzM3NGI3ZTZkNzZkNTk4ZjQ5NTNkODQ5YzM4ZWFhYzcyN2U5Li4wZmFhOGJiNTVhMTk4NWU5
ODBmNzM2YjYxZGEwZDYzMGQ2Y2FlM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9p
ZCBNZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWludHMsIFByb21pc2UmJgogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLnNldERlZmF1bHRW
aWRlb0NvbnN0cmFpbnRzKCk7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlh
UmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OlVz
ZXJNZWRpYSwgV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFp
bnRzKSwgaXNVc2VyR2VzdHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAg
IGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVk
aWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEsIFdURk1vdmUoYXVkaW9Db25zdHJhaW50
cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCwg
KmRvY3VtZW50LT5wYWdlSUQoKSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKIAogICAgIGlmICghZG9j
dW1lbnQtPnNldHRpbmdzKCkuZ2V0VXNlck1lZGlhUmVxdWlyZXNGb2N1cygpKSB7CiAgICAgICAg
IHJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6
OmdldERpc3BsYXlNZWRpYShjb25zdCBEaXNwbGF5TWVkaWFTdHJlYW1Db25zdHJhaW50cyYgY29u
c3RyYWkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJN
ZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBl
OjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNVc2VyR2Vz
dHVyZVByaXZpbGVkZ2VkIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9
IFVzZXJNZWRpYVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0
OjpUeXBlOjpEaXNwbGF5TWVkaWEsIHsgfSwgV1RGTW92ZSh2aWRlb0NvbnN0cmFpbnRzKSwgaXNV
c2VyR2VzdHVyZVByaXZpbGVkZ2VkLCAqZG9jdW1lbnQtPnBhZ2VJRCgpIH0sIFdURk1vdmUocHJv
bWlzZSkpOwogICAgIHJlcXVlc3QtPnN0YXJ0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDNl
Mzk0NGJjZDUwMTdkYjIyN2Y5MjhlYWE3YWI0OTY5NDcxMmFiY2EuLjQ2ZDI1ZWE2NGQ1YmUyYzNi
ZDhkMDAxMDNlMGM1NGMwMGU3YWUyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDcwLDQ0ICs0NzAs
MTIgQEAgTWVkaWFQcm9kdWNlck1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbVRyYWNrOjpjYXB0
dXJlU3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgYm9vbCBpc1NvdXJjZUNhcHR1cmluZ0ZvclRy
YWNrSW5Eb2N1bWVudChSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIERvY3VtZW50JiBkb2N1
bWVudCkKLXsKLSAgICBmb3IgKGF1dG8qIHRyYWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0g
ICAgICAgIGlmICh0cmFjay0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQgfHwgdHJhY2stPmVuZGVk
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgp
LmlzU2FtZUFzKHNvdXJjZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRl
Q2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwot
ICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogYWN0aXZlQXVkaW9T
b3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCk7Ci0gICAgaWYgKGFjdGl2ZUF1ZGlvU291cmNlICYm
IGlzU291cmNlQ2FwdHVyaW5nRm9yVHJhY2tJbkRvY3VtZW50KCphY3RpdmVBdWRpb1NvdXJjZSwg
ZG9jdW1lbnQpKSB7Ci0gICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgp
LmNvbnRhaW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpBdWRpb0NhcHR1cmVJc011dGVkKTsK
LSAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1l
bnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZp
c2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKLSAgICB9Ci0KLSAgICBhdXRvKiBhY3RpdmVWaWRl
b1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2Fw
dHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKLSAgICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2Ug
JiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZVZpZGVvU291cmNl
LCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRl
KCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQp
OwotICAgICAgICBhY3RpdmVWaWRlb1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3Vt
ZW50LmhpZGRlbigpKTsKLSAgICB9Ci0jZWxzZQogICAgIGZvciAoYXV0byogY2FwdHVyZVRyYWNr
IDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7CiAgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3Vt
ZW50KCkgPT0gJmRvY3VtZW50ICYmICFjYXB0dXJlVHJhY2stPmVuZGVkKCkpCiAgICAgICAgICAg
ICBjYXB0dXJlVHJhY2stPnVwZGF0ZVRvUGFnZU11dGVkU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYK
IH0KIAogc3RhdGljIHZvaWQgdXBkYXRlVmlkZW9DYXB0dXJlQWNjb3JkaW5nTWljcm9waG9uZUlu
dGVycnVwdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgaXNNaWNyb3Bob25lSW50ZXJydXB0
ZWQpCkBAIC01MjUsMTYgKzQ5MywyMiBAQCBzdGF0aWMgdm9pZCB1cGRhdGVWaWRlb0NhcHR1cmVB
Y2NvcmRpbmdNaWNyb3Bob25lSW50ZXJydXB0aW9uKERvY3VtZW50JiBkb2N1bWVudAogdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKIHsKICAgICBBU1NFUlQo
aXNDYXB0dXJlVHJhY2soKSk7Ci0gICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKTsK
KyAgICBhdXRvJiBkb2N1bWVudCA9ICp0aGlzLT5kb2N1bWVudCgpOworICAgIGF1dG8qIHBhZ2Ug
PSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBzd2l0Y2ggKHNvdXJjZSgpLmRldmljZVR5cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChw
YWdlLT5tdXRlZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlv
Q2FwdHVyZUlzTXV0ZWQpKTsKKyAgICAgICAgbV9wcml2YXRlLT5zZXRNdXRlZChwYWdlLT5tdXRl
ZFN0YXRlKCkuY29udGFpbnMoTWVkaWFQcm9kdWNlck11dGVkU3RhdGU6OkF1ZGlvQ2FwdHVyZUlz
TXV0ZWQpCisgICAgICAgICAgICB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0
dGluZ3MoKS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1l
cmE6Ci0gICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRh
aW5zKE1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKSk7CisgICAg
ICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpLmNvbnRhaW5zKE1lZGlh
UHJvZHVjZXJNdXRlZFN0YXRlOjpWaWRlb0NhcHR1cmVJc011dGVkKQorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgICAgICAgICB8fCBkb2N1bWVudC5oaWRkZW4oKQorI2VuZGlmCisgICAg
ICAgICk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U2NyZWVuOgogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMzQ5YWRmNmI0MmNjYjNjYzFkNmMw
N2EyZTU0NGMyYmM1OTNhY2E0Yi4uYWZiY2U3YTlmNDU2ZjdkNTA3Njg3ODA5Y2JlMTZlMTFiZTQw
ZTI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC02Miw5ICs2Miw5IEBA
IHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpCiAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7CiB9CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNl
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpj
cmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZp
Y2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsICJTcGVlY2hJRCJfcywgeyB9KTsK
KyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCAi
U3BlZWNoSUQiX3MsIHsgfSwgcGFnZUlkZW50aWZpZXIpOwogfQogCiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFD
YWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRl
Q2FsbGJhY2ssIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmgKaW5kZXggY2E5MDNiMTJiN2YyMjE5MzVmNWRmYTE5OGRiYjFhOGM0Yzc5
ZDM0OS4uZTMyOGRjM2M3Y2QzMGY2OTkzMDI3Y2I3ZDk4NGM2NjE3ZmI5NmMxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHVzaW5n
IFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlJik+OwogICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3Rh
dGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4g
ZmluZENhcHR1cmVEZXZpY2UoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYsIFBhZ2VJZGVudGlmaWVy
KTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNWQzMjZlMzk4YjNmYWVj
NTMwODc3OWYyNzk1NjI1YzZjN2YxYWY1Li5kMWUxYTAzZDFiM2Y5ZDdjOTE4NWI5YTI3MzMzMGRh
M2JlOTcxNTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjE5MCw3ICsyMTkwLDYgQEAgcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcAogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ODMyNDA1Y2U3OTc4ODQ5NDljYjM0MzAyM2I5
MDAxYWJlZWI2M2Y1Li4xMThkMGUyNjNkZjY2YTVlMDUwM2JjNzViOWZiYjY3YTY0MWJjMDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMTgxLDYgKzExODEsNyBAQAogCQk0MThGQ0JFNzI3MTVBMjhGMDBGOTZFQ0EgLyogUlRD
UnRwQ29kZWNDYXBhYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUUwQTdEQzIzQkI2M0RCMDA1NjEwNjAgLyogUlRDUnRwQ29kZWNDYXBhYmls
aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NDE5MEYzQTUyNEEwQjRFRTAwNTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOTBGM0EzMjQ5RDE1MjgwMDUz
MUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNGIC8qIFJlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tICovOyB9OworCQk0MTkyQkIxMzI3Q0Y2Mzg2MDBGMjlB
NDYgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOTJCQjEyMjdDRjYzODMwMEYyOUE0NiAvKiBQYWdlSWRlbnRpZmllci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOUFD
RjkyMUY5N0U3REEwMDlGMUE4MyAvKiBTZXJ2aWNlV29ya2VyRmV0Y2guaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUFDRjhFMUY5N0U3RDUwMDlGMUE4
MyAvKiBTZXJ2aWNlV29ya2VyRmV0Y2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0MTlCQzJERjE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExp
bmtTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE5QkMyREQxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCAqLzsgfTsKIAkJ
NDE5QkU3NTkxQkM3RjQyQjAwRTFDODVCIC8qIFdlYkNvcmVCdWlsdGluTmFtZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUJFNzUyMUJDN0YzREIw
MEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRpbk5hbWVzLmggKi87IH07CkBAIC0xMzYzLDcgKzEzNjQs
NiBAQAogCQk0NkE3OEIzNDI3OTlCRDcxMDAxMTU0RkUgLyogV29ya2VyT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxQjFEMjYyNkYxOEE0
QjAwODgyREEyIC8qIFdvcmtlck9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkFBQUEzRDI1RDM2MzIwMDBCQUY0MkYgLyogQXVkaW9G
aWxlUmVhZGVyQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QUFBQTNBMjVEMzYzMTQwMEJBRjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5o
ICovOyB9OwogCQk0NkI2M0Y2QzFDNkU4RDE5MDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3Rv
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCNjNG
NkIxQzZFOENERjAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0NkI2NTBERDIyOTYyNjI3MDBG
RDhBQTQgLyogUGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2QjY1MERCMjI5NjI2MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmll
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2
Qjg1OTNDMjYxNjcyMjcwMDE5RURDNiAvKiBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCODU5M0EyNjE2
NzIwQzAwMTlFREM2IC8qIFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyLmggKi87IH07CiAJCTQ2
Qjk1MTk1MjA3RDYzMzQwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOEEyMDdENjMyODAwQTdE
MkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZCOTUxOTYyMDdENjMzQTAwQTdEMkREIC8qIEFic3RyYWN0
RnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
Qjk1MThGMjA3RDYzMkIwMEE3RDJERCAvKiBBYnN0cmFjdEZyYW1lLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYxMDUsNyArNjEwNSw2IEBACiAJ
CTA3NTM4NjAwMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hl
ZFRleHRUcmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRUZXh0
VHJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1NEE1RTgyMTVFQTNCNzAw
MkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVc2FnZUluZm8uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODg1OSw2ICs4ODU4LDcgQEAKIAkJNDE5MEYzQTEyNDlEMTUyNzAwNTMxQzU3IC8qIEZyYW1lUmF0
ZU1vbml0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnJhbWVS
YXRlTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTBGM0EzMjQ5
RDE1MjgwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxOTJCQjEyMjdDRjYzODMwMEYyOUE0NiAvKiBQYWdlSWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTk0NTY5NDIwMzUwMkE1MDA0QkEyNzcgLyogQXBwbGljYXRp
b25DYWNoZVJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxOTQ1Njk2MjAzNTAyQTYwMDRCQTI3NyAvKiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBw
bGljYXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxOUFDRjhFMUY5N0U3RDUwMDlGMUE4MyAvKiBTZXJ2aWNlV29ya2VyRmV0Y2guaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckZldGNoLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MzE0LDcgKzkzMTQsNiBAQAogCQk0NkFBQUEzQzI1
RDM2MzE0MDBCQUY0MkYgLyogQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkFDRDgxMTI3MDE2NTZBMDBFRjhDRUQgLyogTmF2aWdh
dGlvblJlcXVlc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBO
YXZpZ2F0aW9uUmVxdWVzdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZC
NjNGNkIxQzZFOENERjAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudFRhcmdldEN1c3RvbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0NkI2NTBEQjIyOTYyNjI3MDBGRDhBQTQgLyogUGFnZUlkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUlkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZCODU5M0EyNjE2NzIwQzAwMTlFREM2
IC8qIFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEJ1
ZmZlclNvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1
MThBMjA3RDYzMjgwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdERPTVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NkI5NTE4QzIwN0Q2MzI5MDBBN0QyREQgLyogUmVtb3RlRnJhbWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlRnJhbWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg2OTUsNyArMTg2OTQsNiBAQAogCQkJCTRB
NEY2NTZEMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
LmggKi8sCiAJCQkJNEEwRkZBOUYxQUFGNUVBMjAwNjI4MDNCIC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwICovLAogCQkJCTRBMEZGQUEwMUFBRjVFQTIwMDYyODAzQiAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmggKi8sCi0JCQkJMDc1NEE1RUIyMTVFQURGMzAwMkQzQTk5IC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLywKIAkJCQkwNzU0QTVFODIxNUVBM0I3
MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLywKIAkJCQk0MUI4Nzc2
MDIzREUxMDQyMDAzNjM4QjggLyogUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaCAqLywK
IAkJCQk0QTRGNjU2RTFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmNwcCAqLywKQEAgLTI0MjY2LDcgKzI0MjY0LDYgQEAKIAkJCQk5MzAyQjBCRTBENzlGODJD
MDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8sCiAJCQkJN0E2NzRCRDkwRjlFQkY0RTAwNkNGMDk5
IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgKi8sCiAJCQkJN0E2NzRCREEwRjlFQkY0RTAw
NkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovLAotCQkJCTQ2QjY1MERCMjI5NjI2
MjcwMEZEOEFBNCAvKiBQYWdlSWRlbnRpZmllci5oICovLAogCQkJCUNERUZEQTBEMjcxMjI5QkEw
MDU1NTlBNyAvKiBQYWdlSW5saW5lcy5oICovLAogCQkJCTJENUM5Q0ZCMTlDN0I1MkUwMEIzQzVD
MSAvKiBQYWdlT3ZlcmxheS5jcHAgKi8sCiAJCQkJMkQ1QzlDRkMxOUM3QjUyRTAwQjNDNUMxIC8q
IFBhZ2VPdmVybGF5LmggKi8sCkBAIC0zMDExMSw2ICszMDEwOCw3IEBACiAJCQkJNDE3OEVGMTYy
NDEyNUI2QzAwMTkzQzc0IC8qIE5vd1BsYXlpbmdNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MTc4RUYx
NDI0MTI1QjZDMDAxOTNDNzQgLyogTm93UGxheWluZ01hbmFnZXIuaCAqLywKIAkJCQk0MTg0RjUx
NTFFQUYwNTk4MDBGMThCRjAgLyogT3JpZW50YXRpb25Ob3RpZmllci5oICovLAorCQkJCTQxOTJC
QjEyMjdDRjYzODMwMEYyOUE0NiAvKiBQYWdlSWRlbnRpZmllci5oICovLAogCQkJCTJFRTAyQTFF
MUY3MzI0MjgwMDA2QUY3MiAvKiBQYXN0ZWJvYXJkLmNwcCAqLywKIAkJCQk0QjI3MDhDNTBBRjE5
RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovLAogCQkJCUY0MERBQUVCMjVEOUYyNUUwMDEx
QjRGQSAvKiBQYXN0ZWJvYXJkQ29udGV4dC5oICovLApAQCAtMzY1NjEsNyArMzY1NTksNyBAQAog
CQkJCTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0M0MUZBQTQ0QkMwMDM3RDFFNiAvKiBQYWdlSGVh
cEFnZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0NkI2NTBERDIyOTYyNjI3MDBGRDhBQTQgLyog
UGFnZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxOTJCQjEzMjdDRjYzODYwMEYy
OUE0NiAvKiBQYWdlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFRkRBMEUyNzEy
MjlCQTAwNTU1OUE3IC8qIFBhZ2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNCMDUy
NDFGQjUxRjMzMDAwODlCOTcgLyogUGFnZU5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ1QzlEMDAxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUlkZW50aWZpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDRkNWY4ZDI5NzU2M2VlMDI5YzQxM2U5Y2RhNzQ5NGM1ZmE0ZDhhZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VJZGVudGlmaWVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gUGFnZUlkZW50aWZpZXJUeXBlIHsgfTsK
LXVzaW5nIFBhZ2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxQYWdlSWRlbnRpZmllclR5
cGU+OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYWdlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NGQ1ZjhkMjk3NTYzZWUwMjljNDEzZTljZGE3NDk0YzVmYTRkOGFlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFnZUlkZW50aWZpZXIuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2Jq
ZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gUGFnZUlkZW50
aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFBhZ2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxQ
YWdlSWRlbnRpZmllclR5cGU+OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oCmluZGV4IGE0ZDRiNTI1YmU4
OTljMjkyMTY0MDljMjg5NDc2ZTE5ZjQ2ZTc3MWQuLmQwNzk1NmY0OWFhY2E4YjVjMzUxOWEyOTc4
YjY5MjBjODQxYTE2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVxdWVzdC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKKyNp
bmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5
LDYgKzQwLDcgQEAgc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdCB7CiAgICAgTWVkaWFDb25zdHJh
aW50cyBhdWRpb0NvbnN0cmFpbnRzOwogICAgIE1lZGlhQ29uc3RyYWludHMgdmlkZW9Db25zdHJh
aW50czsKICAgICBib29sIGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZCB7IGZhbHNlIH07CisgICAg
UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXI7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CkBAIC00NywxNSAr
NDksMjAgQEAgc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdCB7CiAgICAgICAgIGVuY29kZXIgPDwg
YXVkaW9Db25zdHJhaW50czsKICAgICAgICAgZW5jb2RlciA8PCB2aWRlb0NvbnN0cmFpbnRzOwog
ICAgICAgICBlbmNvZGVyIDw8IGlzVXNlckdlc3R1cmVQcml2aWxlZGdlZDsKKyAgICAgICAgZW5j
b2RlciA8PCBwYWdlSWRlbnRpZmllcjsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFTdHJlYW1SZXF1ZXN0PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIE1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0
OwotICAgICAgICBpZiAoZGVjb2Rlci5kZWNvZGUocmVxdWVzdC50eXBlKSAmJiBkZWNvZGVyLmRl
Y29kZShyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpICYmIGRlY29kZXIuZGVjb2RlKHJlcXVlc3Qu
dmlkZW9Db25zdHJhaW50cykgJiYgZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5pc1VzZXJHZXN0dXJl
UHJpdmlsZWRnZWQpKQotICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Q7Ci0KLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnR5
cGUpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUocmVxdWVzdC5hdWRpb0NvbnN0cmFp
bnRzKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QudmlkZW9Db25zdHJh
aW50cykKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LmlzVXNlckdlc3R1
cmVQcml2aWxlZGdlZCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0LnBh
Z2VJZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHJlcXVlc3Q7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRl
eCBkZTBmMWE3YTRlNjM1YTEzOWU0ODI4YjU0N2ZkY2YwNjYxOWIzNWFiLi5mMWM5ZTYwMjgxM2Ez
YmY2ZmIzMTQxNzg4YjY2MDRjYTQzYjA5YjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAt
NDgsOCArNDgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBtX2lkSGFzaFNhbHQoV1RGTW92
ZShoYXNoU2FsdCkpCitSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKFR5
cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IG1fcGFnZUlkZW50aWZp
ZXIocGFnZUlkZW50aWZpZXIpCisgICAgLCBtX2lkSGFzaFNhbHQoV1RGTW92ZShoYXNoU2FsdCkp
CiAgICAgLCBtX3BlcnNpc3RlbnRJRChXVEZNb3ZlKGRldmljZUlEKSkKICAgICAsIG1fdHlwZSh0
eXBlKQogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXgg
YjI1OTM3Njc5YWI5MjcwZjE5YjYyZmY0MGQ1MjUxMTQzYjY5YWI0NC4uYzRiNDU3ZTI5NjBmMGVk
YTkwOGI3MjEyOTg3MzhhZTgzZTUxNDQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNjksNiAr
NjksNyBAQCBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiAKIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxSZWFsdGltZU1lZGlhU291cmNlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9v
cD4KKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlPgogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHVibGljIExvZ2dlckhlbHBlcgogI2VuZGlm
CkBAIC0xMjQsNiArMTI1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2R1Y2lu
Z0RhdGEoKSBjb25zdDsKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9wKCk7CisgICAg
dm9pZCBlbmRJbW1lZGlhdGx5KCkgeyBlbmQobnVsbHB0cik7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIpOwogICAgIGJvb2wgaXNFbmRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFbmRlZDsgfQogCkBAIC0yMjEsOCArMjIzLDEwIEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wpIHsg
cmV0dXJuIGZhbHNlOyB9CiAKKyAgICBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1fcGFnZUlkZW50aWZpZXI7IH0KKwogcHJvdGVjdGVkOgotICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7
IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9KTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlKFR5
cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0geyB9LCBTdHJpbmcmJiBoYXNo
U2FsdCA9IHsgfSwgUGFnZUlkZW50aWZpZXIgPSB7IH0pOwogCiAgICAgdm9pZCBzY2hlZHVsZURl
ZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogCkBAIC0yNzMsNiArMjc3LDcgQEAgcHJp
dmF0ZToKICAgICB1bnNpZ25lZCBtX2ZyYW1lQ291bnQgeyAwIH07CiAjZW5kaWYKIAorICAgIFBh
Z2VJZGVudGlmaWVyIG1fcGFnZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1faWRIYXNoU2FsdDsK
ICAgICBTdHJpbmcgbV9oYXNoZWRJRDsKICAgICBTdHJpbmcgbV9wZXJzaXN0ZW50SUQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDk0NTI2MzI0YmQ0OGFiMjJlMTk0MGMx
MTIwOGY1M2IxYjkyMWMzNGEuLjAwNzRkMTQ0OTVlOWNmMTBjZTA1NGI5ZWYwOWI0MWI3N2Q2Yjg2
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBA
IHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0oUmVmPGNv
bnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5lCiAKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gYXVkaW9Tb3VyY2U7CiAgICAgaWYgKGF1ZGlvRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gc291
cmNlID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZN
b3ZlKGF1ZGlvRGV2aWNlKSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QuYXVkaW9Db25z
dHJhaW50cyk7CisgICAgICAgIGF1dG8gc291cmNlID0gYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGF1ZGlvRGV2aWNlKSwgU3RyaW5nIHsgaGFz
aFNhbHQgfSwgJnJlcXVlc3QuYXVkaW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmll
cik7CiAgICAgICAgIGlmICghc291cmNlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFt
IGF1ZGlvIHNvdXJjZTogIiwgc291cmNlLmVycm9yTWVzc2FnZSkpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTg5LDkgKzg5LDkgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpj
cmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgTmUKICAgICBpZiAo
dmlkZW9EZXZpY2UpIHsKICAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlOwogICAg
ICAgICBpZiAodmlkZW9EZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkNhbWVyYSkKLSAgICAgICAgICAgIHNvdXJjZSA9IHZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVh
dGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNh
bHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHNvdXJjZSA9IHZp
ZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRl
b0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCBy
ZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc291cmNl
ID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoV1RG
TW92ZSh2aWRlb0RldmljZSksIFdURk1vdmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0
cmFpbnRzKTsKKyAgICAgICAgICAgIHNvdXJjZSA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgJnJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgcmVxdWVzdC5wYWdlSWRlbnRpZmll
cik7CiAKICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBjcmVhdGUgTWVkaWFTdHJl
YW0gdmlkZW8gc291cmNlOiAiLCBzb3VyY2UuZXJyb3JNZXNzYWdlKSkpOwpAQCAtMjA0LDcgKzIw
NCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0RGlzcGxheU1lZGlhRGV2
aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmCiAgICAgICAgIGlmICghZGV2aWNlLmVuYWJs
ZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3Ig
PSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZp
Y2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOworICAg
ICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVE
aXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMsIHJlcXVlc3QucGFnZUlkZW50aWZpZXIpOwogICAgICAgICBpZiAo
c291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29u
c3RyYWludHMocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAg
ICAgICAgICAgICBkaXNwbGF5RGV2aWNlSW5mby5hcHBlbmQoeyBzb3VyY2VPckVycm9yLmNhcHR1
cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2UgfSk7CiAKQEAgLTIyMSw3ICsyMjEsNyBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxl
ZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJj
ZU9yRXJyb3IgPSBhdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IGF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCB7IH0sIHJlcXVlc3QucGFnZUlkZW50aWZp
ZXIpOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0
dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cywg
aW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIGF1ZGlvRGV2aWNlSW5mby5hcHBl
bmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZX0p
OwogCkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpn
ZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmUKICAgICAgICAg
ICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAot
ICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gdmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSk7
CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0NhcHR1cmVGYWN0b3J5KCku
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9
LCByZXF1ZXN0LnBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9y
ICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1
ZXN0LnZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAgICAgICAg
ICB2aWRlb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPmZp
dG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGU1NWRmMjdmNGEzZjY4NThmMTNi
NTg2YTQ4ZTk2NTVhZmU2MWZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCIKLQotI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDYXB0dXJlRGV2aWNlLmgiCi0jaW5jbHVkZSAi
Q2FwdHVyZURldmljZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAi
TWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgot
I2luY2x1ZGUgPHd0Zi9TSEExLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTaW5n
bGVTb3VyY2VGYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291
cmNlKQotewotICAgIGlmIChtX2FjdGl2ZVNvdXJjZSA9PSAmc291cmNlKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKG1fYWN0aXZlU291cmNlICYmIG1fYWN0aXZlU291cmNlLT5pc1Byb2R1Y2lu
Z0RhdGEoKSkKLSAgICAgICAgbV9hY3RpdmVTb3VyY2UtPnNldE11dGVkKHRydWUpOwotICAgIG1f
YWN0aXZlU291cmNlID0gJnNvdXJjZTsKLX0KLQotdm9pZCBTaW5nbGVTb3VyY2VGYWN0b3J5Ojp1
bnNldEFjdGl2ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCi17Ci0gICAgaWYg
KG1fYWN0aXZlU291cmNlID09ICZzb3VyY2UpCi0gICAgICAgIG1fYWN0aXZlU291cmNlID0gbnVs
bHB0cjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCmluZGV4IGJhMGQ5MDNl
NjI5ZWQ4YWJlZGY3Y2ZjZjFlZjk2NTExM2UzODkwYmYuLjY2MWQ1OTJlZWMyMDc2Njg2NmU5ZTJh
ZjgwM2MyNDI3NmY2ZDcwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaApAQCAt
MjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIlBh
Z2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTQxLDI3ICs0MiwxMCBAQCBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOwogc3RydWN0IENhcHR1
cmVTb3VyY2VPckVycm9yOwogc3RydWN0IE1lZGlhQ29uc3RyYWludHM7CiAKLWNsYXNzIFdFQkNP
UkVfRVhQT1JUIFNpbmdsZVNvdXJjZUZhY3RvcnkgewotcHVibGljOgotICAgIHZpcnR1YWwgflNp
bmdsZVNvdXJjZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0
aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5zZXRB
Y3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwotCi0gICAgdmlydHVhbCBSZWFsdGlt
ZU1lZGlhU291cmNlKiBhY3RpdmVTb3VyY2UoKSB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZTsgfQot
Ci1wcml2YXRlOgotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UqIG1fYWN0aXZlU291cmNlIHsgbnVs
bHB0ciB9OwotfTsKLQotY2xhc3MgQXVkaW9DYXB0dXJlRmFjdG9yeQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQotI2VuZGlmCi17Citj
bGFzcyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb0Nh
cHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcm
JiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIoKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFr
ZXJEZXZpY2VzKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlU3BlYWtlckRl
dmljZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKSBjb25zdCB7IGNhbGxi
YWNrKCk7IH0KQEAgLTc0LDI4ICs1OCwyMCBAQCBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9DYXB0dXJl
RmFjdG9yeSgpID0gZGVmYXVsdDsKIH07CiAKLWNsYXNzIFZpZGVvQ2FwdHVyZUZhY3RvcnkKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIDogcHVibGljIFNpbmdsZVNvdXJjZUZhY3RvcnkK
LSNlbmRpZgoteworY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmlydHVh
bCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50
aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgVmlkZW9DYXB0dXJlRmFj
dG9yeSgpID0gZGVmYXVsdDsKIH07CiAKLWNsYXNzIERpc3BsYXlDYXB0dXJlRmFjdG9yeQotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgOiBwdWJsaWMgU2luZ2xlU291cmNlRmFjdG9yeQot
I2VuZGlmCi17CitjbGFzcyBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIHZp
cnR1YWwgfkRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2
aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBh
Z2VJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRp
c3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDgyZGUyNThiYmM3YjFhMTg2ZGNiNTcwZGNh
MDQ0MGQ4YWI0MDA5ZTEuLjMwYjBhMjU4ZDNhZDAwOWM4Mzc3M2FkNjlkNmIxY2M2MzZiYWJjNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM1LDI1ICszNSwxMyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3Ry
aW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCkpCitSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiB7
CiB9CiAKIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjp+UmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2UoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZl
U291cmNlKCp0aGlzKTsKLSNlbmRpZgotfQotCi12b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlOjpwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpCi17Ci0gICAgQVNTRVJUKGZyYW1lUmF0ZSgpKTsK
LQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhp
cyk7Ci0jZW5kaWYKIH0KIAogY29uc3QgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+JiBSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlc2V0cygpCkBAIC0zNjksNiArMzU3LDcgQEAgdm9pZCBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlv
bmFsPGludD4gd2lkdGgsIHMKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2N1
cnJlbnRQcmVzZXQgPSBtYXRjaC0+ZW5jb2RpbmdQcmVzZXQ7CiAgICAgc2V0RnJhbWVSYXRlV2l0
aFByZXNldChtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlLCBtYXRjaC0+ZW5jb2RpbmdQcmVzZXQp
OwogCiAgICAgaWYgKCFtYXRjaC0+cmVxdWVzdGVkU2l6ZS5pc0VtcHR5KCkpCkBAIC00MTIsNiAr
NDAxLDcgQEAgdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2xpZW50VXBkYXRlZFNp
emVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQKICAgICBpZiAoIW1hdGNoKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBtX2N1cnJlbnRQcmVzZXQgPSBtYXRjaC0+ZW5jb2RpbmdQcmVzZXQ7
CiAgICAgc2V0RnJhbWVSYXRlV2l0aFByZXNldChtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlLCBt
YXRjaC0+ZW5jb2RpbmdQcmVzZXQpOwogICAgIHNldFNpemUobWF0Y2gtPmVuY29kaW5nUHJlc2V0
LT5zaXplKTsKICAgICBzZXRGcmFtZVJhdGUobWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCA3MDE3MmFhZTU2Y2Q0ZmE1ZjVlZGZm
N2ZkNDQ4YjVmMzk1Y2QxOGFiLi5kYzFjM2Q1ZWFhNzUxMTRlMmFiZjEwOGExNTg4ZmNhNDlhZWY5
ZmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTUzLDEwICs1MywxMSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVuc3VyZUludHJpbnNpY1NpemVNYWludGFpbnNBc3BlY3RS
YXRpbygpOwogCisgICAgY29uc3QgVmlkZW9QcmVzZXQqIGN1cnJlbnRQcmVzZXQoKSBjb25zdCB7
IHJldHVybiBtX2N1cnJlbnRQcmVzZXQuZ2V0KCk7IH0KKwogcHJvdGVjdGVkOgotICAgIFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcm
JiBoYXNoU2FsdCk7CisgICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllcik7CiAKLSAg
ICB2b2lkIHByZXBhcmVUb1Byb2R1Y2VEYXRhKCk7CiAgICAgdm9pZCBzZXRTaXplQW5kRnJhbWVS
YXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwg
c3RkOjpvcHRpb25hbDxkb3VibGU+KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBwcmVm
ZXJzUHJlc2V0KFZpZGVvUHJlc2V0JikgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtOTAsNiArOTEsNyBA
QCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSI7IH0KICNlbmRpZgogCisgICAg
UmVmUHRyPFZpZGVvUHJlc2V0PiBtX2N1cnJlbnRQcmVzZXQ7CiAgICAgVmVjdG9yPFJlZjxWaWRl
b1ByZXNldD4+IG1fcHJlc2V0czsKICAgICBEZXF1ZTxkb3VibGU+IG1fb2JzZXJ2ZWRGcmFtZVRp
bWVTdGFtcHM7CiAgICAgZG91YmxlIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgeyAwIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IGNlNmUwMDM1OTdhOGI1ZGJkOWQxYWE4NWM0NTU2MmIyMmE5M2Y0
M2MuLjFkNGY5OWJmMmIxM2FhNjZhZmZjMjQ4YmVjZTU5ODJlYjMwZDQ2NzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
YWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlPiYmIHNvdXJjZSwgYm9vbCBzaG91bGRVc2VJT1N1cmZhY2UpCi0gICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCBTdHJpbmcgeyBzb3VyY2UtPm5hbWUoKSB9
LCBTdHJpbmcgeyBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpIH0sIFN0cmluZyB7IHNvdXJjZS0+ZGV2
aWNlSURIYXNoU2FsdCgpIH0pCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVv
LCBTdHJpbmcgeyBzb3VyY2UtPm5hbWUoKSB9LCBTdHJpbmcgeyBzb3VyY2UtPnBlcnNpc3RlbnRJ
RCgpIH0sIFN0cmluZyB7IHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpIH0sIHNvdXJjZS0+cGFn
ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICAsIG1fc2hvdWxkVXNlSU9TdXJmYWNlKHNob3VsZFVzZUlPU3VyZmFj
ZSkKQEAgLTk1LDEyICs5NSwxNSBAQCB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldFNpemVB
bmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdAogICAgIEFTU0VS
VChzb3VyY2VTaXplLmhlaWdodCgpKTsKICAgICBBU1NFUlQoc291cmNlU2l6ZS53aWR0aCgpKTsK
IAorICAgIGF1dG8qIGN1cnJlbnRQcmVzZXQgPSBtX3NvdXJjZS0+Y3VycmVudFByZXNldCgpOwor
ICAgIGF1dG8gaW50cmluc2ljU2l6ZSA9IGN1cnJlbnRQcmVzZXQgPyBjdXJyZW50UHJlc2V0LT5z
aXplIDogc291cmNlU2l6ZTsKKwogICAgIGlmICghd2lkdGgpCi0gICAgICAgIHdpZHRoID0gc291
cmNlU2l6ZS53aWR0aCgpICogaGVpZ2h0LnZhbHVlKCkgLyBzb3VyY2VTaXplLmhlaWdodCgpOwor
ICAgICAgICB3aWR0aCA9IGludHJpbnNpY1NpemUud2lkdGgoKSAqIGhlaWdodC52YWx1ZSgpIC8g
aW50cmluc2ljU2l6ZS5oZWlnaHQoKTsKICAgICBtX2N1cnJlbnRTZXR0aW5ncy5zZXRXaWR0aCgq
d2lkdGgpOwogCiAgICAgaWYgKCFoZWlnaHQpCi0gICAgICAgIGhlaWdodCA9IHNvdXJjZVNpemUu
aGVpZ2h0KCkgKiB3aWR0aC52YWx1ZSgpIC8gc291cmNlU2l6ZS53aWR0aCgpOworICAgICAgICBo
ZWlnaHQgPSBpbnRyaW5zaWNTaXplLmhlaWdodCgpICogd2lkdGgudmFsdWUoKSAvIGludHJpbnNp
Y1NpemUud2lkdGgoKTsKICAgICBtX2N1cnJlbnRTZXR0aW5ncy5zZXRIZWlnaHQoKmhlaWdodCk7
CiAKICAgICBpZiAoZnJhbWVSYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmNwcAppbmRleCA1NTRmOGRkMjdhNGJlNWRlZDZlNWUxNmE1MmJjZDRhZDkwNmY0MmI3
Li4xNjZhNTMwNzczMmIxMTVlNDVkNjIwNzBlZmEwMGEwMTM4MjhiZmE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtODMsMjMgKzgzLDIzIEBAIHN0
YXRpYyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGVGb3JEZXZpY2UoQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSB0CiAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6Ok5vbmU7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VP
ckVycm9yIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgc3dpdGNo
IChkZXZpY2UudHlwZSgpKSB7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
Y3JlZW46CiAjaWYgUExBVEZPUk0oSU9TKQotICAgICAgICByZXR1cm4gY3JlYXRlKFJlcGxheUtp
dENhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCkpLCBkZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBjcmVhdGUoUmVw
bGF5S2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZWxz
ZQogI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQogICAgICAgICBpZiAoU2NyZWVuQ2FwdHVy
ZUtpdENhcHR1cmVTb3VyY2U6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gY3Jl
YXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJh
aW50cyksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAg
ICAgIHJldHVybiBjcmVhdGUoU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGNvbnN0cmFpbnRzKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWlu
dHMsIHBhZ2VJZGVudGlmaWVyKTsKICNlbmRpZgotICAgICAgICByZXR1cm4gY3JlYXRlKENHRGlz
cGxheVN0cmVhbVNjcmVlbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElk
KCkpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJl
dHVybiBjcmVhdGUoQ0dEaXNwbGF5U3RyZWFtU2NyZWVuQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRl
dmljZS5wZXJzaXN0ZW50SWQoKSksIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OldpbmRvdzoKICNpZiBIQVZFKFNDUkVFTl9DQVBUVVJFX0tJVCkKICAgICAgICAg
aWYgKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjppc0F2YWlsYWJsZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIGNyZWF0ZShTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZSwgY29uc3RyYWludHMpLCBkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJh
aW50cyk7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlKFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJl
U291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cyksIGRldmljZSwgV1RGTW92ZShoYXNo
U2FsdCksIGNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTeXN0ZW1BdWRpbzoKQEAg
LTExNCwxMiArMTE0LDEyIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpCiAgICAgcmV0dXJuIHsg
fTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
Y3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXJlcj4sIFN0cmluZz4mJiBjYXB0dXJlciwg
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBEaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hOjpjcmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwg
U3RyaW5nPiYmIGNhcHR1cmVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50
aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFjYXB0dXJlci5oYXNfdmFsdWUoKSkK
ICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgV1RGTW92ZShjYXB0dXJlci5l
cnJvcigpKSB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EoV1RGTW92ZShjYXB0dXJlci52YWx1ZSgpKSwgU3RyaW5nIHsgZGV2aWNl
LmxhYmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IERpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EoV1RGTW92ZShjYXB0dXJlci52YWx1ZSgpKSwgU3RyaW5nIHsgZGV2aWNlLmxh
YmVsKCkgfSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBwYWdlSWRlbnRpZmllcikpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBh
dXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwogICAg
ICAgICBpZiAocmVzdWx0KQpAQCAtMTI5LDggKzEyOSw4IEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShFeHBlY3RlZDxVbmlxdWVSZWY8Q2Fw
dHVyCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9
CiAKLURpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2Eo
VW5pcXVlUmVmPENhcHR1cmVyPiYmIGNhcHR1cmVyLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNv
dXJjZVR5cGVGb3JEZXZpY2UoY2FwdHVyZXItPmRldmljZVR5cGUoKSksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK0Rpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2E6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoVW5pcXVlUmVmPENhcHR1cmVyPiYm
IGNhcHR1cmVyLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFz
aFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRp
YVNvdXJjZShzb3VyY2VUeXBlRm9yRGV2aWNlKGNhcHR1cmVyLT5kZXZpY2VUeXBlKCkpLCBXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVu
dGlmaWVyKQogICAgICwgbV9jYXB0dXJlcihXVEZNb3ZlKGNhcHR1cmVyKSkKICAgICAsIG1fdGlt
ZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCmlu
ZGV4IDA0NWM4Y2M0MzVmY2IyOWM1ZGVkMGIyZjFhZWNhNTI0MmM1YWU4YzAuLmI5ZWIwODVkNDc0
OTM0YzVlMDUxYTc1YWIxZGQwM2NjNTRlN2Y4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9EaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hLmgKQEAgLTExMiwxNCArMTEyLDE0IEBAIHB1YmxpYzoKICAgICAgICAg
Y29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwogICAgIH07CiAKLSAgICBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOwotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGUoRXhwZWN0ZWQ8VW5pcXVlUmVmPENhcHR1cmVyPiwgU3RyaW5nPiYmLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKEV4cGVjdGVkPFVuaXF1ZVJlZjxDYXB0dXJl
cj4sIFN0cmluZz4mJiwgY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgU2Vjb25kcyBlbGFwc2VkVGlt
ZSgpOwogICAgIHZvaWQgdXBkYXRlRnJhbWVTaXplKCk7CiAKIHByaXZhdGU6Ci0gICAgRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYShVbmlxdWVSZWY8Q2FwdHVyZXI+JiYsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZp
cnR1YWwgfkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoKTsKIAogICAgIC8vIFJlYWx0aW1lTWVk
aWFTb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKaW5kZXggNDg2YjBlNDQ4NmEzYzY0ZTNhYzEzZjM1N2JkMDE0ZGUwMzE4MGRmNi4u
NzNlY2QyNDAzYmMwZjQ4YmRhMTlkNTE5OTAxNDdhMzU3M2I3ZWEzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTU2LDcgKzU2
LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURlYnVnQ2F0ZWdvcnkoKQogCiBjbGFzcyBHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIEdTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggZTEz
ZDUzYjJiMjRkY2U5ZDUwMjZkYTIzNzI4MzNlNGU0MjEzYjFlMC4uNjlkYTIwYjY4MGU4NTlmZDc2
ZjYyMGI5MzNhNWVhNmYwZWJiYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiBj
bGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5IGZpbmFsIDogcHVibGljIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAg
ICAgcmV0dXJuIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwog
ICAgIH0KQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgR1N0cmVhbWVyRGlzcGxh
eUNhcHR1cmVTb3VyY2VGYWN0b3J5IGZpbmFsIDogcHVibGljIERpc3BsYXlDYXB0dXJlRmFjdG9y
eSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAgYXV0byYgbWFu
YWdlciA9IEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7
CiAgICAgICAgIHJldHVybiBtYW5hZ2VyLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGRldmlj
ZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBE
aXNwbGF5Q2FwdHVyZUZhY3RvcnkmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6ZGlzcGxh
eUZhY3RvcnkoKQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IGdjaGFyKiBzb3VyY2VGYWN0b3J5LCBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlIGRldmljZVR5cGUsIGludCBmZCkKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlKFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0
KSkKKyAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUobmFtZSksIFdURk1v
dmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgeyB9KQogICAgICwgbV9jYXB0dXJlciht
YWtlVW5pcXVlPEdTdHJlYW1lclZpZGVvQ2FwdHVyZXI+KHNvdXJjZUZhY3RvcnksIGRldmljZVR5
cGUpKQogICAgICwgbV9kZXZpY2VUeXBlKGRldmljZVR5cGUpCiB7CkBAIC0xMzAsNyArMTMwLDcg
QEAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmkKIH0KIAogR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJl
bCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJl
bCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCB7IH0pCiAgICAgLCBtX2NhcHR1cmVyKG1ha2VVbmlx
dWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oZGV2aWNlKSkKICAgICAsIG1fZGV2aWNlVHlwZShD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBjNzdk
Y2EyN2MzYWM3YTJjNjA2MjVhMzMxNjEyM2M3OThlOTY0NDg0Li41Y2Y2MjdjOTNhNDJkNzgxMWJk
NzBiMTE1ODBjZGIxNzZkNGI2MTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBzX0h1bVZvbHVtZSA9IDAuMTsKIHN0YXRpYyBjb25zdCBkb3VibGUg
c19Ob2lzZUZyZXF1ZW5jeSA9IDMwMDA7CiBzdGF0aWMgY29uc3QgZG91YmxlIHNfTm9pc2VWb2x1
bWUgPSAwLjA1OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBh
dXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0
aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC02Myw3ICs2Myw3IEBAIFJlZjxNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VHU3RyZWFtZXI6OmNyZWF0ZUZv
ck1vY2tBdWRpCiB9CiAKIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlR1N0cmVhbWVyOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUdTdHJlYW1lcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZN
b3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgOiBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShoYXNoU2FsdCksIHsgfSkKIHsKICAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXpl
ZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZUdTdHJlYW1lci5jcHAKaW5kZXggOTY3NzcxZWYwYWM4NDhhODUxZDkyZGJlMzU5YzVlYzFm
ZDA5MmMzYy4uOGRiNzY4MGUyYmE4MmYxYzI5MDJhMjNlNjY1ODNkZGEwYmJjODlmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFt
ZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNl
SUQpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYgTW9ja0Rpc3BsYXlDYXB0dXJlU291cmNlR1N0cmVhbWVyOjpzZXR0aW5ncygpCiB9CiAKIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlR1N0cmVhbWVyOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdT
dHJlYW1lcihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQpCi0gICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCks
IHsgfSkKIHsKICAgICBlbnN1cmVHU3RyZWFtZXJJbml0aWFsaXplZCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2VJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLmgKaW5kZXggNjY0ODVlMzJiOTc0YjI2YjZkYjcwZWYz
MWY0MTU0NTBjMGM2MzFmZi4uYjEwNWIzZTEwYzgwOTk5OGNhMTE1OTU2ODBhNGFlODY2MzdiM2Ji
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oCkBAIC00NSw3ICs0NSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdpbkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvbigpIHsg
YmVnaW5JbnRlcnJ1cHRpb24oKTsgfQogICAgIHZvaWQgZW5kQXVkaW9TZXNzaW9uSW50ZXJydXB0
aW9uKEF1ZGlvU2Vzc2lvbjo6TWF5UmVzdW1lKSB7IGVuZEludGVycnVwdGlvbigpOyB9CiAKLSAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgZmluYWw7Cisg
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFBhZ2VJZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGFkZEV4dGVuc2l2ZU9ic2VydmVyKEV4dGVuc2l2ZU9i
c2VydmVyJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNp
dmVPYnNlcnZlciYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9pb3MvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUlPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9T
Lm1tCmluZGV4IDY3MDU5MmYzNTE2N2Y2YjA2MTk5NmIwMTY3NGViOWI1NDg0NDNhNTIuLmJiMzI5
ZmUwZTFkODU3ZWZiNjE3MTc0YmM0OTkxMzZiYWM4M2UzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVkaW9DYXB0dXJlU291cmNlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlSU9TLm1tCkBAIC0xMTYsMTMgKzExNiwxMyBAQCB2b2lkIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpyZW1vdmVFeHRlbnNpdmVPYnNlcnZlcihFeHRlbnNp
dmVPYnNlcnZlcgogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpz
aW5nbGV0b24oKS5kaXNhYmxlQWxsRGV2aWNlc1F1ZXJ5KCk7CiB9CiAKLUNhcHR1cmVTb3VyY2VP
ckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5SU9TOjpjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJv
ciBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeUlPUzo6Y3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikKIHsKICAgICAvLyBXZSBlbmFibGUgZXhoYXVzdGl2ZSBxdWVyeSB0byBiZSBzdXJlIHRv
IHN0YXJ0IGNhcHR1cmUgd2l0aCB0aGUgcmlnaHQgZGV2aWNlLgogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgc3RvcCB0aGUgYXV4aWxpYXJ5IHNlc3Npb24gYWZ0ZXIgc3RhcnRpbmcgY2FwdHVyZS4K
ICAgICBpZiAobV9vYnNlcnZlcnMuY29tcHV0ZXNFbXB0eSgpKQogICAgICAgICBBVkF1ZGlvU2Vz
c2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5lbmFibGVBbGxEZXZpY2VzUXVl
cnkoKTsKLSAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7
IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMp
OworICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFn
ZUlkZW50aWZpZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGE2
ZDc0MjE2MzlhNzQyNzY0MWNhZjJiMjcyNzEzZGUxZTVmMTg4MGMuLjI0ZTExYWUxM2ZiYmU3YzFj
ODZmZmE2YThmNzBiMjRkZjYxZmU2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBA
IC01NCw3ICs1NCw3IEBAIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKIGNsYXNzIEFW
VmlkZW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLCBw
cml2YXRlIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIApA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlU3VzcGVuZGVk
RGlkQ2hhbmdlKCk7CiAKIHByaXZhdGU6Ci0gICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0
dXJlRGV2aWNlKiwgY29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAg
ICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5B
VlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAgICAgdm9pZCBjbGVhclNlc3Npb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA1NmVkNGMyMWFlYzBlNWQ5ZjZkNzM1ZDU4MjFj
ODZiZDIzNWZjOTYwLi43MDdjYjY1YzY4MTg1YWRjNzU0N2E0ZWNiZjM3ZGE1YTdmYjIwODcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC0xMDgsMTMgKzEwOCwxMyBAQCBwdWJs
aWM6CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUZvcm1hdD4gZm9ybWF0OwogfTsKIAot
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJZGVudGlmaWVyKQogewogICAgIGF1dG8gKmF2RGV2aWNlID0gW1BBTDo6Z2V0QVZDYXB0
dXJlRGV2aWNlQ2xhc3MoKSBkZXZpY2VXaXRoVW5pcXVlSUQ6ZGV2aWNlLnBlcnNpc3RlbnRJZCgp
XTsKICAgICBpZiAoIWF2RGV2aWNlKQogICAgICAgICByZXR1cm4geyAiTm8gQVZWaWRlb0NhcHR1
cmVTb3VyY2UgZGV2aWNlIl9zIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcg
QVZWaWRlb0NhcHR1cmVTb3VyY2UoYXZEZXZpY2UsIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCkp
KTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2Uo
YXZEZXZpY2UsIGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAg
ICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBs
eUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0xMjQs
OCArMTI0LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFMKICAgICByZXR1cm4gQ2FwdHVyZVNv
dXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFdURk1vdmUoc291cmNlKSkp
OwogfQogCi1BVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0
dXJlRGV2aWNlKiBhdkRldmljZSwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyhkZXZp
Y2UubGFiZWwoKSksIFN0cmluZyhkZXZpY2UucGVyc2lzdGVudElkKCkpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkKK0FWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1
cmVEZXZpY2UqIGF2RGV2aWNlLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyhkZXZpY2UubGFiZWwoKSksIFN0cmluZyhkZXZpY2Uu
cGVyc2lzdGVudElkKCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAg
LCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2Jz
ZXJ2ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pKQogICAgICwgbV9kZXZpY2UoYXZE
ZXZpY2UpCiAgICAgLCBtX3ZlcmlmeUNhcHR1cmluZ1RpbWVyKCp0aGlzLCAmQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnZlcmlmeUlzQ2FwdHVyaW5nKQpAQCAtMTM3LDkgKzEzNyw2IEBAIEFWVmlkZW9D
YXB0dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKQogewogICAgIEFMV0FZU19MT0df
SUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCiAgICAgW21fb2Jq
Y09ic2VydmVyIGRpc2Nvbm5lY3RdOwogICAgIFttX2RldmljZSByZW1vdmVPYnNlcnZlcjptX29i
amNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAic3VzcGVuZGVkIl07CiAKQEAgLTQ2OSwxMCAr
NDY2LDYgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbigp
CiB7CiAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUik7CiAKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwot
I2VuZGlmCi0KICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICBSZXRhaW5QdHI8QVZDYXB0
dXJlRGV2aWNlSW5wdXQ+IHZpZGVvSW4gPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZDYXB0dXJlRGV2
aWNlSW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoRGV2aWNlOmRldmljZSgpIGVycm9yOiZlcnJvcl0p
OwogICAgIGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmlu
ZGV4IGU2MzBjNGM1YzAyOWUyNjI2OTRmZTRjMDc1NmE3ODk4MTE2YzJmNmIuLmY1N2IwNjRiODM1
YzM2MWM0ZWJhMjEwOGU2Yzg5OGY4N2U2ZTQ1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAKQEAgLTY2OCwyNyArNjY4LDI3IEBAIHN0YXRpYyBDYXB0dXJlU291cmNlT3JF
cnJvciBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShSZWY8Q29yZUF1ZGlvQ2FwdHVy
CiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVy
KQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmlj
ZUlEKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgIk5vIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UgZGV2aWNlIl9zIH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2
aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBkZXZpY2UtPmRldmljZUlEKCkpKTsK
KyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpLCBkZXZpY2UtPmRldmljZUlEKCksIG51bGxwdHIsIHBhZ2VJZGVudGlmaWVyKSk7CiAj
ZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGF1dG8gZGV2aWNlID0gQVZBdWRpb1Nlc3Np
b25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYXVkaW9TZXNzaW9uRGV2aWNlV2l0
aFVJRChXVEZNb3ZlKGRldmljZUlEKSk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVy
biB7ICJObyBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2UgZGV2aWNlIl9zIH07CiAKLSAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCAwKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZN
b3ZlKGhhc2hTYWx0KSwgMCwgbnVsbHB0ciwgcGFnZUlkZW50aWZpZXIpKTsKICNlbmRpZgogICAg
IHJldHVybiBpbml0aWFsaXplQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSks
IGNvbnN0cmFpbnRzKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFi
ZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgb3ZlcnJpZGVVbml0KQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgb3ZlcnJpZGVVbml0LCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShsYWJlbCksIFdURk1vdmUoaGFzaFNhbHQpLCAwLCAmb3ZlcnJpZGVVbml0KSk7CisgICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCwgJm92ZXJyaWRl
VW5pdCwgcGFnZUlkZW50aWZpZXIpKTsKICAgICByZXR1cm4gaW5pdGlhbGl6ZUNvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UoV1RGTW92ZShzb3VyY2UpLCBjb25zdHJhaW50cyk7CiB9CiAKQEAgLTc3MSw4
ICs3NzEsOCBAQCB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5Ojp3aGVuQXVkaW9D
YXB0dXJlVW5pdElzTm90UnVubmluZyhGdW5jdGlvbjx2bwogICAgIHJldHVybiBDb3JlQXVkaW9T
aGFyZWRVbml0Ojp1bml0KCkud2hlbkF1ZGlvQ2FwdHVyZVVuaXRJc05vdFJ1bm5pbmcoV1RGTW92
ZShjYWxsYmFjaykpOwogfQogCi1Db3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0
dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFz
aFNhbHQsIHVpbnQzMl90IGNhcHR1cmVEZXZpY2VJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCogb3Zl
cnJpZGVVbml0KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3Zl
KGhhc2hTYWx0KSkKK0NvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwg
dWludDMyX3QgY2FwdHVyZURldmljZUlELCBCYXNlQXVkaW9TaGFyZWRVbml0KiBvdmVycmlkZVVu
aXQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCksIFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZpZXIpCiAgICAg
LCBtX2NhcHR1cmVEZXZpY2VJRChjYXB0dXJlRGV2aWNlSUQpCiAgICAgLCBtX292ZXJyaWRlVW5p
dChvdmVycmlkZVVuaXQpCiB7CkBAIC04MTIsMTkgKzgxMiwxMSBAQCB2b2lkIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmluaXRpYWxpemVUb1N0YXJ0UHJvZHVjaW5nRGF0YSgpCiAKIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6On5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCkKIHsKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0
b24oKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLQogICAgIHVuaXQoKS5yZW1v
dmVDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnN0YXJ0
UHJvZHVjaW5nRGF0YSgpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCkuc2V0QWN0aXZlU291cmNlKCp0aGlz
KTsKLSNlbmRpZgotCiAgICAgaW5pdGlhbGl6ZVRvU3RhcnRQcm9kdWNpbmdEYXRhKCk7CiAgICAg
dW5pdCgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmgKaW5kZXggNmUxNzkxY2U5ODE0ZmFkOTRhMTMzMzZlZDU0YWFkMGYxMGNlOGI1Mi4uYTBl
OGM0NmJlNDlhOTY2YmVlYmIwYTllN2RjNzNlYmE5ZTcwNDIyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCkBAIC01MSwxNSArNTEsMTUgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM7CiAKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKTsKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgQmFzZUF1ZGlvU2hhcmVkVW5pdCYg
b3ZlcnJpZGVVbml0KTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyosIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlRm9yVGVzdGluZyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgQmFzZUF1ZGlvU2hhcmVkVW5pdCYg
b3ZlcnJpZGVVbml0LCBQYWdlSWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAgQ01DbG9ja1JlZiB0aW1l
YmFzZUNsb2NrKCk7CiAKIHByb3RlY3RlZDoKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQz
Ml90IHBlcnNpc3RlbnRJRCwgQmFzZUF1ZGlvU2hhcmVkVW5pdCogPSBudWxscHRyKTsKKyAgICBD
b3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwg
U3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCwgQmFzZUF1ZGlvU2hhcmVk
VW5pdCosIFBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5Db3JlQXVkaW9DYXB0dXJlU291
cmNlKCk7CiAgICAgQmFzZUF1ZGlvU2hhcmVkVW5pdCYgdW5pdCgpOwogICAgIGNvbnN0IEJhc2VB
dWRpb1NoYXJlZFVuaXQmIHVuaXQoKSBjb25zdDsKQEAgLTEyOCwxNCArMTI4LDE0IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5BdWRpb0NhcHR1cmVVbml0SXNOb3RSdW5u
aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6Ci0gICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopIG92ZXJyaWRlOworICAgIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBQYWdlSWRlbnRpZmllcikgb3ZlcnJp
ZGU7CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KSBmaW5hbDsKICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFrZXJEZXZpY2Vz
KCkgY29uc3QgZmluYWw7CiB9OwogCi1pbmxpbmUgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK2lubGluZSBDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKLSAg
ICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgIHJl
dHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZp
ZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0
Lm1tCmluZGV4IDBkZDNkNzFjYWU3YTYzYjYzNzIwOGYyODM4MjIwZTY1OWU0MjEzY2UuLjM0MjI3
NDIzZDg5YjBhMDQ5ZGU2OWFjZTM1ZjhmMzhmM2QzMGMzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFy
ZWRVbml0Lm1tCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBs
aXR1ZGUsIGZsb2F0IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9
CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9y
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBkZXZp
Y2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0
ZW50SUQoZGV2aWNlSUQpOwogICAgIEFTU0VSVChkZXZpY2UpOwpAQCAtOTEsNyArOTEsNyBAQCBD
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJgogICAgICAgICByZXR1cm4geyAiTm8gbW9jayBtaWNyb3Bo
b25lIGRldmljZSJfcyB9OwogCiAgICAgTW9ja0F1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCku
c2V0RGV2aWNlSUQoZGV2aWNlSUQpOwotICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGVGb3JUZXN0aW5nKFdURk1vdmUoZGV2aWNlSUQpLCAgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0
b24oKSk7CisgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZUZvclRlc3Rp
bmcoV1RGTW92ZShkZXZpY2VJRCksICBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMsIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLCBwYWdlSWRlbnRp
Zmllcik7CiB9CiAKIE1vY2tBdWRpb1NoYXJlZFVuaXQmIE1vY2tBdWRpb1NoYXJlZFVuaXQ6OnNp
bmdsZXRvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCmluZGV4IDk1
Y2YzNWNkNGViMTMxOGQ4NjgzMjczYTVkMDk2YzczNjQ0NjA4YjAuLjQ4Mjk1NzlkMmZhMTY1M2Nl
YzAwMTI3YzAzZjI0Y2EzMDk3NmNkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5oCkBAIC00NywxMyArNDcsMTMgQEAgY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDsKIAogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBzdGF0aWMgUmVm
PE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVGb3JNb2NrRGlzcGxheUNhcHR1cmVyKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlk
ZW50aWZpZXIpOwogCiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKCkgPSBkZWZhdWx0
OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTsK
LSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
UGFnZUlkZW50aWZpZXIpOwogCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0OwogICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggZmQxOTRlNjE5YTQ0Yjg4MTFkY2IxN2Uw
MDQ2NzFmNDQ1MzVlN2E5Ny4uOWUyNWY2ZDJkNDMxM2Y5MGRlOWMwZmIxZDYwZGQ4OGIwOTc4NWQ2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtNTIsNyAr
NTIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlE
KTsKQEAgLTYxLDcgKzYxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKICAgICAgICAgcmV0
dXJuIHsgIk5vIG1vY2sgY2FtZXJhIGRldmljZSJfcyB9OwogI2VuZGlmCiAKLSAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgcGFnZUlkZW50aWZp
ZXIpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSBz
b3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgICAgIHJldHVy
biBXVEZNb3ZlKGVycm9yLT5tZXNzYWdlKTsKQEAgLTcwLDEzICs3MCwxMyBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLVJlZjxNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tE
aXNwbGF5Q2FwdHVyZXIoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KQorUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJlcihTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
cGFnZUlkZW50aWZpZXIpKTsKIH0KIAotTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQorICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmllcikK
ICAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZSBSZW5kZXIgUXVldWUiLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKSkKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRleCA5
N2M5N2U1OTAzNjRkNDE5NzBjYTQ2ZTI4NzhhMTZiODdlZjFmNGFmLi5jZjAwODIwYTQ0ODhlZmI0
YjM1NWUzZTY1MzczZTBkMTM4NjE5ZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuY3BwCkBAIC00NSwxMCArNDUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5TWFjIGZpbmFsIDogcHVibGljIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5h
bAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6Q2FtZXJhKTsKLSAgICAgICAgcmV0dXJuIEFWVmlkZW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAg
ICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFz
aFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIAogcHJpdmF0ZToK
QEAgLTU3LDkgKzU3LDkgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGlzcGxheUNhcHR1cmVTb3VyY2VG
YWN0b3J5TWFjIGZpbmFsIDogcHVibGljIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6
Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKSBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJu
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hOjpjcmVhdGUoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB9CiBwcml2YXRlOgogICAgIERpc3BsYXlDYXB0dXJlTWFuYWdlciYg
ZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gRGlzcGxheUNhcHR1cmVNYW5h
Z2VyQ29jb2E6OnNpbmdsZXRvbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDJhYWUxOTFjMTdl
ZjNlY2E3YWEwMDdhM2EyOGI1YTExYWVhY2NhNWMuLjcwMzA4NDI4MzQ4OTU5YjA0NWZlYmQ0NjZl
MDUwN2M1Nzg1YmU3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00OSw3ICs0OSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgIVVTRShHU1RSRUFNRVIpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitD
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyKQogewogI2lmbmRlZiBO
REVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpt
b2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CkBAIC02Niw4ICs2Niw4IEBAIENh
cHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmCiB9CiAjZW5kaWYKIAotTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNl
SUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKK01vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRpZmll
cikKICAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZSBSZW5kZXIgUXVldWUiKSkKICAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgp
LCB0aGlzLCAmTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnRpY2spCiB7CkBAIC04MSw5ICs4MSw2
IEBAIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtCiAKIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjp+
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5n
cygpCkBAIC0xNDAsNyArMTM3LDYgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0
dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXQKIHZvaWQgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uQ2FuUHJvZHVj
ZUF1ZGlvQ2hhbmdlZCgpOwogICAgIEFTU0VSVChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3Jk
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4IDU1ZjllZDJhNmMyODk0OGQ0MGNlODA2NDhmNTBk
ZDg3N2NlMzY5ZTMuLmRhMTBlNDQyMWU0NDMyMGNjNDM4OGE1ZDJiOGVlNzA0ZWY2NTI0ZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiwgUGFnZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfk1vY2tSZWFs
dGltZUF1ZGlvU291cmNlKCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRJc0ludGVycnVwdGVkKGJv
b2wpOwpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRDaGFubmVsQ291bnQodW5zaWduZWQpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFBhZ2VJZGVudGlmaWVyKTsKIAogICAg
IHZpcnR1YWwgdm9pZCByZW5kZXIoU2Vjb25kcykgPSAwOwogICAgIHZvaWQgc2V0dGluZ3NEaWRD
aGFuZ2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBjMzlmYTdiY2U0M2MzN2ViM2Rl
YjcxM2U5N2Q5ZTkyMDljYjJmYjU5Li5iNzkxYmMyN2UwNWVlOTkyMWQzNmRjMzczMmFkODhlYzdh
MzExYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTAxLDEzICsxMDEsMTMg
QEAgc3RhdGljIGlubGluZSBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2aWNlcygp
CiAKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBWaWRlb0Nh
cHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgZmluYWwKICAg
ICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYSk7CiAgICAgICAgIGlmICghTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7
ICJVbmFibGUgdG8gZmluZCBtb2NrIGNhbWVyYSBkZXZpY2Ugd2l0aCBnaXZlbiBwZXJzaXN0ZW50
SUQiX3MgfTsKIAotICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVs
KCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25z
dHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTExNyw3ICsx
MTcsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKIGNsYXNzIE1vY2tEaXNwbGF5Q2Fw
dHVyZXIgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXIg
ewogcHVibGljOgotICAgIGV4cGxpY2l0IE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworICAgIE1vY2tEaXNwbGF5Q2FwdHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYs
IFBhZ2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBib29sIHN0YXJ0KCkgZmluYWw7CkBA
IC0xMzQsOCArMTM0LDggQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MgbV9zZXR0aW5nczsKIH07CiAKLU1vY2tEaXNwbGF5Q2FwdHVyZXI6Ok1vY2tEaXNwbGF5Q2Fw
dHVyZXIoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQotICAgIDogbV9zb3VyY2UoTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tEaXNwbGF5Q2FwdHVyZXIoU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0
cmluZyB7IH0pKQorTW9ja0Rpc3BsYXlDYXB0dXJlcjo6TW9ja0Rpc3BsYXlDYXB0dXJlcihjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQor
ICAgIDogbV9zb3VyY2UoTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OmNyZWF0ZUZvck1vY2tE
aXNwbGF5Q2FwdHVyZXIoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7
IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IH0sIHBhZ2VJZGVudGlmaWVyKSkKIHsKIH0KIApA
QCAtMTc3LDcgKzE3Nyw3IEBAIEludFNpemUgTW9ja0Rpc3BsYXlDYXB0dXJlcjo6aW50cmluc2lj
U2l6ZSgpIGNvbnN0CiAKIGNsYXNzIE1vY2tSZWFsdGltZURpc3BsYXlTb3VyY2VGYWN0b3J5IDog
cHVibGljIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
ZGVudGlmaWVyKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKCFNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlLnR5cGUoKSwg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8g
ZmluZCBtb2NrIGRpc3BsYXkgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CkBA
IC0xODYsMTEgKzE4NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdzoKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgICAgICByZXR1cm4gRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6Y3JlYXRlKFVuaXF1ZVJlZjxEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hOjpDYXB0dXJlcj4obWFrZVVuaXF1ZVJlZjxNb2NrRGlzcGxheUNhcHR1cmVyPihkZXZp
Y2UpKSwgZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOworICAgICAgICAg
ICAgcmV0dXJuIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNyZWF0ZShVbmlxdWVSZWY8RGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6Q2FwdHVyZXI+KG1ha2VVbmlxdWVSZWY8TW9ja0Rpc3Bs
YXlDYXB0dXJlcj4oZGV2aWNlLCBwYWdlSWRlbnRpZmllcikpLCBkZXZpY2UsIFdURk1vdmUoaGFz
aFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogI2VsaWYgVVNFKEdTVFJFQU1F
UikKICAgICAgICAgICAgIHJldHVybiBNb2NrRGlzcGxheUNhcHR1cmVTb3VyY2VHU3RyZWFtZXI6
OmNyZWF0ZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAjZWxzZQot
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdU
Rk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzLCBwYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CkBAIC0yMTEsMjAg
KzIxMSwxNSBAQCBwcml2YXRlOgogCiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3Rv
cnkgZmluYWwgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICAgICAgICAgaWYg
KCFNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0
ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSwgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpKSkKICAgICAgICAgICAgIHJldHVybiB7ICJVbmFibGUgdG8gZmluZCBtb2NrIG1p
Y3JvcGhvbmUgZGV2aWNlIHdpdGggZ2l2ZW4gcGVyc2lzdGVudElEIl9zIH07CiAKLSAgICAgICAg
cmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZp
Y2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlm
aWVyKTsKICAgICB9CiBwcml2YXRlOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdm9p
ZCBzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBmaW5hbCB7IENv
cmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKS5zZXRBY3RpdmVTb3VyY2Uo
c291cmNlKTsgfQotICAgIHZvaWQgdW5zZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZSYgc291cmNlKSBmaW5hbCB7IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0
b24oKS51bnNldEFjdGl2ZVNvdXJjZShzb3VyY2UpOyB9Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZSogYWN0aXZlU291cmNlKCkgZmluYWwgeyByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZh
Y3Rvcnk6OnNpbmdsZXRvbigpLmFjdGl2ZVNvdXJjZSgpOyB9Ci0jZW5kaWYKICAgICBDYXB0dXJl
RGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsIHsgcmV0dXJu
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCk7IH0KICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHNwZWFr
ZXJEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNwZWFrZXJEZXZpY2VzKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDYwYzVh
OGNkNmQ1MGU5MDBlNGMxZWJkMWZkOGUyZGRhZThiNmRiOWQuLjNjZjc0NjBjODBlM2JlMWQ1YmEz
ZjBjZWQ3YzE5YjI1ZGYyOWFiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC01MCw3ICs1MCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgIVVTRShHU1RSRUFNRVIpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVu
dGlmaWVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7
CkBAIC01OSw3ICs1OSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmCiAgICAgICAgIHJldHVy
biB7ICJObyBtb2NrIGNhbWVyYSBkZXZpY2UiX3MgfTsKICNlbmRpZgogCi0gICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNl
SUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKSk7CiAg
ICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWlu
dHMpKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBIYXNo
U2V0PE1vY2tSZWFsdGltZVZpZGVvU291cmNlKj4mIGFsbE1vY2tSZWFsdGltZVZpZGVvU291cmNl
KCkKICAgICByZXR1cm4gdmlkZW9Tb3VyY2VzOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0KQotICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQorTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlm
aWVyKQogICAgICwgbV9lbWl0RnJhbWVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVGcmFtZSkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwpAQCAtMjM5LDcgKzIzOSw2IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OnN0YXJ0Q2FwdHVyZVRpbWVyKCkKIAogdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpOwog
ICAgIHN0YXJ0Q2FwdHVyZVRpbWVyKCk7CiAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1l
Ojpub3coKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCA5MzVjNmRkZWNiOGQ0NThjOTE2NmY1YjI2N2Fj
NWM0OTRmZjM0M2I1Li5mYzVmYzdhYTFjYjc2ZmE2ZDk3MzkwNTg2NWJmYWZlY2VkZTM2YmM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAog
Y2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGlj
OgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqLCBQYWdlSWRlbnRpZmllcik7CiAgICAgfk1vY2tSZWFsdGltZVZpZGVvU291cmNl
KCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRJc0ludGVycnVwdGVkKGJvb2wpOwpAQCAtNTYsNyAr
NTYsNyBAQCBwdWJsaWM6CiAgICAgSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKCkgY29uc3Q7CiAK
IHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgUGFnZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNhbXBsZUJ1
ZmZlcigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA3ODdiYjEyMWU3
NGM2Njk2NTgxOGI2MjA0OWIyMWZlOWI5NWU3MmY3Li5iZjgwZTU0YjhiZGRmYzY1NzcxMzI5ZjVj
MDlmYmJiNTE4ZTAzMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTM4LDEx
ICsxMzgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkg
ZmluYWwgewotICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKLSAgICAg
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OkNhcHR1cmVGYWlsZWQobV9pZCksIDApOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlNvdXJjZVN0b3BwZWQobV9pZCksIDApOworICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTdG9wcGVkKG1f
aWQsIG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSwgMCk7CiAgICAgfQogCiAgICAgdm9pZCBz
b3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbCB7CkBAIC0yODksNyArMjg1LDcyIEBAIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKICAg
ICBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogfQogCi12
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgbWVkaWFDb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9j
ZXNzUmVtb3RlRnJhbWVzLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVy
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3Jl
YXRlTWljcm9waG9uZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBtZWRpYUNvbnN0cmFpbnRzLCBQYWdl
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIG1l
ZGlhQ29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3Ip
CisgICAgICAgIHJldHVybiBzb3VyY2VPckVycm9yOworCisgICAgYXV0byYgcGVyUGFnZVNvdXJj
ZXMgPSBtX3BhZ2VTb3VyY2VzLmVuc3VyZShwYWdlSWRlbnRpZmllciwgW10geyByZXR1cm4gUGFn
ZVNvdXJjZXMgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisKKyAgICAvLyBGSVhNRTogU3VwcG9y
dCBtdWx0aXBsZSBtaWNyb3Bob25lcyBzaW11bHRhbmVvdXNseS4KKyAgICBpZiAoYXV0byogbWlj
cm9waG9uZVNvdXJjZSA9IHBlclBhZ2VTb3VyY2VzLm1pY3JvcGhvbmVTb3VyY2UuZ2V0KCkpIHsK
KyAgICAgICAgaWYgKG1pY3JvcGhvbmVTb3VyY2UtPnBlcnNpc3RlbnRJRCgpICE9IGRldmljZS5w
ZXJzaXN0ZW50SWQoKSAmJiAhbWljcm9waG9uZVNvdXJjZS0+aXNFbmRlZCgpKSB7CisgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJFbmRpbmcgbWljcm9waG9uZSBzb3VyY2Ug
YXMgbmV3IHNvdXJjZSBpcyB1c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuIik7CisgICAgICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGZhaWwgdGhlIGNhcHR1cmUgaW4gYSB3YXkg
dGhhdCBzaG93cyBhIHNwZWNpZmljIGNvbnNvbGUgbG9nIG1lc3NhZ2UuCisgICAgICAgICAgICBt
aWNyb3Bob25lU291cmNlLT5lbmRJbW1lZGlhdGx5KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgcGVyUGFnZVNvdXJj
ZXMubWljcm9waG9uZVNvdXJjZSA9IFdlYWtQdHIgeyBzb3VyY2UuZ2V0KCkgfTsKKyAgICByZXR1
cm4gc291cmNlOworfQorCitzdGF0aWMgYm9vbCBjYW5DYXB0dXJlRnJvbU11bHRpcGxlQ2FtZXJh
cygpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gZmFsc2U7CisjZWxz
ZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZUNhbWVyYVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBtZWRpYUNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKK3sK
KyAgICBhdXRvJiBwZXJQYWdlU291cmNlcyA9IG1fcGFnZVNvdXJjZXMuZW5zdXJlKHBhZ2VJZGVu
dGlmaWVyLCBbXSB7IHJldHVybiBQYWdlU291cmNlcyB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsK
KyAgICBhdXRvKiBjYW1lcmFTb3VyY2UgPSBwZXJQYWdlU291cmNlcy5jYW1lcmFTb3VyY2UuZ2V0
KCk7CisgICAgaWYgKGNhbWVyYVNvdXJjZSkgeworICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUg
bXVsdGlwbGUgY29uY3VycmVudCBjYW1lcmFzLgorICAgICAgICBpZiAoY2FtZXJhU291cmNlLT5w
ZXJzaXN0ZW50SUQoKSA9PSBkZXZpY2UucGVyc2lzdGVudElkKCkgJiYgIWNhbWVyYVNvdXJjZS0+
aXNFbmRlZCgpKSB7CisgICAgICAgICAgICAvLyBXZSBjYW4gcmV1c2UgdGhlIHNvdXJjZSwgbGV0
J3MgZG8gaXQuCisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9IGNhbWVyYVNvdXJjZS0+Y2xvbmUo
KTsKKyAgICAgICAgICAgIGlmIChtZWRpYUNvbnN0cmFpbnRzKSB7CisgICAgICAgICAgICAgICAg
YXV0byBlcnJvciA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqbWVkaWFDb25zdHJhaW50cyk7
CisgICAgICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
V1RGTW92ZShlcnJvci0+bWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1
cm4gc291cmNlOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBzb3VyY2VPckVycm9yID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBt
ZWRpYUNvbnN0cmFpbnRzLCBwYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFzb3VyY2VPckVycm9y
KQorICAgICAgICByZXR1cm4gc291cmNlT3JFcnJvcjsKKworICAgIGlmICghY2FuQ2FwdHVyZUZy
b21NdWx0aXBsZUNhbWVyYXMoKSAmJiBjYW1lcmFTb3VyY2UpIHsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiRW5kaW5nIGNhbWVyYSBzb3VyY2UgYXMgbmV3IHNvdXJjZSBpcyB1
c2luZyBhIGRpZmZlcmVudCBkZXZpY2UuIik7CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cHJvYmFibHkgZmFpbCB0aGUgY2FwdHVyZSBpbiBhIHdheSB0aGF0IHNob3dzIGEgc3BlY2lmaWMg
Y29uc29sZSBsb2cgbWVzc2FnZS4KKyAgICAgICAgY2FtZXJhU291cmNlLT5lbmRJbW1lZGlhdGx5
KCk7CisgICAgfQorCisgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOwor
ICAgIHNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmllcik7Cisg
ICAgcGVyUGFnZVNvdXJjZXMuY2FtZXJhU291cmNlID0gV2Vha1B0ciB7IHNvdXJjZS5nZXQoKSB9
OworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRpYUNvbnN0
cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJZGVudGlmaWVyLCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uUHJveHktPndpbGxTdGFydENhcHR1cmUoZGV2
aWNlLnR5cGUoKSkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSwgIlJl
cXVlc3QgaXMgbm90IGFsbG93ZWQiX3MsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IH0s
IHsgfSwgeyB9LCB7IH0sIDApOwpAQCAtMjk5LDE2ICszNjAsMTQgQEAgdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWkKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOwogICAgIHN3
aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVh
dGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWlu
dHMpOworICAgICAgICBzb3VyY2VPckVycm9yID0gY3JlYXRlTWljcm9waG9uZVNvdXJjZShkZXZp
Y2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkNhbWVyYToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwotICAgICAgICBp
ZiAoc291cmNlT3JFcnJvcikKLSAgICAgICAgICAgIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJj
ZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmllcik7CisgICAgICAgIHNv
dXJjZU9yRXJyb3IgPSBjcmVhdGVDYW1lcmFTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMsIHBhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kaXNwbGF5
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3Rvcnko
KS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBj
b25zdHJhaW50cywgcGFnZUlkZW50aWZpZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlN5c3RlbUF1ZGlvOgogICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaAppbmRleCA2NThiNWI3ZDE4ODZjNDgzMDZmMTgwM2EzODgwNGI5NTNkODU0ZjU0
Li5kM2FiMGRhYWZhNWFhNmIzMTNjZjI4Zjc3ZGZjYzcyNmJkMjc5ZDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogICAg
IHVzaW5nIENyZWF0ZVNvdXJjZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
IHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50
U2l6ZSwgZG91YmxlKT47Ci0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90
ZUZyYW1lcywgQ3JlYXRlU291cmNlQ2FsbGJhY2smJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlE
LCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wgc2hvdWxk
VXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENyZWF0
ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGVu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CkBAIC05NCwxMSArOTQs
MjAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90
YXRpb24pOwogCisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlTWljcm9w
aG9uZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcik7CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FtZXJhU291
cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsK
KwogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsK
ICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6
OnVuaXF1ZV9wdHI8U291cmNlUHJveHk+PiBtX3Byb3hpZXM7CiAgICAgVW5pcXVlUmVmPENvbm5l
Y3Rpb25Qcm94eT4gbV9jb25uZWN0aW9uUHJveHk7CiAgICAgV2ViQ29yZTo6T3JpZW50YXRpb25O
b3RpZmllciBtX29yaWVudGF0aW9uTm90aWZpZXIgeyAwIH07CisKKyAgICBzdHJ1Y3QgUGFnZVNv
dXJjZXMgeworICAgICAgICBXZWFrUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1p
Y3JvcGhvbmVTb3VyY2U7CisgICAgICAgIFdlYWtQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY2FtZXJhU291cmNlOworICAgIH07CisgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgUGFnZVNvdXJjZXM+IG1fcGFnZVNvdXJjZXM7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZDY0ODNiMGU2ZDA0NmQ0MDZj
MzZiZjExMzZjMTdmMDcwZWRhOTBiLi5lZDdmNGRhYjE2YmVhNzliNDIxZDk2NjBlZTFlNDljM2Y2
OTAxMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2Us
IFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3Ry
YWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykgLT4gKGJvb2wgc3Vj
Y2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJl
c2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKQorICAgIENyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZp
Y2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29u
c3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcywgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBp
bnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBz
ZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmls
aXRpZXMsIFZlY3RvcjxXZWJDb3JlOjpWaWRlb1ByZXNldERhdGE+IHByZXNldHMsIFdlYkNvcmU6
OkludFNpemUgc2l6ZSwgZG91YmxlIGZyYW1lUmF0ZSkgQXN5bmMKICAgICBTdGFydFByb2R1Y2lu
Z0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgU3Rv
cFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQp
CiAgICAgRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggZjVhNjE2NGU4MzFj
OTY4OTk1ZTMzMmVmMDI2OWMwYjhjMThjZjlmMi4uODhmZGE4NDkxNDYwYjc3NzUwZDdkYTM1MDFi
ZWEwNWUwZjAzMzA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCkBAIC0zOSwxMyArMzksMTMgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0
dXJlRGV2aWNlKQorUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwg
bWFuYWdlciwgY2FwdHVyZURldmljZSwgcGFnZUlkZW50aWZpZXIpKTsKIH0KIAotU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURl
dmljZSkKLSAgICA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UubGFiZWwo
KSB9LCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0pCitTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2
aWNlLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKzogV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVE
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgeyB9LCBwYWdlSWRlbnRpZmllcikKICAgICAsIG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDc4
YmZlNWI2NGIyMGRkMDkwMWI5OWFhNzNjMzVjOTA3MDIxZDliMDYuLjlhZmZmMjgwMzVhMGQwMzI1
ZjI2YzBkMmU5YzZkYWRkYWViYTVjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjsKICAgICAKLWNsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlPiB7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKICAgICB+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
KCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC02Miw3ICs2Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKIAogcHJpdmF0ZToKLSAgICBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAppbmRleCA2OGRjMTE1ZjE2
OWYxOWVmODlmNjZmZTVjOGYyNDFjODViOTc4ZDcxLi5lM2E3MDRlMWJjMjI2ZWQ0ODFhMGQ3NWQx
ODcwNWZhM2I5YTUyOTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNv
Z25pdAogICAgIH0KICNlbmRpZgogCi0gICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Q3JlYXRlU291cmNlKGlkZW50aWZpZXIsIGNh
cHR1cmVEZXZpY2UpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVhdGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURl
dmljZSwgc291cmNlLnBhZ2VJZGVudGlmaWVyKCkpKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5OWRmNDc1NTQ0MjY0ODg2NDJmMGFi
OGRlODEzNjllMjc4YjY3YmU1Li4zYTAwODBjOGE2ODMwMDBhMjQ4MTgzNmU1NWJhMDAxOTc0Mzg1
ZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwOTk2
LDEyICsxMDk5NiwxMiBAQCBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJv
eHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZQogICAgICAgICByZXR1cm4g
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVy
ZSIgfTsKIAogICAgIGlmIChwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0Vu
YWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1
cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCksICpj
YXB0dXJlRGV2aWNlKSB9OworICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nl
c3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKSwgKmNhcHR1cmVEZXZpY2UsIG1fd2ViUGFnZUlEKSB9OwogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1
cmVEZXZpY2UpIH07CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1
cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCksICpj
YXB0dXJlRGV2aWNlLCBtX3dlYlBhZ2VJRCkgfTsKICNlbHNlCi0gICAgcmV0dXJuIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVy
ZURldmljZSk7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSwgbV93ZWJQYWdlSUQpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwCmluZGV4IGI4MWRiYjIzZWZmNDUzM2EwNzI1NTc4OGEyNmVlYTdjMzNlMDVh
ZTMuLjlmMDlmNjIyNjI4MjY4M2MyNjBiNTM0NTE2Zjk4MDhkYTRiN2M0MDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAt
MjA4LDkgKzIwOCw5IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQogCiAjZW5kaWYKIAotdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmlj
ZSYgZGV2aWNlKQordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2UpOworICAgIGF1dG8gcmVzdWx0ID0g
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNl
KGRldmljZSwgcGFnZUlkZW50aWZpZXIpOwogICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3VyY2Ui
KTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
CmluZGV4IDE4ODQ3NzFhODdiN2Y2Njk5MTkwYTVkZTU2OTExNmNjNDdmODYxYjMuLjYyMzQ0OGZi
YTlkZDdmODVhYjczMzU5MDZkNDhiYTk2OTQ4ZjMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgog
I2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICAvLyBNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcgotICAgIHZvaWQgY3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAg
dm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7
CiAgICAgdm9pZCBkZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2
NDZhODdmMGQ3NTBkNjYxZC4uYWI1ZTk4ZTQ5NzE5YWFkZWQ1ZTkxYmJkMzczODA3ZTEwZDAxNzNh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlU291cmNlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UgZGV2aWNlKQorICAgIENyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmlj
ZSwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiAgICAgRGVsZXRlU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAg
ICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
cik7CiAgICAgU3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCAyY2U5NTRmNDhiZmZlMWY5NDEw
NTU1YzVlNDljNjU2YWVkOTdlMTM4Li5iY2E4MzQ3ZWU4NzEzYzNiMmJlMTM3YWU2NDQ4NTQ5Njdh
NjQxYWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MywyOSArNDMsMjYgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYg
bWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQYWdlSWRlbnRpZmllciBw
YWdlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJh
dGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2Fs
dCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKKyAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIHBhZ2VJZGVudGlmaWVyKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNv
cHlSZWYoKSk7CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNv
dXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291
cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIAotUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQo
KSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OlJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Ms
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBwYWdlSWRlbnRp
ZmllcikKICAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzLCBjb25zdHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogewogICAg
IEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmUpOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJj
ZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0
aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CisgICAgbV9w
cm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIHBhZ2VJZGVu
dGlmaWVyKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNj
ZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFi
aWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7
CiAgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTg3LDEwICs4NCw2IEBAIFJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2U6On5SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlKCkKICAgICAgICAgaWYgKGF1dG8qIGNv
bm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ0dQVVByb2Nlc3NDb25u
ZWN0aW9uKCkpCiAgICAgICAgICAgICBjb25uZWN0aW9uLT5yZW1vdmVDbGllbnQoKnRoaXMpOwog
ICAgIH0KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291
cmNlKCp0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6
OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJp
bGl0aWVzKQpAQCAtMTE5LDIwICsxMTIsMjAgQEAgdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW0KIAog
dm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpoYXNFbmRlZCgpCiB7Ci0gICAgbV9wcm94
eS5oYXNFbmRlZCgpOworICAgIGlmIChtX3Byb3h5LmlzRW5kZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9wcm94eS5lbmQoKTsKICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50
aWZpZXIoKSk7CiAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVt
b3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQordm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpj
YXB0dXJlU3RvcHBlZChib29sIGRpZEZhaWwpCiB7Ci0gICAgc3RvcCgpOwotICAgIGhhc0VuZGVk
KCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgp
Ci17Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpOworICAgIGlmIChk
aWRGYWlsKQorICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgZWxzZQorICAgICAgICBlbmQo
KTsKICAgICBoYXNFbmRlZCgpOwogfQogCkBAIC0xNDksMTQgKzE0Miw2IEBAIHZvaWQgUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9j
ZXNzQ29ubmVjdGlvCiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAodGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkp
IHsKLSAgICAgICAgLy8gVHJhY2sgaXMgbXV0ZWQgYW5kIGhhcyBubyBjaGFuY2Ugb2YgYmVpbmcg
dW5tdXRlZCwgbGV0J3MgZW5kIGl0LgotICAgICAgICBjYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKICAg
ICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmgKaW5kZXggMmEzM2Y5NzY4MDMwYTA2YTc4ZTQ4ZjMwZDdhY2M2M2Jl
YjZkM2JjNC4uNWNjMDFmMTNiMGZhMzhiZTljMWU4MDZmZjZmYWNhNWRmZTgyZGE2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2Vu
ZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwor
ICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcik7CiAgICAgflJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNjQsMTQgKzY0LDEzIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcm
JiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBs
eUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJy
b3JNZXNzYWdlKSk7IH0KIAotICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKLSAgICB2b2lkIGNh
cHR1cmVGYWlsZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFp
bCk7CiAKICAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFu
Z2VkKGJvb2wgdmFsdWUsIGJvb2wgaW50ZXJydXB0ZWQpOwogCiBwcml2YXRlOgotICAgIFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCmluZGV4IGM1NTMzNTMzYWM1NWIxZjVjMmFk
YWVlMTg4OTZmMzYxNGY3Y2VlMzUuLjY2YmIzODI0ODMxYTAzNTdiZTU2MGU4YWU0ZGE3MjZmMzhl
MTZlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCkBAIC0zOCwxNyArMzgsMTcgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFs
dGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiB7Ci0gICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJh
aW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZp
Y2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShz
b3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
KCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3Rl
TWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCi1SZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGRldmljZS5wZXJz
aXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKK1JlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgp
IH0sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwg
cGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5KGlkZW50aWZpZXIsIGRldmljZSwgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3RyYWludHMpCiAgICAgLCBtX21hbmFnZXIobWFuYWdl
cikKIHsKQEAgLTU3LDcgKzU3LDcgQEAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW4KIAogdm9pZCBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsK
LSAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0
byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBh
dXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlhU291cmNl
KGRldmljZUlESGFzaFNhbHQoKSwgcGFnZUlkZW50aWZpZXIoKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwg
YXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8p
IHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlkRmFp
bChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwLDIw
ICsxMDAsMjAgQEAgdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWQKIAogdm9pZCBSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Cisg
ICAgaWYgKG1fcHJveHkuaXNFbmRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3h5
LmVuZCgpOwogICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKICAgICBt
X21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRp
ZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVT
dG9wcGVkKCkKLXsKLSAgICBzdG9wKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQordm9pZCBSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVTdG9wcGVkKGJvb2wgZGlkRmFpbCkKIHsKLSAgICBS
ZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7CisgICAgaWYgKGRpZEZhaWwpCisg
ICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICBlbHNlCisgICAgICAgIGVuZCgpOwogICAgIGhh
c0VuZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaAppbmRleCBmOWM5MjI0NWEyMjRj
ZjUyZDQ1ODI2NWVhNDY2ODMyZTFiY2JlMjdkLi43YTNkOWY4NjZjMDgxZDNlNDljNjc0ZjgzODQ2
YjU5YzZmYzU0MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCkBAIC00Nyw3ICs0Nyw3IEBA
IGNsYXNzIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMqLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
KTsKICAgICB+UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9wcm94eS5pZGVudGlmaWVyKCk7IH0KQEAgLTU4LDE0ICs1OCwxMyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYg
ZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKSB7IG1fcHJveHkuYXBwbHlD
b25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9y
TWVzc2FnZSkpOyB9CiAKLSAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7Ci0gICAgdm9pZCBjYXB0
dXJlRmFpbGVkKCkgZmluYWw7CisgICAgdm9pZCBjYXB0dXJlU3RvcHBlZChib29sIGRpZEZhaWwp
OwogCiAgICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNh
bXBsZSYgc2FtcGxlLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKSB7IHZp
ZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZSwgbWV0YWRhdGEpOyB9CiAgICAgdm9pZCBzb3VyY2VN
dXRlZENoYW5nZWQoYm9vbCB2YWx1ZSwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKIHByaXZhdGU6Ci0g
ICAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyosIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwog
CiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlUHJveHkuY3BwCmluZGV4IDI0NDZlMzk4ZThjMzY4NzhkNDE0NDIwY2E1ZGJjN2Ji
NWU4NDUxODYuLmU5MTBiNjE2MDU4OTA2YTkxOWRlNTA4YjU5YjdhOTI1MTgyZDAwZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCkBAIC03MCw5ICs3MCw5IEBAIHZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSgpCiAgICAgY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
dG9wUHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFN0
cmluZyYgZGV2aWNlSURIYXNoU2FsdCwgQ3JlYXRlQ2FsbGJhY2smJiBjYWxsYmFjaywgYm9vbCBz
aG91bGRVc2VSZW1vdGVGcmFtZSkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5
OjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBDcmVhdGVDYWxsYmFjayYm
IGNhbGxiYWNrLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lKQogewotICAgIGNvbm5lY3Rpb24o
KS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRl
bnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCwgbV9jb25zdHJhaW50cywgc2hv
dWxkVXNlUmVtb3RlRnJhbWUpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgY29ubmVjdGlvbigp
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVu
dGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFpbnRzLCBzaG91
bGRVc2VSZW1vdGVGcmFtZSwgcGFnZUlkZW50aWZpZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9
CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjphcHBseUNvbnN0cmFpbnRz
KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBSZWFsdGltZU1lZGlhU291cmNl
OjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTAxLDgg
KzEwMSwxMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6ZmFpbEFwcGx5
Q29uc3RyYWludENhbGxiYWNrcyhjb25zdCBTdHJpbmcmCiAgICAgICAgIGNhbGxiYWNrcy50YWtl
Rmlyc3QoKShSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyB7IH0s
IGVycm9yTWVzc2FnZSB9KTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHk6Omhhc0VuZGVkKCkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjplbmQo
KQogeworICAgIEFTU0VSVCghbV9pc0VuZGVkKTsKKyAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAg
IGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVBy
b3h5LmgKaW5kZXggNTllMmMyODM0NWM5MGY3ZDJjNGVhN2YzMDZiYTQ1MGY1YTEyNTc2Zi4uYjEx
MGQxZTdkNjVmYWMyYWY1NDQ4MjlmNzJlNGZlY2IyNWU0ODM2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlUHJveHkuaApAQCAtNTMsMTMgKzUzLDE0IEBAIHB1YmxpYzoKICAgICBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3M7IH0KIAogICAgIHVzaW5nIENyZWF0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sLCBTdHJpbmcmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9y
PFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47
Ci0gICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBDcmVhdGVD
YWxsYmFjayYmLCBib29sIHNob3VsZFVzZVJlbW90ZUZyYW1lID0gZmFsc2UpOworICAgIHZvaWQg
Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENyZWF0ZUNhbGxiYWNrJiYsIGJvb2wgc2hvdWxkVXNlUmVtb3RlRnJhbWUgPSBmYWxz
ZSk7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoKTsKICAgICB2b2lkIGFw
cGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYg
ZXJyb3JNZXNzYWdlKTsKICAgICB2b2lkIGZhaWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3MoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIAotICAgIHZvaWQgaGFzRW5kZWQoKTsKKwor
ICAgIGJvb2wgaXNFbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFbmRlZDsgfQorICAgIHZvaWQg
ZW5kKCk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKTsKICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKCk7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0
cmFpbnRzSGFuZGxlciYmKTsKQEAgLTc4LDYgKzc5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSBtX2RldmljZTsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcyB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSWRl
bnRpZmllcjsKIAogICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsK
ICAgICBEZXF1ZTxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRz
SGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKQEAgLTg1LDYgKzg3
LDcgQEAgcHJpdmF0ZToKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2Fs
bGJhY2s7CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwogICAgIGJvb2wgbV9pbnRlcnJ1cHRl
ZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIAogaW5saW5l
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCBkMmQyNGFiYWI5ZWMzNGEwZGEyMmViNjVh
OGFkM2NiNWYwMDdkOTdjLi5jNGI3MDUxOWQ1MDE2OGYwZTRjMjcwMzgzMTEwY2VlM2Y3MTcxZmJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00NSwyOSArNDUsMjUgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKQorUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyKQogewotICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcykpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
LCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
bWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgcGFnZUlkZW50aWZpZXIpKTsKICAg
ICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAg
IHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwog
fQogCi1SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCisgICAgOiBSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIHBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9wcm94eShpZGVu
dGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQog
ICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkK
LSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0
dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0g
ICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8m
JiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0
byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11dGFibGUgeworICAgIG1f
cHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBwYWdlSWRl
bnRpZmllcigpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3Vj
Y2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBh
YmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8gZnJhbWVSYXRlKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIG1fcHJveHkuZGlk
RmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTMs
MTEgKzg5LDYgQEAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UoKQogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIGNv
bm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgfQotCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRp
ZgogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldENhcGFiaWxpdGllcyhS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQpAQCAtMTQ3LDIw
ICsxMzgsMjAgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIAogdm9pZCBSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpoYXNFbmRlZCgpCiB7Ci0gICAgbV9wcm94eS5oYXNFbmRlZCgpOworICAg
IGlmIChtX3Byb3h5LmlzRW5kZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm94eS5l
bmQoKTsKICAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiAgICAgbV9t
YW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZp
ZXIoKSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZVN0b3Bw
ZWQoKQordm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlU3RvcHBlZChib29s
IGRpZEZhaWwpCiB7Ci0gICAgc3RvcCgpOwotICAgIGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCi17Ci0gICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpOworICAgIGlmIChkaWRGYWlsKQorICAgICAgICBj
YXB0dXJlRmFpbGVkKCk7CisgICAgZWxzZQorICAgICAgICBlbmQoKTsKICAgICBoYXNFbmRlZCgp
OwogfQogCkBAIC0yMDQsMTQgKzE5NSw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvCiAgICAg
aWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNh
bWVyYSAmJiB0aGlzICE9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZp
ZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKSkgewotICAgICAgICAvLyBUcmFjayBp
cyBtdXRlZCBhbmQgaGFzIG5vIGNoYW5jZSBvZiBiZWluZyB1bm11dGVkLCBsZXQncyBlbmQgaXQu
Ci0gICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRp
ZgotCiAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuZGlkVXBkYXRl
U291cmNlQ29ubmVjdGlvbihjb25uZWN0aW9uKCkpOwogICAgIG1fcHJveHkucmVzZXRSZWFkeSgp
OwogICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRl
eCA1YjQ2NTExZjQxODczMjQ4NmIzMjZlMGRiOWExZWU5NzE4OWFhMjczLi45ZWYwYmM3MmI1Mzlj
MGY5Njk5Y2ExYWEzMzI2M2UyNTgyNjhlODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTU1
LDcgKzU1LDcgQEAgY2xhc3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXIKICNlbmRpZgogewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGlj
IFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAgICAgflJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X3Byb3h5LmlkZW50aWZpZXIoKTsgfQpAQCAtNjMsMTQgKzYzLDEzIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYp
OwogCi0gICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgp
IGZpbmFsOworICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoYm9vbCBkaWRGYWlsKTsKIAogICAgIHZv
aWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBXZWJDb3JlOjpJ
bnRTaXplLCBXZWJDb3JlOjpWaWRlb1NhbXBsZU1ldGFkYXRhKTsKICAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZChib29sIHZhbHVlLCBib29sIGludGVycnVwdGVkKTsKIAogcHJpdmF0ZToKLSAg
ICBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7Cisg
ICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdGFy
dFByb2R1Y2luZ0RhdGEoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggNGNhMjU0ZjQ2ZGVi
YWQ5YTJjNWQ2MWQ3ZTVjOGQ4YTJlYmMxNjU1OC4uZTE0NDAxYmI3MDdlNjU3ZjE1YzExOWZlYjNj
ZmNmZTNkMGUzNThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0xMjQsMzMgKzEyNCwxOCBA
QCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZgogICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmll
cik7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJj
ZXMuZmluZChpZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFtdKFJl
ZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7Ci0gICAgICAgIHNvdXJjZS0+
Y2FwdHVyZVN0b3BwZWQoKTsKLSAgICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKCk7Ci0gICAgfSwg
W10oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBz
b3VyY2UtPmNhcHR1cmVTdG9wcGVkKCk7Ci0gICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7
Ci19Ci0KLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcHR1cmVGYWlsZWQoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBhdXRvIGl0ZXJhdG9y
ID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fc291
cmNlcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3dpdGNoT24oaXRlcmF0b3ItPnZh
bHVlLCBbXShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkgewotICAgICAg
ICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKLSAgICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZT4mIHNvdXJjZSkgewotICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsK
LSAgICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7Ci0g
ICAgICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOworICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52
YWx1ZSwgW2RpZEZhaWxdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7
CisgICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoZGlkRmFpbCk7CisgICAgfSwgW2RpZEZh
aWxdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNv
dXJjZS0+Y2FwdHVyZVN0b3BwZWQoZGlkRmFpbCk7CisgICAgfSwgW2RpZEZhaWxdKFJlZjxSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5jYXB0
dXJlU3RvcHBlZChkaWRGYWlsKTsKICAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0K
IApAQCAtMjEyLDcgKzE5Nyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5
Q29uc3RyYWludHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAgICAgfSwgW10o
c3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgUGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIp
CiB7CiAjaWYgIUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKQpAQCAtMjI1LDcgKzIxMCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvCiAg
ICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHJldHVy
biBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywg
eyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MsIHBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUp
CkBAIC0yMzgsNyArMjIzLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9G
YWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmEKICAgICBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MgPSB2YWx1ZTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQYWdlSWRlbnRpZmllciBwYWdlSWRl
bnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNDgsMTAgKzIzMywxMCBAQCBDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0Nh
cHR1cmVTbwogICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5z
ZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAK
ICAgICBib29sIHNob3VsZFVzZUlPU3VyZmFjZSA9ICFtX21hbmFnZXIubV9zaG91bGRVc2VHUFVQ
cm9jZXNzUmVtb3RlRnJhbWVzOwotICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwg
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CisgICAg
cmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MsIHBhZ2VJZGVudGlmaWVyKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7CiB9CiAKLUNhcHR1cmVT
b3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0
dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6
OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBQ
YWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKIHsKICNpZiAhRU5BQkxFKEdQVV9QUk9DRVNT
KQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCkBAIC0yNjAsNyArMjQ1LDcg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlG
YWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKQogICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5z
ZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAK
LSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNlLCBj
b25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwg
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBwYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IGQ4ZmI4MGI0ZmU4
ZGFlNzY5OTU0ODJhMjM5MTdkMmZlYTU5MjBlMWYuLmIwMTQ4NDFhMmJmMWIwODRhMzliNzk3MzBl
NmYyN2Y2ZmI5NGYxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAg
ICAgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBm
aW5hbDsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXImIGF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURl
dmljZU1hbmFnZXI7IH0KICAgICAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiBzcGVha2VyRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3BlYWtlckRldmlj
ZXM7IH0KIApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJD
b3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKikgZmluYWw7CisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcikgZmluYWw7CiAgICAgICAgIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyBy
ZXR1cm4gbV9tYW5hZ2VyLm1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOyB9CiAKICAgICAgICAg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTEwMCw3ICsxMDAsNyBAQCBw
cml2YXRlOgogICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKKyAgICAg
ICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGZpbmFsOwogICAg
ICAgICBXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNl
TWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFu
YWdlcjsgfQogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CkBA
IC0xMjQsOCArMTI0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCi0gICAgdm9pZCBjYXB0dXJlRmFpbGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHNvdXJjZVN0b3BwZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc291cmNl
U3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgYm9vbCBkaWRG
YWlsKTsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCk7CiAKICAgICB2
b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDk3OWNjZTI1ODk2MDA1M2ZlMTRmNzBl
NmQyMzYyMDE5MGIxNmFkYjAuLmIwMzYyOTljYjM3MWZkMjlkOWEzNzhkMjE3MjIwODUwYTE4Y2Iz
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI0LDggKzI0LDcg
QEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKLSAgICBDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQotICAgIFNvdXJjZVN0b3BwZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCisgICAgU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgYm9vbCBkaWRGYWlsKQog
ICAgIFNvdXJjZU11dGVkQ2hhbmdlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZCwgYm9vbCBtdXRlZCwgYm9vbCBpbnRlcnJ1cHRlZCkKICAgICBTb3VyY2VTZXR0aW5n
c0NoYW5nZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBBcHBseUNvbnN0
cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZDMzNGRhNDIyMjE0ZDE0YjFmNjhjOTRmMDZjMjE4ZDE4ZjhiNDViOS4uNmYzODMxYTg1OTY2NDEx
ZTlmZjVjY2YxNzJmODUyYzA5M2FmYWRkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAz
LTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTY29wZSBj
YXB0dXJlIHNvdXJjZXMgYnkgcGFnZSBpZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIFJlbW92ZSBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLmh0bWwgbm93IHRoYXQgd2Ugbm8gbG9uZ2VyIGhh
bmRsZSBtdWx0aSBjYXB0dXJlIGluIFdlYlByb2Nlc3MgYnV0IGluIEdQVVByb2Nlc3MuCisgICAg
ICAgIFVwZGF0ZSBwbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dy
b3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbCB0byBiZSBsaWtlIHBsYXRmb3JtL2lvcy9tZWRpYXN0
cmVhbS9hdWRpby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi5odG1sCisgICAgICAgIHNvIHRoYXQg
dGVzdCBpcyBubyBsb25nZXIgZGVwZW5kZW50IG9uIHN5bmNocm9ub3VzIGV2ZW50IGZpcmluZy4K
KworICAgICAgICAqIHBsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9hdWRpby1tdXRlZC1pbi1iYWNr
Z3JvdW5kLXRhYi1ncHUtcHJvY2Vzcy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xl
LWNhcHR1cmUtZ3B1LXByb2Nlc3MuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLmh0bWw6IFJlbW92ZWQuCisKIDIwMjIt
MDMtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBh
IHByZWZlcmVuY2UgdG8gbXV0ZSB2aWRlbyBjYXB0dXJlIGluIGNhc2UgYXVkaW8gY2FwdHVyZSBn
ZXRzIGludGVycnVwdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVk
aWFzdHJlYW0vYXVkaW8tbXV0ZWQtaW4tYmFja2dyb3VuZC10YWItZ3B1LXByb2Nlc3MuaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9hdWRpby1tdXRlZC1pbi1iYWNr
Z3JvdW5kLXRhYi1ncHUtcHJvY2Vzcy5odG1sCmluZGV4IGY2OGY3Nzg2MzMyMzE5ZTZjNDIzMDhl
YmFmY2U4Y2UxYzM3MDYyYWYuLjliZTAxZmIzNmEwMjNlYzAxNzJjZjI5OTI0ZjVhMTBiMDljZWQz
N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9hdWRp
by1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRhYi1ncHUtcHJvY2Vzcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9hdWRpby1tdXRlZC1pbi1iYWNrZ3JvdW5kLXRh
Yi1ncHUtcHJvY2Vzcy5odG1sCkBAIC0yOSwzNiArMjksNDggQEAKICAgICAgICAgICAgICAgICB9
KQogCiAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICB0
ZXN0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHko
ZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrLm11dGVkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
YXVkaW9UcmFjay5vbm11dGUgPSByZXNvbHZlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCF2aWRlb1RyYWNrLm11dGVkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdmlkZW9UcmFjay5v
bm11dGUgPSByZXNvbHZlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZp
ZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBtdXRlZCIpOwogICAgICAgICAgICAgICAg
ICAgICB9LCAiSGlkZSBwYWdlLCB2aWRlbyBhbmQgYXVkaW8gc2hvdWxkIGJlIG11dGVkIik7CiAg
ICAgICAgICAgICAgICAgfSkKIAogICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2Vf
dGVzdChhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VWaXNpYmlsaXR5KHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1ZGlv
VHJhY2subXV0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21p
c2UocmVzb2x2ZSA9PiBhdWRpb1RyYWNrLm9udW5tdXRlID0gcmVzb2x2ZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoYXVkaW9UcmFjay5tdXRlZCwgImF1ZGlvIHRyYWNr
IGlzIGFjdGl2ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2subXV0
ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB2aWRlb1RyYWNrLm9udW5tdXRlID0gcmVzb2x2ZSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZmFsc2UodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2
ZSIpOwogICAgICAgICAgICAgICAgICAgICB9LCAiU2hvdyBwYWdlLCB2aWRlbyBhbmQgYXVkaW8g
c2hvdWxkIGJlIHVubXV0ZWQiKTsKICAgICAgICAgICAgICAgICB9KQogCiAgICAgICAgICAgICAg
ICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlVmlzaWJpbGl0eShmYWxzZSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlTXV0ZWQoImNhcHR1
cmVkZXZpY2VzIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIWF1ZGlvVHJhY2subXV0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBhdWRpb1RyYWNrLm9ubXV0ZSA9IHJlc29s
dmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoYXVkaW9UcmFjay5tdXRl
ZCwgImF1ZGlvIHRyYWNrIGlzIG11dGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
IXZpZGVvVHJhY2subXV0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB2aWRlb1RyYWNrLm9ubXV0ZSA9IHJlc29sdmUpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmlkZW9UcmFjay5tdXRlZCwgInZpZGVvIHRy
YWNrIGlzIG11dGVkIik7CiAgICAgICAgICAgICAgICAgICAgIH0sICJIaWRlIGFuZCBtdXRlIHBh
Z2UsIHZpZGVvIGFuZCBhdWRpbyBzaG91bGQgYmUgbXV0ZWQiKTsKICAgICAgICAgICAgICAgICB9
KQogCiAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICB0
ZXN0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVZpc2liaWxpdHko
dHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11
dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1zaW5nbGUtY2FwdHVyZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDljNTBhZDgzMDE3YmMyMTRmOTc1ZWEyYzJjMjliODE0MGZkNWQ1ODAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBUZXN0aW5nIHN1Y2Nlc3NpdmUg
Z2V0VXNlck1lZGlhIGNhbGxzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2luZ2xlLWNhcHR1cmUtZ3B1LXByb2Nlc3MuaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtc2lu
Z2xlLWNhcHR1cmUtZ3B1LXByb2Nlc3MuaHRtbAppbmRleCA3ZTUzMjQzMTU3MzQxZTAyYzNhZDQx
ODkyMDU0OGE0YjE2MTRlMmJiLi5mYTBiNTMxNTYwY2JhMTg3ODRjZGM3ZjRjYzhhMzA4ZTdhMTQw
MTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLWdwdS1wcm9jZXNzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1zaW5nbGUtY2FwdHVyZS1n
cHUtcHJvY2Vzcy5odG1sCkBAIC0xMCwxMiArMTAsMjIgQEAKICAgICA8Ym9keT4KICAgICAgICAg
PHNjcmlwdD4KIAotYXN5bmMgZnVuY3Rpb24gd2FpdEZvclRyYWNrTXV0ZWQodHJhY2spCithc3lu
YyBmdW5jdGlvbiB3YWl0Rm9yVHJhY2tFbmRlZCh0cmFjaykKIHsKLSAgICBpZiAodHJhY2subXV0
ZWQpCisgICAgaWYgKHRyYWNrLnJlYWR5U3RhdGUgPT09ICJlbmRlZCIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRyYWNrLm9ubXV0ZSA9IHJl
c29sdmUpOworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7IHRy
YWNrLm9uZW5kZWQgPSByZXNvbHZlOyBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgid2FpdEZvclRy
YWNrRW5kZWQgdGltZWQgb3V0IGZvciB0cmFjayAiICsgdHJhY2sua2luZCksIDUwMDApOyB9KTsK
K30KKworYXN5bmMgZnVuY3Rpb24gZ2V0T3RoZXJNaWNyb3Bob25lRGV2aWNlKHRyYWNrKQorewor
ICAgIGNvbnN0IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0
ZURldmljZXMoKTsKKyAgICBmb3IgKGxldCBkZXZpY2Ugb2YgZGV2aWNlcykgeworICAgICAgICBp
ZiAoZGV2aWNlLmtpbmQgPT09ICJhdWRpb2lucHV0IiAmJiB0cmFjay5raW5kID09PSAiYXVkaW8i
ICYmIGRldmljZS5kZXZpY2VJZCAhPT0gdHJhY2suZ2V0U2V0dGluZ3MoKS5kZXZpY2VJZCkKKyAg
ICAgICAgICAgICByZXR1cm4gZGV2aWNlLmRldmljZUlkOworICAgIH0KKyAgICByZXR1cm4gIiI7
CiB9CiAKIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewpAQCAtMjUsMjcgKzM1LDI4IEBAIHByb21p
c2VfdGVzdCgodGVzdCkgPT4gewogICAgIHZhciBmaXJzdFN0cmVhbTsKICAgICB2YXIgYXVkaW9U
cmFjazsKICAgICB2YXIgdmlkZW9UcmFjazsKLSAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSwgdmlkZW86IHsgZmFjaW5nTW9kZTogeyBl
eGFjdDogWyd1c2VyJ10gfSB9IH0pLnRoZW4oKHN0cmVhbSkgPT4geworICAgIHJldHVybiBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlLCB2aWRlbzogeyBm
YWNpbmdNb2RlOiB7IGV4YWN0OiBbJ3VzZXInXSB9IH0gfSkudGhlbihhc3luYyAoc3RyZWFtKSA9
PiB7CiAgICAgICAgIGZpcnN0U3RyZWFtID0gc3RyZWFtOwogICAgICAgICBhdWRpb1RyYWNrID0g
Zmlyc3RTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXTsKICAgICAgICAgdmlkZW9UcmFjayA9IGZp
cnN0U3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CiAKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGF1
ZGlvVHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBhY3RpdmUiKTsKLSAgICAgICAgYXNzZXJ0
X2ZhbHNlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhhdWRpb1RyYWNrLnJlYWR5U3RhdGUsICJsaXZlIiwgImF1ZGlvIHRy
YWNrIGlzIGxpdmUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlb1RyYWNrLnJlYWR5U3Rh
dGUsICJsaXZlIiwgInZpZGVvIHRyYWNrIGlzIGxpdmUiKTsKIAotICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZX0pOworICAgICAg
ICBjb25zdCBuZXdNaWNyb3Bob25lRGV2aWNlSWQgPSBhd2FpdCBnZXRPdGhlck1pY3JvcGhvbmVE
ZXZpY2UoYXVkaW9UcmFjayk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB7IGRldmljZUlkIDogbmV3TWljcm9waG9uZURldmljZUlk
fSB9KTsKICAgICB9KS50aGVuKGFzeW5jIChzdHJlYW0pID0+IHsKLSAgICAgICAgYXdhaXQgd2Fp
dEZvclRyYWNrTXV0ZWQoYXVkaW9UcmFjayk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JUcmFja0Vu
ZGVkKGF1ZGlvVHJhY2spOwogCi0gICAgICAgIGFzc2VydF90cnVlKGF1ZGlvVHJhY2subXV0ZWQs
ICJhdWRpbyB0cmFjayBpcyBtdXRlZCIpOwotICAgICAgICBhc3NlcnRfZmFsc2UodmlkZW9UcmFj
ay5tdXRlZCwgInZpZGVvIHRyYWNrIGlzIGFjdGl2ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KGF1ZGlvVHJhY2sucmVhZHlTdGF0ZSwgImVuZGVkIiwgImF1ZGlvIHRyYWNrIGlzIGVuZGVkIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW9UcmFjay5yZWFkeVN0YXRlLCAibGl2ZSIsICJ2
aWRlbyB0cmFjayBpcyBsaXZlIik7CiAKICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgZmFjaW5nTW9kZTogeyBleGFjdDogWyJlbnZp
cm9ubWVudCJdIH0gfSB9KTsKICAgICB9KS50aGVuKGFzeW5jIChzdHJlYW0pID0+IHsKLSAgICAg
ICAgYXdhaXQgd2FpdEZvclRyYWNrTXV0ZWQodmlkZW9UcmFjayk7CisgICAgICAgIGF3YWl0IHdh
aXRGb3JUcmFja0VuZGVkKHZpZGVvVHJhY2spOwogCi0gICAgICAgIGFzc2VydF90cnVlKGF1ZGlv
VHJhY2subXV0ZWQsICJhdWRpbyB0cmFjayBpcyBtdXRlZCwgc2Vjb25kIGNoZWNrIik7Ci0gICAg
ICAgIGFzc2VydF90cnVlKHZpZGVvVHJhY2subXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBtdXRlZCIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvVHJhY2sucmVhZHlTdGF0ZSwgImVuZGVkIiwg
ImF1ZGlvIHRyYWNrIGlzIGVuZGVkLCBzZWNvbmQgY2hlY2siKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWRlb1RyYWNrLnJlYWR5U3RhdGUsICJlbmRlZCIsICJ2aWRlbyB0cmFjayBpcyBlbmRl
ZCIpOwogICAgIH0pOwogfSwgIlRlc3Rpbmcgc3VjY2Vzc2l2ZSBnZXRVc2VyTWVkaWEgY2FsbHMi
KTsKICAgICAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2NjgyZWUzMzlkMmU5NGUzNTFl
Mjk5YjRiMTMzNWUyMjY0NDQyYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL2dldFVzZXJN
ZWRpYS1zaW5nbGUtY2FwdHVyZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVk
PWZhbHNlIENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ9ZmFsc2UgXSAtLT4KLTwhZG9j
dHlwZSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLSAgICAgICAgPHRpdGxlPmlPUyBzcGVjaWZpYyBjb25zdHJhaW50cyBvZiBvbmUgYWN0
aXZlIGNhcHR1cmUgc291cmNlIGF0IGEgdGltZTwvdGl0bGU+Ci0gICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3JpcHQ+Ci0KLWFzeW5j
IGZ1bmN0aW9uIHdhaXRGb3JUcmFja011dGVkKHRyYWNrKQotewotICAgIGlmICh0cmFjay5tdXRl
ZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
dHJhY2sub25tdXRlID0gcmVzb2x2ZSk7Ci19Ci0KLXByb21pc2VfdGVzdCgodGVzdCkgPT4gewot
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVk
aWFQZXJtaXNzaW9uKHRydWUpOwotCi0gICAgdmFyIGZpcnN0U3RyZWFtOwotICAgIHZhciBhdWRp
b1RyYWNrOwotICAgIHZhciB2aWRlb1RyYWNrOwotICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlLCB2aWRlbzogeyBmYWNpbmdNb2RlOiB7
IGV4YWN0OiBbJ3VzZXInXSB9IH0gfSkudGhlbigoc3RyZWFtKSA9PiB7Ci0gICAgICAgIGZpcnN0
U3RyZWFtID0gc3RyZWFtOwotICAgICAgICBhdWRpb1RyYWNrID0gZmlyc3RTdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKVswXTsKLSAgICAgICAgdmlkZW9UcmFjayA9IGZpcnN0U3RyZWFtLmdldFZpZGVv
VHJhY2tzKClbMF07Ci0KLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGF1ZGlvVHJhY2subXV0ZWQsICJh
dWRpbyB0cmFjayBpcyBhY3RpdmUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2su
bXV0ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKLQotICAgICAgICByZXR1cm4gbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZX0pOwotICAgIH0pLnRo
ZW4oYXN5bmMgKHN0cmVhbSkgPT4gewotICAgICAgICBhd2FpdCB3YWl0Rm9yVHJhY2tNdXRlZChh
dWRpb1RyYWNrKTsKLQotICAgICAgICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVk
aW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHZpZGVvVHJhY2subXV0
ZWQsICJ2aWRlbyB0cmFjayBpcyBhY3RpdmUiKTsKLQotICAgICAgICByZXR1cm4gbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyBmYWNpbmdNb2RlOiB7IGV4YWN0
OiBbImVudmlyb25tZW50Il0gfSB9IH0pOwotICAgIH0pLnRoZW4oYXN5bmMgKHN0cmVhbSkgPT4g
ewotICAgICAgICBhd2FpdCB3YWl0Rm9yVHJhY2tNdXRlZCh2aWRlb1RyYWNrKTsKLQotICAgICAg
ICBhc3NlcnRfdHJ1ZShhdWRpb1RyYWNrLm11dGVkLCAiYXVkaW8gdHJhY2sgaXMgbXV0ZWQsIHNl
Y29uZCBjaGVjayIpOwotICAgICAgICBhc3NlcnRfdHJ1ZSh2aWRlb1RyYWNrLm11dGVkLCAidmlk
ZW8gdHJhY2sgaXMgbXV0ZWQiKTsKLSAgICB9KTsKLX0sICJUZXN0aW5nIHN1Y2Nlc3NpdmUgZ2V0
VXNlck1lZGlhIGNhbGxzIik7Ci0gICAgICAgIDwvc2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>