<?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>236815</bug_id>
          
          <creation_ts>2022-02-17 17:07:49 -0800</creation_ts>
          <short_desc>[macOS] Allow screen and window capture to be done in the GPU Process</short_desc>
          <delta_ts>2022-02-18 14:44:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1843189</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-17 17:07:49 -0800</bug_when>
    <thetext>Add an experimental feature to do screen and window capture in the GPU Process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843190</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-17 17:08:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/89117278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843218</commentid>
    <comment_count>2</comment_count>
      <attachid>452459</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-17 17:57:15 -0800</bug_when>
    <thetext>Created attachment 452459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843274</commentid>
    <comment_count>3</comment_count>
      <attachid>452459</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-17 21:25:05 -0800</bug_when>
    <thetext>Comment on attachment 452459
Patch

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

r=me with a small nit, once the bots are green

&gt; Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:377
&gt; +    ALWAYS_LOG_IF(loggerPtr(), LOGIDENTIFIER);

I think this can be ALWAYS_LOG_IF_POSSIBLE(LOGIDENTIFIER)

&gt; Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:403
&gt; +    ALWAYS_LOG_IF(loggerPtr(), LOGIDENTIFIER);

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843278</commentid>
    <comment_count>4</comment_count>
      <attachid>452478</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-17 21:55:03 -0800</bug_when>
    <thetext>Created attachment 452478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843357</commentid>
    <comment_count>5</comment_count>
      <attachid>452508</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-18 04:47:24 -0800</bug_when>
    <thetext>Created attachment 452508
[fast-cq] Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843412</commentid>
    <comment_count>6</comment_count>
      <attachid>452508</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-18 07:55:01 -0800</bug_when>
    <thetext>Comment on attachment 452508
[fast-cq] Patch for landing

The windows failure is unrelated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843589</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-18 13:03:27 -0800</bug_when>
    <thetext>Found 1 new test failure: fast/sandbox/mac/sandbox-mach-lookup.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843629</commentid>
    <comment_count>8</comment_count>
      <attachid>452508</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-18 13:41:38 -0800</bug_when>
    <thetext>Comment on attachment 452508
[fast-cq] Patch for landing

Per Arne and I can&apos;t see anything in this that could break fast/sandbox/mac/sandbox-mach-lookup.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843657</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-18 14:44:47 -0800</bug_when>
    <thetext>Committed r290174 (247505@main): &lt;https://commits.webkit.org/247505@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452508.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452459</attachid>
            <date>2022-02-17 17:57:15 -0800</date>
            <delta_ts>2022-02-17 21:55:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236815-20220217175714.patch</filename>
            <type>text/plain</type>
            <size>52637</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY2MDY5ODliY2RhNjQyMTdkZTJlNzcw
ODM4NmYzNzA2N2ExYThkZTQuLmZhM2ViNmIwMjA1NjkzNjg2YWU0M2U1YmQ5NDc2N2ZiNzg1YWFm
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBbGxvdyBzY3JlZW4gYW5kIHdp
bmRvdyBjYXB0dXJlIHRvIGJlIGRvbmUgaW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4MTUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg5MTE3Mjc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sOiBBZGQgVXNlR1BVUHJvY2Vzc0ZvckRpc3BsYXlDYXB0dXJlLgorCiAyMDIyLTAy
LTE1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dH
U0xdIEltcGxlbWVudCBlbm91Z2ggb2YgdGhlIGxleGVyIGZvciB0aGUgc2ltcGxlc3Qgc2hhZGVy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDJkNWFhNjQ4NjE5NDliNmYxZjVkMmYwODk3OTgxMTU2Mjg5ZGVmZTAu
LmNlOTEwZDA0Nzg1MDYwMjE2ZWY5Y2RiMTI3YzZlMzlkMDI4NjFiNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAyMi0wMi0xNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEFsbG93IHNjcmVlbiBhbmQgd2luZG93IGNhcHR1
cmUgdG8gYmUgZG9uZSBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjgxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODkxMTcyNzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdGVkIG1hbnVhbGx5LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnNlc3Npb25EaWRDaGFuZ2VD
b250ZW50KTogQ2FsbCBDYXB0dXJlRGV2aWNlCisgICAgICAgIGNvbnN0cnVjdG9yIGRpcmVjdGx5
IHNpbmNlIHdlIGhhdmUgZXZlcnl0aGluZyBpdCBuZWVkcy4KKyAgICAgICAgKFdlYkNvcmU6OmZp
bmRTaGFyYWJsZURldmljZSk6IEV4dHJhY3QgbG9naWMgZnJvbSBwcm9jZXNzU2hhcmFibGVDb250
ZW50IGludG8gYQorICAgICAgICBzdGF0aWMgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHJldXNlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpmaW5kU2hh
cmVhYmxlQ29udGVudCk6IFVzZSBmaW5kU2hhcmFibGVEZXZpY2UuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c3RyZWFtQ29uZmlndXJhdGlvbik6IEFk
ZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3Vy
Y2U6OnN0YXJ0Q29udGVudFN0cmVhbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVu
Q2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpwcm9jZXNz
U2hhcmFibGVDb250ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcjo6U2hhcmluZ1Nl
c3Npb25PYnNlcnZlcjo6b3BlcmF0b3I9PSBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFu
YWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lv
bk1hbmFnZXI6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVL
aXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25EaWRDaGFuZ2VDb250ZW50KTogQ2FsbAor
ICAgICAgICBDYXB0dXJlRGV2aWNlIGNvbnN0cnVjdG9yIGRpcmVjdGx5IHNpbmNlIHdlIGhhdmUg
ZXZlcnl0aGluZyBpdCBuZWVkcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRT
aGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnByb21wdEZvckdldERpc3BsYXlNZWRpYSk6IENhbGwKKyAg
ICAgICAgY29tcGxldGlvbiBoYW5kbGVyIGlmIHRoZSBjbGFzcyBpcyBub3QgYXZhaWxhYmxlLgor
CiAyMDIyLTAyLTEwICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgog
CiAgICAgICAgIERvIG5vdCB1cGRhdGUgdGhlIGZyYWdtZW50ZWQgZmxvdyBzdGF0ZSB3aGlsZSBp
bnRlcm5hbGx5IG11dGF0aW5nIHRoZSByZW5kZXIgdHJlZQpAQCAtMTAwMiw2ICsxMDMzLDIwIEBA
CiAgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uKToKICAgICAgICAg
KFdlYkNvcmU6OlNXU2VydmVyOjpwcm9jZXNzUHVzaE1lc3NhZ2UpOgogCisyMDIyLTAyLTE0ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10g
Q2hlY2sgZmVhdHVyZSBmbGFnIGJlZm9yZSB1c2luZyBzY3JlZW4vd2luZG93IHBpY2tlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTk2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84ODkwOTAxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQgbWFudWFsbHkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdl
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkNhcHR1cmVLaXRQaWNrZXJGZWF0dXJlRW5h
YmxlZCk6IENoZWNrIGZlYXR1cmUgZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1
cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OmlzQXZhaWxhYmxlKToKKwogMjAyMi0wMi0xMyAg
QWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBOb3Qg
YWxsIGF0b21pYyBpbmxpbmUgbGV2ZWwgYm94ZXMgbmVlZCBpZGVvZ3JhcGhpYyBiYXNlbGluZSB3
aGVuIGluIHZlcnRpY2FsIHdyaXRpbmcgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4ZThmYmU3M2YzOWI3NzYw
MjdiOTVhNDlkOTQ3YmIwZDc5MGMwMmM5Li4xZTkzM2Q4NzM2ZWZhNzZjYWVhNGEwNmU5OGQ5Njk3
NmQyNjQ1MDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAyLTE3ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWxsb3cg
c2NyZWVuIGFuZCB3aW5kb3cgY2FwdHVyZSB0byBiZSBkb25lIGluIHRoZSBHUFUgUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2ODE1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTExNzI3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OnNob3dXaW5kb3dQaWNrZXIpOiBDYWxsIHRoZSBw
aWNrZXIuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OnNob3dTY3JlZW5QaWNrZXIpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6c2V0VXNlU2NyZWVuQ2FwdHVyZUtp
dCk6IAorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIEdQVVByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjogQWRkIHJ1bGUgdG8gYWxsb3cgc2Fu
ZGJveAorICAgICAgICB0byBiZSBleHRlbmRlZCBkeW5hbWljYWxseSB3aXRoIHRoZSBtYWNoLWxv
b2t1cHMgcmVxdWlyZWQgZm9yIHRoZSBwaWNrZXIuCisgICAgICAgICogU2NyaXB0cy9wcm9jZXNz
LWVudGl0bGVtZW50cy5zaDogQWRkIGVudGl0bGVtZW50cyByZXF1aXJlZCBmb3IgcGlja2VyLgor
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOiBFbmNv
ZGUgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6IERlY29kZSBzaG91bGRDYXB0dXJlRGlz
cGxheUluR1BVUHJvY2Vzcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
OgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6YWRkRGlzcGxheUNhcHR1cmVTYW5kYm94RXh0ZW5zaW9uKTogQ3JlYXRlIGV4dGVu
c2lvbnMgcmVxdWlyZWQgdG8gdXNlIHRoZQorICAgICAgICBzeXN0ZW0gcGlja2VyLgorICAgICAg
ICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVNhbmRib3hBY2Nlc3MpOiBBZGQgZGlz
cGxheSBjYXB0dXJlLgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZUNh
cHR1cmVBY2Nlc3MpOiBQYXNzICJhbGxvd0Rpc3BsYXlDYXB0dXJlIiB0byB1cGRhdGVTYW5kYm94
QWNjZXNzLgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNob3dXaW5kb3dQaWNr
ZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNob3dTY3JlZW5QaWNrZXIp
OgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTogU2V0IHNob3VsZENhcHR1cmVEaXNwbGF5SW5HUFVQcm9j
ZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9EaXNwbGF5Q2FwdHVyZVNlc3Npb25NYW5h
Z2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5Q2FwdHVyZVNlc3Npb25NYW5hZ2VyOjpz
aG93V2luZG93UGlja2VyKTogU2VuZCBtZXNzYWdlIHRvIEdQVQorICAgICAgICBwcm9jZXNzIHdo
ZW4gbmVjZXNzYXJ5LgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5Q2FwdHVyZVNlc3Npb25NYW5h
Z2VyOjpzaG93U2NyZWVuUGlja2VyKTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpw
bGF0Zm9ybUluaXRpYWxpemUpOiBQYXNzIHNob3VsZENhcHR1cmVEaXNwbGF5SW5HUFVQcm9jZXNz
IHRvIHNldHVwQ2FwdHVyZVByb2Nlc3Nlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c2V0dXBDYXB0dXJlUHJvY2Vzc2VzKTogQWRkIHNob3VsZENhcHR1cmVE
aXNwbGF5SW5HUFVQcm9jZXNzCisgICAgICAgIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2Fw
dHVyZVNvdXJjZSk6IERlYWwKKyAgICAgICAgd2l0aCBHUFUgcHJvY2VzcyBjYXB0dXJlLgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNl
dFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKwogMjAyMi0wMi0xNSAgSiBQYXNjb2UgIDxqX3Bh
c2NvZUBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kaWZ5IGdldEFsbExvY2FsQXV0aGVudGljYXRv
ckNyZWRlbnRpYWxzIGFjY29yZGluZyB0byBpbnRlcm5hbCByZXF1aXJlbWVudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZmY5ZjE3MGZhODBmMWUxODc5NWE5ZjFjYTlkNDhiOWVk
ZTM2MWZlZS4uZjU0YWU2NmM5NjNmZjRhZmFlMWI4ODg4MzQ2NTQ5YzViZmEyNjc3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTE0MjAsNiArMTQyMCwxNyBAQCBVc2VHUFVQcm9j
ZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBk
ZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQogCitVc2VHUFVQcm9j
ZXNzRm9yRGlzcGxheUNhcHR1cmU6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6
ICJHUFUgUHJvY2VzczogU2NyZWVuIGFuZCBXaW5kb3cgY2FwdHVyZSIKKyAgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uOiAiRGlzcGxheSBjYXB0dXJlIGluIEdQVSBQcm9jZXNzIgorICB3ZWJjb3Jl
QmluZGluZzogbm9uZQorICBjb25kaXRpb246IEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJ
T04pCisgIGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIFVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogV2ViR0wiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVu
Q2FwdHVyZUtpdENhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDVlOTZhZGY2
MTFhMTg5MzA3NGM1Mjg5ZTQ1OWVlZmIyMDFjYmZkOGYuLjcwZDFjZTg4MDYzNmJhNDZiMDBjM2Qw
OTczZjU1ZTc5MGU2NjE4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVy
ZVNvdXJjZS5oCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxDYXB0dXJlRGV2aWNlPiB3aW5kb3dDYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChj
b25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCB3aW5kb3dEZXZp
Y2VzKFZlY3RvcjxEaXNwbGF5Q2FwdHVyZU1hbmFnZXI6OldpbmRvd0NhcHR1cmVEZXZpY2U+Jik7
CiAKKyAgICBzdGF0aWMgdm9pZCBjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlLCB1aW50MzJfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+KT4mJik7CisKKyAgICB1c2luZyBDb250ZW50ID0gc3Rk
Ojp2YXJpYW50PFJldGFpblB0cjxTQ1dpbmRvdz4sIFJldGFpblB0cjxTQ0Rpc3BsYXk+PjsKICAg
ICB2b2lkIHN0cmVhbUZhaWxlZFdpdGhFcnJvcihSZXRhaW5QdHI8TlNFcnJvcj4mJiwgY29uc3Qg
U3RyaW5nJik7CiAgICAgZW51bSBjbGFzcyBTYW1wbGVUeXBlIHsgVmlkZW8gfTsKICAgICB2b2lk
IHN0cmVhbURpZE91dHB1dFNhbXBsZUJ1ZmZlcihSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
LCBTYW1wbGVUeXBlKTsKQEAgLTg3LDcgKzkwLDYgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFy
KiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiU2NyZWVuQ2FwdHVyZUtpdENh
cHR1cmVTb3VyY2UiOyB9CiAKICAgICB2b2lkIHN0YXJ0Q29udGVudFN0cmVhbSgpOwotICAgIHZv
aWQgcHJvY2Vzc1NoYXJhYmxlQ29udGVudChSZXRhaW5QdHI8U0NTaGFyZWFibGVDb250ZW50PiYm
LCBSZXRhaW5QdHI8TlNFcnJvcj4mJik7CiAgICAgdm9pZCBmaW5kU2hhcmVhYmxlQ29udGVudCgp
OwogICAgIFJldGFpblB0cjxTQ1N0cmVhbUNvbmZpZ3VyYXRpb24+IHN0cmVhbUNvbmZpZ3VyYXRp
b24oKTsKICAgICB2b2lkIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb24oKTsKQEAgLTk3LDkgKzk5
LDcgQEAgcHJpdmF0ZToKIAogICAgIGRpc3BhdGNoX3F1ZXVlX3QgY2FwdHVyZVF1ZXVlKCk7CiAK
LSAgICB1c2luZyBDb250ZW50ID0gc3RkOjp2YXJpYW50PFJldGFpblB0cjxTQ1dpbmRvdz4sIFJl
dGFpblB0cjxTQ0Rpc3BsYXk+PjsKICAgICBzdGQ6Om9wdGlvbmFsPENvbnRlbnQ+IG1fY29udGVu
dDsKLQogICAgIFJldGFpblB0cjxXZWJDb3JlU2NyZWVuQ2FwdHVyZUtpdEhlbHBlcj4gbV9jYXB0
dXJlSGVscGVyOwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9jdXJyZW50RnJh
bWU7CiAgICAgUmV0YWluUHRyPFNDQ29udGVudEZpbHRlcj4gbV9jb250ZW50RmlsdGVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNh
cHR1cmVLaXRDYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLm1tCmluZGV4IDQwNGQ2Nzkx
NzY3MWFiMjg2NWQwYmFkOTJmY2ZiM2RlYmQ1ODcxYzYuLjZmOTI0NTEyY2RlZjk4YjhjY2I0MTk4
Nzc1ZGE5ZDIzMGY5NDUzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdENhcHR1
cmVTb3VyY2UubW0KQEAgLTI3NCwxMiArMjc0LDE0IEBAIHZvaWQgU2NyZWVuQ2FwdHVyZUtpdENh
cHR1cmVTb3VyY2U6OnNlc3Npb25EaWRDaGFuZ2VDb250ZW50KFJldGFpblB0cjxTQ0NvbnRlbnRT
CiAgICAgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBkZXZpY2U7CiAgICAgU0NDb250ZW50
RmlsdGVyKiBjb250ZW50ID0gW3Nlc3Npb24gY29udGVudF07CiAgICAgc3dpdGNoIChjb250ZW50
LnR5cGUpIHsKLSAgICBjYXNlIFNDQ29udGVudEZpbHRlclR5cGVEZXNrdG9wSW5kZXBlbmRlbnRX
aW5kb3c6Ci0gICAgICAgIGRldmljZSA9IHdpbmRvd0NhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVu
dElEKFN0cmluZzo6bnVtYmVyKGNvbnRlbnQuZGVza3RvcEluZGVwZW5kZW50V2luZG93SW5mby53
aW5kb3cud2luZG93SUQpKTsKKyAgICBjYXNlIFNDQ29udGVudEZpbHRlclR5cGVEZXNrdG9wSW5k
ZXBlbmRlbnRXaW5kb3c6IHsKKyAgICAgICAgYXV0byAqd2luZG93ID0gY29udGVudC5kZXNrdG9w
SW5kZXBlbmRlbnRXaW5kb3dJbmZvLndpbmRvdzsKKyAgICAgICAgZGV2aWNlID0gQ2FwdHVyZURl
dmljZShTdHJpbmc6Om51bWJlcih3aW5kb3cud2luZG93SUQpLCBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpXaW5kb3csIHdpbmRvdy50aXRsZSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CiAgICAg
ICAgIG1fY29udGVudCA9IGNvbnRlbnQuZGVza3RvcEluZGVwZW5kZW50V2luZG93SW5mby53aW5k
b3c7CiAgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIFNDQ29udGVudEZpbHRlclR5cGVE
aXNwbGF5OgotICAgICAgICBkZXZpY2UgPSBzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRChTdHJpbmc6Om51bWJlcihjb250ZW50LmRpc3BsYXlJbmZvLmRpc3BsYXkuZGlzcGxheUlE
KSk7CisgICAgICAgIGRldmljZSA9IENhcHR1cmVEZXZpY2UoU3RyaW5nOjpudW1iZXIoY29udGVu
dC5kaXNwbGF5SW5mby5kaXNwbGF5LmRpc3BsYXlJRCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlNjcmVlbiwgbWFrZVN0cmluZygiU2NyZWVuIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOwog
ICAgICAgICBtX2NvbnRlbnQgPSBjb250ZW50LmRpc3BsYXlJbmZvLmRpc3BsYXk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZU5vdGhpbmc6CkBAIC0yODksNyAr
MjkxLDcgQEAgdm9pZCBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c2Vzc2lvbkRpZENo
YW5nZUNvbnRlbnQoUmV0YWluUHRyPFNDQ29udGVudFMKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBpZiAoIWRldmljZSkgewotICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IobmlsLCAi
RmFpbGVkIGZpbmQgQ2FwdHVyZURldmljZSBhZnRlciBjb250ZW50IGNoYW5nZSJfcyk7CisgICAg
ICAgIHN0cmVhbUZhaWxlZFdpdGhFcnJvcihuaWwsICJGYWlsZWQgdG8gZmluZCBDYXB0dXJlRGV2
aWNlIGFmdGVyIGNvbnRlbnQgY2hhbmdlZCJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTMwOCw1MCArMzEwLDYxIEBAIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkRpc3BsYXlG
cmFtZVR5cGUgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmdlbmVyCiAgICAgcmV0dXJu
IG1fY3VycmVudEZyYW1lOwogfQogCi12b2lkIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNl
Ojpwcm9jZXNzU2hhcmFibGVDb250ZW50KFJldGFpblB0cjxTQ1NoYXJlYWJsZUNvbnRlbnQ+JiYg
c2hhcmVhYmxlQ29udGVudCwgUmV0YWluUHRyPE5TRXJyb3I+JiYgZXJyb3IpCitzdGF0aWMgdm9p
ZCBmaW5kU2hhcmFibGVEZXZpY2UoUmV0YWluUHRyPFNDU2hhcmVhYmxlQ29udGVudD4mJiBzaGFy
ZWFibGVDb250ZW50LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUsIHVpbnQz
Ml90IGRldmljZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8U2NyZWVu
Q2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OkNvbnRlbnQ+LCB1aW50MzJfdCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKLSAgICBpZiAoZXJy
b3IpIHsKLSAgICAgICAgc3RyZWFtRmFpbGVkV2l0aEVycm9yKFdURk1vdmUoZXJyb3IpLCAiLVtT
Q1N0cmVhbSBnZXRTaGFyZWFibGVDb250ZW50V2l0aENvbXBsZXRpb25IYW5kbGVyOl0gZmFpbGVk
Il9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtX2NhcHR1cmVEZXZpY2Uu
dHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbikgeworICAgIHVpbnQz
Ml90IGluZGV4ID0gMDsKKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJl
U291cmNlOjpDb250ZW50PiBjb250ZW50OworICAgIGlmIChkZXZpY2VUeXBlID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbikgewogICAgICAgICBbW3NoYXJlYWJsZUNvbnRlbnQg
ZGlzcGxheXNdIGVudW1lcmF0ZU9iamVjdHNVc2luZ0Jsb2NrOm1ha2VCbG9ja1B0cihbJl0gKFND
RGlzcGxheSAqZGlzcGxheSwgTlNVSW50ZWdlciwgQk9PTCAqc3RvcCkgewotICAgICAgICAgICAg
aWYgKGRpc3BsYXkuZGlzcGxheUlEID09IG1fZGV2aWNlSUQpIHsKLSAgICAgICAgICAgICAgICBt
X2NvbnRlbnQgPSBkaXNwbGF5OworICAgICAgICAgICAgaWYgKGRpc3BsYXkuZGlzcGxheUlEID09
IGRldmljZUlEKSB7CisgICAgICAgICAgICAgICAgY29udGVudCA9IGRpc3BsYXk7CiAgICAgICAg
ICAgICAgICAgKnN0b3AgPSBZRVM7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICArK2luZGV4
OwogICAgICAgICB9KS5nZXQoKV07Ci0gICAgfSBlbHNlIGlmIChtX2NhcHR1cmVEZXZpY2UudHlw
ZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdykgeworICAgIH0gZWxzZSBp
ZiAoZGV2aWNlVHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3cpIHsKICAg
ICAgICAgW1tzaGFyZWFibGVDb250ZW50IHdpbmRvd3NdIGVudW1lcmF0ZU9iamVjdHNVc2luZ0Js
b2NrOm1ha2VCbG9ja1B0cihbJl0gKFNDV2luZG93ICp3aW5kb3csIE5TVUludGVnZXIsIEJPT0wg
KnN0b3ApIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cud2luZG93SUQgPT0gbV9kZXZpY2VJRCkg
ewotICAgICAgICAgICAgICAgIG1fY29udGVudCA9IHdpbmRvdzsKKyAgICAgICAgICAgIGlmICh3
aW5kb3cud2luZG93SUQgPT0gZGV2aWNlSUQpIHsKKyAgICAgICAgICAgICAgICBjb250ZW50ID0g
d2luZG93OwogICAgICAgICAgICAgICAgICpzdG9wID0gWUVTOwogICAgICAgICAgICAgfQorICAg
ICAgICAgICAgKytpbmRleDsKICAgICAgICAgfSkuZ2V0KCldOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKCFtX2NvbnRlbnQpIHsKLSAgICAgICAgc3RyZWFtRmFpbGVkV2l0aEVycm9yKG5pbCwgImNh
cHR1cmUgZGV2aWNlIG5vdCBmb3VuZCJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBzdGFydENvbnRlbnRTdHJlYW0oKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNv
bnRlbnQpLCBpbmRleCk7CiB9CiAKIHZvaWQgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6
OmZpbmRTaGFyZWFibGVDb250ZW50KCkKIHsKICAgICBBU1NFUlQoIW1fY29udGVudCk7CiAKLSAg
ICBbUEFMOjpnZXRTQ1NoYXJlYWJsZUNvbnRlbnRDbGFzcygpIGdldFNoYXJlYWJsZUNvbnRlbnRX
aXRoQ29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9XSAoU0NTaGFyZWFibGVDb250ZW50ICpzaGFyZWFibGVDb250ZW50LCBOU0Vycm9yICpl
cnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCBzaGFyZWFibGVDb250ZW50ID0gUmV0YWluUHRyIHsgc2hhcmVhYmxl
Q29udGVudCB9LCBlcnJvciA9IFJldGFpblB0ciB7IGVycm9yIH1dKCkgbXV0YWJsZSB7Ci0gICAg
ICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgd2Vha1RoaXMtPnByb2Nlc3NT
aGFyYWJsZUNvbnRlbnQoV1RGTW92ZShzaGFyZWFibGVDb250ZW50KSwgV1RGTW92ZShlcnJvcikp
OworICAgIEFMV0FZU19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIpOworCisgICAg
W1BBTDo6Z2V0U0NTaGFyZWFibGVDb250ZW50Q2xhc3MoKSBnZXRTaGFyZWFibGVDb250ZW50V2l0
aENvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgaWRlbnRpZmllciA9IExPR0lERU5USUZJRVJdIChTQ1NoYXJlYWJsZUNvbnRl
bnQgKnNoYXJlYWJsZUNvbnRlbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAg
Y2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHNo
YXJlYWJsZUNvbnRlbnQgPSBSZXRhaW5QdHIgeyBzaGFyZWFibGVDb250ZW50IH0sIGVycm9yID0g
UmV0YWluUHRyIHsgZXJyb3IgfSwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBp
ZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IoV1RGTW92
ZShlcnJvciksICItW1NDU3RyZWFtIGdldFNoYXJlYWJsZUNvbnRlbnRXaXRoQ29tcGxldGlvbkhh
bmRsZXI6XSBmYWlsZWQiX3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgaWRlbnRpZmllciwg
ImhhdmUgY29udGVudCBsaXN0Iik7CisKKyAgICAgICAgICAgIGZpbmRTaGFyYWJsZURldmljZShX
VEZNb3ZlKHNoYXJlYWJsZUNvbnRlbnQpLCBtX2NhcHR1cmVEZXZpY2UudHlwZSgpLCBtX2Rldmlj
ZUlELCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0gKHN0ZDo6b3B0aW9uYWw8
Q29udGVudD4gY29udGVudCwgdWludDMyX3QpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlm
ICghY29udGVudCkgeworICAgICAgICAgICAgICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3Io
bmlsLCAiY2FwdHVyZSBkZXZpY2Ugbm90IGZvdW5kIl9zKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2NvbnRlbnQgPSBX
VEZNb3ZlKGNvbnRlbnQpOworICAgICAgICAgICAgICAgIHN0YXJ0Q29udGVudFN0cmVhbSgpOwor
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pLmdldCgpXTsKIH0KQEAgLTM2MSw2
ICszNzQsOCBAQCBSZXRhaW5QdHI8U0NTdHJlYW1Db25maWd1cmF0aW9uPiBTY3JlZW5DYXB0dXJl
S2l0Q2FwdHVyZVNvdXJjZTo6c3RyZWFtQ29uZmlndXJhdAogICAgIGlmIChtX3N0cmVhbUNvbmZp
Z3VyYXRpb24pCiAgICAgICAgIHJldHVybiBtX3N0cmVhbUNvbmZpZ3VyYXRpb247CiAKKyAgICBB
TFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKKwogICAgIG1fc3RyZWFt
Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NTQ1N0cmVhbUNvbmZpZ3VyYXRpb25J
bnN0YW5jZSgpIGluaXRdKTsKICAgICBbbV9zdHJlYW1Db25maWd1cmF0aW9uIHNldFBpeGVsRm9y
bWF0OnByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQoKV07CiAgICAgW21fc3RyZWFtQ29uZmlndXJh
dGlvbiBzZXRTaG93c0N1cnNvcjpZRVNdOwpAQCAtMzg1LDYgKzQwMCw4IEBAIFJldGFpblB0cjxT
Q1N0cmVhbUNvbmZpZ3VyYXRpb24+IFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpzdHJl
YW1Db25maWd1cmF0CiAKIHZvaWQgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnN0YXJ0
Q29udGVudFN0cmVhbSgpCiB7CisgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURF
TlRJRklFUik7CisKICAgICBpZiAobV9jb250ZW50U3RyZWFtKQogICAgICAgICByZXR1cm47CiAK
QEAgLTQzMCw3ICs0NDcsNyBAQCB2b2lkIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpz
dGFydENvbnRlbnRTdHJlYW0oKQogCiAKICAgICBpZiAoIW1fY29udGVudFN0cmVhbSkgewotICAg
ICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IobmlsLCAiRmFpbGVkIHRvIGFsbG9jYXRlIENvbnRl
bnRTdHJlYW0iX3MpOworICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IobmlsLCAiRmFpbGVk
IHRvIGFsbG9jYXRlIFNDU3RyZWFtIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
NDQzLDEzICs0NjAsMTUgQEAgdm9pZCBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c3Rh
cnRDb250ZW50U3RyZWFtKCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChO
U0Vycm9yICplcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghZXJyb3IpCi0gICAgICAgICAg
ICByZXR1cm47CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgaWRlbnRpZmllciA9IExPR0lERU5USUZJ
RVJdIChOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29w
KFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBlcnJvciA9IFJldGFpblB0ciB7
IGVycm9yIH0sIGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBjYWxsT25NYWluUnVuTG9v
cChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZXJyb3IgPSBSZXRhaW5QdHIgeyBlcnJv
ciB9XSgpIG11dGFibGUgewotICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAg
ICAgIHdlYWtUaGlzLT5zdHJlYW1GYWlsZWRXaXRoRXJyb3IoV1RGTW92ZShlcnJvciksICItW1ND
U3RyZWFtIHN0YXJ0Q2FwdHVyZVdpdGhGcmFtZUhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXI6XSBm
YWlsZWQiX3MpOworICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgIHN0cmVh
bUZhaWxlZFdpdGhFcnJvcihXVEZNb3ZlKGVycm9yKSwgIi1bU0NTdHJlYW0gc3RhcnRDYXB0dXJl
V2l0aEZyYW1lSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcjpdIGZhaWxlZCJfcyk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgaWRl
bnRpZmllciwgInN0cmVhbSBzdGFydGVkIik7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC02
MjMsNiArNjQyLDM4IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZh
Y2VUeXBlIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpzCiAgICAgcmV0dXJuIG1fY2Fw
dHVyZURldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuID8g
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6Ok1vbml0b3Ig
OiBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6V2luZG93
OwogfQogCit2b2lkIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjYXB0dXJlRGV2aWNl
V2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUsIHVp
bnQzMl90IGRldmljZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFtQQUw6OmdldFNDU2hh
cmVhYmxlQ29udGVudENsYXNzKCkgZ2V0U2hhcmVhYmxlQ29udGVudFdpdGhDb21wbGV0aW9uSGFu
ZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIGRldmljZUlELCBkZXZpY2VUeXBlXSAoU0NTaGFyZWFibGVDb250ZW50ICpzaGFy
ZWFibGVDb250ZW50LCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1h
aW5SdW5Mb29wKFtzaGFyZWFibGVDb250ZW50ID0gUmV0YWluUHRyIHsgc2hhcmVhYmxlQ29udGVu
dCB9LCBlcnJvciA9IFJldGFpblB0ciB7IGVycm9yIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIGRldmljZUlELCBkZXZpY2VUeXBlXSgpIG11dGFibGUg
eworCisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJnZXRTaGFyZWFibGVDb250ZW50V2l0aENvbXBsZXRpb25IYW5kbGVy
IGZhaWxlZCB3aXRoIGVycm9yICVzIiwgW1tlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0gVVRG
OFN0cmluZ10pOworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9w
dCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmaW5kU2hhcmFibGVEZXZpY2UoV1RGTW92ZShzaGFyZWFibGVDb250ZW50KSwgZGV2aWNlVHlw
ZSwgZGV2aWNlSUQsIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoc3RkOjpvcHRpb25hbDxDb250ZW50PiBjb250ZW50LCB1aW50MzJfdCBpbmRleCkgbXV0
YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKCFjb250ZW50KSB7CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgImNhcHR1cmUgZGV2aWNlIG5vdCBmb3VuZCIp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgYXV0byBkZXZpY2UgPSBzd2l0Y2hPbihjb250ZW50LnZhbHVlKCksCisgICAg
ICAgICAgICAgICAgICAgIFtpbmRleF0gKGNvbnN0IFJldGFpblB0cjxTQ0Rpc3BsYXk+IGRpc3Bs
YXkpIC0+IHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2UoU3RyaW5nOjpudW1iZXIoW2Rpc3BsYXkgZGlzcGxh
eUlEXSksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbiwgbWFrZVN0cmluZygiU2Ny
ZWVuICIsIGluZGV4KSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgICAgIFtdIChjb25zdCBSZXRhaW5QdHI8U0NXaW5kb3c+IHdp
bmRvdykgIC0+IHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2UoU3RyaW5nOjpudW1iZXIoW3dpbmRvdyB3aW5k
b3dJRF0pLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3csIFt3aW5kb3cgdGl0bGVd
LCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICk7CisKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRl
dmljZSkpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pLmdldCgpXTsKK30K
Kwogc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNv
dXJjZTo6c2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJiBk
aXNwbGF5SURTdHJpbmcpCiB7CiAgICAgaWYgKCFpc0F2YWlsYWJsZSgpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtp
dFNoYXJpbmdTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIuaAppbmRleCAy
NzIzOGViYTA1N2M0NjgyNzZhYzA3NGI2Yzc4MWMxYTliN2M1MzdkLi5jZmFmNzI4NDAyMjUzMTYx
Y2VlMmM1NDJjZjJiNTkxZTQ4NjZkNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5D
YXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorT0JKQ19DTEFT
UyBTQ0NvbnRlbnRGaWx0ZXI7CiBPQkpDX0NMQVNTIFNDQ29udGVudFNoYXJpbmdTZXNzaW9uOwog
T0JKQ19DTEFTUyBXZWJEaXNwbGF5TWVkaWFQcm9tcHRIZWxwZXI7CiAKQEAgLTM5LDM0ICs0MCwx
NSBAQCBjbGFzcyBDYXB0dXJlRGV2aWNlOwogCiBjbGFzcyBTY3JlZW5DYXB0dXJlS2l0U2hhcmlu
Z1Nlc3Npb25NYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNjcmVlbkNhcHR1cmVLaXRT
aGFyaW5nU2Vzc2lvbk1hbmFnZXI+IHsKIHB1YmxpYzoKLSAgICBjbGFzcyBTaGFyaW5nU2Vzc2lv
bk9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXI+
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgflNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXIo
KSA9IGRlZmF1bHQ7Ci0KLSAgICAgICAgZW51bSBjbGFzcyBUeXBlIHsgU2NyZWVuLCBXaW5kb3cg
fTsKLSAgICAgICAgdmlydHVhbCBUeXBlIHNlc3Npb25UeXBlKCkgY29uc3QgPSAwOwotICAgICAg
ICB2aXJ0dWFsIHVpbnQzMl90IHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKLQotICAgICAgICB2aXJ0
dWFsIHZvaWQgc2Vzc2lvbkNoYW5nZWQoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXNz
aW9uRW5kZWQoKSA9IDA7Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNoYXJpbmdT
ZXNzaW9uT2JzZXJ2ZXImIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gc2Vzc2lvblR5cGUoKSA9PSBvdGhlci5zZXNzaW9uVHlwZSgpICYmIHNlc3Npb25JRCgpID09
IG90aGVyLnNlc3Npb25JRCgpOwotICAgICAgICB9Ci0gICAgfTsKLQogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyJiBzaW5nbGV0
b24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZFVzZVN5c3RlbVBpY2tlcigpOwogCiAg
ICAgU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcigpOwogICAgIH5TY3JlZW5D
YXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyKCk7CiAKICAgICBSZXRhaW5QdHI8U0NDb250
ZW50U2hhcmluZ1Nlc3Npb24+IHRha2VTaGFyaW5nU2Vzc2lvbkZvckZpbHRlcihTQ0NvbnRlbnRG
aWx0ZXIqKTsKIAotICAgIFJldGFpblB0cjxTQ0NvbnRlbnRTaGFyaW5nU2Vzc2lvbj4gYWRkU2hh
cmluZ1Nlc3Npb25PYnNlcnZlcihTaGFyaW5nU2Vzc2lvbk9ic2VydmVyJik7Ci0gICAgdm9pZCBy
ZW1vdmVTaGFyaW5nU2Vzc2lvbk9ic2VydmVyKFNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXImKTsKLQog
ICAgIHZvaWQgc2Vzc2lvbkRpZENoYW5nZUNvbnRlbnQoUmV0YWluUHRyPFNDQ29udGVudFNoYXJp
bmdTZXNzaW9uPik7CiAgICAgdm9pZCBwaWNrZXJDYW5jZWxlZEZvclNlc3Npb24oUmV0YWluUHRy
PFNDQ29udGVudFNoYXJpbmdTZXNzaW9uPik7CiAgICAgdm9pZCBzZXNzaW9uRGlkRW5kKFJldGFp
blB0cjxTQ0NvbnRlbnRTaGFyaW5nU2Vzc2lvbj4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lv
bk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2Ny
ZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5tbQppbmRleCA1ZTA0MWNmYzk2OWQy
OGMzYjU5MWZkOTExZWIxOTA3OGVkYzNiZGYwLi4xYmZjN2YzY2UxM2JkMWU2MjNhZGZmZDAxNGJi
YTA4YTBjY2YxNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNo
YXJpbmdTZXNzaW9uTWFuYWdlci5tbQpAQCAtMTI3LDkgKzEyNyw3IEBAIHN0YXRpYyBib29sIHNj
cmVlbkNhcHR1cmVLaXRQaWNrZXJGZWF0dXJlRW5hYmxlZCgpCiBib29sIFNjcmVlbkNhcHR1cmVL
aXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OmlzQXZhaWxhYmxlKCkKIHsKICAgICByZXR1cm4gc2Ny
ZWVuQ2FwdHVyZUtpdFBpY2tlckZlYXR1cmVFbmFibGVkKCkKLSAgICAgICAgICAgICYmIFdURjo6
cHJvY2Vzc0hhc0VudGl0bGVtZW50KCJjb20uYXBwbGUucHJpdmF0ZS5zY3JlZW5jYXB0dXJla2l0
LnNoYXJpbmdzZXNzaW9uIikKLSAgICAgICAgICAgICYmIFBBTDo6Z2V0U0NDb250ZW50U2hhcmlu
Z1Nlc3Npb25DbGFzcygpCi0gICAgICAgICAgICAmJiBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNv
dXJjZTo6aXNBdmFpbGFibGUoKTsKKyAgICAgICAgJiYgUEFMOjpnZXRTQ0NvbnRlbnRTaGFyaW5n
U2Vzc2lvbkNsYXNzKCk7CiB9CiAKIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFn
ZXImIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNpbmdsZXRvbigpCkBA
IC0yMDgsMTEgKzIwNiwxMyBAQCB2b2lkIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1h
bmFnZXI6OnNlc3Npb25EaWRDaGFuZ2VDb250ZW50KFJldGFpblB0cjxTQwogICAgIHN0ZDo6b3B0
aW9uYWw8Q2FwdHVyZURldmljZT4gZGV2aWNlOwogICAgIFNDQ29udGVudEZpbHRlciogY29udGVu
dCA9IFtzZXNzaW9uIGNvbnRlbnRdOwogICAgIHN3aXRjaCAoY29udGVudC50eXBlKSB7Ci0gICAg
Y2FzZSBTQ0NvbnRlbnRGaWx0ZXJUeXBlRGVza3RvcEluZGVwZW5kZW50V2luZG93OgotICAgICAg
ICBkZXZpY2UgPSBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6d2luZG93Q2FwdHVyZURl
dmljZVdpdGhQZXJzaXN0ZW50SUQoU3RyaW5nOjpudW1iZXIoY29udGVudC5kZXNrdG9wSW5kZXBl
bmRlbnRXaW5kb3dJbmZvLndpbmRvdy53aW5kb3dJRCkpOworICAgIGNhc2UgU0NDb250ZW50Rmls
dGVyVHlwZURlc2t0b3BJbmRlcGVuZGVudFdpbmRvdzogeworICAgICAgICBhdXRvICp3aW5kb3cg
PSBjb250ZW50LmRlc2t0b3BJbmRlcGVuZGVudFdpbmRvd0luZm8ud2luZG93OworICAgICAgICBk
ZXZpY2UgPSBDYXB0dXJlRGV2aWNlKFN0cmluZzo6bnVtYmVyKHdpbmRvdy53aW5kb3dJRCksIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdywgd2luZG93LnRpdGxlLCBlbXB0eVN0cmlu
ZygpLCB0cnVlKTsKICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgU0NDb250ZW50Rmls
dGVyVHlwZURpc3BsYXk6Ci0gICAgICAgIGRldmljZSA9IFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJl
U291cmNlOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChTdHJpbmc6Om51bWJl
cihjb250ZW50LmRpc3BsYXlJbmZvLmRpc3BsYXkuZGlzcGxheUlEKSk7CisgICAgICAgIGRldmlj
ZSA9IENhcHR1cmVEZXZpY2UoU3RyaW5nOjpudW1iZXIoY29udGVudC5kaXNwbGF5SW5mby5kaXNw
bGF5LmRpc3BsYXlJRCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbiwgbWFrZVN0
cmluZygiU2NyZWVuICIpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBTQ0NvbnRlbnRGaWx0ZXJUeXBlTm90aGluZzoKICAgICBjYXNlIFNDQ29udGVudEZp
bHRlclR5cGVBcHBzQW5kV2luZG93c1Bpbm5lZFRvRGlzcGxheToKQEAgLTI0MCw4ICsyNDAsMTAg
QEAgdm9pZCBTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjpwcm9tcHRGb3JH
ZXREaXNwbGF5TWVkaWEoUHJvbXB0VHlwZQogICAgIEFTU0VSVChpc0F2YWlsYWJsZSgpKTsKICAg
ICBBU1NFUlQoIW1fY29tcGxldGlvbkhhbmRsZXIpOwogCi0gICAgaWYgKCFpc0F2YWlsYWJsZSgp
IHx8IG1fY29tcGxldGlvbkhhbmRsZXIpCisgICAgaWYgKCFpc0F2YWlsYWJsZSgpKSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBTQ0NvbnRlbnRTaGFyaW5nU2Vzc2lvbiogc2Vzc2lvbiA9IFtbUEFMOjpnZXRT
Q0NvbnRlbnRTaGFyaW5nU2Vzc2lvbkNsYXNzKCkgYWxsb2NdIGluaXRXaXRoVGl0bGU6QCJXZWJL
aXQgZ2V0RGlzcGxheU1lZGlhIFByb21wdCJdOwogICAgIGlmICghc2Vzc2lvbikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IDljOTRhM2MwNjY4ZDU2YzUxZjVi
NDE3NDliNzY1ZjJlMWZmYmNhMzkuLmY0NjI3MDkyYmM0OWUyNWRjOTExYjcxNWE0ZDk0YjM1MjVl
NTkyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTQ4LDYg
KzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vd1BsYXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmVlbkNhcHR1
cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5o
PgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvTG9n
SW5pdGlhbGl6YXRpb24uaD4KQEAgLTc0LDYgKzc1LDEwIEBACiAjaW5jbHVkZSA8cGFsL3NwaS9j
Zy9JbWFnZUlPU1BJLmg+CiAjZW5kaWYKIAorI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQor
I2luY2x1ZGUgPFdlYkNvcmUvU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2UuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gV2Ugd291bGRuJ3Qgd2FudCB0aGUgR1BVUHJv
Y2VzcyB0byByZXBlYXRlZGx5IGV4aXQgdGhlbiByZWxhdW5jaCB3aGVuIHVuZGVyIG1lbW9yeSBw
cmVzc3VyZS4gSW4gcGFydGljdWxhciwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlCkBAIC0zNDcs
OCArMzUyLDE5IEBAIHZvaWQgR1BVUHJvY2Vzczo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQo
Ym9vbCBpc0ludGVycnVwdGVkKQogewogICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKTsKIH0KKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jZW5kaWYKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hB
UklOR19TRVNTSU9OKQordm9pZCBHUFVQcm9jZXNzOjpzaG93V2luZG93UGlja2VyKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJp
bmdTZXNzaW9uTWFuYWdlcjo6c2luZ2xldG9uKCkuc2hvd1dpbmRvd1BpY2tlcihXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgR1BVUHJvY2Vzczo6c2hvd1NjcmVlblBpY2tl
cihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1
cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNpbmdsZXRvbigpLnNob3dTY3JlZW5QaWNrZXIo
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorI2VuZGlmIC8vIEhBVkUoU0NfQ09OVEVO
VF9TSEFSSU5HX1NFU1NJT04pCiAKICNpZiBQTEFURk9STShNQUMpCiB2b2lkIEdQVVByb2Nlc3M6
OmRpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCBkaXNwbGF5SUQs
IENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKQEAgLTUwMiw2ICs1MTgsMTYgQEAg
dm9pZCBHUFVQcm9jZXNzOjpzZXRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZChib29s
IGVuYWJsZWQpCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQordm9p
ZCBHUFVQcm9jZXNzOjpzZXRVc2VTY3JlZW5DYXB0dXJlS2l0KGJvb2wgdXNlKQoreworICAgIGlm
IChtX3VzZVNjcmVlbkNhcHR1cmVLaXQgPT0gdXNlKQorICAgICAgICByZXR1cm47CisgICAgbV91
c2VTY3JlZW5DYXB0dXJlS2l0ID0gdXNlOworICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRD
YXB0dXJlU291cmNlOjpzZXRFbmFibGVkKG1fdXNlU2NyZWVuQ2FwdHVyZUtpdCk7Cit9CisjZW5k
aWYKKwogdm9pZCBHUFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGlu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBjb21wbGV0aW9uSGFuZGxlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpvYmpl
Y3RDb3VudEZvclRlc3RpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaApp
bmRleCA0MDYwYjE5ODUzZTc5NWY1YjA1ODhjMDEwNTc0NDBlZjQ0NGM3YmI5Li5kYzAzYWE2MjU0
MzNlZGQ3YzZhYWY3ZmVlMzYwMzJkOWJlMWM0NmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQcm9jZXNzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOwogY2xhc3MgTm93UGxheWluZ01hbmFnZXI7CiBzdHJ1
Y3QgTW9ja01lZGlhRGV2aWNlOwogc3RydWN0IFNjcmVlblByb3BlcnRpZXM7CkBAIC0xNTQsNiAr
MTU1LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChi
b29sKTsKICAgICBib29sIHNldENhcHR1cmVBdHRyaWJ1dGlvblN0cmluZyhjb25zdCBTdHJpbmcm
KTsKICNlbmRpZgorI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCisgICAgdm9p
ZCBzaG93V2luZG93UGlja2VyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYpOworICAgIHZvaWQgc2hvd1NjcmVlblBpY2tlcihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4pPiYmKTsKKyNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRpc3BsYXlDb25m
aWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFy
eUZsYWdzKTsKICAgICB2b2lkIHNldFNjcmVlblByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6U2Ny
ZWVuUHJvcGVydGllcyYpOwpAQCAtMTgzLDYgKzE4OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoYm9vbCk7CiAjZW5kaWYKIAorI2lm
IEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQorICAgIHZvaWQgc2V0VXNlU2NyZWVuQ2FwdHVyZUtp
dChib29sKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAg
dm9pZCBub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSk7
CiAgICAgdm9pZCBkaXNwYXRjaFNpbXVsYXRlZE5vdGlmaWNhdGlvbnNGb3JQcmVmZXJlbmNlQ2hh
bmdlKGNvbnN0IFN0cmluZyYga2V5KSBmaW5hbDsKQEAgLTIyMSw2ICsyMzAsNyBAQCBwcml2YXRl
OgogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEdQVVNlc3Npb24+IG1fc2Vzc2lvbnM7CiAg
ICAgV2ViQ29yZTo6VGltZXIgbV9pZGxlRXhpdFRpbWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpOb3dQbGF5aW5nTWFuYWdlcj4gbV9ub3dQbGF5aW5nTWFuYWdlcjsKKyAgICBTdHJp
bmcgbV9hcHBsaWNhdGlvblZpc2libGVOYW1lOwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyPiBtX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7CiAjZW5kaWYKQEAg
LTI0NCw3ICsyNTQsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhB
VkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkKICAgICBib29sIG1fbWVkaWFTb3VyY2VJbmxp
bmVQYWludGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCi0gICAgU3RyaW5nIG1fYXBwbGlj
YXRpb25WaXNpYmxlTmFtZTsKKyNpZiBIQVZFKFNDUkVFTl9DQVBUVVJFX0tJVCkKKyAgICBib29s
IG1fdXNlU2NyZWVuQ2FwdHVyZUtpdCB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5t
ZXNzYWdlcy5pbgppbmRleCAzOTYyNDI2MWZiNDI5YWUzYjhhMjMxODM5YmIxYzIxOWQ5ZjdhYTU2
Li5mNTMxMWI4MWM1NjM3YjAxOGY2NTY4YjdmNWU0YTdiOTU1NWVkM2YyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTIsNiArNTIs
MTEgQEAgbWVzc2FnZXMgLT4gR1BVUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICNlbmRpZgog
CisjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKKyAgICBTaG93V2luZG93UGlj
a2VyKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2aWNlKSBB
c3luYworICAgIFNob3dTY3JlZW5QaWNrZXIoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiBkZXZpY2UpIEFzeW5jCisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCiAgICAgU2V0V2ViTVBhcnNlckVuYWJsZWQoYm9vbCBlbmFibGVkKTsKICNlbmRpZgpA
QCAtNzIsNiArNzcsMTAgQEAgbWVzc2FnZXMgLT4gR1BVUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7
CiAgICAgU2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKTsK
ICNlbmRpZgogCisjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCisgICAgU2V0VXNlU2NyZWVu
Q2FwdHVyZUtpdChib29sIHVzZSk7CisjZW5kaWYKKwogICAgIFJlcXVlc3RCaXRtYXBJbWFnZUZv
ckN1cnJlbnRUaW1lKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
LCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllcikgLT4gKFdl
YktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlKSBBc3luYwogCiAjaWYgRU5BQkxF
KENGUFJFRlNfRElSRUNUX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCmluZGV4IGU0
NTdhODk5MjMwMTNlY2MwMjFiYTk5ODMzYjFiZWJkZTQxYzJlYTMuLjUwMmUxN2Y5N2RmMzA2M2M1
YzZkYjg5MzUzYWMwZmZlNDMwMmJlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCkBA
IC04NTEsOCArODUxLDIzIEBACiAgICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9V
U0JEZXZpY2VVc2VyQ2xpZW50VjIiKQogICAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3Mg
IklPVVNCSW50ZXJmYWNlVXNlckNsaWVudFYyIikpCiAgICAgKGFsbG93IGRldmljZS1jYW1lcmEp
KQorCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCisjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJ
TkdfU0VTU0lPTikKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgIChyZXF1aXJlLWFsbAorICAgICAg
ICAoZXh0ZW5zaW9uICJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIikKKyAgICAgICAg
KGdsb2JhbC1uYW1lCisgICAgICAgICAgICAiY29tLmFwcGxlLnJlcGxheWtpdC5zaGFyaW5nc2Vz
c2lvbi5ub3RpZmljYXRpb24iCisgICAgICAgICAgICAiY29tLmFwcGxlLnJlcGxheWtpdC5zaGFy
aW5nc2Vzc2lvbiIKKyAgICAgICAgICAgICJjb20uYXBwbGUudGNjZC5zeXN0ZW0iCisgICAgICAg
ICAgICAiY29tLmFwcGxlLnJlcGxheWQiCisgICAgICAgICkKKyAgICApCispCisjZW5kaWYKKwog
KGFsbG93IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5yZWxhdGl2ZWQudGVtcGVzdCIpCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
cHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gKaW5kZXggZWM0ZTBiZTk4ZTJlNzgzYTNiN2I2MzQ0ZDVl
ZDQyOTI4ZTk4NWMzMi4uMTg5NmE1YTkyYjlkZGFmMGQyMjk2OWEyMzQ2ZGU5MmU4NThhMWI3ZiAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNo
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaApAQCAt
MTA1LDYgKzEwNSw5IEBAIGZ1bmN0aW9uIG1hY19wcm9jZXNzX2dwdV9lbnRpdGxlbWVudHMoKQog
ICAgICAgICBpZiAoKCAiJHtUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUn0iID49IDEzMDAw
MCApKQogICAgICAgICB0aGVuCiAgICAgICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxl
LnByaXZhdGUuZ3B1LXJlc3RyaWN0ZWQgYm9vbCBZRVMKKyAgICAgICAgICAgIHBsaXN0YnVkZHkg
QWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zY3JlZW5jYXB0dXJla2l0LnNoYXJpbmdzZXNzaW9uIGJv
b2wgWUVTCisgICAgICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUudGNj
LmFsbG93IGFycmF5CisgICAgICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZh
dGUudGNjLmFsbG93OjAgc3RyaW5nIGtUQ0NTZXJ2aWNlU2NyZWVuQ2FwdHVyZQogICAgICAgICBm
aQogCiAgICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5tZW1vcnkub3du
ZXJzaGlwX3RyYW5zZmVyIGJvb2wgWUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGJjYTExNzQyOTA4NjdmY2JjNmU4MTkx
NTVhYjBlNDQ3MDlkNDVjZjUuLjQ5NzMzZTZlYjc1MjE5MTAwMjY4ODI3NjNiYzE0MGViMzJmNTM1
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCkBAIC0xNjYsNiArMTY2LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
c2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3M7CiAgICAgZW5jb2RlciA8PCBzaG91bGRDYXB0
dXJlVmlkZW9JbkdQVVByb2Nlc3M7CiAgICAgZW5jb2RlciA8PCBzaG91bGRDYXB0dXJlRGlzcGxh
eUluVUlQcm9jZXNzOworICAgIGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVBy
b2Nlc3M7CiAgICAgZW5jb2RlciA8PCBzaG91bGRSZW5kZXJDYW52YXNJbkdQVVByb2Nlc3M7CiAg
ICAgZW5jb2RlciA8PCBzaG91bGRSZW5kZXJET01JbkdQVVByb2Nlc3M7CiAgICAgZW5jb2RlciA8
PCBzaG91bGRQbGF5TWVkaWFJbkdQVVByb2Nlc3M7CkBAIC01NjgsNiArNTY5LDkgQEAgc3RkOjpv
cHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjoKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hv
dWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURp
c3BsYXlJbkdQVVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFJlbmRlckNhbnZhc0luR1BVUHJv
Y2VzcykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBhZWUwOTA2NzIzNmFj
MjdlYTRkNjYwYTA0MmIyOTQ0YmRhMzEwNzE0Li5mNjQyNGMwOTg3MzZlNzc1OTEwZDVhNzRkODNj
ZjMwOGE0NTc2NTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0yMzYsNiArMjM2LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MgeyBm
YWxzZSB9OwogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIHsgZmFsc2Ug
fTsKICAgICBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgeyBmYWxzZSB9Owor
ICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwogICAg
IGJvb2wgc2hvdWxkUmVuZGVyQ2FudmFzSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKICAgICBib29s
IHNob3VsZFJlbmRlckRPTUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRQ
bGF5TWVkaWFJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAzYzQ3M2E1OGVlZmRlZTcw
OWZiYTUyNTEyZDNmZDg4MDc3MGZiNzlkLi5iNTU4MGVmNzZmOTg0YjJmZTc5ZjM2MDQ1YzYzMjA1
YjU2Nzg4NDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YWdlUHJveHlDb2NvYS5tbQpAQCAtODUsNiArODUsMTAgQEAgU09GVF9MSU5LX0NMQVNTX09QVElP
TkFMKFN5bmFwc2UsIFNZTm90ZXNBY3RpdmF0aW9uT2JzZXJ2ZXIpCiAjaW1wb3J0IDxVSUtpdC9V
SUltYWdlLmg+CiAjZW5kaWYKIAorI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04p
CisjaW1wb3J0IDxXZWJDb3JlL1NjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIu
aD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9X
ZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA4NTI3ZmE1NWJhZTA0OTJkN2RiMDc0YzMzZGM1
NWZkMDEzODc3NDk1Li4zMzQxNTQxZGJkMjEwOWMzYWJiYTI5ZDdhMDc5NGI0OTgxZmFlYWE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMjQ1LDYgKzI0NSwzOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYWRkTWljcm9waG9uZVNhbmRi
b3hFeHRlbnNpb24oVmVjdG9yPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZQogICAgIHJldHVybiB0
cnVlOwogfQogCisjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKK3N0YXRpYyBp
bmxpbmUgYm9vbCBhZGREaXNwbGF5Q2FwdHVyZVNhbmRib3hFeHRlbnNpb24oc3RkOjpvcHRpb25h
bDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPiYgZXh0ZW5zaW9ucykKK3sKKyAgICBpZiAoIWF1ZGl0VG9rZW4pIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiTlVMTCBhdWRpdCB0b2tlbiIpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUucmVwbGF5a2l0LnNoYXJpbmdzZXNz
aW9uLm5vdGlmaWNhdGlvbiJfcywgKmF1ZGl0VG9rZW4pOworICAgIGlmICghaGFuZGxlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgZXh0ZW5zaW9ucy5hcHBlbmQoV1RGTW92ZSgqaGFuZGxl
KSk7CisKKyAgICBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNo
TG9va3VwKCJjb20uYXBwbGUucmVwbGF5a2l0LnNoYXJpbmdzZXNzaW9uIl9zLCAqYXVkaXRUb2tl
bik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBleHRlbnNp
b25zLmFwcGVuZChXVEZNb3ZlKCpoYW5kbGUpKTsKKworICAgIGhhbmRsZSA9IFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkLnN5c3RlbSJf
cywgKmF1ZGl0VG9rZW4pOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgZXh0ZW5zaW9ucy5hcHBlbmQoV1RGTW92ZSgqaGFuZGxlKSk7CisKKyAgICBoYW5kbGUg
PSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUu
cmVwbGF5ZCJfcywgKmF1ZGl0VG9rZW4pOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgZXh0ZW5zaW9ucy5hcHBlbmQoV1RGTW92ZSgqaGFuZGxlKSk7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogc3RhdGljIGlu
bGluZSBib29sIGFkZFRDQ0RTYW5kYm94RXh0ZW5zaW9uKFZlY3RvcjxTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+JiBleHRlbnNpb25zKQogewpAQCAtMjU4LDcgKzI5MCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBhZGRUQ0NEU2FuZGJveEV4dGVuc2lvbihWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlPiYgZXh0CiB9CiAjZW5kaWYKIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVNh
bmRib3hBY2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGVvQ2FwdHVy
ZSkKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp1cGRhdGVTYW5kYm94QWNjZXNzKGJvb2wgYWxsb3dB
dWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2Fw
dHVyZSkKIHsKICAgICBpZiAobV91c2VNb2NrQ2FwdHVyZURldmljZXMpCiAgICAgICAgIHJldHVy
bjsKQEAgLTI3Miw2ICszMDQsMTEgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVNhbmRi
b3hBY2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGUKICAgICBpZiAo
YWxsb3dBdWRpb0NhcHR1cmUgJiYgIW1faGFzU2VudE1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9u
ICYmIGFkZE1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uKGV4dGVuc2lvbnMpKQogICAgICAgICBt
X2hhc1NlbnRNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbiA9IHRydWU7CiAKKyNpZiBIQVZFKFND
X0NPTlRFTlRfU0hBUklOR19TRVNTSU9OKQorICAgIGlmIChhbGxvd0Rpc3BsYXlDYXB0dXJlICYm
ICFtX2hhc1NlbnREaXNwbGF5Q2FwdHVyZVNhbmRib3hFeHRlbnNpb24gJiYgYWRkRGlzcGxheUNh
cHR1cmVTYW5kYm94RXh0ZW5zaW9uKGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpLCBleHRl
bnNpb25zKSkKKyAgICAgICAgbV9oYXNTZW50RGlzcGxheUNhcHR1cmVTYW5kYm94RXh0ZW5zaW9u
ID0gdHJ1ZTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmICgoYWxsb3dBdWRp
b0NhcHR1cmUgfHwgYWxsb3dWaWRlb0NhcHR1cmUpICYmICFtX2hhc1NlbnRUQ0NEU2FuZGJveEV4
dGVuc2lvbiAmJiBhZGRUQ0NEU2FuZGJveEV4dGVuc2lvbihleHRlbnNpb25zKSkKICAgICAgICAg
bV9oYXNTZW50VENDRFNhbmRib3hFeHRlbnNpb24gPSB0cnVlOwpAQCAtMjg0LDcgKzMyMSw3IEBA
IHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp1cGRhdGVTYW5kYm94QWNjZXNzKGJvb2wgYWxsb3dBdWRp
b0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlCiAKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp1cGRhdGVD
YXB0dXJlQWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1
cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
cHJvY2Vzc0lELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgdXBkYXRlU2FuZGJveEFjY2VzcyhhbGxvd0F1ZGlvQ2FwdHVyZSwgYWxsb3dWaWRl
b0NhcHR1cmUpOworICAgIHVwZGF0ZVNhbmRib3hBY2Nlc3MoYWxsb3dBdWRpb0NhcHR1cmUsIGFs
bG93VmlkZW9DYXB0dXJlLCBhbGxvd0Rpc3BsYXlDYXB0dXJlKTsKICAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlVwZGF0ZUNhcHR1cmVBY2Nlc3MgeyBhbGxvd0F1
ZGlvQ2FwdHVyZSwgYWxsb3dWaWRlb0NhcHR1cmUsIGFsbG93RGlzcGxheUNhcHR1cmUsIHByb2Nl
c3NJRCB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKQEAgLTMxNyw2ICszNTQs
MTggQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJv
b2wgaXNJbnRlcnJ1cHRlZCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRN
b2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZCB7IGlzSW50ZXJydXB0ZWQgfSwgMCk7CiB9CisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NF
U1NJT04pCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2hvd1dpbmRvd1BpY2tlcihDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6R1BV
UHJvY2Vzczo6U2hvd1dpbmRvd1BpY2tlciB7IH0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKK30KKwordm9pZCBHUFVQcm9jZXNzUHJveHk6OnNob3dTY3JlZW5QaWNrZXIoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkdQ
VVByb2Nlc3M6OlNob3dTY3JlZW5QaWNrZXIgeyB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CiAjZW5kaWYKIAogdm9pZCBHUFVQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQpAQCAtNjIyLDYg
KzY3MSwxNCBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVyZW5jZXMoV2ViUHJv
Y2Vzc1Byb3h5JiB3ZWJQcm9jZXNzKQogICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6R1BVUHJv
Y2Vzczo6U2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQobV9oYXNFbmFibGVkTWVk
aWFTb3VyY2VJbmxpbmVQYWludGluZyksIDApOwogICAgICAgICB9CiAjZW5kaWYKKworI2lmIEhB
VkUoU0NSRUVOX0NBUFRVUkVfS0lUKQorICAgICAgICBpZiAoIW1faGFzRW5hYmxlZFNjcmVlbkNh
cHR1cmVLaXQgJiYgcHJlZmVyZW5jZXMudXNlU2NyZWVuQ2FwdHVyZUtpdCgpKSB7CisgICAgICAg
ICAgICBtX2hhc0VuYWJsZWRTY3JlZW5DYXB0dXJlS2l0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNldFVzZVNjcmVlbkNhcHR1cmVLaXQobV9oYXNFbmFi
bGVkU2NyZWVuQ2FwdHVyZUtpdCksIDApOworICAgICAgICB9CisjZW5kaWYKKwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCmluZGV4
IDk5NjljZGYwNWRlNTkxOGIwNWNhNjg0YzljZTEzOTQ5NjJhNmU5YzcuLmVhZGU5YjU5YmRmNWFi
MTA3NTM4YmY1YjA3NDMwNzFiOTE5OGQxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTUwLDYgKzUwLDcgQEAKICNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOwogc3RydWN0IE1vY2tNZWRpYURl
dmljZTsKIHN0cnVjdCBTY3JlZW5Qcm9wZXJ0aWVzOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0
YTsKQEAgLTg2LDYgKzg3LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZU1vY2tNZWRpYURl
dmljZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwog
ICAgIHZvaWQgc2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgdm9pZCB1cGRh
dGVTYW5kYm94QWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0Nh
cHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSk7CisjZW5kaWYKKworI2lmIEhBVkUoU0Nf
Q09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCisgICAgdm9pZCBzaG93V2luZG93UGlja2VyKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+
JiYpOworICAgIHZvaWQgc2hvd1NjcmVlblBpY2tlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4pPiYmKTsKICNlbmRpZgogCiAgICAg
dm9pZCByZW1vdmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKQEAgLTEzNiw4ICsxNDMsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgdGVybWluYXRlV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllcik7CiAgICAgdm9pZCBwcm9jZXNzSXNSZWFkeVRvRXhpdCgpOwogCi0gICAgdm9pZCB1
cGRhdGVTYW5kYm94QWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRl
b0NhcHR1cmUpOwotCiAjaWYgSEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiAgICAg
dm9pZCBkaWRDcmVhdGVDb250ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBMYXllckhvc3RpbmdDb250ZXh0
SUQpOwogI2VuZGlmCkBAIC0xNTUsNiArMTYwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFz
U2VudFRDQ0RTYW5kYm94RXh0ZW5zaW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzU2VudENh
bWVyYVNhbmRib3hFeHRlbnNpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNTZW50TWljcm9w
aG9uZVNhbmRib3hFeHRlbnNpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNTZW50RGlzcGxh
eUNhcHR1cmVTYW5kYm94RXh0ZW5zaW9uIHsgZmFsc2UgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZQOSkKQEAgLTE3Nyw2ICsxODMsMTAgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faGFzRW5hYmxlZE1lZGlhU291cmNlSW5saW5lUGFpbnRpbmcgeyBmYWxz
ZSB9OwogI2VuZGlmCiAKKyNpZiBIQVZFKFNDUkVFTl9DQVBUVVJFX0tJVCkKKyAgICBib29sIG1f
aGFzRW5hYmxlZFNjcmVlbkNhcHR1cmVLaXQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNo
U2V0PFBBTDo6U2Vzc2lvbklEPiBtX3Nlc3Npb25JRHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4NjBhNDUwNjI0MzgwMjhkNDBlYWMzODgyMTMy
ZDNjMjgwMzNlMWI5Li5jYzZjZDIwNzhkZDMwODZhZTJmNzBjNzA2MDIwNzcyZDhkZTUwYjhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMxNyw2ICszMTcs
MTAgQEAKICNpbXBvcnQgIkRpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXIuaCIKICNlbmRpZgog
CisjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKKyNpbXBvcnQgPFdlYkNvcmUv
U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5oPgorI2VuZGlmCisKICNkZWZp
bmUgTUVTU0FHRV9DSEVDSyhwcm9jZXNzLCBhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShh
c3NlcnRpb24sIHByb2Nlc3MtPmNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19V
UkwocHJvY2VzcywgdXJsKSBNRVNTQUdFX0NIRUNLX0JBU0UoY2hlY2tVUkxSZWNlaXZlZEZyb21D
dXJyZW50T3JQcmV2aW91c1dlYlByb2Nlc3MocHJvY2VzcywgdXJsKSwgcHJvY2Vzcy0+Y29ubmVj
dGlvbigpKQogI2RlZmluZSBNRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04ocHJvY2VzcywgYXNzZXJ0
aW9uLCBjb21wbGV0aW9uKSBNRVNTQUdFX0NIRUNLX0NPTVBMRVRJT05fQkFTRShhc3NlcnRpb24s
IHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgY29tcGxldGlvbikKQEAgLTg0NDgsNiArODQ1Miw3IEBA
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRl
cnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlT
V0RlY29kZXIgPSBwcmVmZXJlbmNlcygpLnZwOURlY29kZXJFbmFibGVkKCkgJiYgKCFXZWJDb3Jl
OjpzeXN0ZW1IYXNCYXR0ZXJ5KCkgfHwgcHJlZmVyZW5jZXMoKS52cDlTV0RlY29kZXJFbmFibGVk
T25CYXR0ZXJ5KCkpOwogI2VuZGlmCiAgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxh
eUluVUlQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNvbmZpZ3VyYXRpb24oKS5z
aG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKCk7CisgICAgcGFyYW1ldGVycy5zaG91bGRD
YXB0dXJlRGlzcGxheUluR1BVUHJvY2VzcyA9IHByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0Zv
ckRpc3BsYXlDYXB0dXJlKCk7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogICAgIHBh
cmFtZXRlcnMubGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyA9IG1fbGltaXRzTmF2
aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWluczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlci5tbQpp
bmRleCA4OGFkYWM2Mzc1NjQzZjY3NDA3ZTE2OGM0MDAzZGVmYjA2MTZhZDMyLi40NWU2NTI0MmY5
MDEyNDllNGUzZWNmODdiYzFmMTdiZTk4NDFlNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlci5tbQpA
QCAtMzIsNiArMzIsOCBAQAogI2ltcG9ydCAiTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmgiCiAj
aW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisj
aW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9y
dCA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmg+CkBAIC0yMDEsNyArMjAzLDE0IEBAIHZvaWQgRGlzcGxheUNhcHR1cmVTZXNzaW9u
TWFuYWdlcjo6c2hvd1dpbmRvd1BpY2tlcihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlCiAK
ICNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9OKQogICAgIGlmIChXZWJDb3JlOjpT
Y3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjppc0F2YWlsYWJsZSgpKSB7Ci0g
ICAgICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNp
bmdsZXRvbigpLnNob3dXaW5kb3dQaWNrZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgICAgICBpZiAoIXBhZ2UucHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRGlzcGxheUNh
cHR1cmUoKSkgeworICAgICAgICAgICAgV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdT
ZXNzaW9uTWFuYWdlcjo6c2luZ2xldG9uKCkuc2hvd1dpbmRvd1BpY2tlcihXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBhdXRvJiBncHVQcm9jZXNzID0gcGFnZS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5lbnN1cmVH
UFVQcm9jZXNzKCk7CisgICAgICAgIGdwdVByb2Nlc3MudXBkYXRlU2FuZGJveEFjY2VzcyhmYWxz
ZSwgZmFsc2UsIHRydWUpOworICAgICAgICBncHVQcm9jZXNzLnNob3dXaW5kb3dQaWNrZXIoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlm
CkBAIC0yMTgsNyArMjI3LDcgQEAgdm9pZCBEaXNwbGF5Q2FwdHVyZVNlc3Npb25NYW5hZ2VyOjpz
aG93V2luZG93UGlja2VyKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2UKICAgICB9KTsKIH0K
IAotdm9pZCBEaXNwbGF5Q2FwdHVyZVNlc3Npb25NYW5hZ2VyOjpzaG93U2NyZWVuUGlja2VyKFdl
YlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIERpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXI6OnNo
b3dTY3JlZW5QaWNrZXIoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChtX2lu
ZGV4T2ZEZXZpY2VTZWxlY3RlZEZvclRlc3RpbmcpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZGV2aWNlU2VsZWN0ZWRGb3JUZXN0aW5nKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNjcmVlbikpOwpAQCAtMjI3LDcgKzIzNiwxNCBAQCB2b2lkIERpc3BsYXlDYXB0dXJl
U2Vzc2lvbk1hbmFnZXI6OnNob3dTY3JlZW5QaWNrZXIoV2ViUGFnZVByb3h5JiwgY29uc3QgV2Vi
Q29yZQogCiAjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKICAgICBpZiAoV2Vi
Q29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcjo6aXNBdmFpbGFibGUo
KSkgewotICAgICAgICBXZWJDb3JlOjpTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5h
Z2VyOjpzaW5nbGV0b24oKS5zaG93U2NyZWVuUGlja2VyKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICAgICAgaWYgKCFwYWdlLnByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0ZvckRp
c3BsYXlDYXB0dXJlKCkpIHsKKyAgICAgICAgICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRT
aGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNpbmdsZXRvbigpLnNob3dTY3JlZW5QaWNrZXIoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgYXV0byYgZ3B1UHJvY2VzcyA9IHBhZ2UucHJvY2VzcygpLnByb2Nlc3NQb29sKCku
ZW5zdXJlR1BVUHJvY2VzcygpOworICAgICAgICBncHVQcm9jZXNzLnVwZGF0ZVNhbmRib3hBY2Nl
c3MoZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgZ3B1UHJvY2Vzcy5zaG93U2NyZWVuUGlj
a2VyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IDczZWM0MTQ3MzA3YWQyNmNkMGNiYzFlODJmOWEyYTQ2
MDIxZjkxZjAuLmVkNjBjNmQ4MzFlOTYzNWY4ZTA1NDNhMmIyODllNjY2ZGIyNTkzMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdl
Q29jb2EubW0KQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxp
emUoY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKGF1dG8qIGNhcHR1cmVNYW5hZ2VyID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4oKSkK
LSAgICAgICAgY2FwdHVyZU1hbmFnZXItPnNldHVwQ2FwdHVyZVByb2Nlc3NlcyhwYXJhbWV0ZXJz
LnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVB
dWRpb0luR1BVUHJvY2VzcywgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2Vz
cywgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIHBhcmFtZXRlcnMu
c2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcywgbV9wYWdlLT5zZXR0aW5ncygpLndlYlJU
Q1JlbW90ZVZpZGVvRnJhbWVFbmFibGVkKCkpOworICAgICAgICBjYXB0dXJlTWFuYWdlci0+c2V0
dXBDYXB0dXJlUHJvY2Vzc2VzKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3MsIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBwYXJhbWV0ZXJz
LnNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVW
aWRlb0luR1BVUHJvY2VzcywgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9j
ZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVEaXNwbGF5SW5HUFVQcm9jZXNzLCBtX3BhZ2Ut
PnNldHRpbmdzKCkud2ViUlRDUmVtb3RlVmlkZW9GcmFtZUVuYWJsZWQoKSk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYzVmZjcyNTc0NzY4NmJlOTFiY2M5OGRmMjQyNjcy
ZTI0MjBjOWViNS4uNTdhMzMxM2MyMzI5M2E4YWI5NTBjYjA5NDExOWUxMWVlOTJlOTFhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwCkBAIC03MCwxNiArNzAsMTcgQEAgY29uc3QgY2hhciogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4gIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIjsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2V0
dXBDYXB0dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIGJv
b2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRl
b0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcywgYm9vbCBz
aG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NS
ZW1vdGVGcmFtZXMpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZXR1cENhcHR1cmVQ
cm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRD
YXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nl
c3MsIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1
cmVEaXNwbGF5SW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nl
c3MsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykKIHsKICAgICBtX3Nob3Vs
ZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMgPSBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJh
bWVzOwogICAgIC8vIEZJWE1FKHJkYXI6Ly84NDI3ODE0Nik6IEFkb3B0IEFWQ2FwdHVyZVNlc3Np
b24gYXR0cmlidXRpb24gQVBJIGZvciBjYW1lcmEgYWNjZXNzIGluIHRoZSB3ZWIgcHJvY2VzcyBp
ZiBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MgaXMgZmFsc2UuCiAgICAgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldE1vY2tBdWRpb0NhcHR1cmVFbmFi
bGVkKCFzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyAmJiAhc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzKTsKICAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuc2V0TW9ja1ZpZGVvQ2FwdHVyZUVuYWJsZWQoIXNob3VsZENhcHR1cmVWaWRlb0luVUlQ
cm9jZXNzICYmICFzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MpOwotICAgIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrRGlzcGxheUNhcHR1cmVF
bmFibGVkKCFzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKTsKKyAgICBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0TW9ja0Rpc3BsYXlDYXB0dXJlRW5h
YmxlZCghc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcyAmJiAhc2hvdWxkQ2FwdHVyZURp
c3BsYXlJbkdQVVByb2Nlc3MpOwogCiAgICAgbV9hdWRpb0ZhY3Rvcnkuc2V0U2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MpOwogICAgIG1fdmlk
ZW9GYWN0b3J5LnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZVZpZGVv
SW5HUFVQcm9jZXNzKTsKKyAgICBtX2Rpc3BsYXlGYWN0b3J5LnNldFNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3Moc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3MpOwogCiAgICAgaWYgKHNo
b3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcykgewogICAgICAgICBXZWJDb3JlOjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldENyZWF0ZUludGVybmFsVW5pdEZ1bmN0aW9u
KFtdKGF1dG8mJiByZW5kZXJDYWxsYmFjaywgYXV0byYmIHJlc2V0Q2FsbGJhY2spIHsKQEAgLTkx
LDcgKzkyLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2V0dXBDYXB0dXJlUHJv
Y2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVAKICAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9DYXB0dXJlRmFjdG9yeShtX2F1ZGlv
RmFjdG9yeSk7CiAgICAgaWYgKHNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzIHx8IHNob3Vs
ZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcykKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuc2V0VmlkZW9DYXB0dXJlRmFjdG9yeShtX3ZpZGVvRmFjdG9yeSk7
Ci0gICAgaWYgKHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpCisgICAgaWYgKHNob3Vs
ZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgfHwgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVBy
b2Nlc3MpCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNl
dERpc3BsYXlDYXB0dXJlRmFjdG9yeShtX2Rpc3BsYXlGYWN0b3J5KTsKIH0KIApAQCAtMjUxLDkg
KzI1MiwyMiBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogCiBDYXB0dXJlU291cmNlT3JFcnJv
ciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIHJldHVybiBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBmYWxzZSk7CisjaWYgIUVOQUJMRShHUFVfUFJP
Q0VTUykKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiRGlzcGxheSBjYXB0dXJlIGluIEdQVVByb2Nlc3Mg
aXMgbm90IGltcGxlbWVudGVkIl9zIH07CisjZW5kaWYKKyAgICBpZiAobV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQorICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5zZXRSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnJlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkoKSk7CisKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
OjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdl
ciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mo
Ym9vbCB2YWx1ZSkKK3sKKyAgICBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgPSB2YWx1ZTsK
IH0KIAotI2VuZGlmCisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCAwNjkwMTcwZjk3ZTdlY2UyNDQ4OTNm
MzQ1ZmU1ZDhlNzEzZjNhOTNiLi4xNWE5MGQyOWU3MTdmNWZiNzJlN2IyYmIxOWNjZjY2ZTA2M2Ix
OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
IH0KLSAgICB2b2lkIHNldHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBz
aG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQ
VVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcywgYm9vbCBzaG91
bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKTsKKyAgICB2b2lkIHNldHVwQ2FwdHVyZVByb2Nl
c3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1
cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2Vzcywg
Ym9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURp
c3BsYXlJblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxheUluR1BVUHJvY2Vzcywg
Ym9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKTsKIAogICAgIHZvaWQgYWRkU291
cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsKICAgICB2b2lkIGFkZFNvdXJj
ZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7CkBAIC05OCwxMiArOTgsMTQgQEAg
cHJpdmF0ZToKICAgICBjbGFzcyBEaXNwbGF5RmFjdG9yeSA6IHB1YmxpYyBXZWJDb3JlOjpEaXNw
bGF5Q2FwdHVyZUZhY3RvcnkgewogICAgIHB1YmxpYzoKICAgICAgICAgZXhwbGljaXQgRGlzcGxh
eUZhY3RvcnkoVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIpIDogbV9tYW5hZ2VyKG1h
bmFnZXIpIHsgfQorICAgICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9v
bCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKICAg
ICAgICAgV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVNYW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmlj
ZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21hbmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1h
bmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwor
ICAgICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAgICAg
fTsKIAogICAgIGNsYXNzIE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciA6IHB1YmxpYyBXZWJDb3Jl
OjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXIgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452478</attachid>
            <date>2022-02-17 21:55:03 -0800</date>
            <delta_ts>2022-02-18 04:47:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236815-20220217215502.patch</filename>
            <type>text/plain</type>
            <size>51667</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJlMmI5YWU2MjQ5YWMyM2U3YjEzZGRj
ZmUxODY3MzJjYjI3YWQyMTMuLmRlMDFkNWVkY2Q4MDEyNTBmYWJhZWNjMTMzNzVlYjBjZDAxYjgy
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBbGxvdyBzY3JlZW4gYW5kIHdp
bmRvdyBjYXB0dXJlIHRvIGJlIGRvbmUgaW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4MTUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg5MTE3Mjc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sOiBBZGQgVXNlR1BVUHJvY2Vzc0ZvckRpc3BsYXlDYXB0dXJlLgorCiAyMDIyLTAy
LTE3ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgRW5h
YmxlIHN1YmdyaWQgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MDg1MDk5MmY0NjVhZTU3OTgx
MWIwMjQzMmU4YWVkNGQ3YWNhYWQwLi40YzQ5YjU3ZTc2MjYwMTExYmEzZmY0YTk0NzhmYmM1NzEw
ODU4MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMTcgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBbGxvdyBz
Y3JlZW4gYW5kIHdpbmRvdyBjYXB0dXJlIHRvIGJlIGRvbmUgaW4gdGhlIEdQVSBQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4MTUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MTE3Mjc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBtYW51YWxseS4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVy
ZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291
cmNlOjpzZXNzaW9uRGlkQ2hhbmdlQ29udGVudCk6IENhbGwgQ2FwdHVyZURldmljZQorICAgICAg
ICBjb25zdHJ1Y3RvciBkaXJlY3RseSBzaW5jZSB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaXQgbmVlZHMu
CisgICAgICAgIChXZWJDb3JlOjpmaW5kU2hhcmFibGVEZXZpY2UpOiBFeHRyYWN0IGxvZ2ljIGZy
b20gcHJvY2Vzc1NoYXJhYmxlQ29udGVudCBpbnRvIGEKKyAgICAgICAgc3RhdGljIGZ1bmN0aW9u
IHNvIGl0IGNhbiBiZSByZXVzZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5DYXB0dXJlS2l0
Q2FwdHVyZVNvdXJjZTo6ZmluZFNoYXJlYWJsZUNvbnRlbnQpOiBVc2UgZmluZFNoYXJhYmxlRGV2
aWNlLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnN0
cmVhbUNvbmZpZ3VyYXRpb24pOiBBZGQgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVl
bkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpzdGFydENvbnRlbnRTdHJlYW0pOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpjYXB0dXJlRGV2
aWNlV2l0aFBlcnNpc3RlbnRJRCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5DYXB0dXJlS2l0
Q2FwdHVyZVNvdXJjZTo6cHJvY2Vzc1NoYXJhYmxlQ29udGVudCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lv
bk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vz
c2lvbk1hbmFnZXI6OlNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXI6Om9wZXJhdG9yPT0gY29uc3QpOiBE
ZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1
cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5D
YXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjppc0F2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjpzZXNzaW9uRGlk
Q2hhbmdlQ29udGVudCk6IENhbGwKKyAgICAgICAgQ2FwdHVyZURldmljZSBjb25zdHJ1Y3RvciBk
aXJlY3RseSBzaW5jZSB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaXQgbmVlZHMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjpwcm9tcHRGb3JHZXRE
aXNwbGF5TWVkaWEpOiBDYWxsCisgICAgICAgIGNvbXBsZXRpb24gaGFuZGxlciBpZiB0aGUgY2xh
c3MgaXMgbm90IGF2YWlsYWJsZS4KKwogMjAyMi0wMi0xNyAgUGF0cmljayBBbmdsZSAgPHBhbmds
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW0ZsZXhib3hdIEFkZCBpbmRp
Y2F0b3JzIGZvciBsYXlvdXQgY29udGV4dCBpbiBlbGVtZW50IHRvb2x0aXBzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDkyNTIwNGRkNDFlMmI0NjBlYjQwMGI0NTU4ZWU4ODk4MDFjNDBmYTcuLjAxMzU5MWEyMGI3OWZi
YjExYjU0YzY3YjcwYzdmMjRjM2VhMGRjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIw
MjItMDItMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBBbGxvdyBzY3JlZW4gYW5kIHdpbmRvdyBjYXB0dXJlIHRvIGJlIGRvbmUgaW4g
dGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzY4MTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MTE3Mjc4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6c2hvd1dpbmRvd1Bp
Y2tlcik6IENhbGwgdGhlIHBpY2tlci4KKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6c2hv
d1NjcmVlblBpY2tlcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzOjpzZXRV
c2VTY3JlZW5DYXB0dXJlS2l0KTogCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAg
ICogR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluOiBBZGQg
cnVsZSB0byBhbGxvdyBzYW5kYm94CisgICAgICAgIHRvIGJlIGV4dGVuZGVkIGR5bmFtaWNhbGx5
IHdpdGggdGhlIG1hY2gtbG9va3VwcyByZXF1aXJlZCBmb3IgdGhlIHBpY2tlci4KKyAgICAgICAg
KiBTY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoOiBBZGQgZW50aXRsZW1lbnRzIHJlcXVp
cmVkIGZvciBwaWNrZXIuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZSBjb25zdCk6IEVuY29kZSBzaG91bGRDYXB0dXJlRGlzcGxheUluR1BVUHJvY2Vzcy4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKTogRGVjb2Rl
IHNob3VsZENhcHR1cmVEaXNwbGF5SW5HUFVQcm9jZXNzLgorICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW06CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjphZGREaXNwbGF5Q2FwdHVyZVNhbmRib3hFeHRlbnNp
b24pOiBDcmVhdGUgZXh0ZW5zaW9ucyByZXF1aXJlZCB0byB1c2UgdGhlCisgICAgICAgIHN5c3Rl
bSBwaWNrZXIuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6dXBkYXRlU2FuZGJv
eEFjY2Vzcyk6IEFkZCBkaXNwbGF5IGNhcHR1cmUuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nl
c3NQcm94eTo6dXBkYXRlQ2FwdHVyZUFjY2Vzcyk6IFBhc3MgImFsbG93RGlzcGxheUNhcHR1cmUi
IHRvIHVwZGF0ZVNhbmRib3hBY2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94
eTo6c2hvd1dpbmRvd1BpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6
c2hvd1NjcmVlblBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6dXBk
YXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMpOiBTZXQgc2hvdWxkQ2FwdHVy
ZURpc3BsYXlJbkdQVVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3BsYXlD
YXB0dXJlU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlDYXB0dXJl
U2Vzc2lvbk1hbmFnZXI6OnNob3dXaW5kb3dQaWNrZXIpOiBTZW5kIG1lc3NhZ2UgdG8gR1BVCisg
ICAgICAgIHByb2Nlc3Mgd2hlbiBuZWNlc3NhcnkuCisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlD
YXB0dXJlU2Vzc2lvbk1hbmFnZXI6OnNob3dTY3JlZW5QaWNrZXIpOiBEaXR0by4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6IFBhc3Mgc2hvdWxkQ2FwdHVyZURp
c3BsYXlJbkdQVVByb2Nlc3MgdG8gc2V0dXBDYXB0dXJlUHJvY2Vzc2VzLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZXR1cENhcHR1cmVQcm9jZXNzZXMpOiBB
ZGQgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3MKKyAgICAgICAgcGFyYW1ldGVyLgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6
OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKTogRGVhbAorICAgICAgICB3aXRoIEdQVSBwcm9j
ZXNzIGNhcHR1cmUuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpE
aXNwbGF5RmFjdG9yeTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDIyLTAyLTE3
ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
RGViaWFuIFN0YWJsZSBidWlsZCBpcyBicm9rZW4gYWZ0ZXIgcjI5MDAyNgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbAppbmRleCAyZDJjMmIzOWQ2NmUyZmM5Zjc4YmRiYTQ1MGQ5ODhlMjYyNmUz
NzhjLi4zNzYzODU4MjgwMDBiNTczMTlhNjFmNTQyMDAyYmRjYzZkM2Y0YmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTQyMCw2ICsxNDIwLDE3IEBAIFVzZUdQVVByb2Nlc3NG
b3JET01SZW5kZXJpbmdFbmFibGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IGRlZmF1
bHRVc2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxlZCgpCiAKK1VzZUdQVVByb2Nlc3NG
b3JEaXNwbGF5Q2FwdHVyZToKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkdQ
VSBQcm9jZXNzOiBTY3JlZW4gYW5kIFdpbmRvdyBjYXB0dXJlIgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJEaXNwbGF5IGNhcHR1cmUgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVCaW5k
aW5nOiBub25lCisgIGNvbmRpdGlvbjogSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikK
KyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAg
ICAgZGVmYXVsdDogZmFsc2UKKwogVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZDoKICAgdHlw
ZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBXZWJHTCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0
dXJlS2l0Q2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLmgKaW5kZXggNWU5NmFkZjYxMWEx
ODkzMDc0YzUyODllNDU5ZWVmYjIwMWNiZmQ4Zi4uNzBkMWNlODgwNjM2YmE0NmIwMGMzZDA5NzNm
NTVlNzkwZTY2MThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291
cmNlLmgKQEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PENhcHR1cmVEZXZpY2U+IHdpbmRvd0NhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0
IFN0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHdpbmRvd0RldmljZXMo
VmVjdG9yPERpc3BsYXlDYXB0dXJlTWFuYWdlcjo6V2luZG93Q2FwdHVyZURldmljZT4mKTsKIAor
ICAgIHN0YXRpYyB2b2lkIGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUsIHVpbnQzMl90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8Q2FwdHVyZURldmljZT4pPiYmKTsKKworICAgIHVzaW5nIENvbnRlbnQgPSBzdGQ6OnZh
cmlhbnQ8UmV0YWluUHRyPFNDV2luZG93PiwgUmV0YWluUHRyPFNDRGlzcGxheT4+OwogICAgIHZv
aWQgc3RyZWFtRmFpbGVkV2l0aEVycm9yKFJldGFpblB0cjxOU0Vycm9yPiYmLCBjb25zdCBTdHJp
bmcmKTsKICAgICBlbnVtIGNsYXNzIFNhbXBsZVR5cGUgeyBWaWRlbyB9OwogICAgIHZvaWQgc3Ry
ZWFtRGlkT3V0cHV0U2FtcGxlQnVmZmVyKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4sIFNh
bXBsZVR5cGUpOwpAQCAtODcsNyArOTAsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTY3JlZW5DYXB0dXJlS2l0Q2FwdHVy
ZVNvdXJjZSI7IH0KIAogICAgIHZvaWQgc3RhcnRDb250ZW50U3RyZWFtKCk7Ci0gICAgdm9pZCBw
cm9jZXNzU2hhcmFibGVDb250ZW50KFJldGFpblB0cjxTQ1NoYXJlYWJsZUNvbnRlbnQ+JiYsIFJl
dGFpblB0cjxOU0Vycm9yPiYmKTsKICAgICB2b2lkIGZpbmRTaGFyZWFibGVDb250ZW50KCk7CiAg
ICAgUmV0YWluUHRyPFNDU3RyZWFtQ29uZmlndXJhdGlvbj4gc3RyZWFtQ29uZmlndXJhdGlvbigp
OwogICAgIHZvaWQgdXBkYXRlU3RyZWFtQ29uZmlndXJhdGlvbigpOwpAQCAtOTcsOSArOTksNyBA
QCBwcml2YXRlOgogCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBjYXB0dXJlUXVldWUoKTsKIAotICAg
IHVzaW5nIENvbnRlbnQgPSBzdGQ6OnZhcmlhbnQ8UmV0YWluUHRyPFNDV2luZG93PiwgUmV0YWlu
UHRyPFNDRGlzcGxheT4+OwogICAgIHN0ZDo6b3B0aW9uYWw8Q29udGVudD4gbV9jb250ZW50Owot
CiAgICAgUmV0YWluUHRyPFdlYkNvcmVTY3JlZW5DYXB0dXJlS2l0SGVscGVyPiBtX2NhcHR1cmVI
ZWxwZXI7CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBtX2N1cnJlbnRGcmFtZTsK
ICAgICBSZXRhaW5QdHI8U0NDb250ZW50RmlsdGVyPiBtX2NvbnRlbnRGaWx0ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVy
ZUtpdENhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2UubW0KaW5kZXggNDA0ZDY3OTE3Njcx
YWIyODY1ZDBiYWQ5MmZjZmIzZGViZDU4NzFjNi4uNmY5MjQ1MTJjZGVmOThiOGNjYjQxOTg3NzVk
YTlkMjMwZjk0NTM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNv
dXJjZS5tbQpAQCAtMjc0LDEyICsyNzQsMTQgQEAgdm9pZCBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVy
ZVNvdXJjZTo6c2Vzc2lvbkRpZENoYW5nZUNvbnRlbnQoUmV0YWluUHRyPFNDQ29udGVudFMKICAg
ICBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGRldmljZTsKICAgICBTQ0NvbnRlbnRGaWx0
ZXIqIGNvbnRlbnQgPSBbc2Vzc2lvbiBjb250ZW50XTsKICAgICBzd2l0Y2ggKGNvbnRlbnQudHlw
ZSkgewotICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURlc2t0b3BJbmRlcGVuZGVudFdpbmRv
dzoKLSAgICAgICAgZGV2aWNlID0gd2luZG93Q2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQo
U3RyaW5nOjpudW1iZXIoY29udGVudC5kZXNrdG9wSW5kZXBlbmRlbnRXaW5kb3dJbmZvLndpbmRv
dy53aW5kb3dJRCkpOworICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURlc2t0b3BJbmRlcGVu
ZGVudFdpbmRvdzogeworICAgICAgICBhdXRvICp3aW5kb3cgPSBjb250ZW50LmRlc2t0b3BJbmRl
cGVuZGVudFdpbmRvd0luZm8ud2luZG93OworICAgICAgICBkZXZpY2UgPSBDYXB0dXJlRGV2aWNl
KFN0cmluZzo6bnVtYmVyKHdpbmRvdy53aW5kb3dJRCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OldpbmRvdywgd2luZG93LnRpdGxlLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKICAgICAgICAg
bV9jb250ZW50ID0gY29udGVudC5kZXNrdG9wSW5kZXBlbmRlbnRXaW5kb3dJbmZvLndpbmRvdzsK
ICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURpc3Bs
YXk6Ci0gICAgICAgIGRldmljZSA9IHNjcmVlbkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElE
KFN0cmluZzo6bnVtYmVyKGNvbnRlbnQuZGlzcGxheUluZm8uZGlzcGxheS5kaXNwbGF5SUQpKTsK
KyAgICAgICAgZGV2aWNlID0gQ2FwdHVyZURldmljZShTdHJpbmc6Om51bWJlcihjb250ZW50LmRp
c3BsYXlJbmZvLmRpc3BsYXkuZGlzcGxheUlEKSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
U2NyZWVuLCBtYWtlU3RyaW5nKCJTY3JlZW4iKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CiAgICAg
ICAgIG1fY29udGVudCA9IGNvbnRlbnQuZGlzcGxheUluZm8uZGlzcGxheTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBTQ0NvbnRlbnRGaWx0ZXJUeXBlTm90aGluZzoKQEAgLTI4OSw3ICsyOTEs
NyBAQCB2b2lkIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpzZXNzaW9uRGlkQ2hhbmdl
Q29udGVudChSZXRhaW5QdHI8U0NDb250ZW50UwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGlmICghZGV2aWNlKSB7Ci0gICAgICAgIHN0cmVhbUZhaWxlZFdpdGhFcnJvcihuaWwsICJGYWls
ZWQgZmluZCBDYXB0dXJlRGV2aWNlIGFmdGVyIGNvbnRlbnQgY2hhbmdlIl9zKTsKKyAgICAgICAg
c3RyZWFtRmFpbGVkV2l0aEVycm9yKG5pbCwgIkZhaWxlZCB0byBmaW5kIENhcHR1cmVEZXZpY2Ug
YWZ0ZXIgY29udGVudCBjaGFuZ2VkIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MzA4LDUwICszMTAsNjEgQEAgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUZyYW1l
VHlwZSBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Z2VuZXIKICAgICByZXR1cm4gbV9j
dXJyZW50RnJhbWU7CiB9CiAKLXZvaWQgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnBy
b2Nlc3NTaGFyYWJsZUNvbnRlbnQoUmV0YWluUHRyPFNDU2hhcmVhYmxlQ29udGVudD4mJiBzaGFy
ZWFibGVDb250ZW50LCBSZXRhaW5QdHI8TlNFcnJvcj4mJiBlcnJvcikKK3N0YXRpYyB2b2lkIGZp
bmRTaGFyYWJsZURldmljZShSZXRhaW5QdHI8U0NTaGFyZWFibGVDb250ZW50PiYmIHNoYXJlYWJs
ZUNvbnRlbnQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgdWludDMyX3Qg
ZGV2aWNlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxTY3JlZW5DYXB0
dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Q29udGVudD4sIHVpbnQzMl90KT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAotICAgIGlmIChlcnJvcikg
ewotICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IoV1RGTW92ZShlcnJvciksICItW1NDU3Ry
ZWFtIGdldFNoYXJlYWJsZUNvbnRlbnRXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSBmYWlsZWQiX3Mp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG1fY2FwdHVyZURldmljZS50eXBl
KCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuKSB7CisgICAgdWludDMyX3Qg
aW5kZXggPSAwOworICAgIHN0ZDo6b3B0aW9uYWw8U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3Vy
Y2U6OkNvbnRlbnQ+IGNvbnRlbnQ7CisgICAgaWYgKGRldmljZVR5cGUgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U2NyZWVuKSB7CiAgICAgICAgIFtbc2hhcmVhYmxlQ29udGVudCBkaXNw
bGF5c10gZW51bWVyYXRlT2JqZWN0c1VzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFsmXSAoU0NEaXNw
bGF5ICpkaXNwbGF5LCBOU1VJbnRlZ2VyLCBCT09MICpzdG9wKSB7Ci0gICAgICAgICAgICBpZiAo
ZGlzcGxheS5kaXNwbGF5SUQgPT0gbV9kZXZpY2VJRCkgewotICAgICAgICAgICAgICAgIG1fY29u
dGVudCA9IGRpc3BsYXk7CisgICAgICAgICAgICBpZiAoZGlzcGxheS5kaXNwbGF5SUQgPT0gZGV2
aWNlSUQpIHsKKyAgICAgICAgICAgICAgICBjb250ZW50ID0gZGlzcGxheTsKICAgICAgICAgICAg
ICAgICAqc3RvcCA9IFlFUzsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsraW5kZXg7CiAg
ICAgICAgIH0pLmdldCgpXTsKLSAgICB9IGVsc2UgaWYgKG1fY2FwdHVyZURldmljZS50eXBlKCkg
PT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93KSB7CisgICAgfSBlbHNlIGlmIChk
ZXZpY2VUeXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdykgewogICAgICAg
ICBbW3NoYXJlYWJsZUNvbnRlbnQgd2luZG93c10gZW51bWVyYXRlT2JqZWN0c1VzaW5nQmxvY2s6
bWFrZUJsb2NrUHRyKFsmXSAoU0NXaW5kb3cgKndpbmRvdywgTlNVSW50ZWdlciwgQk9PTCAqc3Rv
cCkgewotICAgICAgICAgICAgaWYgKHdpbmRvdy53aW5kb3dJRCA9PSBtX2RldmljZUlEKSB7Ci0g
ICAgICAgICAgICAgICAgbV9jb250ZW50ID0gd2luZG93OworICAgICAgICAgICAgaWYgKHdpbmRv
dy53aW5kb3dJRCA9PSBkZXZpY2VJRCkgeworICAgICAgICAgICAgICAgIGNvbnRlbnQgPSB3aW5k
b3c7CiAgICAgICAgICAgICAgICAgKnN0b3AgPSBZRVM7CiAgICAgICAgICAgICB9CisgICAgICAg
ICAgICArK2luZGV4OwogICAgICAgICB9KS5nZXQoKV07CiAgICAgfSBlbHNlIHsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
IW1fY29udGVudCkgewotICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IobmlsLCAiY2FwdHVy
ZSBkZXZpY2Ugbm90IGZvdW5kIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0
YXJ0Q29udGVudFN0cmVhbSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29udGVu
dCksIGluZGV4KTsKIH0KIAogdm9pZCBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Zmlu
ZFNoYXJlYWJsZUNvbnRlbnQoKQogewogICAgIEFTU0VSVCghbV9jb250ZW50KTsKIAotICAgIFtQ
QUw6OmdldFNDU2hhcmVhYmxlQ29udGVudENsYXNzKCkgZ2V0U2hhcmVhYmxlQ29udGVudFdpdGhD
b21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH1dIChTQ1NoYXJlYWJsZUNvbnRlbnQgKnNoYXJlYWJsZUNvbnRlbnQsIE5TRXJyb3IgKmVycm9y
KSBtdXRhYmxlIHsKLSAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV1RGTW92
ZSh3ZWFrVGhpcyksIHNoYXJlYWJsZUNvbnRlbnQgPSBSZXRhaW5QdHIgeyBzaGFyZWFibGVDb250
ZW50IH0sIGVycm9yID0gUmV0YWluUHRyIHsgZXJyb3IgfV0oKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cHJvY2Vzc1NoYXJh
YmxlQ29udGVudChXVEZNb3ZlKHNoYXJlYWJsZUNvbnRlbnQpLCBXVEZNb3ZlKGVycm9yKSk7Cisg
ICAgQUxXQVlTX0xPR19JRihsb2dnZXJQdHIoKSwgTE9HSURFTlRJRklFUik7CisKKyAgICBbUEFM
OjpnZXRTQ1NoYXJlYWJsZUNvbnRlbnRDbGFzcygpIGdldFNoYXJlYWJsZUNvbnRlbnRXaXRoQ29t
cGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUl0gKFNDU2hhcmVhYmxlQ29udGVudCAq
c2hhcmVhYmxlQ29udGVudCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgc2hhcmVh
YmxlQ29udGVudCA9IFJldGFpblB0ciB7IHNoYXJlYWJsZUNvbnRlbnQgfSwgZXJyb3IgPSBSZXRh
aW5QdHIgeyBlcnJvciB9LCBpZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChl
cnJvcikgeworICAgICAgICAgICAgICAgIHN0cmVhbUZhaWxlZFdpdGhFcnJvcihXVEZNb3ZlKGVy
cm9yKSwgIi1bU0NTdHJlYW0gZ2V0U2hhcmVhYmxlQ29udGVudFdpdGhDb21wbGV0aW9uSGFuZGxl
cjpdIGZhaWxlZCJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBpZGVudGlmaWVyLCAiaGF2
ZSBjb250ZW50IGxpc3QiKTsKKworICAgICAgICAgICAgZmluZFNoYXJhYmxlRGV2aWNlKFdURk1v
dmUoc2hhcmVhYmxlQ29udGVudCksIG1fY2FwdHVyZURldmljZS50eXBlKCksIG1fZGV2aWNlSUQs
IFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXSAoc3RkOjpvcHRpb25hbDxDb250
ZW50PiBjb250ZW50LCB1aW50MzJfdCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKCFj
b250ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmVhbUZhaWxlZFdpdGhFcnJvcihuaWws
ICJjYXB0dXJlIGRldmljZSBub3QgZm91bmQiX3MpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fY29udGVudCA9IFdURk1v
dmUoY29udGVudCk7CisgICAgICAgICAgICAgICAgc3RhcnRDb250ZW50U3RyZWFtKCk7CisgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSkuZ2V0KCldOwogfQpAQCAtMzYxLDYgKzM3
NCw4IEBAIFJldGFpblB0cjxTQ1N0cmVhbUNvbmZpZ3VyYXRpb24+IFNjcmVlbkNhcHR1cmVLaXRD
YXB0dXJlU291cmNlOjpzdHJlYW1Db25maWd1cmF0CiAgICAgaWYgKG1fc3RyZWFtQ29uZmlndXJh
dGlvbikKICAgICAgICAgcmV0dXJuIG1fc3RyZWFtQ29uZmlndXJhdGlvbjsKIAorICAgIEFMV0FZ
U19MT0dfSUYobG9nZ2VyUHRyKCksIExPR0lERU5USUZJRVIpOworCiAgICAgbV9zdHJlYW1Db25m
aWd1cmF0aW9uID0gYWRvcHROUyhbUEFMOjphbGxvY1NDU3RyZWFtQ29uZmlndXJhdGlvbkluc3Rh
bmNlKCkgaW5pdF0pOwogICAgIFttX3N0cmVhbUNvbmZpZ3VyYXRpb24gc2V0UGl4ZWxGb3JtYXQ6
cHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgpXTsKICAgICBbbV9zdHJlYW1Db25maWd1cmF0aW9u
IHNldFNob3dzQ3Vyc29yOllFU107CkBAIC0zODUsNiArNDAwLDggQEAgUmV0YWluUHRyPFNDU3Ry
ZWFtQ29uZmlndXJhdGlvbj4gU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnN0cmVhbUNv
bmZpZ3VyYXQKIAogdm9pZCBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c3RhcnRDb250
ZW50U3RyZWFtKCkKIHsKKyAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElG
SUVSKTsKKwogICAgIGlmIChtX2NvbnRlbnRTdHJlYW0pCiAgICAgICAgIHJldHVybjsKIApAQCAt
NDMwLDcgKzQ0Nyw3IEBAIHZvaWQgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnN0YXJ0
Q29udGVudFN0cmVhbSgpCiAKIAogICAgIGlmICghbV9jb250ZW50U3RyZWFtKSB7Ci0gICAgICAg
IHN0cmVhbUZhaWxlZFdpdGhFcnJvcihuaWwsICJGYWlsZWQgdG8gYWxsb2NhdGUgQ29udGVudFN0
cmVhbSJfcyk7CisgICAgICAgIHN0cmVhbUZhaWxlZFdpdGhFcnJvcihuaWwsICJGYWlsZWQgdG8g
YWxsb2NhdGUgU0NTdHJlYW0iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDMs
MTMgKzQ2MCwxNSBAQCB2b2lkIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpzdGFydENv
bnRlbnRTdHJlYW0oKQogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IG1ha2VCbG9ja1B0cihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKE5TRXJy
b3IgKmVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFlcnJvcikKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt0aGlzLCB3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUl0g
KE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Ro
aXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGVycm9yID0gUmV0YWluUHRyIHsgZXJy
b3IgfSwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3
ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBlcnJvciA9IFJldGFpblB0ciB7IGVycm9yIH1d
KCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAg
d2Vha1RoaXMtPnN0cmVhbUZhaWxlZFdpdGhFcnJvcihXVEZNb3ZlKGVycm9yKSwgIi1bU0NTdHJl
YW0gc3RhcnRDYXB0dXJlV2l0aEZyYW1lSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcjpdIGZhaWxl
ZCJfcyk7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgc3RyZWFtRmFp
bGVkV2l0aEVycm9yKFdURk1vdmUoZXJyb3IpLCAiLVtTQ1N0cmVhbSBzdGFydENhcHR1cmVXaXRo
RnJhbWVIYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyOl0gZmFpbGVkIl9zKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBBTFdBWVNfTE9HX0lGKGxvZ2dlclB0cigpLCBpZGVudGlm
aWVyLCAic3RyZWFtIHN0YXJ0ZWQiKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKQEAgLTYyMyw2
ICs2NDIsMzggQEAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5
cGUgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnMKICAgICByZXR1cm4gbV9jYXB0dXJl
RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4gPyBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6TW9uaXRvciA6IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpXaW5kb3c7CiB9
CiAKK3ZvaWQgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNhcHR1cmVEZXZpY2VXaXRo
UGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgdWludDMy
X3QgZGV2aWNlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxDYXB0dXJl
RGV2aWNlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgW1BBTDo6Z2V0U0NTaGFyZWFi
bGVDb250ZW50Q2xhc3MoKSBnZXRTaGFyZWFibGVDb250ZW50V2l0aENvbXBsZXRpb25IYW5kbGVy
Om1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgZGV2aWNlSUQsIGRldmljZVR5cGVdIChTQ1NoYXJlYWJsZUNvbnRlbnQgKnNoYXJlYWJs
ZUNvbnRlbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3NoYXJlYWJsZUNvbnRlbnQgPSBSZXRhaW5QdHIgeyBzaGFyZWFibGVDb250ZW50IH0s
IGVycm9yID0gUmV0YWluUHRyIHsgZXJyb3IgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgZGV2aWNlSUQsIGRldmljZVR5cGVdKCkgbXV0YWJsZSB7CisK
KyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYlJUQywgImdldFNoYXJlYWJsZUNvbnRlbnRXaXRoQ29tcGxldGlvbkhhbmRsZXIgZmFp
bGVkIHdpdGggZXJyb3IgJXMiLCBbW2Vycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSBVVEY4U3Ry
aW5nXSk7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZp
bmRTaGFyYWJsZURldmljZShXVEZNb3ZlKHNoYXJlYWJsZUNvbnRlbnQpLCBkZXZpY2VUeXBlLCBk
ZXZpY2VJRCwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChzdGQ6Om9wdGlvbmFsPENvbnRlbnQ+IGNvbnRlbnQsIHVpbnQzMl90IGluZGV4KSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiY2FwdHVyZSBkZXZpY2Ugbm90IGZvdW5kIik7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBhdXRvIGRldmljZSA9IHN3aXRjaE9uKGNvbnRlbnQudmFsdWUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgW2luZGV4XSAoY29uc3QgUmV0YWluUHRyPFNDRGlzcGxheT4gZGlzcGxheSkg
LT4gc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQ2FwdHVyZURldmljZShTdHJpbmc6Om51bWJlcihbZGlzcGxheSBkaXNwbGF5SURd
KSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCBtYWtlU3RyaW5nKCJTY3JlZW4g
IiwgaW5kZXgpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgW10gKGNvbnN0IFJldGFpblB0cjxTQ1dpbmRvdz4gd2luZG93
KSAgLT4gc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQ2FwdHVyZURldmljZShTdHJpbmc6Om51bWJlcihbd2luZG93IHdpbmRvd0lE
XSksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdywgW3dpbmRvdyB0aXRsZV0sIGVt
cHR5U3RyaW5nKCksIHRydWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgKTsKKworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZGV2aWNl
KSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCiBz
dGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNl
OjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChjb25zdCBTdHJpbmcmIGRpc3Bs
YXlJRFN0cmluZykKIHsKICAgICBpZiAoIWlzQXZhaWxhYmxlKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0U2hh
cmluZ1Nlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5oCmluZGV4IDI3MjM4
ZWJhMDU3YzQ2ODI3NmFjMDc0YjZjNzgxYzFhOWI3YzUzN2QuLmNmYWY3Mjg0MDIyNTMxNjFjZWUy
YzU0MmNmMmI1OTFlNDg2NmQ0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1
cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCitPQkpDX0NMQVNTIFND
Q29udGVudEZpbHRlcjsKIE9CSkNfQ0xBU1MgU0NDb250ZW50U2hhcmluZ1Nlc3Npb247CiBPQkpD
X0NMQVNTIFdlYkRpc3BsYXlNZWRpYVByb21wdEhlbHBlcjsKIApAQCAtMzksMzQgKzQwLDE1IEBA
IGNsYXNzIENhcHR1cmVEZXZpY2U7CiAKIGNsYXNzIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vz
c2lvbk1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2NyZWVuQ2FwdHVyZUtpdFNoYXJp
bmdTZXNzaW9uTWFuYWdlcj4gewogcHVibGljOgotICAgIGNsYXNzIFNoYXJpbmdTZXNzaW9uT2Jz
ZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2hhcmluZ1Nlc3Npb25PYnNlcnZlcj4gewot
ICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+U2hhcmluZ1Nlc3Npb25PYnNlcnZlcigpID0g
ZGVmYXVsdDsKLQotICAgICAgICBlbnVtIGNsYXNzIFR5cGUgeyBTY3JlZW4sIFdpbmRvdyB9Owot
ICAgICAgICB2aXJ0dWFsIFR5cGUgc2Vzc2lvblR5cGUoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgdWludDMyX3Qgc2Vzc2lvbklEKCkgY29uc3QgPSAwOwotCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBzZXNzaW9uQ2hhbmdlZCgpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNlc3Npb25F
bmRlZCgpID0gMDsKLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2hhcmluZ1Nlc3Np
b25PYnNlcnZlciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBz
ZXNzaW9uVHlwZSgpID09IG90aGVyLnNlc3Npb25UeXBlKCkgJiYgc2Vzc2lvbklEKCkgPT0gb3Ro
ZXIuc2Vzc2lvbklEKCk7Ci0gICAgICAgIH0KLSAgICB9OwotCiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXImIHNpbmdsZXRvbigp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkVXNlU3lzdGVtUGlja2VyKCk7CiAKICAgICBT
Y3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyKCk7CiAgICAgflNjcmVlbkNhcHR1
cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIoKTsKIAogICAgIFJldGFpblB0cjxTQ0NvbnRlbnRT
aGFyaW5nU2Vzc2lvbj4gdGFrZVNoYXJpbmdTZXNzaW9uRm9yRmlsdGVyKFNDQ29udGVudEZpbHRl
ciopOwogCi0gICAgUmV0YWluUHRyPFNDQ29udGVudFNoYXJpbmdTZXNzaW9uPiBhZGRTaGFyaW5n
U2Vzc2lvbk9ic2VydmVyKFNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXImKTsKLSAgICB2b2lkIHJlbW92
ZVNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXIoU2hhcmluZ1Nlc3Npb25PYnNlcnZlciYpOwotCiAgICAg
dm9pZCBzZXNzaW9uRGlkQ2hhbmdlQ29udGVudChSZXRhaW5QdHI8U0NDb250ZW50U2hhcmluZ1Nl
c3Npb24+KTsKICAgICB2b2lkIHBpY2tlckNhbmNlbGVkRm9yU2Vzc2lvbihSZXRhaW5QdHI8U0ND
b250ZW50U2hhcmluZ1Nlc3Npb24+KTsKICAgICB2b2lkIHNlc3Npb25EaWRFbmQoUmV0YWluUHRy
PFNDQ29udGVudFNoYXJpbmdTZXNzaW9uPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFu
YWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5D
YXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyLm1tCmluZGV4IDVlMDQxY2ZjOTY5ZDI4YzNi
NTkxZmQ5MTFlYjE5MDc4ZWRjM2JkZjAuLjFiZmM3ZjNjZTEzYmQxZTYyM2FkZmZkMDE0YmJhMDhh
MGNjZjE1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9TY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0U2hhcmlu
Z1Nlc3Npb25NYW5hZ2VyLm1tCkBAIC0xMjcsOSArMTI3LDcgQEAgc3RhdGljIGJvb2wgc2NyZWVu
Q2FwdHVyZUtpdFBpY2tlckZlYXR1cmVFbmFibGVkKCkKIGJvb2wgU2NyZWVuQ2FwdHVyZUtpdFNo
YXJpbmdTZXNzaW9uTWFuYWdlcjo6aXNBdmFpbGFibGUoKQogewogICAgIHJldHVybiBzY3JlZW5D
YXB0dXJlS2l0UGlja2VyRmVhdHVyZUVuYWJsZWQoKQotICAgICAgICAgICAgJiYgV1RGOjpwcm9j
ZXNzSGFzRW50aXRsZW1lbnQoImNvbS5hcHBsZS5wcml2YXRlLnNjcmVlbmNhcHR1cmVraXQuc2hh
cmluZ3Nlc3Npb24iKQotICAgICAgICAgICAgJiYgUEFMOjpnZXRTQ0NvbnRlbnRTaGFyaW5nU2Vz
c2lvbkNsYXNzKCkKLSAgICAgICAgICAgICYmIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNl
Ojppc0F2YWlsYWJsZSgpOworICAgICAgICAmJiBQQUw6OmdldFNDQ29udGVudFNoYXJpbmdTZXNz
aW9uQ2xhc3MoKTsKIH0KIAogU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlciYg
U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcjo6c2luZ2xldG9uKCkKQEAgLTIw
OCwxMSArMjA2LDEzIEBAIHZvaWQgU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdl
cjo6c2Vzc2lvbkRpZENoYW5nZUNvbnRlbnQoUmV0YWluUHRyPFNDCiAgICAgc3RkOjpvcHRpb25h
bDxDYXB0dXJlRGV2aWNlPiBkZXZpY2U7CiAgICAgU0NDb250ZW50RmlsdGVyKiBjb250ZW50ID0g
W3Nlc3Npb24gY29udGVudF07CiAgICAgc3dpdGNoIChjb250ZW50LnR5cGUpIHsKLSAgICBjYXNl
IFNDQ29udGVudEZpbHRlclR5cGVEZXNrdG9wSW5kZXBlbmRlbnRXaW5kb3c6Ci0gICAgICAgIGRl
dmljZSA9IFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjp3aW5kb3dDYXB0dXJlRGV2aWNl
V2l0aFBlcnNpc3RlbnRJRChTdHJpbmc6Om51bWJlcihjb250ZW50LmRlc2t0b3BJbmRlcGVuZGVu
dFdpbmRvd0luZm8ud2luZG93LndpbmRvd0lEKSk7CisgICAgY2FzZSBTQ0NvbnRlbnRGaWx0ZXJU
eXBlRGVza3RvcEluZGVwZW5kZW50V2luZG93OiB7CisgICAgICAgIGF1dG8gKndpbmRvdyA9IGNv
bnRlbnQuZGVza3RvcEluZGVwZW5kZW50V2luZG93SW5mby53aW5kb3c7CisgICAgICAgIGRldmlj
ZSA9IENhcHR1cmVEZXZpY2UoU3RyaW5nOjpudW1iZXIod2luZG93LndpbmRvd0lEKSwgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93LCB3aW5kb3cudGl0bGUsIGVtcHR5U3RyaW5nKCks
IHRydWUpOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBTQ0NvbnRlbnRGaWx0ZXJU
eXBlRGlzcGxheToKLSAgICAgICAgZGV2aWNlID0gU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3Vy
Y2U6OnNjcmVlbkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKFN0cmluZzo6bnVtYmVyKGNv
bnRlbnQuZGlzcGxheUluZm8uZGlzcGxheS5kaXNwbGF5SUQpKTsKKyAgICAgICAgZGV2aWNlID0g
Q2FwdHVyZURldmljZShTdHJpbmc6Om51bWJlcihjb250ZW50LmRpc3BsYXlJbmZvLmRpc3BsYXku
ZGlzcGxheUlEKSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCBtYWtlU3RyaW5n
KCJTY3JlZW4gIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFNDQ29udGVudEZpbHRlclR5cGVOb3RoaW5nOgogICAgIGNhc2UgU0NDb250ZW50RmlsdGVy
VHlwZUFwcHNBbmRXaW5kb3dzUGlubmVkVG9EaXNwbGF5OgpAQCAtMjQwLDggKzI0MCwxMCBAQCB2
b2lkIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnByb21wdEZvckdldERp
c3BsYXlNZWRpYShQcm9tcHRUeXBlCiAgICAgQVNTRVJUKGlzQXZhaWxhYmxlKCkpOwogICAgIEFT
U0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7CiAKLSAgICBpZiAoIWlzQXZhaWxhYmxlKCkgfHwg
bV9jb21wbGV0aW9uSGFuZGxlcikKKyAgICBpZiAoIWlzQXZhaWxhYmxlKCkpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIFNDQ29udGVudFNoYXJpbmdTZXNzaW9uKiBzZXNzaW9uID0gW1tQQUw6OmdldFNDQ29u
dGVudFNoYXJpbmdTZXNzaW9uQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhUaXRsZTpAIldlYktpdCBn
ZXREaXNwbGF5TWVkaWEgUHJvbXB0Il07CiAgICAgaWYgKCFzZXNzaW9uKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggOWM5NGEzYzA2NjhkNTZjNTFmNWI0MTc0
OWI3NjVmMmUxZmZiY2EzOS4uNWZjMTUwNGE4ZTFkZDQ5NzIyMWQxMGY0MzkzMWRlY2Q1YTc0N2Jk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtNzQsNiArNzQs
MTQgQEAKICNpbmNsdWRlIDxwYWwvc3BpL2NnL0ltYWdlSU9TUEkuaD4KICNlbmRpZgogCisjaWYg
SEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JlZW5DYXB0dXJl
S2l0Q2FwdHVyZVNvdXJjZS5oPgorI2VuZGlmCisKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklO
R19TRVNTSU9OKQorI2luY2x1ZGUgPFdlYkNvcmUvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNz
aW9uTWFuYWdlci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBXZSB3b3Vs
ZG4ndCB3YW50IHRoZSBHUFVQcm9jZXNzIHRvIHJlcGVhdGVkbHkgZXhpdCB0aGVuIHJlbGF1bmNo
IHdoZW4gdW5kZXIgbWVtb3J5IHByZXNzdXJlLiBJbiBwYXJ0aWN1bGFyLCB3ZSBuZWVkIHRvIG1h
a2Ugc3VyZSB0aGUKQEAgLTM0Nyw4ICszNTUsMTkgQEAgdm9pZCBHUFVQcm9jZXNzOjpzZXRNb2Nr
Q2FtZXJhSXNJbnRlcnJ1cHRlZChib29sIGlzSW50ZXJydXB0ZWQpCiB7CiAgICAgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGlzSW50ZXJy
dXB0ZWQpOwogfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNlbmRpZgorI2lm
IEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCit2b2lkIEdQVVByb2Nlc3M6OnNob3dX
aW5kb3dQaWNrZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBXZWJDb3JlOjpT
Y3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjpzaW5nbGV0b24oKS5zaG93V2lu
ZG93UGlja2VyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBHUFVQcm9j
ZXNzOjpzaG93U2NyZWVuUGlja2VyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
V2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcjo6c2luZ2xldG9u
KCkuc2hvd1NjcmVlblBpY2tlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisjZW5k
aWYgLy8gSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKIAogI2lmIFBMQVRGT1JNKE1B
QykKIHZvaWQgR1BVUHJvY2Vzczo6ZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0
RGlzcGxheUlEIGRpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzIGZsYWdzKQpA
QCAtNTAyLDYgKzUyMSwxNiBAQCB2b2lkIEdQVVByb2Nlc3M6OnNldE1lZGlhU291cmNlSW5saW5l
UGFpbnRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIH0KICNlbmRpZgogCisjaWYgSEFWRShTQ1JF
RU5fQ0FQVFVSRV9LSVQpCit2b2lkIEdQVVByb2Nlc3M6OnNldFVzZVNjcmVlbkNhcHR1cmVLaXQo
Ym9vbCB1c2UpCit7CisgICAgaWYgKG1fdXNlU2NyZWVuQ2FwdHVyZUtpdCA9PSB1c2UpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3VzZVNjcmVlbkNhcHR1cmVLaXQgPSB1c2U7CisgICAgV2ViQ29y
ZTo6U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnNldEVuYWJsZWQobV91c2VTY3JlZW5D
YXB0dXJlS2l0KTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVVByb2Nlc3M6OndlYlByb2Nlc3NDb25u
ZWN0aW9uQ291bnRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6Om9iamVjdENvdW50Rm9yVGVzdGluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDQwNjBiMTk4NTNlNzk1ZjViMDU4OGMwMTA1NzQ0MGVm
NDQ0YzdiYjkuLmRjMDNhYTYyNTQzM2VkZDdjNmFhZjdmZWUzNjAzMmQ5YmUxYzQ2ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaApAQCAtNDksNiArNDksNyBAQAogI2VuZGlm
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CiBjbGFzcyBOb3dQ
bGF5aW5nTWFuYWdlcjsKIHN0cnVjdCBNb2NrTWVkaWFEZXZpY2U7CiBzdHJ1Y3QgU2NyZWVuUHJv
cGVydGllczsKQEAgLTE1NCw2ICsxNTUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE1vY2tD
YW1lcmFJc0ludGVycnVwdGVkKGJvb2wpOwogICAgIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9u
U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCisjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJ
TkdfU0VTU0lPTikKKyAgICB2b2lkIHNob3dXaW5kb3dQaWNrZXIoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+KT4mJik7CisgICAgdm9p
ZCBzaG93U2NyZWVuUGlja2VyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYpOworI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHZvaWQgZGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxheUlELCBD
R0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MpOwogICAgIHZvaWQgc2V0U2NyZWVuUHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpTY3JlZW5Qcm9wZXJ0aWVzJik7CkBAIC0xODMsNiArMTg4LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZChi
b29sKTsKICNlbmRpZgogCisjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCisgICAgdm9pZCBz
ZXRVc2VTY3JlZW5DYXB0dXJlS2l0KGJvb2wpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ0ZQUkVG
U19ESVJFQ1RfTU9ERSkKICAgICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBT
dHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiYgZW5jb2RlZFZhbHVlKTsKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkTm90aWZpY2F0
aW9uc0ZvclByZWZlcmVuY2VDaGFuZ2UoY29uc3QgU3RyaW5nJiBrZXkpIGZpbmFsOwpAQCAtMjIx
LDYgKzIzMCw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgR1BVU2Vz
c2lvbj4gbV9zZXNzaW9uczsKICAgICBXZWJDb3JlOjpUaW1lciBtX2lkbGVFeGl0VGltZXI7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5vd1BsYXlpbmdNYW5hZ2VyPiBtX25vd1BsYXlp
bmdNYW5hZ2VyOworICAgIFN0cmluZyBtX2FwcGxpY2F0aW9uVmlzaWJsZU5hbWU7CiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBtdXRhYmxlIHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+IG1fYXVkaW9TZXNzaW9u
TWFuYWdlcjsKICNlbmRpZgpAQCAtMjQ0LDcgKzI1NCw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkgJiYgSEFWRShBVlNBTVBMRUJVRkZFUlZJREVPT1VUUFVUKQogICAgIGJv
b2wgbV9tZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYK
LSAgICBTdHJpbmcgbV9hcHBsaWNhdGlvblZpc2libGVOYW1lOworI2lmIEhBVkUoU0NSRUVOX0NB
UFRVUkVfS0lUKQorICAgIGJvb2wgbV91c2VTY3JlZW5DYXB0dXJlS2l0IHsgZmFsc2UgfTsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDM5NjI0MjYxZmI0MjlhZTNiOGEy
MzE4MzliYjFjMjE5ZDlmN2FhNTYuLmY1MzExYjgxYzU2MzdiMDE4ZjY1NjhiN2Y1ZTRhN2I5NTU1
ZWQzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC01Miw2ICs1MiwxMSBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKIAogI2VuZGlmCiAKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9O
KQorICAgIFNob3dXaW5kb3dQaWNrZXIoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiBkZXZpY2UpIEFzeW5jCisgICAgU2hvd1NjcmVlblBpY2tlcigpIC0+IChzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZSkgQXN5bmMKKyNlbmRpZgor
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBTZXRXZWJNUGFyc2VyRW5hYmxlZChib29s
IGVuYWJsZWQpOwogI2VuZGlmCkBAIC03Miw2ICs3NywxMCBAQCBtZXNzYWdlcyAtPiBHUFVQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5h
YmxlZChib29sIGVuYWJsZWQpOwogI2VuZGlmCiAKKyNpZiBIQVZFKFNDUkVFTl9DQVBUVVJFX0tJ
VCkKKyAgICBTZXRVc2VTY3JlZW5DYXB0dXJlS2l0KGJvb2wgdXNlKTsKKyNlbmRpZgorCiAgICAg
UmVxdWVzdEJpdG1hcEltYWdlRm9yQ3VycmVudFRpbWUoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGUp
IEFzeW5jCiAKICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNi
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVBy
b2Nlc3Muc2IuaW4KaW5kZXggZTQ1N2E4OTkyMzAxM2VjYzAyMWJhOTk4MzNiMWJlYmRlNDFjMmVh
My4uNTAyZTE3Zjk3ZGYzMDYzYzVjNmRiODkzNTNhYzBmZmU0MzAyYmUwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Mu
c2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0
LkdQVVByb2Nlc3Muc2IuaW4KQEAgLTg1MSw4ICs4NTEsMjMgQEAKICAgICAgICAgKGlva2l0LXVz
ZXItY2xpZW50LWNsYXNzICJJT1VTQkRldmljZVVzZXJDbGllbnRWMiIpCiAgICAgICAgIChpb2tp
dC11c2VyLWNsaWVudC1jbGFzcyAiSU9VU0JJbnRlcmZhY2VVc2VyQ2xpZW50VjIiKSkKICAgICAo
YWxsb3cgZGV2aWNlLWNhbWVyYSkpCisKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKKyNpZiBI
QVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9OKQorKGFsbG93IG1hY2gtbG9va3VwCisgICAg
KHJlcXVpcmUtYWxsCisgICAgICAgIChleHRlbnNpb24gImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5z
aW9uLm1hY2giKQorICAgICAgICAoZ2xvYmFsLW5hbWUKKyAgICAgICAgICAgICJjb20uYXBwbGUu
cmVwbGF5a2l0LnNoYXJpbmdzZXNzaW9uLm5vdGlmaWNhdGlvbiIKKyAgICAgICAgICAgICJjb20u
YXBwbGUucmVwbGF5a2l0LnNoYXJpbmdzZXNzaW9uIgorICAgICAgICAgICAgImNvbS5hcHBsZS50
Y2NkLnN5c3RlbSIKKyAgICAgICAgICAgICJjb20uYXBwbGUucmVwbGF5ZCIKKyAgICAgICAgKQor
ICAgICkKKykKKyNlbmRpZgorCiAoYWxsb3cgbWFjaC1sb29rdXAgKHdpdGggdGVsZW1ldHJ5KQog
ICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnJlbGF0aXZlZC50ZW1wZXN0IikKICkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaCBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaAppbmRleCBlYzRlMGJl
OThlMmU3ODNhM2I3YjYzNDRkNWVkNDI5MjhlOTg1YzMyLi4xODk2YTVhOTJiOWRkYWYwZDIyOTY5
YTIzNDZkZTkyZTg1OGExYjdmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJv
Y2Vzcy1lbnRpdGxlbWVudHMuc2gKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3Mt
ZW50aXRsZW1lbnRzLnNoCkBAIC0xMDUsNiArMTA1LDkgQEAgZnVuY3Rpb24gbWFjX3Byb2Nlc3Nf
Z3B1X2VudGl0bGVtZW50cygpCiAgICAgICAgIGlmICgoICIke1RBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SfSIgPj0gMTMwMDAwICkpCiAgICAgICAgIHRoZW4KICAgICAgICAgICAgIHBsaXN0
YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5ncHUtcmVzdHJpY3RlZCBib29sIFlFUworICAg
ICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnNjcmVlbmNhcHR1cmVr
aXQuc2hhcmluZ3Nlc3Npb24gYm9vbCBZRVMKKyAgICAgICAgICAgIHBsaXN0YnVkZHkgQWRkIDpj
b20uYXBwbGUucHJpdmF0ZS50Y2MuYWxsb3cgYXJyYXkKKyAgICAgICAgICAgIHBsaXN0YnVkZHkg
QWRkIDpjb20uYXBwbGUucHJpdmF0ZS50Y2MuYWxsb3c6MCBzdHJpbmcga1RDQ1NlcnZpY2VTY3Jl
ZW5DYXB0dXJlCiAgICAgICAgIGZpCiAKICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBs
ZS5wcml2YXRlLm1lbW9yeS5vd25lcnNoaXBfdHJhbnNmZXIgYm9vbCBZRVMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggM2U2
MmVkZDEwYTFmMWYyMGJmOWE3N2M1Y2I1YWZjMTRmODc2ODBhMi4uYmNkOTBjMWNmZWJiMTBiZDg5
YTZhNWExMWZhNmM0M2JiYmU3YTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTE2Miw2ICsxNjIsNyBAQCB2b2lkIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCBzaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2VzczsKICAgICBl
bmNvZGVyIDw8IHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzczsKICAgICBlbmNvZGVyIDw8
IHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3M7CisgICAgZW5jb2RlciA8PCBzaG91bGRD
YXB0dXJlRGlzcGxheUluR1BVUHJvY2VzczsKICAgICBlbmNvZGVyIDw8IHNob3VsZFJlbmRlckNh
bnZhc0luR1BVUHJvY2VzczsKICAgICBlbmNvZGVyIDw8IHNob3VsZFJlbmRlckRPTUluR1BVUHJv
Y2VzczsKICAgICBlbmNvZGVyIDw8IHNob3VsZFBsYXlNZWRpYUluR1BVUHJvY2VzczsKQEAgLTU1
Niw2ICs1NTcsOSBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluR1BVUHJvY2VzcykpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxk
UmVuZGVyQ2FudmFzSW5HUFVQcm9jZXNzKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IGU3OGEzMTQxNDUwZjk2YTczOWE3MmQ3ODdiOWE2OGZhMTc5YTY1YjIuLmY3NzhmNjFm
YjgzNWIyODBjMzkyZTQ1MjJmZDY1NTAxZTgzOTAzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTIzMyw2ICsyMzMsNyBAQCBz
dHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRDYXB0dXJl
VmlkZW9JblVJUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJ
UHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxheUluR1BVUHJv
Y2VzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRSZW5kZXJDYW52YXNJbkdQVVByb2Nlc3Mg
eyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkUmVuZGVyRE9NSW5HUFVQcm9jZXNzIHsgZmFsc2Ug
fTsKICAgICBib29sIHNob3VsZFBsYXlNZWRpYUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmlu
ZGV4IDM5YThjODdhMTNmOTFkNmVhODliMDc2ODRlMDJjNGFhNTg1N2YyMWQuLmYxYzM3MDZiMDlm
ZjllMTI4MjFkN2RhM2EyMjViNzBiYTQ2ZGNlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC05OCw2ICs5OCwxMCBAQCBT
T0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lzKTsKIFNPRlRfTElO
S19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CiAjZW5kaWYK
IAorI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCisjaW1wb3J0IDxXZWJDb3Jl
L1NjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIuaD4KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCiBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BU
SU9OQUwoQXBwbGVNZWRpYVNlcnZpY2VzKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFwcGxl
TWVkaWFTZXJ2aWNlcywgQU1TRW5nYWdlbWVudFJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IDg1MjdmYTU1YmFlMDQ5MmQ3
ZGIwNzRjMzNkYzU1ZmQwMTM4Nzc0OTUuLjMzNDE1NDFkYmQyMTA5YzNhYmJhMjlkN2EwNzk0YjQ5
ODFmYWVhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwCkBAIC0yNDUsNiArMjQ1LDM4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhZGRNaWNy
b3Bob25lU2FuZGJveEV4dGVuc2lvbihWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9O
KQorc3RhdGljIGlubGluZSBib29sIGFkZERpc3BsYXlDYXB0dXJlU2FuZGJveEV4dGVuc2lvbihz
dGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIFZlY3RvcjxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+JiBleHRlbnNpb25zKQoreworICAgIGlmICghYXVkaXRUb2tlbikgewor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJOVUxMIGF1ZGl0IHRva2VuIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGhhbmRsZSA9IFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5yZXBsYXlraXQu
c2hhcmluZ3Nlc3Npb24ubm90aWZpY2F0aW9uIl9zLCAqYXVkaXRUb2tlbik7CisgICAgaWYgKCFo
YW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBleHRlbnNpb25zLmFwcGVuZChXVEZN
b3ZlKCpoYW5kbGUpKTsKKworICAgIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5yZXBsYXlraXQuc2hhcmluZ3Nlc3Npb24iX3Ms
ICphdWRpdFRva2VuKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGV4dGVuc2lvbnMuYXBwZW5kKFdURk1vdmUoKmhhbmRsZSkpOworCisgICAgaGFuZGxlID0g
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRj
Y2Quc3lzdGVtIl9zLCAqYXVkaXRUb2tlbik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBleHRlbnNpb25zLmFwcGVuZChXVEZNb3ZlKCpoYW5kbGUpKTsKKwor
ICAgIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAo
ImNvbS5hcHBsZS5yZXBsYXlkIl9zLCAqYXVkaXRUb2tlbik7CisgICAgaWYgKCFoYW5kbGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBleHRlbnNpb25zLmFwcGVuZChXVEZNb3ZlKCpoYW5k
bGUpKTsKKworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1Mp
CiBzdGF0aWMgaW5saW5lIGJvb2wgYWRkVENDRFNhbmRib3hFeHRlbnNpb24oVmVjdG9yPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4mIGV4dGVuc2lvbnMpCiB7CkBAIC0yNTgsNyArMjkwLDcgQEAg
c3RhdGljIGlubGluZSBib29sIGFkZFRDQ0RTYW5kYm94RXh0ZW5zaW9uKFZlY3RvcjxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+JiBleHQKIH0KICNlbmRpZgogCi12b2lkIEdQVVByb2Nlc3NQcm94
eTo6dXBkYXRlU2FuZGJveEFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93
VmlkZW9DYXB0dXJlKQordm9pZCBHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVNhbmRib3hBY2Nlc3Mo
Ym9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGVvQ2FwdHVyZSwgYm9vbCBhbGxv
d0Rpc3BsYXlDYXB0dXJlKQogewogICAgIGlmIChtX3VzZU1vY2tDYXB0dXJlRGV2aWNlcykKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjcyLDYgKzMwNCwxMSBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6
dXBkYXRlU2FuZGJveEFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93Vmlk
ZQogICAgIGlmIChhbGxvd0F1ZGlvQ2FwdHVyZSAmJiAhbV9oYXNTZW50TWljcm9waG9uZVNhbmRi
b3hFeHRlbnNpb24gJiYgYWRkTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24oZXh0ZW5zaW9ucykp
CiAgICAgICAgIG1faGFzU2VudE1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uID0gdHJ1ZTsKIAor
I2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCisgICAgaWYgKGFsbG93RGlzcGxh
eUNhcHR1cmUgJiYgIW1faGFzU2VudERpc3BsYXlDYXB0dXJlU2FuZGJveEV4dGVuc2lvbiAmJiBh
ZGREaXNwbGF5Q2FwdHVyZVNhbmRib3hFeHRlbnNpb24oY29ubmVjdGlvbigpLT5nZXRBdWRpdFRv
a2VuKCksIGV4dGVuc2lvbnMpKQorICAgICAgICBtX2hhc1NlbnREaXNwbGF5Q2FwdHVyZVNhbmRi
b3hFeHRlbnNpb24gPSB0cnVlOworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYg
KChhbGxvd0F1ZGlvQ2FwdHVyZSB8fCBhbGxvd1ZpZGVvQ2FwdHVyZSkgJiYgIW1faGFzU2VudFRD
Q0RTYW5kYm94RXh0ZW5zaW9uICYmIGFkZFRDQ0RTYW5kYm94RXh0ZW5zaW9uKGV4dGVuc2lvbnMp
KQogICAgICAgICBtX2hhc1NlbnRUQ0NEU2FuZGJveEV4dGVuc2lvbiA9IHRydWU7CkBAIC0yODQs
NyArMzIxLDcgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVNhbmRib3hBY2Nlc3MoYm9v
bCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGUKIAogdm9pZCBHUFVQcm9jZXNzUHJv
eHk6OnVwZGF0ZUNhcHR1cmVBY2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxv
d1ZpZGVvQ2FwdHVyZSwgYm9vbCBhbGxvd0Rpc3BsYXlDYXB0dXJlLCBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciBwcm9jZXNzSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICB1cGRhdGVTYW5kYm94QWNjZXNzKGFsbG93QXVkaW9DYXB0dXJl
LCBhbGxvd1ZpZGVvQ2FwdHVyZSk7CisgICAgdXBkYXRlU2FuZGJveEFjY2VzcyhhbGxvd0F1ZGlv
Q2FwdHVyZSwgYWxsb3dWaWRlb0NhcHR1cmUsIGFsbG93RGlzcGxheUNhcHR1cmUpOwogICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6R1BVUHJvY2Vzczo6VXBkYXRlQ2FwdHVyZUFjY2Vz
cyB7IGFsbG93QXVkaW9DYXB0dXJlLCBhbGxvd1ZpZGVvQ2FwdHVyZSwgYWxsb3dEaXNwbGF5Q2Fw
dHVyZSwgcHJvY2Vzc0lEIH0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApAQCAt
MzE3LDYgKzM1NCwxOCBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2V0TW9ja0NhbWVyYUlzSW50
ZXJydXB0ZWQoYm9vbCBpc0ludGVycnVwdGVkKQogewogICAgIHNlbmQoTWVzc2FnZXM6OkdQVVBy
b2Nlc3M6OlNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkIHsgaXNJbnRlcnJ1cHRlZCB9LCAwKTsK
IH0KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaWYgSEFWRShTQ19DT05URU5U
X1NIQVJJTkdfU0VTU0lPTikKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzaG93V2luZG93UGlja2Vy
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpHUFVQcm9jZXNzOjpTaG93V2luZG93UGlja2VyIHsgfSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2hvd1NjcmVlblBpY2tl
cihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6R1BVUHJvY2Vzczo6U2hvd1NjcmVlblBpY2tlciB7IH0sIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKK30KICNlbmRpZgogCiB2b2lkIEdQVVByb2Nlc3NQcm94eTo6Z2V0TGF1
bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMp
CkBAIC02MjIsNiArNjcxLDE0IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJl
bmNlcyhXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3MpCiAgICAgICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpHUFVQcm9jZXNzOjpTZXRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZChtX2hh
c0VuYWJsZWRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nKSwgMCk7CiAgICAgICAgIH0KICNlbmRp
ZgorCisjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCisgICAgICAgIGlmICghbV9oYXNFbmFi
bGVkU2NyZWVuQ2FwdHVyZUtpdCAmJiBwcmVmZXJlbmNlcy51c2VTY3JlZW5DYXB0dXJlS2l0KCkp
IHsKKyAgICAgICAgICAgIG1faGFzRW5hYmxlZFNjcmVlbkNhcHR1cmVLaXQgPSB0cnVlOworICAg
ICAgICAgICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0VXNlU2NyZWVuQ2FwdHVyZUtp
dChtX2hhc0VuYWJsZWRTY3JlZW5DYXB0dXJlS2l0KSwgMCk7CisgICAgICAgIH0KKyNlbmRpZgor
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1By
b3h5LmgKaW5kZXggOTk2OWNkZjA1ZGU1OTE4YjA1Y2E2ODRjOWNlMTM5NDk2MmE2ZTljNy4uZWFk
ZTliNTliZGY1YWIxMDc1MzhiZjViMDc0MzA3MWI5MTk4ZDE5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtNTAsNiArNTAsNyBAQAogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CiBzdHJ1Y3Qg
TW9ja01lZGlhRGV2aWNlOwogc3RydWN0IFNjcmVlblByb3BlcnRpZXM7CiBzdHJ1Y3QgU2VjdXJp
dHlPcmlnaW5EYXRhOwpAQCAtODYsNiArODcsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3Zl
TW9ja01lZGlhRGV2aWNlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVzZXRNb2NrTWVkaWFE
ZXZpY2VzKCk7CiAgICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsKKyAg
ICB2b2lkIHVwZGF0ZVNhbmRib3hBY2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBh
bGxvd1ZpZGVvQ2FwdHVyZSwgYm9vbCBhbGxvd0Rpc3BsYXlDYXB0dXJlKTsKKyNlbmRpZgorCisj
aWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKKyAgICB2b2lkIHNob3dXaW5kb3dQ
aWNrZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+KT4mJik7CisgICAgdm9pZCBzaG93U2NyZWVuUGlja2VyKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYpOwogI2Vu
ZGlmCiAKICAgICB2b2lkIHJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwpAQCAtMTM2LDgg
KzE0Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0ZXJtaW5hdGVXZWJQcm9jZXNzKFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lkIHByb2Nlc3NJc1JlYWR5VG9FeGl0KCk7CiAK
LSAgICB2b2lkIHVwZGF0ZVNhbmRib3hBY2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9v
bCBhbGxvd1ZpZGVvQ2FwdHVyZSk7Ci0KICNpZiBIQVZFKFZJU0lCSUxJVFlfUFJPUEFHQVRJT05f
VklFVykKICAgICB2b2lkIGRpZENyZWF0ZUNvbnRleHRGb3JWaXNpYmlsaXR5UHJvcGFnYXRpb24o
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIExheWVySG9z
dGluZ0NvbnRleHRJRCk7CiAjZW5kaWYKQEAgLTE1NSw2ICsxNjAsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9oYXNTZW50VENDRFNhbmRib3hFeHRlbnNpb24geyBmYWxzZSB9OwogICAgIGJvb2wg
bV9oYXNTZW50Q2FtZXJhU2FuZGJveEV4dGVuc2lvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hh
c1NlbnRNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hh
c1NlbnREaXNwbGF5Q2FwdHVyZVNhbmRib3hFeHRlbnNpb24geyBmYWxzZSB9OwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVlA5KQpAQCAtMTc3LDYgKzE4Mywx
MCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNFbmFibGVkTWVkaWFTb3VyY2VJbmxpbmVQYWlu
dGluZyB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQor
ICAgIGJvb2wgbV9oYXNFbmFibGVkU2NyZWVuQ2FwdHVyZUtpdCB7IGZhbHNlIH07CisjZW5kaWYK
KwogICAgIEhhc2hTZXQ8UEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbklEczsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGE3MjQ2M2I4NWI3YWZiYTM1
ZmRkODc2N2JhN2FiNTM1ZmY2YzFlNGEuLjdmN2JjYjc4M2ViZGM5YzkxZDU4NzZjNDk3NzU2MmVl
OTI4YzI2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MzE3LDYgKzMxNywxMCBAQAogI2ltcG9ydCAiRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlci5o
IgogI2VuZGlmCiAKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9OKQorI2ltcG9y
dCA8V2ViQ29yZS9TY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyLmg+CisjZW5k
aWYKKwogI2RlZmluZSBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGFzc2VydGlvbikgTUVTU0FHRV9D
SEVDS19CQVNFKGFzc2VydGlvbiwgcHJvY2Vzcy0+Y29ubmVjdGlvbigpKQogI2RlZmluZSBNRVNT
QUdFX0NIRUNLX1VSTChwcm9jZXNzLCB1cmwpIE1FU1NBR0VfQ0hFQ0tfQkFTRShjaGVja1VSTFJl
Y2VpdmVkRnJvbUN1cnJlbnRPclByZXZpb3VzV2ViUHJvY2Vzcyhwcm9jZXNzLCB1cmwpLCBwcm9j
ZXNzLT5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTihwcm9j
ZXNzLCBhc3NlcnRpb24sIGNvbXBsZXRpb24pIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTl9CQVNF
KGFzc2VydGlvbiwgcHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBjb21wbGV0aW9uKQpAQCAtODQzNyw2
ICs4NDQxLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0
aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJzLnNob3Vs
ZEVuYWJsZVZQOVNXRGVjb2RlciA9IHByZWZlcmVuY2VzKCkudnA5RGVjb2RlckVuYWJsZWQoKSAm
JiAoIVdlYkNvcmU6OnN5c3RlbUhhc0JhdHRlcnkoKSB8fCBwcmVmZXJlbmNlcygpLnZwOVNXRGVj
b2RlckVuYWJsZWRPbkJhdHRlcnkoKSk7CiAjZW5kaWYKICAgICBwYXJhbWV0ZXJzLnNob3VsZENh
cHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY29uZmln
dXJhdGlvbigpLnNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MoKTsKKyAgICBwYXJhbWV0
ZXJzLnNob3VsZENhcHR1cmVEaXNwbGF5SW5HUFVQcm9jZXNzID0gcHJlZmVyZW5jZXMoKS51c2VH
UFVQcm9jZXNzRm9yRGlzcGxheUNhcHR1cmUoKTsKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJ
TlMpCiAgICAgcGFyYW1ldGVycy5saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zID0g
bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5Q2FwdHVyZVNlc3Npb25N
YW5hZ2VyLm1tCmluZGV4IDg4YWRhYzYzNzU2NDNmNjc0MDdlMTY4YzQwMDNkZWZiMDYxNmFkMzIu
LjQ1ZTY1MjQyZjkwMTI0OWU0ZTNlY2Y4N2JjMWYxN2JlOTg0MWU1MWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5Q2FwdHVyZVNlc3Npb25NYW5hZ2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5Q2FwdHVyZVNlc3Npb25N
YW5hZ2VyLm1tCkBAIC0zMiw2ICszMiw4IEBACiAjaW1wb3J0ICJNZWRpYVBlcm1pc3Npb25VdGls
aXRpZXMuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJQYWdl
UHJveHkuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3MuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQb29s
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaD4KQEAgLTIwMSw3ICsyMDMsMTQgQEAgdm9pZCBEaXNwbGF5Q2Fw
dHVyZVNlc3Npb25NYW5hZ2VyOjpzaG93V2luZG93UGlja2VyKFdlYlBhZ2VQcm94eSYgcGFnZSwg
Y29uc3QgV2UKIAogI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCiAgICAgaWYg
KFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OmlzQXZhaWxh
YmxlKCkpIHsKLSAgICAgICAgV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9u
TWFuYWdlcjo6c2luZ2xldG9uKCkuc2hvd1dpbmRvd1BpY2tlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisgICAgICAgIGlmICghcGFnZS5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NG
b3JEaXNwbGF5Q2FwdHVyZSgpKSB7CisgICAgICAgICAgICBXZWJDb3JlOjpTY3JlZW5DYXB0dXJl
S2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjpzaW5nbGV0b24oKS5zaG93V2luZG93UGlja2VyKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8mIGdwdVByb2Nlc3MgPSBwYWdlLnByb2Nlc3MoKS5wcm9jZXNzUG9v
bCgpLmVuc3VyZUdQVVByb2Nlc3MoKTsKKyAgICAgICAgZ3B1UHJvY2Vzcy51cGRhdGVTYW5kYm94
QWNjZXNzKGZhbHNlLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGdwdVByb2Nlc3Muc2hvd1dpbmRv
d1BpY2tlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAjZW5kaWYKQEAgLTIxOCw3ICsyMjcsNyBAQCB2b2lkIERpc3BsYXlDYXB0dXJlU2Vzc2lv
bk1hbmFnZXI6OnNob3dXaW5kb3dQaWNrZXIoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZQog
ICAgIH0pOwogfQogCi12b2lkIERpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXI6OnNob3dTY3Jl
ZW5QaWNrZXIoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgRGlzcGxheUNhcHR1cmVTZXNzaW9u
TWFuYWdlcjo6c2hvd1NjcmVlblBpY2tlcihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKG1faW5kZXhPZkRldmljZVNlbGVjdGVkRm9yVGVzdGluZykgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihkZXZpY2VTZWxlY3RlZEZvclRlc3RpbmcoV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuKSk7CkBAIC0yMjcsNyArMjM2LDE0IEBAIHZvaWQgRGlz
cGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlcjo6c2hvd1NjcmVlblBpY2tlcihXZWJQYWdlUHJveHkm
LCBjb25zdCBXZWJDb3JlCiAKICNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNTSU9OKQog
ICAgIGlmIChXZWJDb3JlOjpTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjpp
c0F2YWlsYWJsZSgpKSB7Ci0gICAgICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRTaGFyaW5n
U2Vzc2lvbk1hbmFnZXI6OnNpbmdsZXRvbigpLnNob3dTY3JlZW5QaWNrZXIoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgICAgICBpZiAoIXBhZ2UucHJlZmVyZW5jZXMoKS51c2VHUFVQ
cm9jZXNzRm9yRGlzcGxheUNhcHR1cmUoKSkgeworICAgICAgICAgICAgV2ViQ29yZTo6U2NyZWVu
Q2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcjo6c2luZ2xldG9uKCkuc2hvd1NjcmVlblBp
Y2tlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBhdXRvJiBncHVQcm9jZXNzID0gcGFnZS5wcm9jZXNzKCkucHJv
Y2Vzc1Bvb2woKS5lbnN1cmVHUFVQcm9jZXNzKCk7CisgICAgICAgIGdwdVByb2Nlc3MudXBkYXRl
U2FuZGJveEFjY2VzcyhmYWxzZSwgZmFsc2UsIHRydWUpOworICAgICAgICBncHVQcm9jZXNzLnNo
b3dTY3JlZW5QaWNrZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggMzFhMDQ5MTU3Yjc4ODA2ZTg1NWVk
ZjljNDQzYmQ1MmMyYmI0NTFjNi4uOWRhYmRiZWE5MGJhODQ2YjA5MWMyMzA3Y2RkMTNiZjA2NWI0
YmI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2Ev
V2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFdlYlBhZ2U6OnBsYXRm
b3JtSW5pdGlhbGl6ZShjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoYXV0byogY2FwdHVyZU1hbmFn
ZXIgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyPigpKQotICAgICAgICBjYXB0dXJlTWFuYWdlci0+c2V0dXBDYXB0dXJlUHJvY2Vzc2Vz
KHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIHBhcmFtZXRlcnMuc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVWaWRl
b0luVUlQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzcywg
cGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzLCBtX3BhZ2UtPnNldHRp
bmdzKCkud2ViUlRDUmVtb3RlVmlkZW9GcmFtZUVuYWJsZWQoKSk7CisgICAgICAgIGNhcHR1cmVN
YW5hZ2VyLT5zZXR1cENhcHR1cmVQcm9jZXNzZXMocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcywgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3Ms
IHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MsIHBhcmFtZXRlcnMuc2hv
dWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVEaXNw
bGF5SW5VSVByb2Nlc3MsIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nl
c3MsIG1fcGFnZS0+c2V0dGluZ3MoKS53ZWJSVENSZW1vdGVWaWRlb0ZyYW1lRW5hYmxlZCgpKTsK
ICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCAxODhmNDEyZjYyZWZiODQwZGFl
MjA5NWU0ODZiYjk0NTNiM2NiZTg1Li5mNjg3ZDhkOWZiZTAzMDIzN2Y0ZmNhNDA3MzBhMWE0NWJk
NGMwNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTcxLDE2ICs3MSwxNyBAQCBjb25zdCBj
aGFyKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVy
biAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIiOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJ
UHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxk
Q2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9j
ZXNzLCBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkVXNl
R1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNl
dHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBi
b29sIHNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlk
ZW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGJvb2wg
c2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxh
eUluR1BVUHJvY2VzcywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKQogewog
ICAgIG1fc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcyA9IHNob3VsZFVzZUdQVVByb2Nl
c3NSZW1vdGVGcmFtZXM7CiAgICAgLy8gRklYTUUocmRhcjovLzg0Mjc4MTQ2KTogQWRvcHQgQVZD
YXB0dXJlU2Vzc2lvbiBhdHRyaWJ1dGlvbiBBUEkgZm9yIGNhbWVyYSBhY2Nlc3MgaW4gdGhlIHdl
YiBwcm9jZXNzIGlmIHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcyBpcyBmYWxzZS4KICAg
ICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0TW9ja0F1ZGlv
Q2FwdHVyZUVuYWJsZWQoIXNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzICYmICFzaG91bGRD
YXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MpOwogICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrVmlkZW9DYXB0dXJlRW5hYmxlZCghc2hvdWxkQ2FwdHVy
ZVZpZGVvSW5VSVByb2Nlc3MgJiYgIXNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzcyk7Ci0g
ICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldE1vY2tEaXNw
bGF5Q2FwdHVyZUVuYWJsZWQoIXNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpOworICAg
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrRGlzcGxh
eUNhcHR1cmVFbmFibGVkKCFzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzICYmICFzaG91
bGRDYXB0dXJlRGlzcGxheUluR1BVUHJvY2Vzcyk7CiAKICAgICBtX2F1ZGlvRmFjdG9yeS5zZXRT
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzcyk7
CiAgICAgbV92aWRlb0ZhY3Rvcnkuc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRD
YXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MpOworICAgIG1fZGlzcGxheUZhY3Rvcnkuc2V0U2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlRGlzcGxheUluR1BVUHJvY2Vzcyk7CiAK
ICAgICBpZiAoc2hvdWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzKSB7CiAgICAgICAgIFdlYkNv
cmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0Q3JlYXRlSW50ZXJuYWxV
bml0RnVuY3Rpb24oW10oYXV0byYmIHJlbmRlckNhbGxiYWNrLCBhdXRvJiYgcmVzZXRDYWxsYmFj
aykgewpAQCAtOTIsNyArOTMsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZXR1
cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUAogICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRpb0NhcHR1cmVGYWN0
b3J5KG1fYXVkaW9GYWN0b3J5KTsKICAgICBpZiAoc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nl
c3MgfHwgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKQogICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRWaWRlb0NhcHR1cmVGYWN0b3J5KG1fdmlk
ZW9GYWN0b3J5KTsKLSAgICBpZiAoc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcykKKyAg
ICBpZiAoc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcyB8fCBzaG91bGRDYXB0dXJlRGlz
cGxheUluR1BVUHJvY2VzcykKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KG1fZGlzcGxheUZhY3RvcnkpOwogfQog
CkBAIC0yNTIsOSArMjUzLDIyIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAKIENhcHR1cmVT
b3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0g
ICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29u
c3RyYWludHMsIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIGZhbHNlKTsKKyNpZiAhRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisg
ICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJEaXNwbGF5IGNhcHR1cmUgaW4g
R1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKKyNlbmRpZgorICAgIGlmIChtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLnNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eSgpKTsKKworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6
OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2Vy
LCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogfQogCit2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhi
b29sIHZhbHVlKQoreworICAgIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IHZhbHVlOwog
fQogCi0jZW5kaWYKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDA2OTAxNzBmOTdlN2VjZTI0NDg5M2Yz
NDVmZTVkOGU3MTNmM2E5M2IuLjE1YTkwZDI5ZTcxN2Y1ZmI3MmU3YjJiYjE5Y2NmNjZlMDYzYjE4
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsg
fQotICAgIHZvaWQgc2V0dXBDYXB0dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBib29sIHNo
b3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luR1BV
UHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzLCBib29sIHNob3Vs
ZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMpOworICAgIHZvaWQgc2V0dXBDYXB0dXJlUHJvY2Vz
c2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBi
b29sIHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlRGlz
cGxheUluVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5HUFVQcm9jZXNzLCBi
b29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMpOwogCiAgICAgdm9pZCBhZGRTb3Vy
Y2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwogICAgIHZvaWQgYWRkU291cmNl
KFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKQEAgLTk4LDEyICs5OCwxNCBAQCBw
cml2YXRlOgogICAgIGNsYXNzIERpc3BsYXlGYWN0b3J5IDogcHVibGljIFdlYkNvcmU6OkRpc3Bs
YXlDYXB0dXJlRmFjdG9yeSB7CiAgICAgcHVibGljOgogICAgICAgICBleHBsaWNpdCBEaXNwbGF5
RmFjdG9yeShVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlcikgOiBtX21hbmFnZXIobWFu
YWdlcikgeyB9CisgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29s
KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopIGZpbmFsOwogICAg
ICAgICBXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXImIGRpc3BsYXlDYXB0dXJlRGV2aWNl
TWFuYWdlcigpIGZpbmFsIHsgcmV0dXJuIG1fbWFuYWdlci5tX25vT3BDYXB0dXJlRGV2aWNlTWFu
YWdlcjsgfQogCiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Cisg
ICAgICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKICAgICB9
OwogCiAgICAgY2xhc3MgTm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6
OkRpc3BsYXlDYXB0dXJlTWFuYWdlciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452508</attachid>
            <date>2022-02-18 04:47:24 -0800</date>
            <delta_ts>2022-02-18 14:44:51 -0800</delta_ts>
            <desc>[fast-cq] Patch for landing</desc>
            <filename>bug-236815-20220218044723.patch</filename>
            <type>text/plain</type>
            <size>52094</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJlMmI5YWU2MjQ5YWMyM2U3YjEzZGRj
ZmUxODY3MzJjYjI3YWQyMTMuLmM2YWRmZmM0NDExY2UyNjU2MDc3NmNhZTExODhmNWMxZWQzY2M3
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBBbGxvdyBzY3JlZW4gYW5kIHdp
bmRvdyBjYXB0dXJlIHRvIGJlIGRvbmUgaW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY4MTUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg5MTE3Mjc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKwor
ICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbDogQWRkIFVzZUdQVVByb2Nlc3NGb3JEaXNwbGF5Q2FwdHVyZS4KKwogMjAyMi0wMi0xNyAg
TWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBz
dWJncmlkIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4NTA5OTJmNDY1YWU1Nzk4MTFiMDI0
MzJlOGFlZDRkN2FjYWFkMC4uYWViOTU0ZTdjN2Y1N2I0ODE4ZjQwMDZlZTllNjUxMjgxYmE2YTQx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIyLTAyLTE3ICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQWxsb3cgc2NyZWVu
IGFuZCB3aW5kb3cgY2FwdHVyZSB0byBiZSBkb25lIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2ODE1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84OTExNzI3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9i
bGUuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5LgorCisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnNlc3Np
b25EaWRDaGFuZ2VDb250ZW50KTogQ2FsbCBDYXB0dXJlRGV2aWNlCisgICAgICAgIGNvbnN0cnVj
dG9yIGRpcmVjdGx5IHNpbmNlIHdlIGhhdmUgZXZlcnl0aGluZyBpdCBuZWVkcy4KKyAgICAgICAg
KFdlYkNvcmU6OmZpbmRTaGFyYWJsZURldmljZSk6IEV4dHJhY3QgbG9naWMgZnJvbSBwcm9jZXNz
U2hhcmFibGVDb250ZW50IGludG8gYQorICAgICAgICBzdGF0aWMgZnVuY3Rpb24gc28gaXQgY2Fu
IGJlIHJldXNlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291
cmNlOjpmaW5kU2hhcmVhYmxlQ29udGVudCk6IFVzZSBmaW5kU2hhcmFibGVEZXZpY2UuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c3RyZWFtQ29uZmln
dXJhdGlvbik6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtp
dENhcHR1cmVTb3VyY2U6OnN0YXJ0Q29udGVudFN0cmVhbSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OmNhcHR1cmVEZXZpY2VXaXRoUGVy
c2lzdGVudElEKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291
cmNlOjpwcm9jZXNzU2hhcmFibGVDb250ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdl
cjo6U2hhcmluZ1Nlc3Npb25PYnNlcnZlcjo6b3BlcmF0b3I9PSBjb25zdCk6IERlbGV0ZWQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJp
bmdTZXNzaW9uTWFuYWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRT
aGFyaW5nU2Vzc2lvbk1hbmFnZXI6OmlzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25EaWRDaGFuZ2VDb250
ZW50KTogQ2FsbAorICAgICAgICBDYXB0dXJlRGV2aWNlIGNvbnN0cnVjdG9yIGRpcmVjdGx5IHNp
bmNlIHdlIGhhdmUgZXZlcnl0aGluZyBpdCBuZWVkcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVl
bkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnByb21wdEZvckdldERpc3BsYXlNZWRp
YSk6IENhbGwKKyAgICAgICAgY29tcGxldGlvbiBoYW5kbGVyIGlmIHRoZSBjbGFzcyBpcyBub3Qg
YXZhaWxhYmxlLgorCiAyMDIyLTAyLTE3ICBQYXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRmxleGJveF0gQWRkIGluZGljYXRvcnMgZm9y
IGxheW91dCBjb250ZXh0IGluIGVsZW1lbnQgdG9vbHRpcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTI1MjA0ZGQ0
MWUyYjQ2MGViNDAwYjQ1NThlZTg4OTgwMWM0MGZhNy4uMDJlN2Q0ZGNiNjA4ODJkNjM3Y2FlOGE5
OTMwMDg2YmVlY2Q4NjBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAyMi0wMi0xNyAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1Nd
IEFsbG93IHNjcmVlbiBhbmQgd2luZG93IGNhcHR1cmUgdG8gYmUgZG9uZSBpbiB0aGUgR1BVIFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjgxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODkxMTcyNzg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6c2hvd1dpbmRvd1BpY2tlcik6IENhbGwgdGhl
IHBpY2tlci4KKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6c2hvd1NjcmVlblBpY2tlcik6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzOjpzZXRVc2VTY3JlZW5DYXB0dXJl
S2l0KTogCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogR1BVUHJvY2Vzcy9t
YWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluOiBBZGQgcnVsZSB0byBhbGxvdyBz
YW5kYm94CisgICAgICAgIHRvIGJlIGV4dGVuZGVkIGR5bmFtaWNhbGx5IHdpdGggdGhlIG1hY2gt
bG9va3VwcyByZXF1aXJlZCBmb3IgdGhlIHBpY2tlci4KKyAgICAgICAgKiBTY3JpcHRzL3Byb2Nl
c3MtZW50aXRsZW1lbnRzLnNoOiBBZGQgZW50aXRsZW1lbnRzIHJlcXVpcmVkIGZvciBwaWNrZXIu
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6IEVu
Y29kZSBzaG91bGRDYXB0dXJlRGlzcGxheUluR1BVUHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIHNob3VsZENhcHR1cmVE
aXNwbGF5SW5HUFVQcm9jZXNzLgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW06CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjphZGREaXNwbGF5Q2FwdHVyZVNhbmRib3hFeHRlbnNpb24pOiBDcmVhdGUgZXh0
ZW5zaW9ucyByZXF1aXJlZCB0byB1c2UgdGhlCisgICAgICAgIHN5c3RlbSBwaWNrZXIuCisgICAg
ICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6dXBkYXRlU2FuZGJveEFjY2Vzcyk6IEFkZCBk
aXNwbGF5IGNhcHR1cmUuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6dXBkYXRl
Q2FwdHVyZUFjY2Vzcyk6IFBhc3MgImFsbG93RGlzcGxheUNhcHR1cmUiIHRvIHVwZGF0ZVNhbmRi
b3hBY2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6c2hvd1dpbmRvd1Bp
Y2tlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6c2hvd1NjcmVlblBpY2tl
cik6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVyZW5jZXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5Lmg6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpjcmVhdGlvblBhcmFtZXRlcnMpOiBTZXQgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3BsYXlDYXB0dXJlU2Vzc2lvbk1h
bmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXI6
OnNob3dXaW5kb3dQaWNrZXIpOiBTZW5kIG1lc3NhZ2UgdG8gR1BVCisgICAgICAgIHByb2Nlc3Mg
d2hlbiBuZWNlc3NhcnkuCisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlDYXB0dXJlU2Vzc2lvbk1h
bmFnZXI6OnNob3dTY3JlZW5QaWNrZXIpOiBEaXR0by4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnBsYXRmb3JtSW5pdGlhbGl6ZSk6IFBhc3Mgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nl
c3MgdG8gc2V0dXBDYXB0dXJlUHJvY2Vzc2VzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzZXR1cENhcHR1cmVQcm9jZXNzZXMpOiBBZGQgc2hvdWxkQ2FwdHVy
ZURpc3BsYXlJbkdQVVByb2Nlc3MKKyAgICAgICAgcGFyYW1ldGVyLgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlD
YXB0dXJlU291cmNlKTogRGVhbAorICAgICAgICB3aXRoIEdQVSBwcm9jZXNzIGNhcHR1cmUuCisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6
c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDIyLTAyLTE3ICBEaWVnbyBQaW5vIEdh
cmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRGViaWFuIFN0YWJsZSBi
dWlsZCBpcyBicm9rZW4gYWZ0ZXIgcjI5MDAyNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApp
bmRleCAyZDJjMmIzOWQ2NmUyZmM5Zjc4YmRiYTQ1MGQ5ODhlMjYyNmUzNzhjLi4zNzYzODU4Mjgw
MDBiNTczMTlhNjFmNTQyMDAyYmRjYzZkM2Y0YmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwu
eWFtbApAQCAtMTQyMCw2ICsxNDIwLDE3IEBAIFVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdF
bmFibGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRVc2VHUFVQcm9jZXNz
Rm9yRE9NUmVuZGVyaW5nRW5hYmxlZCgpCiAKK1VzZUdQVVByb2Nlc3NGb3JEaXNwbGF5Q2FwdHVy
ZToKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBTY3Jl
ZW4gYW5kIFdpbmRvdyBjYXB0dXJlIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJEaXNw
bGF5IGNhcHR1cmUgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNv
bmRpdGlvbjogSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKKyAgZXhwb3NlZDogWyBX
ZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFs
c2UKKwogVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1h
blJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBXZWJHTCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNh
cHR1cmVLaXRDYXB0dXJlU291cmNlLmgKaW5kZXggNWU5NmFkZjYxMWExODkzMDc0YzUyODllNDU5
ZWVmYjIwMWNiZmQ4Zi4uNzBkMWNlODgwNjM2YmE0NmIwMGMzZDA5NzNmNTVlNzkwZTY2MThmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVl
bkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLmgKQEAgLTY2LDYg
KzY2LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+
IHdpbmRvd0NhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHdpbmRvd0RldmljZXMoVmVjdG9yPERpc3BsYXlD
YXB0dXJlTWFuYWdlcjo6V2luZG93Q2FwdHVyZURldmljZT4mKTsKIAorICAgIHN0YXRpYyB2b2lk
IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUs
IHVpbnQzMl90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURl
dmljZT4pPiYmKTsKKworICAgIHVzaW5nIENvbnRlbnQgPSBzdGQ6OnZhcmlhbnQ8UmV0YWluUHRy
PFNDV2luZG93PiwgUmV0YWluUHRyPFNDRGlzcGxheT4+OwogICAgIHZvaWQgc3RyZWFtRmFpbGVk
V2l0aEVycm9yKFJldGFpblB0cjxOU0Vycm9yPiYmLCBjb25zdCBTdHJpbmcmKTsKICAgICBlbnVt
IGNsYXNzIFNhbXBsZVR5cGUgeyBWaWRlbyB9OwogICAgIHZvaWQgc3RyZWFtRGlkT3V0cHV0U2Ft
cGxlQnVmZmVyKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4sIFNhbXBsZVR5cGUpOwpAQCAt
ODcsNyArOTAsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZSI7IH0KIAog
ICAgIHZvaWQgc3RhcnRDb250ZW50U3RyZWFtKCk7Ci0gICAgdm9pZCBwcm9jZXNzU2hhcmFibGVD
b250ZW50KFJldGFpblB0cjxTQ1NoYXJlYWJsZUNvbnRlbnQ+JiYsIFJldGFpblB0cjxOU0Vycm9y
PiYmKTsKICAgICB2b2lkIGZpbmRTaGFyZWFibGVDb250ZW50KCk7CiAgICAgUmV0YWluUHRyPFND
U3RyZWFtQ29uZmlndXJhdGlvbj4gc3RyZWFtQ29uZmlndXJhdGlvbigpOwogICAgIHZvaWQgdXBk
YXRlU3RyZWFtQ29uZmlndXJhdGlvbigpOwpAQCAtOTcsOSArOTksNyBAQCBwcml2YXRlOgogCiAg
ICAgZGlzcGF0Y2hfcXVldWVfdCBjYXB0dXJlUXVldWUoKTsKIAotICAgIHVzaW5nIENvbnRlbnQg
PSBzdGQ6OnZhcmlhbnQ8UmV0YWluUHRyPFNDV2luZG93PiwgUmV0YWluUHRyPFNDRGlzcGxheT4+
OwogICAgIHN0ZDo6b3B0aW9uYWw8Q29udGVudD4gbV9jb250ZW50OwotCiAgICAgUmV0YWluUHRy
PFdlYkNvcmVTY3JlZW5DYXB0dXJlS2l0SGVscGVyPiBtX2NhcHR1cmVIZWxwZXI7CiAgICAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBtX2N1cnJlbnRGcmFtZTsKICAgICBSZXRhaW5QdHI8
U0NDb250ZW50RmlsdGVyPiBtX2NvbnRlbnRGaWx0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3Vy
Y2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2Fw
dHVyZUtpdENhcHR1cmVTb3VyY2UubW0KaW5kZXggNDA0ZDY3OTE3NjcxYWIyODY1ZDBiYWQ5MmZj
ZmIzZGViZDU4NzFjNi4uNzk2ZTA2ZTlkNDdhZTIzNjIwNTUyMDVmMjM1NjQyOGU2MWUwMjZhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVl
bkNhcHR1cmVLaXRDYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZS5tbQpAQCAtMjE2
LDcgKzIxNiw3IEBAIGJvb2wgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnN0YXJ0KCkK
IHsKICAgICBBU1NFUlQoaXNBdmFpbGFibGUoKSk7CiAKLSAgICBBTFdBWVNfTE9HX0lGKGxvZ2dl
clB0cigpLCBMT0dJREVOVElGSUVSKTsKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lE
RU5USUZJRVIpOwogCiAgICAgaWYgKG1faXNSdW5uaW5nKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpz
dG9wKCkKICAgICBpZiAoIW1faXNSdW5uaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBBTFdB
WVNfTE9HX0lGKGxvZ2dlclB0cigpLCBMT0dJREVOVElGSUVSKTsKKyAgICBBTFdBWVNfTE9HX0lG
X1BPU1NJQkxFKExPR0lERU5USUZJRVIpOwogCiAgICAgbV9pc1J1bm5pbmcgPSBmYWxzZTsKIApA
QCAtMjc0LDEyICsyNzQsMTQgQEAgdm9pZCBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6
c2Vzc2lvbkRpZENoYW5nZUNvbnRlbnQoUmV0YWluUHRyPFNDQ29udGVudFMKICAgICBzdGQ6Om9w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IGRldmljZTsKICAgICBTQ0NvbnRlbnRGaWx0ZXIqIGNvbnRl
bnQgPSBbc2Vzc2lvbiBjb250ZW50XTsKICAgICBzd2l0Y2ggKGNvbnRlbnQudHlwZSkgewotICAg
IGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURlc2t0b3BJbmRlcGVuZGVudFdpbmRvdzoKLSAgICAg
ICAgZGV2aWNlID0gd2luZG93Q2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoU3RyaW5nOjpu
dW1iZXIoY29udGVudC5kZXNrdG9wSW5kZXBlbmRlbnRXaW5kb3dJbmZvLndpbmRvdy53aW5kb3dJ
RCkpOworICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURlc2t0b3BJbmRlcGVuZGVudFdpbmRv
dzogeworICAgICAgICBhdXRvICp3aW5kb3cgPSBjb250ZW50LmRlc2t0b3BJbmRlcGVuZGVudFdp
bmRvd0luZm8ud2luZG93OworICAgICAgICBkZXZpY2UgPSBDYXB0dXJlRGV2aWNlKFN0cmluZzo6
bnVtYmVyKHdpbmRvdy53aW5kb3dJRCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRv
dywgd2luZG93LnRpdGxlLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKICAgICAgICAgbV9jb250ZW50
ID0gY29udGVudC5kZXNrdG9wSW5kZXBlbmRlbnRXaW5kb3dJbmZvLndpbmRvdzsKICAgICAgICAg
YnJlYWs7CisgICAgfQogICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURpc3BsYXk6Ci0gICAg
ICAgIGRldmljZSA9IHNjcmVlbkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKFN0cmluZzo6
bnVtYmVyKGNvbnRlbnQuZGlzcGxheUluZm8uZGlzcGxheS5kaXNwbGF5SUQpKTsKKyAgICAgICAg
ZGV2aWNlID0gQ2FwdHVyZURldmljZShTdHJpbmc6Om51bWJlcihjb250ZW50LmRpc3BsYXlJbmZv
LmRpc3BsYXkuZGlzcGxheUlEKSwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCBt
YWtlU3RyaW5nKCJTY3JlZW4iKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CiAgICAgICAgIG1fY29u
dGVudCA9IGNvbnRlbnQuZGlzcGxheUluZm8uZGlzcGxheTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBTQ0NvbnRlbnRGaWx0ZXJUeXBlTm90aGluZzoKQEAgLTI4OSw3ICsyOTEsNyBAQCB2b2lk
IFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpzZXNzaW9uRGlkQ2hhbmdlQ29udGVudChS
ZXRhaW5QdHI8U0NDb250ZW50UwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICghZGV2
aWNlKSB7Ci0gICAgICAgIHN0cmVhbUZhaWxlZFdpdGhFcnJvcihuaWwsICJGYWlsZWQgZmluZCBD
YXB0dXJlRGV2aWNlIGFmdGVyIGNvbnRlbnQgY2hhbmdlIl9zKTsKKyAgICAgICAgc3RyZWFtRmFp
bGVkV2l0aEVycm9yKG5pbCwgIkZhaWxlZCB0byBmaW5kIENhcHR1cmVEZXZpY2UgYWZ0ZXIgY29u
dGVudCBjaGFuZ2VkIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzA4LDUwICsz
MTAsNjEgQEAgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUZyYW1lVHlwZSBTY3Jl
ZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6Z2VuZXIKICAgICByZXR1cm4gbV9jdXJyZW50RnJh
bWU7CiB9CiAKLXZvaWQgU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnByb2Nlc3NTaGFy
YWJsZUNvbnRlbnQoUmV0YWluUHRyPFNDU2hhcmVhYmxlQ29udGVudD4mJiBzaGFyZWFibGVDb250
ZW50LCBSZXRhaW5QdHI8TlNFcnJvcj4mJiBlcnJvcikKK3N0YXRpYyB2b2lkIGZpbmRTaGFyYWJs
ZURldmljZShSZXRhaW5QdHI8U0NTaGFyZWFibGVDb250ZW50PiYmIHNoYXJlYWJsZUNvbnRlbnQs
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgdWludDMyX3QgZGV2aWNlSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxTY3JlZW5DYXB0dXJlS2l0Q2Fw
dHVyZVNvdXJjZTo6Q29udGVudD4sIHVpbnQzMl90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAotICAgIGlmIChlcnJvcikgewotICAgICAg
ICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IoV1RGTW92ZShlcnJvciksICItW1NDU3RyZWFtIGdldFNo
YXJlYWJsZUNvbnRlbnRXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSBmYWlsZWQiX3MpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG1fY2FwdHVyZURldmljZS50eXBlKCkgPT0gQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuKSB7CisgICAgdWludDMyX3QgaW5kZXggPSAw
OworICAgIHN0ZDo6b3B0aW9uYWw8U2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OkNvbnRl
bnQ+IGNvbnRlbnQ7CisgICAgaWYgKGRldmljZVR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U2NyZWVuKSB7CiAgICAgICAgIFtbc2hhcmVhYmxlQ29udGVudCBkaXNwbGF5c10gZW51
bWVyYXRlT2JqZWN0c1VzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFsmXSAoU0NEaXNwbGF5ICpkaXNw
bGF5LCBOU1VJbnRlZ2VyLCBCT09MICpzdG9wKSB7Ci0gICAgICAgICAgICBpZiAoZGlzcGxheS5k
aXNwbGF5SUQgPT0gbV9kZXZpY2VJRCkgewotICAgICAgICAgICAgICAgIG1fY29udGVudCA9IGRp
c3BsYXk7CisgICAgICAgICAgICBpZiAoZGlzcGxheS5kaXNwbGF5SUQgPT0gZGV2aWNlSUQpIHsK
KyAgICAgICAgICAgICAgICBjb250ZW50ID0gZGlzcGxheTsKICAgICAgICAgICAgICAgICAqc3Rv
cCA9IFlFUzsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsraW5kZXg7CiAgICAgICAgIH0p
LmdldCgpXTsKLSAgICB9IGVsc2UgaWYgKG1fY2FwdHVyZURldmljZS50eXBlKCkgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93KSB7CisgICAgfSBlbHNlIGlmIChkZXZpY2VUeXBl
ID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdykgewogICAgICAgICBbW3NoYXJl
YWJsZUNvbnRlbnQgd2luZG93c10gZW51bWVyYXRlT2JqZWN0c1VzaW5nQmxvY2s6bWFrZUJsb2Nr
UHRyKFsmXSAoU0NXaW5kb3cgKndpbmRvdywgTlNVSW50ZWdlciwgQk9PTCAqc3RvcCkgewotICAg
ICAgICAgICAgaWYgKHdpbmRvdy53aW5kb3dJRCA9PSBtX2RldmljZUlEKSB7Ci0gICAgICAgICAg
ICAgICAgbV9jb250ZW50ID0gd2luZG93OworICAgICAgICAgICAgaWYgKHdpbmRvdy53aW5kb3dJ
RCA9PSBkZXZpY2VJRCkgeworICAgICAgICAgICAgICAgIGNvbnRlbnQgPSB3aW5kb3c7CiAgICAg
ICAgICAgICAgICAgKnN0b3AgPSBZRVM7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICArK2lu
ZGV4OwogICAgICAgICB9KS5nZXQoKV07CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fY29udGVu
dCkgewotICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IobmlsLCAiY2FwdHVyZSBkZXZpY2Ug
bm90IGZvdW5kIl9zKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHN0YXJ0Q29udGVu
dFN0cmVhbSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29udGVudCksIGluZGV4
KTsKIH0KIAogdm9pZCBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6ZmluZFNoYXJlYWJs
ZUNvbnRlbnQoKQogewogICAgIEFTU0VSVCghbV9jb250ZW50KTsKIAotICAgIFtQQUw6OmdldFND
U2hhcmVhYmxlQ29udGVudENsYXNzKCkgZ2V0U2hhcmVhYmxlQ29udGVudFdpdGhDb21wbGV0aW9u
SGFuZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChTQ1No
YXJlYWJsZUNvbnRlbnQgKnNoYXJlYWJsZUNvbnRlbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxl
IHsKLSAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhp
cyksIHNoYXJlYWJsZUNvbnRlbnQgPSBSZXRhaW5QdHIgeyBzaGFyZWFibGVDb250ZW50IH0sIGVy
cm9yID0gUmV0YWluUHRyIHsgZXJyb3IgfV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlmICh3
ZWFrVGhpcykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cHJvY2Vzc1NoYXJhYmxlQ29udGVu
dChXVEZNb3ZlKHNoYXJlYWJsZUNvbnRlbnQpLCBXVEZNb3ZlKGVycm9yKSk7CisgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKworICAgIFtQQUw6OmdldFNDU2hhcmVh
YmxlQ29udGVudENsYXNzKCkgZ2V0U2hhcmVhYmxlQ29udGVudFdpdGhDb21wbGV0aW9uSGFuZGxl
cjptYWtlQmxvY2tQdHIoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGlkZW50
aWZpZXIgPSBMT0dJREVOVElGSUVSXSAoU0NTaGFyZWFibGVDb250ZW50ICpzaGFyZWFibGVDb250
ZW50LCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29w
KFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBzaGFyZWFibGVDb250ZW50ID0g
UmV0YWluUHRyIHsgc2hhcmVhYmxlQ29udGVudCB9LCBlcnJvciA9IFJldGFpblB0ciB7IGVycm9y
IH0sIGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAg
ICAgICAgICAgICAgc3RyZWFtRmFpbGVkV2l0aEVycm9yKFdURk1vdmUoZXJyb3IpLCAiLVtTQ1N0
cmVhbSBnZXRTaGFyZWFibGVDb250ZW50V2l0aENvbXBsZXRpb25IYW5kbGVyOl0gZmFpbGVkIl9z
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoaWRlbnRpZmllciwgImhhdmUgY29udGVudCBsaXN0Iik7
CisKKyAgICAgICAgICAgIGZpbmRTaGFyYWJsZURldmljZShXVEZNb3ZlKHNoYXJlYWJsZUNvbnRl
bnQpLCBtX2NhcHR1cmVEZXZpY2UudHlwZSgpLCBtX2RldmljZUlELCBbdGhpcywgd2Vha1RoaXMg
PSBXVEZNb3ZlKHdlYWtUaGlzKV0gKHN0ZDo6b3B0aW9uYWw8Q29udGVudD4gY29udGVudCwgdWlu
dDMyX3QpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICghY29udGVudCkgeworICAgICAg
ICAgICAgICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IobmlsLCAiY2FwdHVyZSBkZXZpY2Ug
bm90IGZvdW5kIl9zKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBtX2NvbnRlbnQgPSBXVEZNb3ZlKGNvbnRlbnQpOworICAg
ICAgICAgICAgICAgIHN0YXJ0Q29udGVudFN0cmVhbSgpOworICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogICAgIH0pLmdldCgpXTsKIH0KQEAgLTM2MSw2ICszNzQsOCBAQCBSZXRhaW5QdHI8
U0NTdHJlYW1Db25maWd1cmF0aW9uPiBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c3Ry
ZWFtQ29uZmlndXJhdAogICAgIGlmIChtX3N0cmVhbUNvbmZpZ3VyYXRpb24pCiAgICAgICAgIHJl
dHVybiBtX3N0cmVhbUNvbmZpZ3VyYXRpb247CiAKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxF
KExPR0lERU5USUZJRVIpOworCiAgICAgbV9zdHJlYW1Db25maWd1cmF0aW9uID0gYWRvcHROUyhb
UEFMOjphbGxvY1NDU3RyZWFtQ29uZmlndXJhdGlvbkluc3RhbmNlKCkgaW5pdF0pOwogICAgIFtt
X3N0cmVhbUNvbmZpZ3VyYXRpb24gc2V0UGl4ZWxGb3JtYXQ6cHJlZmVyZWRQaXhlbEJ1ZmZlckZv
cm1hdCgpXTsKICAgICBbbV9zdHJlYW1Db25maWd1cmF0aW9uIHNldFNob3dzQ3Vyc29yOllFU107
CkBAIC0zODUsNiArNDAwLDggQEAgUmV0YWluUHRyPFNDU3RyZWFtQ29uZmlndXJhdGlvbj4gU2Ny
ZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnN0cmVhbUNvbmZpZ3VyYXQKIAogdm9pZCBTY3Jl
ZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c3RhcnRDb250ZW50U3RyZWFtKCkKIHsKKyAgICBB
TFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworCiAgICAgaWYgKG1fY29udGVu
dFN0cmVhbSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00MzAsNyArNDQ3LDcgQEAgdm9pZCBTY3Jl
ZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c3RhcnRDb250ZW50U3RyZWFtKCkKIAogCiAgICAg
aWYgKCFtX2NvbnRlbnRTdHJlYW0pIHsKLSAgICAgICAgc3RyZWFtRmFpbGVkV2l0aEVycm9yKG5p
bCwgIkZhaWxlZCB0byBhbGxvY2F0ZSBDb250ZW50U3RyZWFtIl9zKTsKKyAgICAgICAgc3RyZWFt
RmFpbGVkV2l0aEVycm9yKG5pbCwgIkZhaWxlZCB0byBhbGxvY2F0ZSBTQ1N0cmVhbSJfcyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ0MywxMyArNDYwLDE1IEBAIHZvaWQgU2NyZWVu
Q2FwdHVyZUtpdENhcHR1cmVTb3VyY2U6OnN0YXJ0Q29udGVudFN0cmVhbSgpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTlNFcnJvciAqZXJyb3IpIG11dGFibGUgewotICAg
ICAgICBpZiAoIWVycm9yKQotICAgICAgICAgICAgcmV0dXJuOworICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSXSAoTlNFcnJvciAqZXJyb3IpIG11dGFibGUg
eworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdl
YWtUaGlzKSwgZXJyb3IgPSBSZXRhaW5QdHIgeyBlcnJvciB9LCBpZGVudGlmaWVyXSgpIG11dGFi
bGUgeworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhp
cyksIGVycm9yID0gUmV0YWluUHRyIHsgZXJyb3IgfV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAg
IGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+c3RyZWFtRmFpbGVkV2l0
aEVycm9yKFdURk1vdmUoZXJyb3IpLCAiLVtTQ1N0cmVhbSBzdGFydENhcHR1cmVXaXRoRnJhbWVI
YW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyOl0gZmFpbGVkIl9zKTsKKyAgICAgICAgICAgIGlmIChl
cnJvcikKKyAgICAgICAgICAgICAgICBzdHJlYW1GYWlsZWRXaXRoRXJyb3IoV1RGTW92ZShlcnJv
ciksICItW1NDU3RyZWFtIHN0YXJ0Q2FwdHVyZVdpdGhGcmFtZUhhbmRsZXI6Y29tcGxldGlvbkhh
bmRsZXI6XSBmYWlsZWQiX3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIEFM
V0FZU19MT0dfSUZfUE9TU0lCTEUoaWRlbnRpZmllciwgInN0cmVhbSBzdGFydGVkIik7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogCkBAIC02MjMsNiArNjQyLDM4IEBAIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlIFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291
cmNlOjpzCiAgICAgcmV0dXJuIG1fY2FwdHVyZURldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U2NyZWVuID8gUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNw
bGF5U3VyZmFjZVR5cGU6Ok1vbml0b3IgOiBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRp
c3BsYXlTdXJmYWNlVHlwZTo6V2luZG93OwogfQogCit2b2lkIFNjcmVlbkNhcHR1cmVLaXRDYXB0
dXJlU291cmNlOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlIGRldmljZVR5cGUsIHVpbnQzMl90IGRldmljZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIFtQQUw6OmdldFNDU2hhcmVhYmxlQ29udGVudENsYXNzKCkgZ2V0U2hhcmVhYmxl
Q29udGVudFdpdGhDb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGRldmljZUlELCBkZXZpY2VUeXBlXSAo
U0NTaGFyZWFibGVDb250ZW50ICpzaGFyZWFibGVDb250ZW50LCBOU0Vycm9yICplcnJvcikgbXV0
YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtzaGFyZWFibGVDb250ZW50ID0gUmV0
YWluUHRyIHsgc2hhcmVhYmxlQ29udGVudCB9LCBlcnJvciA9IFJldGFpblB0ciB7IGVycm9yIH0s
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGRldmljZUlE
LCBkZXZpY2VUeXBlXSgpIG11dGFibGUgeworCisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJnZXRTaGFyZWFibGVDb250
ZW50V2l0aENvbXBsZXRpb25IYW5kbGVyIGZhaWxlZCB3aXRoIGVycm9yICVzIiwgW1tlcnJvciBs
b2NhbGl6ZWREZXNjcmlwdGlvbl0gVVRGOFN0cmluZ10pOworICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmaW5kU2hhcmFibGVEZXZpY2UoV1RGTW92ZShzaGFy
ZWFibGVDb250ZW50KSwgZGV2aWNlVHlwZSwgZGV2aWNlSUQsIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoc3RkOjpvcHRpb25hbDxDb250ZW50PiBjb250
ZW50LCB1aW50MzJfdCBpbmRleCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKCFjb250
ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgImNh
cHR1cmUgZGV2aWNlIG5vdCBmb3VuZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYXV0byBkZXZpY2UgPSBzd2l0Y2hP
bihjb250ZW50LnZhbHVlKCksCisgICAgICAgICAgICAgICAgICAgIFtpbmRleF0gKGNvbnN0IFJl
dGFpblB0cjxTQ0Rpc3BsYXk+IGRpc3BsYXkpIC0+IHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmlj
ZT4geworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2UoU3RyaW5n
OjpudW1iZXIoW2Rpc3BsYXkgZGlzcGxheUlEXSksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNjcmVlbiwgbWFrZVN0cmluZygiU2NyZWVuICIsIGluZGV4KSwgZW1wdHlTdHJpbmcoKSwgdHJ1
ZSk7CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIFtdIChjb25z
dCBSZXRhaW5QdHI8U0NXaW5kb3c+IHdpbmRvdykgIC0+IHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURl
dmljZT4geworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVEZXZpY2UoU3Ry
aW5nOjpudW1iZXIoW3dpbmRvdyB3aW5kb3dJRF0pLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpXaW5kb3csIFt3aW5kb3cgdGl0bGVdLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRldmljZSkpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0pLmdldCgpXTsKK30KKwogc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBT
Y3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6c2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJz
aXN0ZW50SUQoY29uc3QgU3RyaW5nJiBkaXNwbGF5SURTdHJpbmcpCiB7CiAgICAgaWYgKCFpc0F2
YWlsYWJsZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkNhcHR1cmVLaXRTaGFyaW5n
U2Vzc2lvbk1hbmFnZXIuaAppbmRleCAyNzIzOGViYTA1N2M0NjgyNzZhYzA3NGI2Yzc4MWMxYTli
N2M1MzdkLi5jZmFmNzI4NDAyMjUzMTYxY2VlMmM1NDJjZjJiNTkxZTQ4NjZkNDY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVy
ZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9TY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyLmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAorT0JKQ19DTEFTUyBTQ0NvbnRlbnRGaWx0ZXI7CiBPQkpDX0NMQVNTIFND
Q29udGVudFNoYXJpbmdTZXNzaW9uOwogT0JKQ19DTEFTUyBXZWJEaXNwbGF5TWVkaWFQcm9tcHRI
ZWxwZXI7CiAKQEAgLTM5LDM0ICs0MCwxNSBAQCBjbGFzcyBDYXB0dXJlRGV2aWNlOwogCiBjbGFz
cyBTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI+IHsKIHB1YmxpYzoK
LSAgICBjbGFzcyBTaGFyaW5nU2Vzc2lvbk9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXI+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwg
flNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7Ci0KLSAgICAgICAgZW51bSBjbGFz
cyBUeXBlIHsgU2NyZWVuLCBXaW5kb3cgfTsKLSAgICAgICAgdmlydHVhbCBUeXBlIHNlc3Npb25U
eXBlKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IHNlc3Npb25JRCgpIGNv
bnN0ID0gMDsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkNoYW5nZWQoKSA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uRW5kZWQoKSA9IDA7Ci0KLSAgICAgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFNoYXJpbmdTZXNzaW9uT2JzZXJ2ZXImIG90aGVyKSBjb25zdAotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gc2Vzc2lvblR5cGUoKSA9PSBvdGhlci5zZXNzaW9u
VHlwZSgpICYmIHNlc3Npb25JRCgpID09IG90aGVyLnNlc3Npb25JRCgpOwotICAgICAgICB9Ci0g
ICAgfTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTY3JlZW5DYXB0dXJlS2l0U2hhcmlu
Z1Nlc3Npb25NYW5hZ2VyJiBzaW5nbGV0b24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBpc0F2YWlsYWJsZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3Vs
ZFVzZVN5c3RlbVBpY2tlcigpOwogCiAgICAgU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9u
TWFuYWdlcigpOwogICAgIH5TY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyKCk7
CiAKICAgICBSZXRhaW5QdHI8U0NDb250ZW50U2hhcmluZ1Nlc3Npb24+IHRha2VTaGFyaW5nU2Vz
c2lvbkZvckZpbHRlcihTQ0NvbnRlbnRGaWx0ZXIqKTsKIAotICAgIFJldGFpblB0cjxTQ0NvbnRl
bnRTaGFyaW5nU2Vzc2lvbj4gYWRkU2hhcmluZ1Nlc3Npb25PYnNlcnZlcihTaGFyaW5nU2Vzc2lv
bk9ic2VydmVyJik7Ci0gICAgdm9pZCByZW1vdmVTaGFyaW5nU2Vzc2lvbk9ic2VydmVyKFNoYXJp
bmdTZXNzaW9uT2JzZXJ2ZXImKTsKLQogICAgIHZvaWQgc2Vzc2lvbkRpZENoYW5nZUNvbnRlbnQo
UmV0YWluUHRyPFNDQ29udGVudFNoYXJpbmdTZXNzaW9uPik7CiAgICAgdm9pZCBwaWNrZXJDYW5j
ZWxlZEZvclNlc3Npb24oUmV0YWluUHRyPFNDQ29udGVudFNoYXJpbmdTZXNzaW9uPik7CiAgICAg
dm9pZCBzZXNzaW9uRGlkRW5kKFJldGFpblB0cjxTQ0NvbnRlbnRTaGFyaW5nU2Vzc2lvbj4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVl
bkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdl
ci5tbQppbmRleCA1ZTA0MWNmYzk2OWQyOGMzYjU5MWZkOTExZWIxOTA3OGVkYzNiZGYwLi4xYmZj
N2YzY2UxM2JkMWU2MjNhZGZmZDAxNGJiYTA4YTBjY2YxNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdT
ZXNzaW9uTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlci5tbQpAQCAtMTI3LDkg
KzEyNyw3IEBAIHN0YXRpYyBib29sIHNjcmVlbkNhcHR1cmVLaXRQaWNrZXJGZWF0dXJlRW5hYmxl
ZCgpCiBib29sIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OmlzQXZhaWxh
YmxlKCkKIHsKICAgICByZXR1cm4gc2NyZWVuQ2FwdHVyZUtpdFBpY2tlckZlYXR1cmVFbmFibGVk
KCkKLSAgICAgICAgICAgICYmIFdURjo6cHJvY2Vzc0hhc0VudGl0bGVtZW50KCJjb20uYXBwbGUu
cHJpdmF0ZS5zY3JlZW5jYXB0dXJla2l0LnNoYXJpbmdzZXNzaW9uIikKLSAgICAgICAgICAgICYm
IFBBTDo6Z2V0U0NDb250ZW50U2hhcmluZ1Nlc3Npb25DbGFzcygpCi0gICAgICAgICAgICAmJiBT
Y3JlZW5DYXB0dXJlS2l0Q2FwdHVyZVNvdXJjZTo6aXNBdmFpbGFibGUoKTsKKyAgICAgICAgJiYg
UEFMOjpnZXRTQ0NvbnRlbnRTaGFyaW5nU2Vzc2lvbkNsYXNzKCk7CiB9CiAKIFNjcmVlbkNhcHR1
cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXImIFNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lv
bk1hbmFnZXI6OnNpbmdsZXRvbigpCkBAIC0yMDgsMTEgKzIwNiwxMyBAQCB2b2lkIFNjcmVlbkNh
cHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25EaWRDaGFuZ2VDb250ZW50KFJl
dGFpblB0cjxTQwogICAgIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gZGV2aWNlOwogICAg
IFNDQ29udGVudEZpbHRlciogY29udGVudCA9IFtzZXNzaW9uIGNvbnRlbnRdOwogICAgIHN3aXRj
aCAoY29udGVudC50eXBlKSB7Ci0gICAgY2FzZSBTQ0NvbnRlbnRGaWx0ZXJUeXBlRGVza3RvcElu
ZGVwZW5kZW50V2luZG93OgotICAgICAgICBkZXZpY2UgPSBTY3JlZW5DYXB0dXJlS2l0Q2FwdHVy
ZVNvdXJjZTo6d2luZG93Q2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoU3RyaW5nOjpudW1i
ZXIoY29udGVudC5kZXNrdG9wSW5kZXBlbmRlbnRXaW5kb3dJbmZvLndpbmRvdy53aW5kb3dJRCkp
OworICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURlc2t0b3BJbmRlcGVuZGVudFdpbmRvdzog
eworICAgICAgICBhdXRvICp3aW5kb3cgPSBjb250ZW50LmRlc2t0b3BJbmRlcGVuZGVudFdpbmRv
d0luZm8ud2luZG93OworICAgICAgICBkZXZpY2UgPSBDYXB0dXJlRGV2aWNlKFN0cmluZzo6bnVt
YmVyKHdpbmRvdy53aW5kb3dJRCksIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdywg
d2luZG93LnRpdGxlLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKICAgICAgICAgYnJlYWs7CisgICAg
fQogICAgIGNhc2UgU0NDb250ZW50RmlsdGVyVHlwZURpc3BsYXk6Ci0gICAgICAgIGRldmljZSA9
IFNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291cmNlOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBl
cnNpc3RlbnRJRChTdHJpbmc6Om51bWJlcihjb250ZW50LmRpc3BsYXlJbmZvLmRpc3BsYXkuZGlz
cGxheUlEKSk7CisgICAgICAgIGRldmljZSA9IENhcHR1cmVEZXZpY2UoU3RyaW5nOjpudW1iZXIo
Y29udGVudC5kaXNwbGF5SW5mby5kaXNwbGF5LmRpc3BsYXlJRCksIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlNjcmVlbiwgbWFrZVN0cmluZygiU2NyZWVuICIpLCBlbXB0eVN0cmluZygpLCB0
cnVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTQ0NvbnRlbnRGaWx0ZXJUeXBlTm90aGlu
ZzoKICAgICBjYXNlIFNDQ29udGVudEZpbHRlclR5cGVBcHBzQW5kV2luZG93c1Bpbm5lZFRvRGlz
cGxheToKQEAgLTI0MCw4ICsyNDAsMTAgQEAgdm9pZCBTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nl
c3Npb25NYW5hZ2VyOjpwcm9tcHRGb3JHZXREaXNwbGF5TWVkaWEoUHJvbXB0VHlwZQogICAgIEFT
U0VSVChpc0F2YWlsYWJsZSgpKTsKICAgICBBU1NFUlQoIW1fY29tcGxldGlvbkhhbmRsZXIpOwog
Ci0gICAgaWYgKCFpc0F2YWlsYWJsZSgpIHx8IG1fY29tcGxldGlvbkhhbmRsZXIpCisgICAgaWYg
KCFpc0F2YWlsYWJsZSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9w
dCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBTQ0NvbnRlbnRTaGFyaW5nU2Vzc2lv
biogc2Vzc2lvbiA9IFtbUEFMOjpnZXRTQ0NvbnRlbnRTaGFyaW5nU2Vzc2lvbkNsYXNzKCkgYWxs
b2NdIGluaXRXaXRoVGl0bGU6QCJXZWJLaXQgZ2V0RGlzcGxheU1lZGlhIFByb21wdCJdOwogICAg
IGlmICghc2Vzc2lvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmlu
ZGV4IDljOTRhM2MwNjY4ZDU2YzUxZjViNDE3NDliNzY1ZjJlMWZmYmNhMzkuLjVmYzE1MDRhOGUx
ZGQ0OTcyMjFkMTBmNDM5MzFkZWNkNWE3NDdiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAKQEAgLTc0LDYgKzc0LDE0IEBACiAjaW5jbHVkZSA8cGFsL3NwaS9jZy9J
bWFnZUlPU1BJLmg+CiAjZW5kaWYKIAorI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2NyZWVuQ2FwdHVyZUtpdENhcHR1cmVTb3VyY2UuaD4KKyNlbmRpZgor
CisjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKKyNpbmNsdWRlIDxXZWJDb3Jl
L1NjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXIuaD4KKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogLy8gV2Ugd291bGRuJ3Qgd2FudCB0aGUgR1BVUHJvY2VzcyB0byBy
ZXBlYXRlZGx5IGV4aXQgdGhlbiByZWxhdW5jaCB3aGVuIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4g
SW4gcGFydGljdWxhciwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlCkBAIC0zNDcsOCArMzU1LDE5
IEBAIHZvaWQgR1BVUHJvY2Vzczo6c2V0TW9ja0NhbWVyYUlzSW50ZXJydXB0ZWQoYm9vbCBpc0lu
dGVycnVwdGVkKQogewogICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRNb2Nr
Q2FtZXJhSXNJbnRlcnJ1cHRlZChpc0ludGVycnVwdGVkKTsKIH0KKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQogCi0jZW5kaWYKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19TRVNT
SU9OKQordm9pZCBHUFVQcm9jZXNzOjpzaG93V2luZG93UGlja2VyKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9u
TWFuYWdlcjo6c2luZ2xldG9uKCkuc2hvd1dpbmRvd1BpY2tlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Cit9CisKK3ZvaWQgR1BVUHJvY2Vzczo6c2hvd1NjcmVlblBpY2tlcihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRTaGFy
aW5nU2Vzc2lvbk1hbmFnZXI6OnNpbmdsZXRvbigpLnNob3dTY3JlZW5QaWNrZXIoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworfQorI2VuZGlmIC8vIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5H
X1NFU1NJT04pCiAKICNpZiBQTEFURk9STShNQUMpCiB2b2lkIEdQVVByb2Nlc3M6OmRpc3BsYXlD
b25maWd1cmF0aW9uQ2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCBkaXNwbGF5SUQsIENHRGlzcGxh
eUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKQEAgLTUwMiw2ICs1MjEsMTYgQEAgdm9pZCBHUFVQ
cm9jZXNzOjpzZXRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZChib29sIGVuYWJsZWQp
CiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVfS0lUKQordm9pZCBHUFVQcm9j
ZXNzOjpzZXRVc2VTY3JlZW5DYXB0dXJlS2l0KGJvb2wgdXNlKQoreworICAgIGlmIChtX3VzZVNj
cmVlbkNhcHR1cmVLaXQgPT0gdXNlKQorICAgICAgICByZXR1cm47CisgICAgbV91c2VTY3JlZW5D
YXB0dXJlS2l0ID0gdXNlOworICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRDYXB0dXJlU291
cmNlOjpzZXRFbmFibGVkKG1fdXNlU2NyZWVuQ2FwdHVyZUtpdCk7Cit9CisjZW5kaWYKKwogdm9p
ZCBHUFVQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbkNvdW50Rm9yVGVzdGluZyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpvYmplY3RDb3VudEZv
clRlc3RpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCA0MDYw
YjE5ODUzZTc5NWY1YjA1ODhjMDEwNTc0NDBlZjQ0NGM3YmI5Li5kYzAzYWE2MjU0MzNlZGQ3YzZh
YWY3ZmVlMzYwMzJkOWJlMWM0NmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
LmgKQEAgLTQ5LDYgKzQ5LDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDYXB0dXJlRGV2aWNlOwogY2xhc3MgTm93UGxheWluZ01hbmFnZXI7CiBzdHJ1Y3QgTW9ja01l
ZGlhRGV2aWNlOwogc3RydWN0IFNjcmVlblByb3BlcnRpZXM7CkBAIC0xNTQsNiArMTU1LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1cHRlZChib29sKTsKICAg
ICBib29sIHNldENhcHR1cmVBdHRyaWJ1dGlvblN0cmluZyhjb25zdCBTdHJpbmcmKTsKICNlbmRp
ZgorI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCisgICAgdm9pZCBzaG93V2lu
ZG93UGlja2VyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPik+JiYpOworICAgIHZvaWQgc2hvd1NjcmVlblBpY2tlcihDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4pPiYmKTsK
KyNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRpc3BsYXlDb25maWd1cmF0aW9u
Q2hhbmdlZChDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzKTsK
ICAgICB2b2lkIHNldFNjcmVlblByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6U2NyZWVuUHJvcGVy
dGllcyYpOwpAQCAtMTgzLDYgKzE4OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0TWVkaWFT
b3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoYm9vbCk7CiAjZW5kaWYKIAorI2lmIEhBVkUoU0NS
RUVOX0NBUFRVUkVfS0lUKQorICAgIHZvaWQgc2V0VXNlU2NyZWVuQ2FwdHVyZUtpdChib29sKTsK
KyNlbmRpZgorCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgdm9pZCBub3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSk7CiAgICAgdm9p
ZCBkaXNwYXRjaFNpbXVsYXRlZE5vdGlmaWNhdGlvbnNGb3JQcmVmZXJlbmNlQ2hhbmdlKGNvbnN0
IFN0cmluZyYga2V5KSBmaW5hbDsKQEAgLTIyMSw2ICsyMzAsNyBAQCBwcml2YXRlOgogICAgIEhh
c2hNYXA8UEFMOjpTZXNzaW9uSUQsIEdQVVNlc3Npb24+IG1fc2Vzc2lvbnM7CiAgICAgV2ViQ29y
ZTo6VGltZXIgbV9pZGxlRXhpdFRpbWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpO
b3dQbGF5aW5nTWFuYWdlcj4gbV9ub3dQbGF5aW5nTWFuYWdlcjsKKyAgICBTdHJpbmcgbV9hcHBs
aWNhdGlvblZpc2libGVOYW1lOwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyPiBtX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7CiAjZW5kaWYKQEAgLTI0NCw3ICsy
NTQsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoQVZTQU1Q
TEVCVUZGRVJWSURFT09VVFBVVCkKICAgICBib29sIG1fbWVkaWFTb3VyY2VJbmxpbmVQYWludGlu
Z0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCi0gICAgU3RyaW5nIG1fYXBwbGljYXRpb25WaXNp
YmxlTmFtZTsKKyNpZiBIQVZFKFNDUkVFTl9DQVBUVVJFX0tJVCkKKyAgICBib29sIG1fdXNlU2Ny
ZWVuQ2FwdHVyZUtpdCB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCAzOTYyNDI2MWZiNDI5YWUzYjhhMjMxODM5YmIxYzIxOWQ5ZjdhYTU2Li5mNTMxMWI4
MWM1NjM3YjAxOGY2NTY4YjdmNWU0YTdiOTU1NWVkM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTIsNiArNTIsMTEgQEAgbWVz
c2FnZXMgLT4gR1BVUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICNlbmRpZgogCisjaWYgSEFW
RShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKKyAgICBTaG93V2luZG93UGlja2VyKCkgLT4g
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2aWNlKSBBc3luYworICAg
IFNob3dTY3JlZW5QaWNrZXIoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBkZXZpY2UpIEFzeW5jCisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAg
ICAgU2V0V2ViTVBhcnNlckVuYWJsZWQoYm9vbCBlbmFibGVkKTsKICNlbmRpZgpAQCAtNzIsNiAr
NzcsMTAgQEAgbWVzc2FnZXMgLT4gR1BVUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0
TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKICNlbmRpZgog
CisjaWYgSEFWRShTQ1JFRU5fQ0FQVFVSRV9LSVQpCisgICAgU2V0VXNlU2NyZWVuQ2FwdHVyZUtp
dChib29sIHVzZSk7CisjZW5kaWYKKwogICAgIFJlcXVlc3RCaXRtYXBJbWFnZUZvckN1cnJlbnRU
aW1lKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllcikgLT4gKFdlYktpdDo6U2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlKSBBc3luYwogCiAjaWYgRU5BQkxFKENGUFJFRlNf
RElSRUNUX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL2Nv
bS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCmluZGV4IGU0NTdhODk5MjMw
MTNlY2MwMjFiYTk5ODMzYjFiZWJkZTQxYzJlYTMuLjUwMmUxN2Y5N2RmMzA2M2M1YzZkYjg5MzUz
YWMwZmZlNDMwMmJlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMv
Y29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCkBAIC04NTEsOCAr
ODUxLDIzIEBACiAgICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9VU0JEZXZpY2VV
c2VyQ2xpZW50VjIiKQogICAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPVVNCSW50
ZXJmYWNlVXNlckNsaWVudFYyIikpCiAgICAgKGFsbG93IGRldmljZS1jYW1lcmEpKQorCiAjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQogCisjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lP
TikKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgIChyZXF1aXJlLWFsbAorICAgICAgICAoZXh0ZW5z
aW9uICJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIikKKyAgICAgICAgKGdsb2JhbC1u
YW1lCisgICAgICAgICAgICAiY29tLmFwcGxlLnJlcGxheWtpdC5zaGFyaW5nc2Vzc2lvbi5ub3Rp
ZmljYXRpb24iCisgICAgICAgICAgICAiY29tLmFwcGxlLnJlcGxheWtpdC5zaGFyaW5nc2Vzc2lv
biIKKyAgICAgICAgICAgICJjb20uYXBwbGUudGNjZC5zeXN0ZW0iCisgICAgICAgICAgICAiY29t
LmFwcGxlLnJlcGxheWQiCisgICAgICAgICkKKyAgICApCispCisjZW5kaWYKKwogKGFsbG93IG1h
Y2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5y
ZWxhdGl2ZWQudGVtcGVzdCIpCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
cHJvY2Vzcy1lbnRpdGxlbWVudHMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1l
bnRpdGxlbWVudHMuc2gKaW5kZXggZWM0ZTBiZTk4ZTJlNzgzYTNiN2I2MzQ0ZDVlZDQyOTI4ZTk4
NWMzMi4uMTg5NmE1YTkyYjlkZGFmMGQyMjk2OWEyMzQ2ZGU5MmU4NThhMWI3ZiAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaApAQCAtMTA1LDYgKzEw
NSw5IEBAIGZ1bmN0aW9uIG1hY19wcm9jZXNzX2dwdV9lbnRpdGxlbWVudHMoKQogICAgICAgICBp
ZiAoKCAiJHtUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUn0iID49IDEzMDAwMCApKQogICAg
ICAgICB0aGVuCiAgICAgICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUu
Z3B1LXJlc3RyaWN0ZWQgYm9vbCBZRVMKKyAgICAgICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20u
YXBwbGUucHJpdmF0ZS5zY3JlZW5jYXB0dXJla2l0LnNoYXJpbmdzZXNzaW9uIGJvb2wgWUVTCisg
ICAgICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUudGNjLmFsbG93IGFy
cmF5CisgICAgICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUudGNjLmFs
bG93OjAgc3RyaW5nIGtUQ0NTZXJ2aWNlU2NyZWVuQ2FwdHVyZQogICAgICAgICBmaQogCiAgICAg
ICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5tZW1vcnkub3duZXJzaGlwX3Ry
YW5zZmVyIGJvb2wgWUVTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDNlNjJlZGQxMGExZjFmMjBiZjlhNzdjNWNiNWFmYzE0
Zjg3NjgwYTIuLmJjZDkwYzFjZmViYjEwYmQ4OWE2YTVhMTFmYTZjNDNiYmJlN2E5NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CkBAIC0xNjIsNiArMTYyLDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2hvdWxkQ2Fw
dHVyZVZpZGVvSW5VSVByb2Nlc3M7CiAgICAgZW5jb2RlciA8PCBzaG91bGRDYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3M7CiAgICAgZW5jb2RlciA8PCBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9j
ZXNzOworICAgIGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3M7CiAg
ICAgZW5jb2RlciA8PCBzaG91bGRSZW5kZXJDYW52YXNJbkdQVVByb2Nlc3M7CiAgICAgZW5jb2Rl
ciA8PCBzaG91bGRSZW5kZXJET01JbkdQVVByb2Nlc3M7CiAgICAgZW5jb2RlciA8PCBzaG91bGRQ
bGF5TWVkaWFJbkdQVVByb2Nlc3M7CkBAIC01NTYsNiArNTU3LDkgQEAgc3RkOjpvcHRpb25hbDxX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjoKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVy
ZURpc3BsYXlJblVJUHJvY2VzcykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQ
VVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFJlbmRlckNhbnZhc0luR1BVUHJvY2VzcykpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBlNzhhMzE0MTQ1MGY5NmE3MzlhNzJk
Nzg3YjlhNjhmYTE3OWE2NWIyLi5mNzc4ZjYxZmI4MzViMjgwYzM5MmU0NTIyZmQ2NTUwMWU4Mzkw
MzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oCkBAIC0yMzMsNiArMjMzLDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MgeyBmYWxzZSB9Owog
ICAgIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKICAgICBi
b29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wg
c2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hv
dWxkUmVuZGVyQ2FudmFzSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZFJl
bmRlckRPTUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRQbGF5TWVkaWFJ
bkdQVVByb2Nlc3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAzOWE4Yzg3YTEzZjkxZDZlYTg5YjA3Njg0
ZTAyYzRhYTU4NTdmMjFkLi5mMWMzNzA2YjA5ZmY5ZTEyODIxZDdkYTNhMjI1YjcwYmE0NmRjZTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbQpAQCAtOTgsNiArOTgsMTAgQEAgU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKFdl
YkNvbnRlbnRBbmFseXNpcyk7CiBTT0ZUX0xJTktfQ0xBU1MoV2ViQ29udGVudEFuYWx5c2lzLCBX
ZWJGaWx0ZXJFdmFsdWF0b3IpOwogI2VuZGlmCiAKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklO
R19TRVNTSU9OKQorI2ltcG9ydCA8V2ViQ29yZS9TY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Np
b25NYW5hZ2VyLmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQogU09G
VF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKEFwcGxlTWVkaWFTZXJ2aWNlcykKIFNP
RlRfTElOS19DTEFTU19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXMsIEFNU0VuZ2FnZW1lbnRS
ZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA4NTI3ZmE1NWJhZTA0OTJkN2RiMDc0YzMzZGM1NWZkMDEzODc3NDk1Li4zMzQx
NTQxZGJkMjEwOWMzYWJiYTI5ZDdhMDc5NGI0OTgxZmFlYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjQ1LDYgKzI0NSwzOCBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgYWRkTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24oVmVjdG9y
PFNhbmRib3hFeHRlbnNpb246OkhhbmRsZQogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgSEFW
RShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKK3N0YXRpYyBpbmxpbmUgYm9vbCBhZGREaXNw
bGF5Q2FwdHVyZVNhbmRib3hFeHRlbnNpb24oc3RkOjpvcHRpb25hbDxhdWRpdF90b2tlbl90PiBh
dWRpdFRva2VuLCBWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYgZXh0ZW5zaW9ucykK
K3sKKyAgICBpZiAoIWF1ZGl0VG9rZW4pIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiTlVMTCBhdWRpdCB0b2tlbiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgYXV0byBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNo
TG9va3VwKCJjb20uYXBwbGUucmVwbGF5a2l0LnNoYXJpbmdzZXNzaW9uLm5vdGlmaWNhdGlvbiJf
cywgKmF1ZGl0VG9rZW4pOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgZXh0ZW5zaW9ucy5hcHBlbmQoV1RGTW92ZSgqaGFuZGxlKSk7CisKKyAgICBoYW5kbGUg
PSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUu
cmVwbGF5a2l0LnNoYXJpbmdzZXNzaW9uIl9zLCAqYXVkaXRUb2tlbik7CisgICAgaWYgKCFoYW5k
bGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBleHRlbnNpb25zLmFwcGVuZChXVEZNb3Zl
KCpoYW5kbGUpKTsKKworICAgIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkLnN5c3RlbSJfcywgKmF1ZGl0VG9rZW4pOwor
ICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZXh0ZW5zaW9ucy5h
cHBlbmQoV1RGTW92ZSgqaGFuZGxlKSk7CisKKyAgICBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUucmVwbGF5ZCJfcywgKmF1ZGl0
VG9rZW4pOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZXh0
ZW5zaW9ucy5hcHBlbmQoV1RGTW92ZSgqaGFuZGxlKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogc3RhdGljIGlubGluZSBib29sIGFkZFRDQ0RT
YW5kYm94RXh0ZW5zaW9uKFZlY3RvcjxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiBleHRlbnNp
b25zKQogewpAQCAtMjU4LDcgKzI5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhZGRUQ0NEU2Fu
ZGJveEV4dGVuc2lvbihWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYgZXh0CiB9CiAj
ZW5kaWYKIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVNhbmRib3hBY2Nlc3MoYm9vbCBh
bGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGVvQ2FwdHVyZSkKK3ZvaWQgR1BVUHJvY2Vz
c1Byb3h5Ojp1cGRhdGVTYW5kYm94QWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wg
YWxsb3dWaWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSkKIHsKICAgICBpZiAo
bV91c2VNb2NrQ2FwdHVyZURldmljZXMpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Miw2ICszMDQs
MTEgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OnVwZGF0ZVNhbmRib3hBY2Nlc3MoYm9vbCBhbGxv
d0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGUKICAgICBpZiAoYWxsb3dBdWRpb0NhcHR1cmUg
JiYgIW1faGFzU2VudE1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uICYmIGFkZE1pY3JvcGhvbmVT
YW5kYm94RXh0ZW5zaW9uKGV4dGVuc2lvbnMpKQogICAgICAgICBtX2hhc1NlbnRNaWNyb3Bob25l
U2FuZGJveEV4dGVuc2lvbiA9IHRydWU7CiAKKyNpZiBIQVZFKFNDX0NPTlRFTlRfU0hBUklOR19T
RVNTSU9OKQorICAgIGlmIChhbGxvd0Rpc3BsYXlDYXB0dXJlICYmICFtX2hhc1NlbnREaXNwbGF5
Q2FwdHVyZVNhbmRib3hFeHRlbnNpb24gJiYgYWRkRGlzcGxheUNhcHR1cmVTYW5kYm94RXh0ZW5z
aW9uKGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpLCBleHRlbnNpb25zKSkKKyAgICAgICAg
bV9oYXNTZW50RGlzcGxheUNhcHR1cmVTYW5kYm94RXh0ZW5zaW9uID0gdHJ1ZTsKKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmICgoYWxsb3dBdWRpb0NhcHR1cmUgfHwgYWxsb3dW
aWRlb0NhcHR1cmUpICYmICFtX2hhc1NlbnRUQ0NEU2FuZGJveEV4dGVuc2lvbiAmJiBhZGRUQ0NE
U2FuZGJveEV4dGVuc2lvbihleHRlbnNpb25zKSkKICAgICAgICAgbV9oYXNTZW50VENDRFNhbmRi
b3hFeHRlbnNpb24gPSB0cnVlOwpAQCAtMjg0LDcgKzMyMSw3IEBAIHZvaWQgR1BVUHJvY2Vzc1By
b3h5Ojp1cGRhdGVTYW5kYm94QWNjZXNzKGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxs
b3dWaWRlCiAKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp1cGRhdGVDYXB0dXJlQWNjZXNzKGJvb2wg
YWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dEaXNw
bGF5Q2FwdHVyZSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgdXBkYXRlU2Fu
ZGJveEFjY2VzcyhhbGxvd0F1ZGlvQ2FwdHVyZSwgYWxsb3dWaWRlb0NhcHR1cmUpOworICAgIHVw
ZGF0ZVNhbmRib3hBY2Nlc3MoYWxsb3dBdWRpb0NhcHR1cmUsIGFsbG93VmlkZW9DYXB0dXJlLCBh
bGxvd0Rpc3BsYXlDYXB0dXJlKTsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkdQ
VVByb2Nlc3M6OlVwZGF0ZUNhcHR1cmVBY2Nlc3MgeyBhbGxvd0F1ZGlvQ2FwdHVyZSwgYWxsb3dW
aWRlb0NhcHR1cmUsIGFsbG93RGlzcGxheUNhcHR1cmUsIHByb2Nlc3NJRCB9LCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKQEAgLTMxNyw2ICszNTQsMTggQEAgdm9pZCBHUFVQcm9j
ZXNzUHJveHk6OnNldE1vY2tDYW1lcmFJc0ludGVycnVwdGVkKGJvb2wgaXNJbnRlcnJ1cHRlZCkK
IHsKICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRNb2NrQ2FtZXJhSXNJbnRlcnJ1
cHRlZCB7IGlzSW50ZXJydXB0ZWQgfSwgMCk7CiB9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NFU1NJT04pCit2b2lkIEdQVVBy
b2Nlc3NQcm94eTo6c2hvd1dpbmRvd1BpY2tlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2hvd1dpbmRv
d1BpY2tlciB7IH0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBHUFVQ
cm9jZXNzUHJveHk6OnNob3dTY3JlZW5QaWNrZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNob3dTY3Jl
ZW5QaWNrZXIgeyB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CiAjZW5kaWYKIAog
dm9pZCBHUFVQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpM
YXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQpAQCAtNjIyLDYgKzY3MSwxNCBAQCB2b2lkIEdQ
VVByb2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVyZW5jZXMoV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9j
ZXNzKQogICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0TWVkaWFTb3Vy
Y2VJbmxpbmVQYWludGluZ0VuYWJsZWQobV9oYXNFbmFibGVkTWVkaWFTb3VyY2VJbmxpbmVQYWlu
dGluZyksIDApOwogICAgICAgICB9CiAjZW5kaWYKKworI2lmIEhBVkUoU0NSRUVOX0NBUFRVUkVf
S0lUKQorICAgICAgICBpZiAoIW1faGFzRW5hYmxlZFNjcmVlbkNhcHR1cmVLaXQgJiYgcHJlZmVy
ZW5jZXMudXNlU2NyZWVuQ2FwdHVyZUtpdCgpKSB7CisgICAgICAgICAgICBtX2hhc0VuYWJsZWRT
Y3JlZW5DYXB0dXJlS2l0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OkdQVVBy
b2Nlc3M6OlNldFVzZVNjcmVlbkNhcHR1cmVLaXQobV9oYXNFbmFibGVkU2NyZWVuQ2FwdHVyZUtp
dCksIDApOworICAgICAgICB9CisjZW5kaWYKKwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCmluZGV4IDk5NjljZGYwNWRlNTkxOGIw
NWNhNjg0YzljZTEzOTQ5NjJhNmU5YzcuLmVhZGU5YjU5YmRmNWFiMTA3NTM4YmY1YjA3NDMwNzFi
OTE5OGQxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1By
b3h5LmgKQEAgLTUwLDYgKzUwLDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBDYXB0dXJlRGV2aWNlOwogc3RydWN0IE1vY2tNZWRpYURldmljZTsKIHN0cnVjdCBTY3Jl
ZW5Qcm9wZXJ0aWVzOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTg2LDYgKzg3LDEy
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZU1vY2tNZWRpYURldmljZShjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIHJlc2V0TW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgc2V0TW9ja0Nh
bWVyYUlzSW50ZXJydXB0ZWQoYm9vbCk7CisgICAgdm9pZCB1cGRhdGVTYW5kYm94QWNjZXNzKGJv
b2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dE
aXNwbGF5Q2FwdHVyZSk7CisjZW5kaWYKKworI2lmIEhBVkUoU0NfQ09OVEVOVF9TSEFSSU5HX1NF
U1NJT04pCisgICAgdm9pZCBzaG93V2luZG93UGlja2VyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYpOworICAgIHZvaWQgc2hv
d1NjcmVlblBpY2tlcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4pPiYmKTsKICNlbmRpZgogCiAgICAgdm9pZCByZW1vdmVTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEKTsKQEAgLTEzNiw4ICsxNDMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
dGVybWluYXRlV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBwcm9jZXNzSXNSZWFkeVRvRXhpdCgpOwogCi0gICAgdm9pZCB1cGRhdGVTYW5kYm94QWNjZXNz
KGJvb2wgYWxsb3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUpOwotCiAjaWYg
SEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiAgICAgdm9pZCBkaWRDcmVhdGVDb250
ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBMYXllckhvc3RpbmdDb250ZXh0SUQpOwogI2VuZGlmCkBAIC0x
NTUsNiArMTYwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzU2VudFRDQ0RTYW5kYm94RXh0
ZW5zaW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzU2VudENhbWVyYVNhbmRib3hFeHRlbnNp
b24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNTZW50TWljcm9waG9uZVNhbmRib3hFeHRlbnNp
b24geyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNTZW50RGlzcGxheUNhcHR1cmVTYW5kYm94RXh0
ZW5zaW9uIHsgZmFsc2UgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYg
RU5BQkxFKFZQOSkKQEAgLTE3Nyw2ICsxODMsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFz
RW5hYmxlZE1lZGlhU291cmNlSW5saW5lUGFpbnRpbmcgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyNp
ZiBIQVZFKFNDUkVFTl9DQVBUVVJFX0tJVCkKKyAgICBib29sIG1faGFzRW5hYmxlZFNjcmVlbkNh
cHR1cmVLaXQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNoU2V0PFBBTDo6U2Vzc2lvbklE
PiBtX3Nlc3Npb25JRHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBhNzI0NjNiODViN2FmYmEzNWZkZDg3NjdiYTdhYjUzNWZmNmMxZTRhLi43Zjdi
Y2I3ODNlYmRjOWM5MWQ1ODc2YzQ5Nzc1NjJlZTkyOGMyNjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMxNyw2ICszMTcsMTAgQEAKICNpbXBvcnQgIkRp
c3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgSEFWRShTQ19DT05U
RU5UX1NIQVJJTkdfU0VTU0lPTikKKyNpbXBvcnQgPFdlYkNvcmUvU2NyZWVuQ2FwdHVyZUtpdFNo
YXJpbmdTZXNzaW9uTWFuYWdlci5oPgorI2VuZGlmCisKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhw
cm9jZXNzLCBhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIHByb2Nlc3Mt
PmNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19VUkwocHJvY2VzcywgdXJsKSBN
RVNTQUdFX0NIRUNLX0JBU0UoY2hlY2tVUkxSZWNlaXZlZEZyb21DdXJyZW50T3JQcmV2aW91c1dl
YlByb2Nlc3MocHJvY2VzcywgdXJsKSwgcHJvY2Vzcy0+Y29ubmVjdGlvbigpKQogI2RlZmluZSBN
RVNTQUdFX0NIRUNLX0NPTVBMRVRJT04ocHJvY2VzcywgYXNzZXJ0aW9uLCBjb21wbGV0aW9uKSBN
RVNTQUdFX0NIRUNLX0NPTVBMRVRJT05fQkFTRShhc3NlcnRpb24sIHByb2Nlc3MtPmNvbm5lY3Rp
b24oKSwgY29tcGxldGlvbikKQEAgLTg0MzcsNiArODQ0MSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlTV0RlY29kZXIgPSBwcmVmZXJl
bmNlcygpLnZwOURlY29kZXJFbmFibGVkKCkgJiYgKCFXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5
KCkgfHwgcHJlZmVyZW5jZXMoKS52cDlTV0RlY29kZXJFbmFibGVkT25CYXR0ZXJ5KCkpOwogI2Vu
ZGlmCiAgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzID0gbV9w
cm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNvbmZpZ3VyYXRpb24oKS5zaG91bGRDYXB0dXJlRGlzcGxh
eUluVUlQcm9jZXNzKCk7CisgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluR1BV
UHJvY2VzcyA9IHByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0ZvckRpc3BsYXlDYXB0dXJlKCk7
CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogICAgIHBhcmFtZXRlcnMubGltaXRzTmF2
aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyA9IG1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5k
RG9tYWluczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L0Rpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlci5tbQppbmRleCA4OGFkYWM2Mzc1NjQz
ZjY3NDA3ZTE2OGM0MDAzZGVmYjA2MTZhZDMyLi40NWU2NTI0MmY5MDEyNDllNGUzZWNmODdiYzFm
MTdiZTk4NDFlNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlz
cGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlci5tbQpAQCAtMzIsNiArMzIsOCBAQAog
I2ltcG9ydCAiTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNz
LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9DYXB0dXJl
RGV2aWNlTWFuYWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CkBAIC0yMDEs
NyArMjAzLDE0IEBAIHZvaWQgRGlzcGxheUNhcHR1cmVTZXNzaW9uTWFuYWdlcjo6c2hvd1dpbmRv
d1BpY2tlcihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlCiAKICNpZiBIQVZFKFNDX0NPTlRF
TlRfU0hBUklOR19TRVNTSU9OKQogICAgIGlmIChXZWJDb3JlOjpTY3JlZW5DYXB0dXJlS2l0U2hh
cmluZ1Nlc3Npb25NYW5hZ2VyOjppc0F2YWlsYWJsZSgpKSB7Ci0gICAgICAgIFdlYkNvcmU6OlNj
cmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFnZXI6OnNpbmdsZXRvbigpLnNob3dXaW5k
b3dQaWNrZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBpZiAoIXBhZ2Uu
cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRGlzcGxheUNhcHR1cmUoKSkgeworICAgICAg
ICAgICAgV2ViQ29yZTo6U2NyZWVuQ2FwdHVyZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcjo6c2lu
Z2xldG9uKCkuc2hvd1dpbmRvd1BpY2tlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRvJiBncHVQcm9jZXNz
ID0gcGFnZS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5lbnN1cmVHUFVQcm9jZXNzKCk7CisgICAg
ICAgIGdwdVByb2Nlc3MudXBkYXRlU2FuZGJveEFjY2VzcyhmYWxzZSwgZmFsc2UsIHRydWUpOwor
ICAgICAgICBncHVQcm9jZXNzLnNob3dXaW5kb3dQaWNrZXIoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC0yMTgsNyArMjI3LDcg
QEAgdm9pZCBEaXNwbGF5Q2FwdHVyZVNlc3Npb25NYW5hZ2VyOjpzaG93V2luZG93UGlja2VyKFdl
YlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2UKICAgICB9KTsKIH0KIAotdm9pZCBEaXNwbGF5Q2Fw
dHVyZVNlc3Npb25NYW5hZ2VyOjpzaG93U2NyZWVuUGlja2VyKFdlYlBhZ2VQcm94eSYsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIERpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXI6OnNob3dTY3JlZW5QaWNrZXIoV2Vi
UGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChtX2luZGV4T2ZEZXZpY2VTZWxlY3Rl
ZEZvclRlc3RpbmcpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZGV2aWNlU2VsZWN0ZWRG
b3JUZXN0aW5nKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbikpOwpA
QCAtMjI3LDcgKzIzNiwxNCBAQCB2b2lkIERpc3BsYXlDYXB0dXJlU2Vzc2lvbk1hbmFnZXI6OnNo
b3dTY3JlZW5QaWNrZXIoV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZQogCiAjaWYgSEFWRShT
Q19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKICAgICBpZiAoV2ViQ29yZTo6U2NyZWVuQ2FwdHVy
ZUtpdFNoYXJpbmdTZXNzaW9uTWFuYWdlcjo6aXNBdmFpbGFibGUoKSkgewotICAgICAgICBXZWJD
b3JlOjpTY3JlZW5DYXB0dXJlS2l0U2hhcmluZ1Nlc3Npb25NYW5hZ2VyOjpzaW5nbGV0b24oKS5z
aG93U2NyZWVuUGlja2VyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgaWYg
KCFwYWdlLnByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0ZvckRpc3BsYXlDYXB0dXJlKCkpIHsK
KyAgICAgICAgICAgIFdlYkNvcmU6OlNjcmVlbkNhcHR1cmVLaXRTaGFyaW5nU2Vzc2lvbk1hbmFn
ZXI6OnNpbmdsZXRvbigpLnNob3dTY3JlZW5QaWNrZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byYgZ3B1
UHJvY2VzcyA9IHBhZ2UucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuZW5zdXJlR1BVUHJvY2Vzcygp
OworICAgICAgICBncHVQcm9jZXNzLnVwZGF0ZVNhbmRib3hBY2Nlc3MoZmFsc2UsIGZhbHNlLCB0
cnVlKTsKKyAgICAgICAgZ3B1UHJvY2Vzcy5zaG93U2NyZWVuUGlja2VyKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1t
CmluZGV4IDMxYTA0OTE1N2I3ODgwNmU4NTVlZGY5YzQ0M2JkNTJjMmJiNDUxYzYuLjlkYWJkYmVh
OTBiYTg0NmIwOTFjMjMwN2NkZDEzYmYwNjViNGJiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTcxLDcg
KzcxLDcgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgaWYgKGF1dG8qIGNhcHR1cmVNYW5hZ2VyID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
c3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4oKSkKLSAgICAgICAgY2FwdHVyZU1h
bmFnZXItPnNldHVwQ2FwdHVyZVByb2Nlc3NlcyhwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzcywg
cGFyYW1ldGVycy5zaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2VzcywgcGFyYW1ldGVycy5zaG91
bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZURpc3Bs
YXlJblVJUHJvY2VzcywgbV9wYWdlLT5zZXR0aW5ncygpLndlYlJUQ1JlbW90ZVZpZGVvRnJhbWVF
bmFibGVkKCkpOworICAgICAgICBjYXB0dXJlTWFuYWdlci0+c2V0dXBDYXB0dXJlUHJvY2Vzc2Vz
KHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIHBhcmFtZXRlcnMuc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVWaWRl
b0luVUlQcm9jZXNzLCBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2Vzcywg
cGFyYW1ldGVycy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzLCBwYXJhbWV0ZXJzLnNo
b3VsZENhcHR1cmVEaXNwbGF5SW5HUFVQcm9jZXNzLCBtX3BhZ2UtPnNldHRpbmdzKCkud2ViUlRD
UmVtb3RlVmlkZW9GcmFtZUVuYWJsZWQoKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKaW5kZXggMTg4ZjQxMmY2MmVmYjg0MGRhZTIwOTVlNDg2YmI5NDUzYjNjYmU4NS4uZjY4N2Q4
ZDlmYmUwMzAyMzdmNGZjYTQwNzMwYTFhNDViZDRjMDRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CkBAIC03MSwxNiArNzEsMTcgQEAgY29uc3QgY2hhciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnN1cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4gIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIjsK
IH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2V0dXBDYXB0dXJlUHJvY2Vzc2Vz
KGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZUF1
ZGlvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBib29s
IHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxh
eUluVUlQcm9jZXNzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMpCit2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91
bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVBy
b2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2Fw
dHVyZVZpZGVvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nl
c3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkVXNl
R1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykKIHsKICAgICBtX3Nob3VsZFVzZUdQVVByb2Nlc3NSZW1v
dGVGcmFtZXMgPSBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzOwogICAgIC8vIEZJWE1F
KHJkYXI6Ly84NDI3ODE0Nik6IEFkb3B0IEFWQ2FwdHVyZVNlc3Npb24gYXR0cmlidXRpb24gQVBJ
IGZvciBjYW1lcmEgYWNjZXNzIGluIHRoZSB3ZWIgcHJvY2VzcyBpZiBzaG91bGRDYXB0dXJlVmlk
ZW9JbkdQVVByb2Nlc3MgaXMgZmFsc2UuCiAgICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLnNldE1vY2tBdWRpb0NhcHR1cmVFbmFibGVkKCFzaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcyAmJiAhc2hvdWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzKTsKICAg
ICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0TW9ja1ZpZGVv
Q2FwdHVyZUVuYWJsZWQoIXNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzICYmICFzaG91bGRD
YXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MpOwotICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5zZXRNb2NrRGlzcGxheUNhcHR1cmVFbmFibGVkKCFzaG91bGRDYXB0
dXJlRGlzcGxheUluVUlQcm9jZXNzKTsKKyAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuc2V0TW9ja0Rpc3BsYXlDYXB0dXJlRW5hYmxlZCghc2hvdWxkQ2FwdHVy
ZURpc3BsYXlJblVJUHJvY2VzcyAmJiAhc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3Mp
OwogCiAgICAgbV9hdWRpb0ZhY3Rvcnkuc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91
bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MpOwogICAgIG1fdmlkZW9GYWN0b3J5LnNldFNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzKTsKKyAg
ICBtX2Rpc3BsYXlGYWN0b3J5LnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2Fw
dHVyZURpc3BsYXlJbkdQVVByb2Nlc3MpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVBdWRpb0lu
R1BVUHJvY2VzcykgewogICAgICAgICBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQ6OnNldENyZWF0ZUludGVybmFsVW5pdEZ1bmN0aW9uKFtdKGF1dG8mJiByZW5kZXJD
YWxsYmFjaywgYXV0byYmIHJlc2V0Q2FsbGJhY2spIHsKQEAgLTkyLDcgKzkzLDcgQEAgdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2V0dXBDYXB0dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuc2V0QXVkaW9DYXB0dXJlRmFjdG9yeShtX2F1ZGlvRmFjdG9yeSk7CiAgICAgaWYg
KHNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzIHx8IHNob3VsZENhcHR1cmVWaWRlb0luR1BV
UHJvY2VzcykKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
c2V0VmlkZW9DYXB0dXJlRmFjdG9yeShtX3ZpZGVvRmFjdG9yeSk7Ci0gICAgaWYgKHNob3VsZENh
cHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpCisgICAgaWYgKHNob3VsZENhcHR1cmVEaXNwbGF5SW5V
SVByb2Nlc3MgfHwgc2hvdWxkQ2FwdHVyZURpc3BsYXlJbkdQVVByb2Nlc3MpCiAgICAgICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldERpc3BsYXlDYXB0dXJlRmFj
dG9yeShtX2Rpc3BsYXlGYWN0b3J5KTsKIH0KIApAQCAtMjUyLDkgKzI1MywyMiBAQCBDYXB0dXJl
U291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVh
dGVWaWRlb0NhcHR1cmVTbwogCiBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
bV9tYW5hZ2VyLCBmYWxzZSk7CisjaWYgIUVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV9z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgeyAiRGlzcGxheSBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90IGltcGxlbWVudGVk
Il9zIH07CisjZW5kaWYKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAg
ICAgICBtX21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CisKKyAgICByZXR1cm4g
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywg
V1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OnNl
dFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MgPSB2YWx1ZTsKIH0KIAotI2VuZGlmCisKK30KKworI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApp
bmRleCAwNjkwMTcwZjk3ZTdlY2UyNDQ4OTNmMzQ1ZmU1ZDhlNzEzZjNhOTNiLi4xNWE5MGQyOWU3
MTdmNWZiNzJlN2IyYmIxOWNjZjY2ZTA2M2IxOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1l
KCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KLSAgICB2b2lkIHNldHVwQ2FwdHVyZVByb2Nl
c3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1
cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2Vzcywg
Ym9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURp
c3BsYXlJblVJUHJvY2VzcywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKTsK
KyAgICB2b2lkIHNldHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRpb0lu
VUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBzaG91
bGRDYXB0dXJlVmlkZW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVBy
b2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcywgYm9vbCBzaG91bGRD
YXB0dXJlRGlzcGxheUluR1BVUHJvY2VzcywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3Rl
RnJhbWVzKTsKIAogICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlPiYmKTsKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZT4mJik7CkBAIC05OCwxMiArOTgsMTQgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBEaXNwbGF5RmFj
dG9yeSA6IHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZUZhY3RvcnkgewogICAgIHB1Ymxp
YzoKICAgICAgICAgZXhwbGljaXQgRGlzcGxheUZhY3RvcnkoVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImIG1hbmFnZXIpIDogbV9tYW5hZ2VyKG1hbmFnZXIpIHsgfQorICAgICAgICB2b2lkIHNldFNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBX
ZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqKSBmaW5hbDsKICAgICAgICAgV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVN
YW5hZ2VyJiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX21h
bmFnZXIubV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7IH0KIAogICAgICAgICBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOworICAgICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgfTsKIAogICAgIGNsYXNzIE5vT3BDYXB0dXJlRGV2
aWNlTWFuYWdlciA6IHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXIgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>