<?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>221457</bug_id>
          
          <creation_ts>2021-02-05 02:28:16 -0800</creation_ts>
          <short_desc>Enable audio capture for speech recognition in GPUProcess</short_desc>
          <delta_ts>2021-02-05 12:27:27 -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 Local 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>
          
          <blocked>221400</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1725985</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-05 02:28:16 -0800</bug_when>
    <thetext>Enable audio capture for speech recognition in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725990</commentid>
    <comment_count>1</comment_count>
      <attachid>419381</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-05 02:44:40 -0800</bug_when>
    <thetext>Created attachment 419381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726014</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-05 05:06:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/74021657&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726163</commentid>
    <comment_count>3</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-02-05 10:32:26 -0800</bug_when>
    <thetext>*** Bug 221452 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726168</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-05 10:35:43 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 419381 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726216</commentid>
    <comment_count>5</comment_count>
      <attachid>419381</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-02-05 11:58:16 -0800</bug_when>
    <thetext>Comment on attachment 419381
Patch

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

Nice! Was trying to add a SpeechRecognitionRealtimeMediaSourceManager to GPU process and messaging between GPU process and UI process; that works but requires more changes.

&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:191
&gt;      m_sandboxExtensionForTCCD = SandboxExtension::create(WTFMove(sandboxHandleForTCCD));
&gt;      if (!m_sandboxExtensionForTCCD)
&gt; -        LOG_ERROR(&quot;Failed to create sandbox extension for tccd&quot;);
&gt; +        RELEASE_LOG_ERROR(Media, &quot;Failed to create sandbox extension for tccd&quot;);
&gt;      else
&gt;          m_sandboxExtensionForTCCD-&gt;consume();
&gt;  
&gt;      m_sandboxExtensionForMicrophone = SandboxExtension::create(WTFMove(sandboxHandleForMicrophone));
&gt;      if (!m_sandboxExtensionForMicrophone)
&gt; -        LOG_ERROR(&quot;Failed to create sandbox extension for microphone&quot;);
&gt; +        RELEASE_LOG_ERROR(Media, &quot;Failed to create sandbox extension for microphone&quot;);

Should we also avoid granting sandbox extension to web process if capture is about to happen in GPU process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726225</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-05 12:12:45 -0800</bug_when>
    <thetext>(In reply to Sihui Liu from comment #5)
&gt; Comment on attachment 419381 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=419381&amp;action=review
&gt; 
&gt; Nice! Was trying to add a SpeechRecognitionRealtimeMediaSourceManager to GPU
&gt; process and messaging between GPU process and UI process; that works but
&gt; requires more changes.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:191
&gt; &gt;      m_sandboxExtensionForTCCD = SandboxExtension::create(WTFMove(sandboxHandleForTCCD));
&gt; &gt;      if (!m_sandboxExtensionForTCCD)
&gt; &gt; -        LOG_ERROR(&quot;Failed to create sandbox extension for tccd&quot;);
&gt; &gt; +        RELEASE_LOG_ERROR(Media, &quot;Failed to create sandbox extension for tccd&quot;);
&gt; &gt;      else
&gt; &gt;          m_sandboxExtensionForTCCD-&gt;consume();
&gt; &gt;  
&gt; &gt;      m_sandboxExtensionForMicrophone = SandboxExtension::create(WTFMove(sandboxHandleForMicrophone));
&gt; &gt;      if (!m_sandboxExtensionForMicrophone)
&gt; &gt; -        LOG_ERROR(&quot;Failed to create sandbox extension for microphone&quot;);
&gt; &gt; +        RELEASE_LOG_ERROR(Media, &quot;Failed to create sandbox extension for microphone&quot;);
&gt; 
&gt; Should we also avoid granting sandbox extension to web process if capture is
&gt; about to happen in GPU process?

Sounds good, will do that as a follow-up if you don&apos;t beat me to it.
Will land this change so that I can try landing enabling audio capture in GPU Process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726235</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-05 12:27:25 -0800</bug_when>
    <thetext>Committed r272434: &lt;https://trac.webkit.org/changeset/272434&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419381.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419381</attachid>
            <date>2021-02-05 02:44:40 -0800</date>
            <delta_ts>2021-02-05 12:27:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221457-20210205114432.patch</filename>
            <type>text/plain</type>
            <size>26572</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOTg3ZmMyOGM4MWVi
ODEyYTMwNDZkNzgwYWVmNzlhYWQxN2U0NS4uOWYyMDUxM2ZiYjdjNGE4Y2U3MjQ1ZmQ1MTcwODhl
ZmUxMTNhOTFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgYXVkaW8gY2Fw
dHVyZSBmb3Igc3BlZWNoIHJlY29nbml0aW9uIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTQ1NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmYWtlIGRldmljZUlkIHRvIHBs
YXkgbmljZSB3aXRoIGNhcHR1cmUgQVNTRVJUcy4KKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVk
IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisKIDIwMjEtMDItMDUgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBjbGljayBh
dHRyaWJ1dGlvbiBpcyBwcm9jZXNzZWQgaW4gY2FzZSBvZiByZWRpcmVjdGVkIGtlcHQgYWxpdmUg
bG9hZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYTYyZGYyYjRiZTZmMTU5OTNlNzk2YzFlODBhMjdiM2EyYjA3MDNj
MS4uYjJhY2Q2MTZmODBjYWIzMTQ4MGMwNDUyMDg4NTQ0MGM1MTMyMTZhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0MSBAQAorMjAyMS0wMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgRW5hYmxlIGF1ZGlvIGNhcHR1cmUgZm9yIHNwZWVjaCByZWNvZ25pdGlv
biBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBbGxvdyB0byBjcmVhdGUgcmVtb3RlIHNvdXJjZXMgd2l0aG91dCBhbnkgY29uc3Ry
YWludC4KKyAgICAgICAgVG8gZG8gc28sIHdlIHNlcmlhbGl6ZSB0aHJvdWdoIElQQyBhIE1lZGlh
Q29uc3RyYWludHMgd2l0aCBpc1ZhbGlkID0gZmFsc2UgYW5kIHRyZWF0IGl0IGFzIG5vIGNvbnN0
cmFpbnQgaW4gY2FwdHVyZSBwcm9jZXNzLgorCisgICAgICAgIE1ha2Ugc3VyZSB0byBzZW5kIHNh
bmRib3ggZXh0ZW5zaW9ucyBhbmQgYXV0aG9yaXphdGlvbnMgZm9yIEdQVVByb2Nlc3MgdG8gY2Fw
dHVyZSBpbiBjYXNlIG9mIHNwZWVjaCByZWNvZ25pdGlvbiBhdWRpbyBjYXB0dXJlIHJlcXVlc3Qu
CisKKyAgICAgICAgSW4gY2FzZSBvZiBHUFVQcm9jZXNzIGF1ZGlvIGNhcHR1cmUsIHNlbmQgdGhl
IHJlcXVlc3QgdG8gY2FwdHVyZSB0byBXZWJQcm9jZXNzIGxpa2UgZG9uZSBmb3IgaU9TLgorICAg
ICAgICBXZWJQcm9jZXNzIGlzIHRoZW4gcmVzcG9uc2libGUgdG8gZ2V0IGF1ZGlvIHNhbXBsZXMg
ZnJvbSBHUFVQcm9jZXNzIGFuZCBmb3J3YXJkIHRoZW0gdG8gVUlQcm9jZXNzLgorICAgICAgICBB
IGZ1dHVyZSByZWZhY3RvcmluZyBzaG91bGQgbW92ZSBzcGVlY2ggcmVjb2duaXRpb24gdG8gR1BV
UHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Z3JhbnRSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpn
cmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Y3JlYXRlU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3Nl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9y
eTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5
OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZSk6CisKIDIwMjEtMDItMDUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBjbGljayBhdHRyaWJ1
dGlvbiBpcyBwcm9jZXNzZWQgaW4gY2FzZSBvZiByZWRpcmVjdGVkIGtlcHQgYWxpdmUgbG9hZHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDU3YzkwNzZmODRjZjcwMjk5Mjcx
YWY5Y2E0MmVmMDA5ODRhOGM0M2UuLjg4YmZmMmMwYmQ2ZTE1MmI3ZjZmMTY1ZTg2MzU3Mjk0NDRh
Yzc3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtNjQsNyArNjQsNyBA
QCBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OmZpbmRDYXB0dXJlRGV2aWNlKCkKIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCiB7Ci0gICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsICJTcGVlY2hJRCJfcywgeyB9KTsK
IH0KIAogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiBzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDM3Nzc2NjhhZTZkYjUy
ZGMyYTJkODI4MDM1MGU1MDQxM2ZkYzc5ZDQuLjIxZjZjZjdkODJlYWMzYjEwMWY3MzA5OTYzZGRl
ZmQ3NzBmODU0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0yMzgsMjQgKzIz
OCwyNiBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSgpCiAgICAgbV9jb25uZWN0aW9uUHJveHktPnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wg
c3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvblBy
b3h5LT53aWxsU3RhcnRDYXB0dXJlKGRldmljZS50eXBlKCkpKQogICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UsICJSZXF1ZXN0IGlzIG5vdCBhbGxvd2VkIl9zLCBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MgeyB9LCB7IH0pOwogCisgICAgYXV0byogY29uc3RyYWludHMg
PSBtZWRpYUNvbnN0cmFpbnRzLmlzVmFsaWQgPyAmbWVkaWFDb25zdHJhaW50cyA6IG51bGxwdHI7
CisKICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOwogICAgIHN3aXRjaCAo
ZGV2aWNlLnR5cGUoKSkgewogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRp
b0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsK
KyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2
aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAg
ICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBX
VEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOwogICAgICAgICBpZiAoc291cmNlT3JFcnJvcikKICAgICAgICAgICAgIHNv
dXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRp
b25Ob3RpZmllcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCAmY29uc3RyYWludHMpOworICAgICAgICBz
b3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGlz
cGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBj
b25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKICAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlVua25vd246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKaW5kZXggNjUwNDUyMmM2ZGY0MWI0ZTM5ZmIzNGRlNWNkNmE0NDM3YjJjYmIxMS4uN2E2OTU2
OTA0ZjgyM2JmN2I4YzkwNWY5ZGMwZjI4ZTQ5MjA2OGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtMjQwLDggKzI0MCwxMCBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lv
blJlcQogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcmVxdWVzdC51c2VyTWVkaWFJRCgp
LCAiLCB2aWRlbzogIiwgcmVxdWVzdC52aWRlb0RldmljZSgpLmxhYmVsKCksICIsIGF1ZGlvOiAi
LCByZXF1ZXN0LmF1ZGlvRGV2aWNlKCkubGFiZWwoKSk7CiAKICAgICBpZiAoYXV0byBjYWxsYmFj
ayA9IHJlcXVlc3QuZGVjaXNpb25Db21wbGV0aW9uSGFuZGxlcigpKSB7CisgICAgICAgIG1fcGFn
ZS53aWxsU3RhcnRDYXB0dXJlKHJlcXVlc3QsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSgpIG11dGFibGUgeworICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSk7CisgICAgICAgIH0pOwog
ICAgICAgICBtX2dyYW50ZWRSZXF1ZXN0cy5hcHBlbmQobWFrZVJlZihyZXF1ZXN0KSk7Ci0gICAg
ICAgIGNhbGxiYWNrKHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxNzhiZjkwNmZiMzM0MDJiZTZiYmY3
M2Q0NDEzNGUzODE0YzQ2NTIzLi4xNTRlZTU4Mzc0YTRkMmExMGJhNWRhMmUyYTY0M2Y0ZDMxZTk3
OGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwNDQx
LDEzICsxMDQ0MSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JTcGVlY2hSZWNvZ25pdGlvbihGcmFtZUlkZW50aWZpZQogCiBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VG
b3JTcGVlY2hSZWNvZ25pdGlvbigpCiB7Ci0gICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1
ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgeyAiTm90IGltcGxlbWVudGVkIGZvciBHUFUgcHJvY2VzcyIgfTsKLQogICAgIGF1dG8g
Y2FwdHVyZURldmljZSA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1
cmVEZXZpY2UoKTsKICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCiAgICAgICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9
OwogCisgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1
cmVEZXZpY2UpIH07CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y3JlYXRlKG1fcHJvY2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURldmljZSkgfTsKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApp
bmRleCBjNGY4ZDA1Y2I2NWMwODU5MjZkZjZjMWI3Y2NmOGUyMGU3MGQxYjExLi43MmRkOTljNDhl
ZTQzYTAxOGEyZTA1MWNiZGVmYjMyZGJiNjgyODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTE4MiwxMyArMTgyLDEz
IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3Jh
bnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94CiB7CiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
VENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JU
Q0NEKSk7CiAgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKQotICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIHRjY2QiKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3gg
ZXh0ZW5zaW9uIGZvciB0Y2NkIik7CiAgICAgZWxzZQogICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b25Gb3JUQ0NELT5jb25zdW1lKCk7CiAKICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bo
b25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRsZUZvck1p
Y3JvcGhvbmUpKTsKICAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUpCi0g
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3Ig
bWljcm9waG9uZSIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIkZhaWxlZCB0
byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIG1pY3JvcGhvbmUiKTsKICAgICBlbHNlCiAg
ICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNvbnN1bWUoKTsKIH0KQEAg
LTIxMiw3ICsyMTIsNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmNyZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cgogewogICAgIGF1dG8gcmVz
dWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlKGRldmljZSk7CiAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYSwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRpbWUgc291cmNlIik7CiAgICAgICAg
IHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQoaWRlbnRpZmllciksIDApOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IGNlMDk1YWUyNTU4ZDdk
OTdhOWFhN2FhNTNlNzZjZWM0ZmI1NDQ4OGQuLmQ1NjFkZGVkODY2Y2Q1YWQ0OWM0NmUyMmZlY2Y5
ZWUyNzMyZGQyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ2LDExICs0NiwxMSBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCks
IGRldmljZS50eXBlKCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2Vy
LCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CiAg
ICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7Ci0gICAgc291cmNlLT5jcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZShkZXZpY2UsIGNvbnN0cmFpbnRzKTsKKyAgICBzb3VyY2UtPmNy
ZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KIApAQCAtNzAs
MTQgKzcwLDE3IEBAIHN0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3Vy
Y2VUeXBlRnJvbURldmljZVR5cGUoQ2FwdHVyZURldmljZTo6CiAgICAgcmV0dXJuIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7CiB9CiAKLVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlLCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFn
ZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFT
b3VyY2Uoc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKGRldmljZVR5cGUpLCBXVEZNb3ZlKG5hbWUp
LCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyLnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0
KSkKK1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5h
Z2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShkZXZpY2UudHlwZSgpKSwgV1RGTW92ZShu
YW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNo
U2FsdCkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fbWFuYWdlciht
YW5hZ2VyKQotICAgICwgbV9kZXZpY2VUeXBlKGRldmljZVR5cGUpCisgICAgLCBtX2RldmljZShk
ZXZpY2UpCiAgICAgLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcykKIHsKLSAgICBzd2l0Y2ggKG1fZGV2aWNlVHlwZSkgeworICAgIGlmIChjb25z
dHJhaW50cykKKyAgICAgICAgbV9jb25zdHJhaW50cyA9ICpjb25zdHJhaW50czsKKworICAgIHN3
aXRjaCAobV9kZXZpY2UudHlwZSgpKSB7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5z
ZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwpAQCAtOTcsMTQgKzEwMCw5IEBAIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpCiAgICAgfQogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAgICBpZiAobV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKSB7Ci0gICAgICAgIG1fZGV2aWNlID0gZGV2aWNlOwotICAgICAgICBt
X2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7Ci0gICAgfQotCi0gICAgY29ubmVjdGlvbigpLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlm
aWVyKCksIGRldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBjb25zdHJhaW50cyksIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJy
b3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKKyAgICBj
b25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQoKSwgbV9jb25z
dHJhaW50cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKGJvb2wgc3Vj
Y2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBh
YmlsaXRpZXMpIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKICAgICAgICAgICAgIGRpZEZh
aWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyMyw3
ICsxMjEsNyBAQCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSgpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKICAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5yZW1v
dmVDbGllbnQoKnRoaXMpOwogCi0gICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKKyAgICBzd2l0
Y2ggKG1fZGV2aWNlLnR5cGUoKSkgewogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5z
ZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwpAQCAtMTg0LDcgKzE4Miw3IEBAIFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291cmNlKCkK
ICAgICBpZiAoIWNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Q2xvbmUgeyBtX2lkZW50aWZpZXIsIGlkZW50aWZpZXIgfSwgMCkpCiAgICAg
ICAgIHJldHVybiAqdGhpczsKIAotICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoaWRlbnRpZmllciwgZGV2aWNlVHlwZSgpLCBTdHJp
bmcgeyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBt
X21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGF1dG8gY2xvbmVT
b3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoaWRlbnRpZmll
ciwgbV9kZXZpY2UsICZtX2NvbnN0cmFpbnRzLCBTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCku
c3RyaW5nKCkgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcykpOwogICAgIGNsb25lU291cmNlLT5zZXRTZXR0aW5ncyhSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MgeyBtX3NldHRpbmdzIH0pOwogICAgIG1fbWFuYWdlci5hZGRTb3Vy
Y2UoY2xvbmVTb3VyY2UuY29weVJlZigpKTsKICAgICByZXR1cm4gY2xvbmVTb3VyY2U7CkBAIC0z
MjksNyArMzI3LDcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpncHVQcm9jZXNz
Q29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8KICAgICAgICAgcmV0dXJuOwog
CiAgICAgbV9tYW5hZ2VyLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oKnRoaXMpOwotICAgIGNy
ZWF0ZVJlbW90ZU1lZGlhU291cmNlKG1fZGV2aWNlLCBtX2NvbnN0cmFpbnRzKTsKKyAgICBjcmVh
dGVSZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXBkYXRlIHRo
ZSB0cmFjayBhY2NvcmRpbmcgY3VycmVudCBzZXR0aW5ncy4KICAgICBpZiAoaXNQcm9kdWNpbmdE
YXRhKCkpCiAgICAgICAgIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgK
aW5kZXggZmExMmM5MjUxNmI4NDQ5MDA2NDMzMDJiMGIzZTg1MjZlNzE2NzM1NC4uZDYzOTM4OGM4
MzE2ZTk4ZjJkOWZmMmNjNDNkMTU1MmFhNDkxNDg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBA
IC01NCw3ICs1NCw3IEBAIGNsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKTsKICAgICB+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOwogCiAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBj
b25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOwogCiBwcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2Vzcyk7CisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKCkgZmluYWw7CkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgY29u
c3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFs
IHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKICAgICB2b2lkIHdoZW5S
ZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOwotICAgIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fZGV2aWNlVHlwZTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlLnR5cGUoKTsg
fQogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOwogCiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQpAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpIGZpbmFsOwog
I2VuZGlmCiAKLSAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CisgICAg
dm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIHZvaWQgZGlkRmFpbChTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgc2V0QXNSZWFkeSgpOwogICAgIHZvaWQgc2V0Q2Fw
YWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7CkBA
IC0xMDcsOCArMTA3LDEwIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKICAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKIAorICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgbV9kZXZpY2U7CisgICAgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRz
OworCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+
IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZSBtX2RldmljZVR5cGUgeyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpVbmtub3duIH07CiAKICAgICBEZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5k
aW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcyB7IGZhbHNlIH07CkBAIC0xMTYsOCArMTE4LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faGFzUmVxdWVzdGVkVG9FbmQgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX2Vycm9yTWVz
c2FnZTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7Ci0g
ICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBtX2RldmljZTsKLSAgICBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCmluZGV4IGMxZmY0ZTUzZTkyZmIwMTRmYzY4ODBhZGRjMjY2MGEyN2E5
ZDhiNDEuLmM1NTcwZWQyMTg5MjRkYTkyZTU2NWE4OWY1M2QwNDQzMmUxMzIzMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcApAQCAtMTQ0LDkgKzE0NCw2IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0Zh
Y3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKIHsKLSAgICBpZiAoIWNvbnN0cmFpbnRzKQotICAgICAgICByZXR1cm4geyB9OwotCiAjaWYg
IUVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiQXVkaW8gY2FwdHVyZSBp
biBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9OwpAQCAtMTU4LDcgKzE1NSw3IEBA
IENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rv
cnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
czo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAot
ICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29u
c3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFu
YWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KGJvb2wgdmFsdWUpCkBAIC0xNjgsMTUgKzE2NSwxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2
YQogCiBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9G
YWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpCiB7Ci0gICAgaWYgKCFjb25zdHJhaW50cykKLSAgICAgICAgcmV0dXJuIHsgfTsKLQogI2lm
ICFFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cykKICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVvIGNhcHR1cmUg
aW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgogCi0gICAgcmV0
dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50
cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUo
ZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKQEAgLTE4OCwxMCArMTgyLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Vmlk
ZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYKIAogQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5Ojpj
cmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGlmICghY29uc3RyYWlu
dHMpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2Vy
LCBmYWxzZSk7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyLCBmYWxzZSk7CiB9CiAKIHZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMwYzIzMGVlOWE5MDg4NGE3
ZTdiYWRkMTU4ZWE1ZjU2MTMwNTVhMGYuLjQwNzVlMGI3NDNjODRjYzNlYWRlYzU0OTMyNTE1OWUw
OTk3Y2FlNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0wNSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIGF1ZGlvIGNhcHR1cmUgZm9y
IHNwZWVjaCByZWNvZ25pdGlvbiBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL3Jl
c3RhcnQtcmVjb2duaXRpb24tYWZ0ZXItc3RvcC5odG1sOgorICAgICAgICAqIGZhc3Qvc3BlZWNo
cmVjb2duaXRpb24vaW9zL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sOgorICAgICAg
ICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0
bWw6CisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2du
aXRpb24uaHRtbDoKKwogMjAyMS0wMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBzdXJlIGNsaWNrIGF0dHJpYnV0aW9uIGlzIHByb2Nlc3NlZCBp
biBjYXNlIG9mIHJlZGlyZWN0ZWQga2VwdCBhbGl2ZSBsb2FkcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvcmVzdGFydC1yZWNvZ25pdGlvbi1hZnRl
ci1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9yZXN0
YXJ0LXJlY29nbml0aW9uLWFmdGVyLXN0b3AuaHRtbAppbmRleCBlZmM1ODRiNzVjMDFmZmNlZTQy
YjA3NzU3YTZhOTkwM2ExNmVlYTI1Li4zN2QxMmQ3MWU0NWE5YTY1ZjZhZmNiNTI5ZjZhYTg0NGM0
NzQ1NzRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL2lv
cy9yZXN0YXJ0LXJlY29nbml0aW9uLWFmdGVyLXN0b3AuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9yZXN0YXJ0LXJlY29nbml0aW9uLWFmdGVyLXN0b3Au
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZD1mYWxzZSBdIC0tPgorPCFET0NU
WVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vaW9zL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3Mvc3RhcnQtcmVjb2duaXRpb24tdGhl
bi1zdG9wLmh0bWwKaW5kZXggZGZlYjUyYjY2M2IxMWMzM2FhNmQyYzU0OTA3NjE5YjA1NGNkOWIw
NC4uOGQxNjQ5YjQyMWU0Nzg5ZDEwYzc5YWZmNDZmNDRkYTY1YWY2MDliYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3Mvc3RhcnQtcmVjb2duaXRpb24t
dGhlbi1zdG9wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9p
b3Mvc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENhcHR1cmVBdWRpb0luR1BVUHJv
Y2Vzc0VuYWJsZWQ9ZmFsc2UgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4K
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29n
bml0aW9uLXRoZW4tc3RvcC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbAppbmRleCA1ODAyYmYxNGNjMTg1Nzkz
NGRiNGU3OTQxMjU5OTk2MTIwNzk0YjZiLi4wNDVjOGMwN2E3MDA5ZTVhZDYwMjUxMDBiZWVlZGQ1
NjAyMTA0YzJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9u
L3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENhcHR1
cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ9ZmFsc2UgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9u
L3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbAppbmRleCA5ZTA1MDg5YTMy
YjE0N2UxMGY5ZWFjZDM3MzFiZDE2NjFlMTdjNDAxLi43YTQ2ZGQwYmFkOTBjZThhZmU5OGNlNWFl
NTJiNTU5OWI2ZTA4MDQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIENhcHR1
cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ9ZmFsc2UgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>