<?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>205056</bug_id>
          
          <creation_ts>2019-12-10 03:42:08 -0800</creation_ts>
          <short_desc>Add support for Audio Capture in GPUProcess</short_desc>
          <delta_ts>2019-12-20 03:48: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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>205328</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1597136</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-10 03:42:08 -0800</bug_when>
    <thetext>Add support for Audio Capture in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597142</commentid>
    <comment_count>1</comment_count>
      <attachid>385249</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-10 04:35:53 -0800</bug_when>
    <thetext>Created attachment 385249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599378</commentid>
    <comment_count>2</comment_count>
      <attachid>385880</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-17 06:13:35 -0800</bug_when>
    <thetext>Created attachment 385880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599380</commentid>
    <comment_count>3</comment_count>
      <attachid>385880</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-17 06:20:13 -0800</bug_when>
    <thetext>Comment on attachment 385880
Patch

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

&gt; Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp:96
&gt; +    if (m_disableAudioSessionCheck) {

Do you mean &quot;if (!m_disableAudioSessionCheck)&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599382</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-17 06:21:42 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 385880 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=385880&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp:96
&gt; &gt; +    if (m_disableAudioSessionCheck) {
&gt; 
&gt; Do you mean &quot;if (!m_disableAudioSessionCheck)&quot; ?

Right!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599383</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-17 06:22:18 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; (In reply to Eric Carlson from comment #3)
&gt; &gt; Comment on attachment 385880 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=385880&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp:96
&gt; &gt; &gt; +    if (m_disableAudioSessionCheck) {
&gt; &gt; 
&gt; &gt; Do you mean &quot;if (!m_disableAudioSessionCheck)&quot; ?
&gt; 
&gt; Right!

Need to hook in WTR crash reports with the GPU process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599393</commentid>
    <comment_count>6</comment_count>
      <attachid>385882</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-17 06:34:13 -0800</bug_when>
    <thetext>Created attachment 385882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599467</commentid>
    <comment_count>7</comment_count>
      <attachid>385882</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-17 11:03:24 -0800</bug_when>
    <thetext>Comment on attachment 385882
Patch

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

&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:80
&gt; +    , m_userMediaCaptureManagerProxy(makeUnique&lt;UserMediaCaptureManagerProxy&gt;(makeUniqueRef&lt;GPUProxyForCapture&gt;(*this)))

Can we allocate this lazily?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599821</commentid>
    <comment_count>8</comment_count>
      <attachid>385977</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-18 08:29:30 -0800</bug_when>
    <thetext>Created attachment 385977
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599823</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-18 08:29:56 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #7)
&gt; Comment on attachment 385882 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=385882&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:80
&gt; &gt; +    , m_userMediaCaptureManagerProxy(makeUnique&lt;UserMediaCaptureManagerProxy&gt;(makeUniqueRef&lt;GPUProxyForCapture&gt;(*this)))
&gt; 
&gt; Can we allocate this lazily?

Done, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599900</commentid>
    <comment_count>10</comment_count>
      <attachid>385977</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 11:40:15 -0800</bug_when>
    <thetext>Comment on attachment 385977
Patch for landing

Clearing flags on attachment: 385977

Committed r253705: &lt;https://trac.webkit.org/changeset/253705&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599901</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 11:40:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599902</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-18 11:43:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/58051486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600296</commentid>
    <comment_count>13</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-12-19 08:58:19 -0800</bug_when>
    <thetext>Looks like the changes in https://trac.webkit.org/changeset/253705/webkit
brok a test, tracking in https://bugs.webkit.org/show_bug.cgi?id=205455</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600674</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-20 03:48:27 -0800</bug_when>
    <thetext>(In reply to Truitt Savell from comment #13)
&gt; Looks like the changes in https://trac.webkit.org/changeset/253705/webkit
&gt; brok a test, tracking in https://bugs.webkit.org/show_bug.cgi?id=205455

Will be fixed by https://bugs.webkit.org/show_bug.cgi?id=205492</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385249</attachid>
            <date>2019-12-10 04:35:53 -0800</date>
            <delta_ts>2019-12-17 06:13:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205056-20191210133551.patch</filename>
            <type>text/plain</type>
            <size>30790</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3ZDBhYjQ4NGE0NWYzMjkw
M2ZhZmUyOTUwZTM5NzQ1ODViOWU5OTguLjRiMGI2NmYyMDRmMzY5OTY0NTE4ODlkMDU0NDgxMzQw
ZWE2NWY5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTktMTItMTAgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRp
byBDYXB0dXJlIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgYW5kIFByb3h5IHRv
IGJlIGFibGUgdG8gd29yayB3aXRoIEdQVSBwcm9jZXNzLgorCisgICAgICAgIENvdmVyZWQgYnkg
cmViYXNlZCB0ZXN0LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktp
dDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlRnJvbUdQVVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRTaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlNvdXJjZTo6c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnJlcXVlc3RUb0Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0
dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNv
dXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
Y2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpTb3VyY2U6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmNhcGFiaWxpdGll
cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmFw
cGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6c291cmNlRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpoYXNFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21HUFVQcm9jZXNzKToKKwogMjAxOS0xMi0wOSAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgbWVkaWEgaW4gdGhlIEdQVSBw
cm9jZXNzIHByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBiZDEzOWZlNTMzMWJjY2UzNmMzMzQz
YjE1MjE3ZDAxMWYyNTI0YzM4Li5jZTMxNzk0YzYyZDkwZmNhMDU0ZGEyYmIyMzJiMjQxYjU5Zjg4
ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNiwxMyArMzYsMzYgQEAKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
TWVzc2FnZXMuaCIKIAorI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgR1BV
UHJveHlGb3JDYXB0dXJlIGZpbmFsIDogcHVibGljIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkNvbm5lY3Rpb25Qcm94eSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgR1BVUHJveHlGb3JDYXB0dXJlKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIHByb2Nlc3MpCisgICAgICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisgICAgeworICAg
ICAgICAvLyBGSVhNRTogUGFzcyB3aGV0aGVyIG1vY2sgb3Igbm90IGZyb20gVUlQcm9jZXNzLgor
ICAgICAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJFbmFibGVkKHRydWUpOworICAgIH0KK3ByaXZhdGU6CisgICAgdm9pZCBh
ZGRNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImIHJlY2VpdmVyKSBmaW5hbCB7IH0KKyAgICB2b2lkIHJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJO
YW1lKSBmaW5hbCB7IH0KKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7
IHJldHVybiBtX3Byb2Nlc3MuY29ubmVjdGlvbigpOyB9CisKKyAgICBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworI2VuZGlmCisKIFJlZjxHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzPiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoR1BVUHJvY2VzcyYg
Z3B1UHJvY2VzcywgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZp
ZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdVBy
b2Nlc3MsIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBjb25uZWN0aW9uSWRlbnRpZmllcikpOwpAQCAt
NTIsNiArNzUsOSBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRp
ZmllciwgKnRoaXMpKQogICAgICwgbV9ncHVQcm9jZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dl
YlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5KG1ha2VVbmlxdWU8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4obWFrZVVu
aXF1ZVJlZjxHUFVQcm94eUZvckNhcHR1cmU+KCp0aGlzKSkpCisjZW5kaWYKIHsKICAgICBSRUxF
QVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7
CkBAIC02OCw2ICs5NCwyNiBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CiB9CiAKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBtX3VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3Mo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKK30K
Kwordm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBlbmNvZGVyKQoreworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
KyAgICAgICAgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlU3luY01l
c3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCBlbmNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQogewogICAgIFdURkxvZ0Fsd2F5cygiUmVjZWl2ZWQgYW4g
aW52YWxpZCBtZXNzYWdlIFwiJXMuJXNcIiBmcm9tIHRoZSB3ZWIgcHJvY2Vzcy5cbiIsIG1lc3Nh
Z2VSZWNlaXZlck5hbWUudG9TdHJpbmcoKS5kYXRhKCksIG1lc3NhZ2VOYW1lLnRvU3RyaW5nKCku
ZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCmluZGV4IGM2NGE0M2U2NGFmNTEwYzA3NGQ3MDg2ZjdiNjQ2ZmE2YzZh
NGY0NjcuLmQzMDAwMzAyNjFkMTdiZTU5NzQ3MTFkOTMwZmQyNjU3NGYwNDc0ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nl
c3M7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OwogCiBjbGFzcyBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzPgpAQCAtNTUsMTIgKzU2LDE3IEBAIHByaXZhdGU6CiAgICAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIs
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246
OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KSBmaW5hbDsKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNvbnN0IFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7CisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRy
PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IDM0MWQ2N2JhZjJkY2Q1YzEyNmIxMTY0OWU2NWQyMDYzNjk0YjZl
NDcuLmY5YjM1ZDQ1MTMzNjBmZTk2ODkwNWExNmZlZDJjNWQ3NTdkYzhmMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKLSNkZWZp
bmUgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWRlbnRpZmllcikgTUVTU0FHRV9DSEVDS19CQVNF
KG1fcHJveGllcy5pc1ZhbGlkS2V5KGlkZW50aWZpZXIpLCBtX3Byb2Nlc3MuY29ubmVjdGlvbigp
KQorI2RlZmluZSBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChpZGVudGlmaWVyKSBNRVNTQUdFX0NI
RUNLX0JBU0UobV9wcm94aWVzLmlzVmFsaWRLZXkoaWRlbnRpZmllciksICZtX2Nvbm5lY3Rpb25Q
cm94eS0+Y29ubmVjdGlvbigpKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwpAQCAtMTU1LDE1ICsxNTUsMTUgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNF
bmRlZCB7IGZhbHNlIH07CiB9OwogCi1Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKLSAgICA6
IG1fcHJvY2Vzcyhwcm9jZXNzKQorVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYmIGNvbm5l
Y3Rpb25Qcm94eSkKKyAgICA6IG1fY29ubmVjdGlvblByb3h5KFdURk1vdmUoY29ubmVjdGlvblBy
b3h5KSkKIHsKLSAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
KyAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
IH0KIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkoKQogewotICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
CisgICAgbV9jb25uZWN0aW9uUHJveHktPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0K
IAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMm
IGNvbnN0cmFpbnRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJp
bmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xOTYsNyArMTk2LDcgQEAgdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWkKICAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJj
ZSgpOwogICAgICAgICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKICAgICAgICAgQVNT
RVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICAgICAgbV9wcm94aWVzLmFkZChpZCwg
bWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICptX3Byb2Nlc3MuY29ubmVjdGlvbigpLCBXVEZN
b3ZlKHNvdXJjZSkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgbWFrZVVuaXF1ZTxTb3Vy
Y2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291
cmNlKSkpOwogICAgIH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3Zl
KHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNj
ZWVkZWQsIGludmFsaWRDb25zdHJhaW50cywgV1RGTW92ZShzZXR0aW5ncykpOwpAQCAtMjQ4LDkg
KzI0OCw5IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6YXBwbHlDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6CiAgICAgYXV0byYgc291cmNlID0gcHJv
eHktPnNvdXJjZSgpOwogICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLmFwcGx5Q29uc3RyYWludHMo
Y29uc3RyYWludHMpOwogICAgIGlmICghcmVzdWx0KQotICAgICAgICBtX3Byb2Nlc3Muc2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQoaWQsIHNvdXJjZS5zZXR0aW5ncygpKSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvblByb3h5
LT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkFw
cGx5Q29uc3RyYWludHNTdWNjZWVkZWQoaWQsIHNvdXJjZS5zZXR0aW5ncygpKSwgMCk7CiAgICAg
ZWxzZQotICAgICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OkFwcGx5Q29uc3RyYWludHNGYWlsZWQoaWQsIHJlc3VsdC0+YmFkQ29uc3RyYWludCwg
cmVzdWx0LT5tZXNzYWdlKSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkFwcGx5Q29uc3Ry
YWludHNGYWlsZWQoaWQsIHJlc3VsdC0+YmFkQ29uc3RyYWludCwgcmVzdWx0LT5tZXNzYWdlKSwg
MCk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUodWludDY0
X3QgY2xvbmVkSUQsIHVpbnQ2NF90IG5ld1NvdXJjZUlEKQpAQCAtMjU4LDcgKzI1OCw3IEBAIHZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUodWludDY0X3QgY2xvbmVkSUQs
IHVpbnQ2NF90IG5ld1NvdXJjZUlECiAgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhjbG9u
ZWRJRCkpOwogICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CiAg
ICAgaWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCi0gICAgICAgIG1f
cHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJj
ZUlELCAqbV9wcm9jZXNzLmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsK
KyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94
eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIHByb3h5LT5z
b3VyY2UoKS5jbG9uZSgpKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6cmVxdWVzdFRvRW5kKHVpbnQ2NF90IHNvdXJjZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CmluZGV4IDRhMTUwYWY2MWNiNDZjYTFjNTNhNzVkMTMwM2Y1Y2YzZTQ1Y2FiZjEuLjQyZThjOWM1
OGQ3NTJiYTg1ODgzNTMyMzY3ZTk3NGFkMmQwM2Y3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQxLDE0ICs0MiwyMyBAQCBjbGFzcyBXZWJQcm9j
ZXNzUHJveHk7CiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IDogcHJpdmF0ZSBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNz
UHJveHkmKTsKKyAgICBjbGFzcyBDb25uZWN0aW9uUHJveHkgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgdmlydHVhbCB+Q29ubmVjdGlvblByb3h5KCkgPSBkZWZhdWx0OworICAgICAgICB2aXJ0dWFs
IHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlLCBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSkgPSAwOworICAgICAgICB2aXJ0dWFsIElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbigpID0gMDsKKyAgICB9OworICAgIGV4cGxpY2l0IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJik7CiAgICAg
flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKIAotICAgIFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2VzczsgfQogICAgIHZvaWQgY2xlYXIoKTsK
IAogICAgIHZvaWQgc2V0T3JpZW50YXRpb24odWludDY0X3QpOwogCisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOyB9CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mIGVuY29kZXIpIHsgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOyB9CisKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtNjcsNyArNzcsNyBAQCBwcml2YXRlOgogICAg
IGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U291cmNlUHJveHk+PiBtX3Byb3hpZXM7
Ci0gICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7CisgICAgVW5pcXVlUmVmPENvbm5lY3Rp
b25Qcm94eT4gbV9jb25uZWN0aW9uUHJveHk7CiAgICAgV2ViQ29yZTo6T3JpZW50YXRpb25Ob3Rp
ZmllciBtX29yaWVudGF0aW9uTm90aWZpZXIgeyAwIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5MDZiYTA4YWYzYWFiZmMwYWIxODM4
NGQ2MWVjMmNlN2Y3M2VkZTdlLi4xNzE0ZjUyMjcyMmUzNGZjNjZmOGZjNmM4OGZkMGJlYTBlZGU5
NWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTE1MCw2ICsxNTAsMjAgQEAgUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5Ojpj
cmVhdGVGb3JTZXJ2aWNlV29ya2VycyhXZWJQcm9jZXNzUG9vbCYgcHIKIH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBVSVByb3h5
Rm9yQ2FwdHVyZSBmaW5hbCA6IHB1YmxpYyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpD
b25uZWN0aW9uUHJveHkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIGV4cGxpY2l0IFVJUHJveHlGb3JDYXB0dXJlKFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcykg
OiBtX3Byb2Nlc3MocHJvY2VzcykgeyB9Citwcml2YXRlOgorICAgIHZvaWQgYWRkTWVzc2FnZVJl
Y2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVz
c2FnZVJlY2VpdmVyJiByZWNlaXZlcikgZmluYWwgeyBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2Vp
dmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIHJlY2VpdmVyKTsgfQorICAgIHZvaWQgcmVtb3ZlTWVz
c2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUpIGZp
bmFsIHsgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1l
KTsgfQorICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuICpt
X3Byb2Nlc3MuY29ubmVjdGlvbigpOyB9CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2Vz
czsKK307CisjZW5kaWYKKwogV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJv
Y2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3Jl
LCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKICAgICA6IEF1eGlsaWFyeVByb2Nlc3NQcm94eShw
cm9jZXNzUG9vbC5hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKICAgICAsIG1fcmVz
cG9uc2l2ZW5lc3NUaW1lcigqdGhpcykKQEAgLTE2Miw3ICsxNzYsNyBAQCBXZWJQcm9jZXNzUHJv
eHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVE
YXRhU3RvcmUqCiAgICAgLCBtX3Zpc2libGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2
ZW50KSB7IHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAgICAgLCBt
X3dlYnNpdGVEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eShtYWtlVW5pcXVlPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KCp0aGlzKSkKKyAg
ICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShtYWtlVW5pcXVlPFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk+KG1ha2VVbmlxdWVSZWY8VUlQcm94eUZvckNhcHR1cmU+KCp0aGlz
KSkpCiAjZW5kaWYKICAgICAsIG1faXNQcmV3YXJtZWQoaXNQcmV3YXJtZWQgPT0gSXNQcmV3YXJt
ZWQ6OlllcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMTc4NTQ1YmZlMTJkNjg4ZDk5Yzk3ZDM2OGE4ZTM1
MzIzOTFlNzg3Ni4uM2QxZGJjZDFmNmVkODhkMjcxZGIwODZiMDk1YTY3NTlmN2U1NTIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCkBAIC01MCw2
ICs1MiwxNyBAQCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6fkdQVVByb2Nlc3NDb25uZWN0aW9uKCkK
ICAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKIH0KIAordm9pZCBHUFVQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IGNhcHR1cmVNYW5hZ2VyID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcj4oKSkKKyAgICAgICAgICAgIGNhcHR1cmVNYW5hZ2VyLT5kaWRS
ZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCit9CisKIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggZTdkYTcyZTUzMDUw
OWJlODc5NWE0ZWE1MmIyZDQzMWNkMzgyOTJmYS4uZTFmYzdjOTJiZmMwNjZjOTEwMjNlMWIzNzY5
ODhhMWE1M2Y0ZjE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIEdQ
VVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAgICAv
LyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCmluZGV4IDU4NzUzYjM2YjA2YWNjYmY4NjM0YTAyYzViYmJiNmU4NjZj
NGQ4YTMuLjliMGVlYjRlMzI1YmE5NWFhMWYzYjQwZWUwZDc0ZGVkNDdjNzI5YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgogI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKQEAgLTEyNSwxMiArMTI2LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gbV9zZXR0aW5nczsKICAgICB9CiAKLSAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbAotICAgIHsKLSAgICAgICAg
aWYgKCFtX2NhcGFiaWxpdGllcykKLSAgICAgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gbV9tYW5h
Z2VyLmNhcGFiaWxpdGllcyhtX2lkKTsKLSAgICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLnZh
bHVlKCk7Ci0gICAgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
IGNhcGFiaWxpdGllcygpIGZpbmFsOwogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICB2b2lk
IHNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQpAQCAt
MjE2LDMxICsyMTIsMjYgQEAgcHVibGljOgogCiAgICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9CiAKKyAg
ICB2b2lkIHNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkgeyBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MgPSB2YWx1ZTsgfQorICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzczsg
fQorCisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIGhhc0Vu
ZGVkKCkgZmluYWw7CisKIHByaXZhdGU6Ci0gICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBm
aW5hbCB7IG1fbWFuYWdlci5zdGFydFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KLSAgICB2b2lkIHN0
b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RvcFByb2R1Y2luZ0RhdGEobV9p
ZCk7IH0KKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3Rv
cFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICBib29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAg
ICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29u
ZmlndXJhdGlvbigpIGZpbmFsIHsgfQotICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbCB7IG1fbWFu
YWdlci5zb3VyY2VFbmRlZChtX2lkKTsgfQogCi0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFp
bnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAotICAgIHsKLSAgICAgICAgbV9t
YW5hZ2VyLmFwcGx5Q29uc3RyYWludHMobV9pZCwgY29uc3RyYWludHMpOwotICAgICAgICBtX3Bl
bmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgfQorICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmluYWw7CiAK
LSAgICB2b2lkIHJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYpCi0g
ICAgewotICAgICAgICBtX21hbmFnZXIucmVxdWVzdFRvRW5kKG1faWQpOwotICAgIH0KLQotICAg
IHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKQotICAgIHsKLSAgICAgICAgbV9tYW5hZ2VyLnJlcXVl
c3RUb0VuZChtX2lkKTsKLSAgICB9CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6T2JzZXJ2ZXImKSB7IHN0b3BCZWluZ09ic2VydmVkKCk7IH0KKyAgICB2b2lkIHN0
b3BCZWluZ09ic2VydmVkKCk7CiAKICAgICB1aW50NjRfdCBtX2lkOwogICAgIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CkBAIC0yNTQsNiArMjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIG1fZGV2aWNlVHlwZSB7IENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlVua25vd24gfTsKIAogICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5k
bGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOworICAgIGJvb2wgbV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQpAQCAt
MjkzLDcgKzI4NSw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUo
Y29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAgICAgICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldERpc3BsYXlDYXB0dXJlRmFjdG9yeSht
X2Rpc3BsYXlGYWN0b3J5KTsKIH0KIAotV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpCitXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogewog
ICAgIGlmICghY29uc3RyYWludHMpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0zMDIsMTEgKzI5
NCwyMiBAQCBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBzZXR0aW5nczsKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAgIGJvb2wgc3Vj
Y2VlZGVkOwotICAgIGlmICghbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHMoaWQsIGRldmljZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyksIE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNzYWdlLCBz
ZXR0aW5ncyksIDApKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBhdXRvKiBjb25uZWN0
aW9uID0gc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA/ICZtX3Byb2Nlc3MuZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkgOiBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKKyNlbHNlCisgICAgQVNTRVJUKCFzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCk7CisjZW5kaWYKKyAgICBpZiAoIWNvbm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyks
IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JN
ZXNzYWdlLCBzZXR0aW5ncyksIDApKQorICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3Nh
Z2UpOworCisgICAgaWYgKCFzdWNjZWVkZWQpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9y
TWVzc2FnZSk7CiAKICAgICBhdXRvIHR5cGUgPSBkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgPyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbyA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVv
OwogICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIo
aWQpLCB0eXBlLCBkZXZpY2UudHlwZSgpLCBTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmlu
ZygpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBpZCwgKnRoaXMpKTsKKyAgICBpZiAoc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykKKyAgICAgICAgc291cmNlLT5zZXRTaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogICAgIHNvdXJjZS0+c2V0U2V0dGlu
Z3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgIG1fc291cmNlcy5hZGQoaWQsIHNvdXJjZS5jb3B5
UmVmKCkpOwogICAgIHJldHVybiBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3Zl
KHNvdXJjZSkpOwpAQCAtMzE2LDcgKzMxOSw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OnNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpCiB7CiAgICAgaWYgKGF1dG8gc291cmNlID0g
bV9zb3VyY2VzLmdldChpZCkpIHsKICAgICAgICAgc291cmNlLT5zdG9wKCk7Ci0gICAgICAgIHNv
dXJjZUVuZGVkKGlkKTsKKyAgICAgICAgc291cmNlLT5oYXNFbmRlZCgpOwogICAgIH0KIH0KIApA
QCAtMzI0LDcgKzMyNyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcHR1cmVG
YWlsZWQodWludDY0X3QgaWQpCiB7CiAgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdl
dChpZCkpIHsKICAgICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVkKCk7Ci0gICAgICAgIHNvdXJj
ZUVuZGVkKGlkKTsKKyAgICAgICAgc291cmNlLT5oYXNFbmRlZCgpOwogICAgIH0KIH0KIApAQCAt
MzczLDM5ICszNzYsNTMgQEAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUKIH0KICNlbmRpZgogCi12
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3Qg
aWQpCitJUEM6OkNvbm5lY3Rpb24qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmNv
bm5lY3Rpb24oKQogewotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisgICAgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA/ICZX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKSA6IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCk7CisjZWxzZQorICAgIHJldHVybiBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KTsKKyNlbmRpZgogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVj
aW5nRGF0YSh1aW50NjRfdCBpZCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsK
KyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YShtX2lkKSwgMCk7CiB9CiAKLVdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcGFi
aWxpdGllcyh1aW50NjRfdCBpZCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogewotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIG1fcHJvY2Vzcy5zZW5kU3luYyhNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2FwYWJpbGl0aWVzKGlkKSwgTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNhcGFiaWxpdGllczo6UmVwbHko
Y2FwYWJpbGl0aWVzKSwgMCk7Ci0gICAgcmV0dXJuIGNhcGFiaWxpdGllczsKKyAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQ
cm9kdWNpbmdEYXRhKG1faWQpLCAwKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6c2V0TXV0ZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpCitjb25zdCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291
cmNlOjpjYXBhYmlsaXRpZXMoKQogewotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTZXRNdXRlZChpZCwgbXV0ZWQpLCAwKTsKKyAgICBp
ZiAoIW1fY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMgY2FwYWJpbGl0aWVzOworICAgICAgICBjb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRpZXMgeyBtX2lkIH0s
IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRpZXM6OlJl
cGx5KGNhcGFiaWxpdGllcyksIDApOworICAgICAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUo
Y2FwYWJpbGl0aWVzKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMudmFsdWUo
KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50cyh1
aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMp
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMo
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3Ry
YWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMo
aWQsIGNvbnN0cmFpbnRzKSwgMCk7CisgICAgbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxi
YWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25z
dHJhaW50cyhtX2lkLCBjb25zdHJhaW50cyksIDApOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpzb3VyY2VFbmRlZCh1aW50NjRfdCBpZCkKIHsKLSAgICBtX3Byb2Nlc3Muc2Vu
ZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kKGlkKSwgMCk7CiAg
ICAgbV9zb3VyY2VzLnJlbW92ZShpZCk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6aGFzRW5kZWQoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZCB9LCAwKTsKKyAgICBt
X21hbmFnZXIuc291cmNlRW5kZWQobV9pZCk7Cit9CisKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQodWludDY0X3QgaWQsIGNvbnN0IFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgaWYgKGF1
dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZCkpCkBAIC00NDQsMTUgKzQ2MSwyMCBAQCBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNsb25lVmlkZW9T
b3VyY2UoU291cmNlJiBzb3VyYwogICAgIHJldHVybiBjbG9uZVNvdXJjZTsKIH0KIAotdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmVxdWVzdFRvRW5kKHVpbnQ2NF90IHNvdXJjZUlEKQor
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgp
CiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlJlcXVlc3RUb0VuZCB7IHNvdXJjZUlEIH0sIDApOworICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5k
IHsgbV9pZCB9LCAwKTsKIH0KIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpCisgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykgeworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKyAgICAgICAgcmV0dXJuIG1fbWFuYWdlci5jcmVhdGVDYXB0dXJlU291cmNl
KGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzLCBtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpOworI2Vsc2UKICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
IHsgIkF1ZGlvIGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsK
KyNlbmRpZgorICAgIH0KICAgICByZXR1cm4gbV9tYW5hZ2VyLmNyZWF0ZUNhcHR1cmVTb3VyY2Uo
ZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5oCmluZGV4IGVjZWVmMDhkZGZmZTE1N2Y2MDAxMDhmNDZjYjVmZGQxM2ZmYzY3MTIuLmYzOGZl
NDlmZDQ0ZmM3YzUyZTdkZmNlYzgyYmJhZDFlZmY2ODAwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBA
IC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVt
ZW50TmFtZSgpOwogCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKIHByaXZhdGU6CiAgICAgLy8g
V2ViUHJvY2Vzc1N1cHBsZW1lbnQKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOwpAQCAtOTYsNyArOTgsNyBAQCBwcml2YXRlOgog
ICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwogICAgIH07CiAKLSAg
ICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzID0gZmFsc2UpOwogCiAgICAgY2xhc3MgTm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyIDogcHVi
bGljIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2VNYW5hZ2VyIHsKICAgICBwdWJsaWM6CkBAIC0xMjgs
NyArMTMwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRf
dCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXModWludDY0X3QpOwot
ICAgIHZvaWQgc2V0TXV0ZWQodWludDY0X3QsIGJvb2wpOwogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFp
bGVkKHVpbnQ2NF90LCBTdHJpbmcmJiwgU3RyaW5nJiYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVkZDE5OTM0YmI5Y2Zl
MDg3MWM3MDYzYjc2NDQwODU1NzcyYWQzYjcuLjhiMDk0ZjQ5YTVhMjNlZjMzYjJiNjcxZDQ0MjY5
NTk1N2RiYzM5YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMi0xMCAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEF1ZGlv
IENhcHR1cmUgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1MDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVBdWRpb0luR1BVUHJvY2Vz
cy1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgdGltZXItYmFzZWQgZW5xdWV1ZWlu
ZyBzaG91bGQgcmVzcGVjdCBwYWdlIGNhY2hlIHN1c3BlbmQvcmVzdW1lCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVBdWRpb0luR1BVUHJvY2Vzcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVBdWRpb0luR1BV
UHJvY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggYWFiMGM2ZDFmMGY5MWMxMGJmYTIxMjI3YWZhYTVm
NjNkM2NjYTVlMy4uYTliYTUwMDMwMzQ5NmE4NmUxYTdlZWYzZWNkYThmMmViNDYyOWNlNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9jYXB0dXJlQXVkaW9JbkdQVVBy
b2Nlc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vY2Fw
dHVyZUF1ZGlvSW5HUFVQcm9jZXNzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKLUNPTlNP
TEUgTUVTU0FHRTogRmFpbGVkIHRvIGNyZWF0ZSBNZWRpYVN0cmVhbSBhdWRpbyBzb3VyY2U6IEF1
ZGlvIGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQKIAogCi1GQUlMIFBs
YXkgYXVkaW8gY2FwdHVyZWQgaW4gR1BVIHByb2Nlc3MgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90UmVhZGFibGVFcnJvcjogVGhlIEkvTyBy
ZWFkIG9wZXJhdGlvbiBmYWlsZWQuIgorUEFTUyBQbGF5IGF1ZGlvIGNhcHR1cmVkIGluIEdQVSBw
cm9jZXNzIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385880</attachid>
            <date>2019-12-17 06:13:35 -0800</date>
            <delta_ts>2019-12-17 06:34:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205056-20191217151334.patch</filename>
            <type>text/plain</type>
            <size>42777</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ2OWZkODI1YTJhMzk4
NmZlYWQxY2IyYTE5YTM5MWY1Mzc1MDgwMS4uOWFlNDk4ODhkMWZlYjRkNjg0YzE1ZDJhMWM1YTA5
M2I4M2IzMGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEyLTE3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
QXVkaW8gQ2FwdHVyZSBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFeHBvcnQgc29tZSBXZWJDb3JlIGhlYWRlcnMuCisgICAgICAg
IEFsbG93IGRpc2FibGluZyB0aGUgYXVkaW8gc2Vzc2lvbiBkZWJ1ZyBhc3NlcnQgaW4gdGhlIEdQ
VSBwcm9jZXNzLgorICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0RGlzYWJsZUF1ZGlvU2Vzc2lvbkNoZWNrKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5oOgorCiAyMDE5
LTEyLTE3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRh
dGUgc2Vzc2lvbiBjYXRlZ29yeSBpbiBNb2NrQXVkaW9TaGFyZWRVbml0IGFzIGRvbmUgaW4gQ29y
ZUF1ZGlvU2hhcmVkVW5pdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5ZTg5YTYyZWZmYzljZTA5ODc5NTgyNTQ4NmM0
OWZjNmI0Y2YyMWU2Li5jZDYwZDVjZjlmZjhkNTY4ODJkM2Y2MjJjMDFiODEzMmExNDYzYmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE5LTEyLTE3ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQXVkaW8gQ2FwdHVyZSBp
biBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWtlIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIGFuZCBQcm94eSBhYmxlIHRvIHdvcmsg
d2l0aCBHUFUgcHJvY2Vzcy4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGNhcHR1cmluZyBhdWRp
byBpbiB0aGUgR1BVIHByb2Nlc3MsIHRoaXMgaXMgbGltaXRlZCB0byBtb2NrIGF1ZGlvIHNvdXJj
ZXMgZm9yIG5vdworICAgICAgICBhcyB3ZSBkbyBub3Qgc3VwcG9ydCBBdWRpb1Nlc3Npb24gaW4g
dGhlIEdQVSBwcm9jZXNzLgorICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdC4KKworICAg
ICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNsb25lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
RnJvbUdQVVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcyBjb25zdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpT
b3VyY2U6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpjYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6Y29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BQcm9kdWNp
bmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6Omhhc0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MpOgorCiAyMDE5LTEyLTE3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZVN0b3JhZ2VFbmdp
bmUgc2hvdWxkIG5vdCBjbGVhciBjYWNoZXMgbWVtb3J5IHJlcHJlc2VudGF0aW9uIGZvciBlcGhl
bWVyYWwgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1NTExZTBlMjAyMzg5ODI4Mzg2OGQ1MmMwMDUyOTYzOGQzNGZk
ODRkLi4zNTMxYzY4YjkwZjU5MGNhNjhlMzdmODliYWNhYmFmZDJlYjY1YWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDUw
LDYgKzEwNTAsOCBAQAogCQk0MTI5QzlBQjFGNTlDNTczMDA5RDc0MDMgLyogUmVhZGFibGVTdHJl
YW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxOEMzOTVCMUM4RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMjlDOUFGMUY1
OUNGNUIwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBS
ZWFkYWJsZVN0cmVhbVNpbmsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0MTJERTRCODIxOTI4NUMwMDA3NUYzQTcgLyogUlRDUnRwQ2FwYWJpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTJE
RTRCNjIxOTI4NUJGMDA3NUYzQTcgLyogUlRDUnRwQ2FwYWJpbGl0aWVzLmggKi87IH07CisJCTQx
MkRFRjFEMjNBOTE4NjYwMEQ4NDBGNiAvKiBNb2NrQXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNFQjFFMEM0QUU1MDAw
RDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMkRFRjFGMjNBOTE4QTMwMEQ4NDBGNiAvKiBCYXNl
QXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc3RjUxRTIzODI1NDVFMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMzND
QjhCMjBGODBFOTkwMEU4OUIxMSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzM0NCODkyMEY4
MEU4NjAwRTg5QjExIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi87IH07CiAJ
CTQxMzZDNTdBMjM5OEU1QkUwMDI0OTdEMyAvKiBJbnRlcm5hbHNNYXBMaWtlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzZDNTc4MjM5OEU1QjUw
MDI0OTdEMyAvKiBJbnRlcm5hbHNNYXBMaWtlLmNwcCAqLzsgfTsKIAkJNDEzNkM1N0MyMzk4RUND
RjAwMjQ5N0QzIC8qIEpTSW50ZXJuYWxzTWFwTGlrZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDZGM0U5MjFDMUY4NTU1MDA2MURCRDYgLyogSlNJ
bnRlcm5hbHNNYXBMaWtlLmNwcCAqLzsgfTsKQEAgLTMyMjYzLDYgKzMyMjY1LDcgQEAKIAkJCQk3
Q0M5NzIyRTFGOTNFMzM2MDAwNEQ0Q0YgLyogU2V0dGluZ3NCYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMkRFRjFEMjNBOTE4NjYwMEQ4NDBGNiAvKiBNb2NrQXVkaW9TaGFyZWRV
bml0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hh
ZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZERkY0OTgxREMyNjAzMTAwQjgwQjQ4IC8q
IFNoYWRvd1Jvb3RNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDQ1QTk0RjE3NUQzRjNFMDBD
MjFFQzggLyogU2hhcGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzI4OTAsNiArMzI4OTMsNyBAQAog
CQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJv
YXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQg
LyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMkRFRjFGMjNB
OTE4QTMwMEQ4NDBGNiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREM5NzlGNTFDNDk4QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0RTU3RUUxMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250
TWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVCNEMyNEQxNTA5MjM2QzAwQTZF
RjM3IC8qIFdlYkNvcmVOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5p
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlv
U2hhcmVkVW5pdC5jcHAKaW5kZXggYjA2Nzc2ZjllMDA4NjYwMDhmMTkwZTcwNTY3MjE4N2M1N2Rl
NTE5Yi4uNzNmMmM4NmY3YTM4Mzc0ZTNhYTM5ZjkyZDc2ZGM4MjMwM2RjMzdiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJl
ZFVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9C
YXNlQXVkaW9TaGFyZWRVbml0LmNwcApAQCAtOTMsOCArOTMsMTAgQEAgdm9pZCBCYXNlQXVkaW9T
aGFyZWRVbml0OjpzdGFydFByb2R1Y2luZ0RhdGEoKQogYm9vbCBCYXNlQXVkaW9TaGFyZWRVbml0
OjpzdGFydFVuaXQoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRp
b0NoYW5nZWQoKTsKLSAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0
ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQpOworICAgIGlmIChtX2Rpc2Fi
bGVBdWRpb1Nlc3Npb25DaGVjaykgeworICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOworICAg
ICAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnkoKSA9PSBB
dWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQpOworICAgIH0KICNlbmRpZgogCiAgICAgaWYgKGF1
dG8gZXJyb3IgPSBzdGFydEludGVybmFsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oCmlu
ZGV4IGIwNjA4NDkwMzMwMjJlM2ZkMTg3Yjg2ZDY1MjU2MGE5NGZjZGZjZGUuLjU3ODlhNzM3NTZm
NzIzZWM5ZWJhNGE2MTk0MDE0YjE5NzE2NDllNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQu
aApAQCAtNzYsNiArNzYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIENhcGFiaWxpdHlWYWx1
ZU9yUmFuZ2Ugc2FtcGxlUmF0ZUNhcGFjaXRpZXMoKSBjb25zdCA9IDA7CiAKKyAgICB2b2lkIHNl
dERpc2FibGVBdWRpb1Nlc3Npb25DaGVjayhib29sIHZhbHVlKSB7IG1fZGlzYWJsZUF1ZGlvU2Vz
c2lvbkNoZWNrID0gdmFsdWU7IH07CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZvckVhY2hDbGll
bnQoY29uc3QgRnVuY3Rpb248dm9pZChDb3JlQXVkaW9DYXB0dXJlU291cmNlJik+JikgY29uc3Q7
CiAgICAgYm9vbCBoYXNDbGllbnRzKCkgY29uc3QgeyByZXR1cm4gIW1fY2xpZW50cy5pc0VtcHR5
KCk7IH0KQEAgLTEwMyw2ICsxMDUsNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaFNldDxDb3JlQXVk
aW9DYXB0dXJlU291cmNlKj4gbV9jbGllbnRzOwogICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBt
X2NsaWVudHNMb2NrOworICAgIGJvb2wgbV9kaXNhYmxlQXVkaW9TZXNzaW9uQ2hlY2sgeyBmYWxz
ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0
LmgKaW5kZXggNTRjNzI3ODIzNjE5ODYzYWVkMmQ4ZDlmZTVjMzQ4OGMxYTQ3YmI0OS4uODAzMjhl
NTAyZWY5YTcwOGE3ZmIwNzQyYzM0ZWNkMWM4ZDMzYTlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVk
VW5pdC5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOwogCiBjbGFzcyBNb2NrQXVkaW9TaGFyZWRVbml0IGZpbmFsIDogcHVibGljIEJhc2VBdWRp
b1NoYXJlZFVuaXQgewogcHVibGljOgotICAgIHN0YXRpYyBNb2NrQXVkaW9TaGFyZWRVbml0JiBz
aW5nbGV0b24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTW9ja0F1ZGlvU2hhcmVkVW5p
dCYgc2luZ2xldG9uKCk7CiAgICAgTW9ja0F1ZGlvU2hhcmVkVW5pdCgpOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGMzNDhlMzBkZThhMjllOTczZWFlYWE2YTliOGE4ZTA5MzNhYTg4MjUu
Ljg0ZGE4MmQwZTM5MWQyMGNlMTUyYTA3MDE0OTExYWY4ZTMzMzczNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTM4LDEzICszOCwzNSBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIEdQ
VVByb3h5Rm9yQ2FwdHVyZSBmaW5hbCA6IHB1YmxpYyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpDb25uZWN0aW9uUHJveHkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIGV4cGxpY2l0IEdQVVByb3h5Rm9yQ2FwdHVyZShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBwcm9jZXNzKQorICAgICAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgIHsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImIHJlY2Vp
dmVyKSBmaW5hbCB7IH0KKyAgICB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKSBmaW5hbCB7IH0KKyAgICBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiBtX3Byb2Nlc3MuY29ubmVjdGlvbigp
OyB9CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworI2Vu
ZGlmCisKIFJlZjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjcmVhdGUoR1BVUHJvY2VzcyYgZ3B1UHJvY2VzcywgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdVByb2Nlc3MsIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBj
b25uZWN0aW9uSWRlbnRpZmllcikpOwpAQCAtNTQsNiArNzYsOSBAQCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nl
c3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVy
Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQogICAgICwgbV9ncHVQcm9j
ZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJ
ZGVudGlmaWVyKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KG1ha2VVbmlxdWU8VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eT4obWFrZVVuaXF1ZVJlZjxHUFVQcm94eUZvckNhcHR1cmU+KCp0
aGlzKSkpCisjZW5kaWYKIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CkBAIC05MCw2ICsxMTUsMTIgQEAgdm9pZCBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIEkKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5k
aWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbV91c2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNv
bm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiB9CiAK
IHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpAQCAtOTksNiArMTMwLDEzIEBA
IHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CisgICAgICAgIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS0+ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGJiZmMxNjgwYmJiMzBlMTk3ZGFmODAz
NjA1Y2ZjNGEyMTc5YWVmNDkuLmRmNjhjYWVlNGMwZTllM2FjYjA0ODk1MGMyNWNiOTA5ZTYwOWVm
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgR1BVUHJvY2VzczsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OworY2xh
c3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcz4KQEAgLTYwLDE1ICs2MSwxOCBAQCBwcml2YXRlOgogICAgIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOwogCiAgICAgLy8g
SVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
UmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgZmluYWw7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwog
CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxHUFVQcm9j
ZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
bV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CisjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVf
cHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggZjliN2YxNzYzOGNlM2ExMGNkZDczNTEw
ZjExYmM1ZTFhYmVlYjFlYy4uNzQxZDljNGM4MDMyMmQwMjBlNzM4MDVjYTA4N2ZlY2UyNGYwYjFm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vY2tBdWRpb1NoYXJlZFVuaXQuaD4KICNpbmNsdWRlIDx3
dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CkBAIC0xMzYsNiArMTM3LDE1IEBAIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MqIEdQVVByb2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9uKFByb2Nlc3NJ
ZGVudGlmaWVyIGlkCiAgICAgcmV0dXJuIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVu
dGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIEdQVVByb2Nlc3M6
OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCit7CisgICAgLy8g
RklYTUU6IEVuYWJsZSB0aGUgYXVkaW8gc2Vzc2lvbiBjaGVjayBieSBpbXBsZW1lbnRpbmcgYW4g
QXVkaW9TZXNzaW9uIGZvciB0aGUgR1BVUHJvY2Vzcy4KKyAgICBNb2NrQXVkaW9TaGFyZWRVbml0
OjpzaW5nbGV0b24oKS5zZXREaXNhYmxlQXVkaW9TZXNzaW9uQ2hlY2soaXNFbmFibGVkKTsKKyAg
ICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJFbmFibGVkKGlzRW5hYmxlZCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuaAppbmRleCBlODg4NzI2ODg3OGZlZDBkMjY3YTA1NGU1YzBhZmNhMzM5
NTg3N2EwLi4xM2YwNGMxZDIxMDU4OTE4MjFjNTQxNWI3OGYzNTRhZjg0YTk3YjRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IEdQ
VVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBjbGFzcyBHUFVQcm9jZXNzIDogcHVibGljIEF1
eGlsaWFyeVByb2Nlc3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxHUFVQcm9jZXNzPiwg
cHVibGljIENhbk1ha2VXZWFrUHRyPEdQVVByb2Nlc3M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShHUFVQcm9jZXNzKTsKIHB1YmxpYzoKLSAgICBHUFVQcm9jZXNzKEF1eGlsaWFyeVByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJik7CisgICAgZXhwbGljaXQgR1BVUHJvY2VzcyhB
dXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5HUFVQcm9j
ZXNzKCk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSA9IFBy
b2Nlc3NUeXBlOjpHUFU7CiAKQEAgLTc0LDcgKzc0LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
cHJvY2Vzc0RpZFRyYW5zaXRpb25Ub0ZvcmVncm91bmQoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRU
cmFuc2l0aW9uVG9CYWNrZ3JvdW5kKCk7Ci0KKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChib29sKTsKKyNlbmRpZgogICAgIC8v
IENvbm5lY3Rpb25zIHRvIFdlYlByb2Nlc3Nlcy4KICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLCBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KaW5kZXggZjE4NDc3OGVmMGY2OWFhNjY2M2I4MTBkYzVjN2FhYjI1N2M4
MjRlZC4uOTQ4MmExOGUwNWNiOGU5N2RlMjgxZGRiMDU1MzllNWU0MThmOTYxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTMxLDYg
KzMxLDEwIEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3MgewogCiAgICAgUHJvY2Vzc0RpZFRyYW5z
aXRpb25Ub0ZvcmVncm91bmQoKQogICAgIFByb2Nlc3NEaWRUcmFuc2l0aW9uVG9CYWNrZ3JvdW5k
KCkKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU2V0TW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZChib29sIGlzRW5hYmxlZCkKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzNDFkNjdiYWYyZGNk
NWMxMjZiMTE2NDllNjVkMjA2MzY5NGI2ZTQ3Li5mOWIzNWQ0NTEzMzYwZmU5Njg5MDVhMTZmZWQy
YzVkNzU3ZGM4ZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNDAsNyArNDAs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL1VuaXF1ZVJlZi5oPgogCi0jZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50
aWZpZXIpIE1FU1NBR0VfQ0hFQ0tfQkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVy
KSwgbV9wcm9jZXNzLmNvbm5lY3Rpb24oKSkKKyNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT05URVhU
SUQoaWRlbnRpZmllcikgTUVTU0FHRV9DSEVDS19CQVNFKG1fcHJveGllcy5pc1ZhbGlkS2V5KGlk
ZW50aWZpZXIpLCAmbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSkKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE1NSwxNSArMTU1LDE1IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIAotVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MpCi0gICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVm
PENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkpCisgICAgOiBtX2Nvbm5lY3Rpb25Q
cm94eShXVEZNb3ZlKGNvbm5lY3Rpb25Qcm94eSkpCiB7Ci0gICAgbV9wcm9jZXNzLmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7CisgICAgbV9jb25uZWN0aW9uUHJveHktPmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7CiB9CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKIHsKLSAgICBtX3Byb2Nlc3MucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAt
MTk2LDcgKzE5Niw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIGF1dG8gc291
cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKICAgICAgICAgc2V0dGluZ3MgPSBzb3VyY2Ut
PnNldHRpbmdzKCk7CiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7Ci0g
ICAgICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCAqbV9w
cm9jZXNzLmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CisgICAgICAgIG1fcHJveGll
cy5hZGQoaWQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+
Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52
YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdURk1v
dmUoc2V0dGluZ3MpKTsKQEAgLTI0OCw5ICsyNDgsOSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6
OgogICAgIGF1dG8mIHNvdXJjZSA9IHByb3h5LT5zb3VyY2UoKTsKICAgICBhdXRvIHJlc3VsdCA9
IHNvdXJjZS5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKTsKICAgICBpZiAoIXJlc3VsdCkK
LSAgICAgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGlkLCBzb3VyY2Uuc2V0dGluZ3MoKSksIDApOwor
ICAgICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGlkLCBzb3Vy
Y2Uuc2V0dGluZ3MoKSksIDApOwogICAgIGVsc2UKLSAgICAgICAgbV9wcm9jZXNzLnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVkKGlk
LCByZXN1bHQtPmJhZENvbnN0cmFpbnQsIHJlc3VsdC0+bWVzc2FnZSksIDApOworICAgICAgICBt
X2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVkKGlkLCByZXN1bHQtPmJhZENvbnN0
cmFpbnQsIHJlc3VsdC0+bWVzc2FnZSksIDApOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNsb25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBuZXdTb3VyY2VJ
RCkKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmNsb25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBuZXdTb3VyY2VJRAogICAgIEFTU0VS
VChtX3Byb3hpZXMuY29udGFpbnMoY2xvbmVkSUQpKTsKICAgICBBU1NFUlQoIW1fcHJveGllcy5j
b250YWlucyhuZXdTb3VyY2VJRCkpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5n
ZXQoY2xvbmVkSUQpKQotICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5p
cXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgKm1fcHJvY2Vzcy5jb25uZWN0aW9uKCksIHBy
b3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNl
SUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94
eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJ
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA0YTE1MGFmNjFjYjQ2Y2ExYzUzYTc1ZDEz
MDNmNWNmM2U0NWNhYmYxLi40MmU4YzljNThkNzUyYmE4NTg4MzUzMjM2N2U5NzRhZDJkMDNmNzk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9u
Tm90aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSwx
NCArNDIsMjMgQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgY2xhc3MgQ29ubmVjdGlvblBy
b3h5IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkNvbm5lY3Rpb25Qcm94eSgpID0g
ZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0
cmluZ1JlZmVyZW5jZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImKSA9IDA7CisgICAgICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UpID0gMDsK
KyAgICAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSA9IDA7CisgICAg
fTsKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxD
b25uZWN0aW9uUHJveHk+JiYpOwogICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7
CiAKLSAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nl
c3M7IH0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICB2b2lkIHNldE9yaWVudGF0aW9uKHVpbnQ2
NF90KTsKIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBlbmNvZGVyKSB7
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCBlbmNvZGVyKTsgfQor
CiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKQEAgLTY3
LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBTb3VyY2VQcm94eTsKICAgICBmcmllbmQg
Y2xhc3MgU291cmNlUHJveHk7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRy
PFNvdXJjZVByb3h5Pj4gbV9wcm94aWVzOwotICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNz
OworICAgIFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+IG1fY29ubmVjdGlvblByb3h5OwogICAg
IFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyIHsgMCB9
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDZkNjExMzg5
Y2FhZjdhMmI0MmQ2MThjMjMzOWYzYWYwMWFlYzdjOTQuLjIxMzYwNTllYmZhYmUwNTZhZjhlN2Ux
Y2M0OTJjNGZiNjc0OGVjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
QEAgLTQwLDYgKzQwLDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+
CiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaW5j
bHVkZSAiR1BVUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5Lmgi
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNjk5LDcgKzcwNCwxMyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcygpIGNvbnN0CiAgICAgLy8gRW5hYmxlL2Rp
c2FibGUgdGhlIG1vY2sgY2FwdHVyZSBkZXZpY2VzIGZvciB0aGUgVUkgcHJvY2VzcyBhcyBwZXIg
dGhlIFdlYkNvcmUgcHJlZmVyZW5jZXMuIE5vdGUgdGhhdAogICAgIC8vIHRoaXMgaXMgYSBub29w
IGlmIHRoZSBwcmVmZXJlbmNlIGhhc24ndCBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhp
cyB3YXMgY2FsbGVkLgogICAgIGJvb2wgbW9ja0RldmljZXNFbmFibGVkID0gbV9tb2NrRGV2aWNl
c0VuYWJsZWRPdmVycmlkZSA/ICptX21vY2tEZXZpY2VzRW5hYmxlZE92ZXJyaWRlIDogbV9wYWdl
LnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOworICAgIGlmIChNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKCkgPT0gbW9ja0RldmljZXNFbmFibGVkKQorICAgICAgICByZXR1cm47CiAgICAgTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyRW5hYmxlZChtb2NrRGV2aWNlc0VuYWJsZWQpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KyAgICBpZiAobV9wYWdlLnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5h
YmxlZCgpKQorICAgICAgICBHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLnNlbmQoTWVzc2Fn
ZXM6OkdQVVByb2Nlc3M6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgeyBtb2NrRGV2aWNl
c0VuYWJsZWQgfSwgMCk7CisjZW5kaWYKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxMGFhZWI1NjdhMTBiMWNmNzczODU2YjEyNmRiOGNk
NWQwNjU1N2Q1Li5mZmFiM2YzZDIzZGEzMDM3ZDI1YjgzY2QwMmIwZWQ4ZjMzZmYzNzEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM4NCw3ICszODQsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0
RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYsIFdhbGxUaW1lKTsKIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgICBHUFVQcm9jZXNzUHJveHkmIGVuc3VyZUdQVVByb2Nl
c3MoKTsKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYs
IE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldEdQVVByb2Nlc3NDb25uZWN0aW9uRGVsYXll
ZFJlcGx5JiYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDYyMjcxN2ViMGM1NmNhZWZiMzU5YTc2ZWFkOTUyOWI5NTVmMjA1YTku
LmM0NGJmN2MzMmU5OTMxMzljMTAzYzQ3ZTUxNjQyNGQ4ZWRjODY1NmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTUwLDYgKzE1MCwyMCBAQCBS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZUZvclNlcnZpY2VXb3Jr
ZXJzKFdlYlByb2Nlc3NQb29sJiBwcgogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFVJUHJveHlGb3JDYXB0dXJlIGZpbmFsIDog
cHVibGljIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eSB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVUlQcm94
eUZvckNhcHR1cmUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKSA6IG1fcHJvY2Vzcyhwcm9jZXNz
KSB7IH0KK3ByaXZhdGU6CisgICAgdm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImIHJlY2Vp
dmVyKSBmaW5hbCB7IG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2VpdmVy
TmFtZSwgcmVjZWl2ZXIpOyB9CisgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIoSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkgZmluYWwgeyBtX3Byb2Nlc3MucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUpOyB9CisgICAgSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gKm1fcHJvY2Vzcy5jb25uZWN0aW9u
KCk7IH0KKworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsKKyNlbmRpZgorCiBX
ZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bv
b2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUsIElzUHJld2FybWVkIGlzUHJl
d2FybWVkKQogICAgIDogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLmFsd2F5c1J1
bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQogICAgICwgbV9yZXNwb25zaXZlbmVzc1RpbWVyKCp0
aGlzKQpAQCAtMTYyLDcgKzE3Niw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5
KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICAsIG1f
dmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dy
b3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3
ZWJzaXRlRGF0YVN0b3JlKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KG1ha2VVbmlxdWU8VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4oKnRoaXMpKQorICAgICwgbV91c2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5KG1ha2VVbmlxdWU8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4o
bWFrZVVuaXF1ZVJlZjxVSVByb3h5Rm9yQ2FwdHVyZT4oKnRoaXMpKSkKICNlbmRpZgogICAgICwg
bV9pc1ByZXdhcm1lZChpc1ByZXdhcm1lZCA9PSBJc1ByZXdhcm1lZDo6WWVzKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNw
cAppbmRleCA1ODRhMWIzZGY2M2Q4Mzc5ZmQ2ODliY2NmODdkODY3NTZkZWQ5MmM3Li5lOGRhYWUw
ZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3NDIxNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzIsNiAr
MzIsOCBAQAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgog
I2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgpAQCAtNjYsNiArNjgsMTMgQEAgdm9pZCBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkQKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVu
dDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhcHR1cmVNYW5hZ2VyID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4oKSkKKyAgICAg
ICAgICAgIGNhcHR1cmVNYW5hZ2VyLT5kaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNv
bm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDhiNzQyOTllNGFhNmI3NjM2ODA3MTU4
NzZmMGQ0ZTU3NDJhNzMyZDQuLjg1M2NjMTY1NTA5NGJiNTI0MjFmYjZjZmExYzMxOWE5NjQ3MWMw
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwog
CiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSBhIHdlYiBwcm9jZXNzIHRvIHRoaXMgR1BVIHBy
b2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA1ODc1M2IzNmIwNmFjY2JmODYzNGEwMmM1
YmJiYjZlODY2YzRkOGEzLi45YjBlZWI0ZTMyNWJhOTVhYTFmM2I0MGVlMGQ3NGRlZDQ3YzcyOWM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAgIkdQVVByb2Nlc3ND
b25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNs
dWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0xMjUsMTIgKzEyNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIG1fc2V0dGluZ3M7CiAgICAgfQogCi0gICAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwKLSAgICB7
Ci0gICAgICAgIGlmICghbV9jYXBhYmlsaXRpZXMpCi0gICAgICAgICAgICBtX2NhcGFiaWxpdGll
cyA9IG1fbWFuYWdlci5jYXBhYmlsaXRpZXMobV9pZCk7Ci0gICAgICAgIHJldHVybiBtX2NhcGFi
aWxpdGllcy52YWx1ZSgpOwotICAgIH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9
CiAgICAgdm9pZCBzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0
aW5ncykKQEAgLTIxNiwzMSArMjEyLDI2IEBAIHB1YmxpYzoKIAogICAgIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlVHlw
ZTsgfQogCisgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUp
IHsgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gdmFsdWU7IH0KKyAgICBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3M7IH0KKworICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOworCisgICAg
dm9pZCBoYXNFbmRlZCgpIGZpbmFsOworCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnRQcm9kdWNp
bmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRhKG1faWQpOyB9Ci0g
ICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0b3BQcm9kdWNp
bmdEYXRhKG1faWQpOyB9CisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBpc0NhcHR1cmVTb3Vy
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBSZWFsdGltZU1lZGlh
U291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICB2b2lk
IGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAgICB2b2lkIGhhc0VuZGVkKCkgZmlu
YWwgeyBtX21hbmFnZXIuc291cmNlRW5kZWQobV9pZCk7IH0KIAotICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQXBw
bHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKLSAgICB7Ci0g
ICAgICAgIG1fbWFuYWdlci5hcHBseUNvbnN0cmFpbnRzKG1faWQsIGNvbnN0cmFpbnRzKTsKLSAg
ICAgICAgbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwotICAgIH0KKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYp
IGZpbmFsOwogCi0gICAgdm9pZCByZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXImKQotICAgIHsKLSAgICAgICAgbV9tYW5hZ2VyLnJlcXVlc3RUb0VuZChtX2lkKTsKLSAg
ICB9Ci0KLSAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkKLSAgICB7Ci0gICAgICAgIG1fbWFu
YWdlci5yZXF1ZXN0VG9FbmQobV9pZCk7Ci0gICAgfQorICAgIHZvaWQgcmVxdWVzdFRvRW5kKFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJikgeyBzdG9wQmVpbmdPYnNlcnZlZCgpOyB9Cisg
ICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpOwogCiAgICAgdWludDY0X3QgbV9pZDsKICAgICBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwpAQCAtMjU0LDYgKzI0NSw3IEBAIHBy
aXZhdGU6CiAgICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBtX2RldmljZVR5cGUgeyBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duIH07CiAKICAgICBEZXF1ZTxBcHBseUNvbnN0
cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKKyAgICBi
b29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CiB9OwogCiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyYgcHJv
Y2VzcykKQEAgLTI5Myw3ICsyODUsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpp
bml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcgogICAgICAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXREaXNwbGF5Q2FwdHVy
ZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7CiB9CiAKLVdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcykKIHsKICAgICBpZiAoIWNvbnN0cmFpbnRzKQogICAgICAgICByZXR1cm4geyB9OwpAQCAt
MzAyLDExICsyOTQsMjIgQEAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QKICAgICBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKICAg
ICBib29sIHN1Y2NlZWRlZDsKLSAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGhhc2hTYWx0LCAqY29uc3RyYWludHMp
LCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9y
TWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgYXV0
byogY29ubmVjdGlvbiA9IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgPyAmbV9wcm9jZXNzLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpIDogbV9wcm9jZXNzLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCk7CisjZWxzZQorICAgIEFTU0VSVCghc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2Vzcyk7CisgICAgYXV0byogY29ubmVjdGlvbiA9IG1fcHJvY2Vzcy5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOworI2VuZGlmCisgICAgaWYgKCFjb25uZWN0aW9uLT5zZW5kU3luYyhN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGhhc2hTYWx0LCAqY29u
c3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVk
ZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUo
ZXJyb3JNZXNzYWdlKTsKKworICAgIGlmICghc3VjY2VlZGVkKQogICAgICAgICByZXR1cm4gV1RG
TW92ZShlcnJvck1lc3NhZ2UpOwogCiAgICAgYXV0byB0eXBlID0gZGV2aWNlLnR5cGUoKSA9PSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lID8gV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpWaWRlbzsKICAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmlu
Zzo6bnVtYmVyKGlkKSwgdHlwZSwgZGV2aWNlLnR5cGUoKSwgU3RyaW5nIHsgc2V0dGluZ3MubGFi
ZWwoKS5zdHJpbmcoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CisgICAgaWYg
KHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgICAgIHNvdXJjZS0+c2V0U2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKICAgICBzb3VyY2Ut
PnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICBtX3NvdXJjZXMuYWRkKGlkLCBz
b3VyY2UuY29weVJlZigpKTsKICAgICByZXR1cm4gV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJy
b3IoV1RGTW92ZShzb3VyY2UpKTsKQEAgLTMxNiw3ICszMTksNyBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKQogewogICAgIGlmIChhdXRv
IHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWQpKSB7CiAgICAgICAgIHNvdXJjZS0+c3RvcCgpOwot
ICAgICAgICBzb3VyY2VFbmRlZChpZCk7CisgICAgICAgIHNvdXJjZS0+aGFzRW5kZWQoKTsKICAg
ICB9CiB9CiAKQEAgLTMyNCw3ICszMjcsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjYXB0dXJlRmFpbGVkKHVpbnQ2NF90IGlkKQogewogICAgIGlmIChhdXRvIHNvdXJjZSA9IG1f
c291cmNlcy5nZXQoaWQpKSB7CiAgICAgICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOwotICAg
ICAgICBzb3VyY2VFbmRlZChpZCk7CisgICAgICAgIHNvdXJjZS0+aGFzRW5kZWQoKTsKICAgICB9
CiB9CiAKQEAgLTM3MywzOSArMzc2LDUzIEBAIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlCiB9CiAj
ZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRh
KHVpbnQ2NF90IGlkKQorSVBDOjpDb25uZWN0aW9uKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpjb25uZWN0aW9uKCkKIHsKLSAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhKGlkKSwgMCk7Cisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHJldHVybiBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MgPyAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkgOiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpOworI2Vsc2UKKyAgICByZXR1cm4gbV9wcm9jZXNzLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCk7CisjZW5kaWYKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
c3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRh
KGlkKSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEobV9pZCksIDApOwogfQogCi1XZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpjYXBhYmlsaXRpZXModWludDY0X3QgaWQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBtX3Byb2Nlc3Muc2Vu
ZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNhcGFiaWxpdGll
cyhpZCksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRp
ZXM6OlJlcGx5KGNhcGFiaWxpdGllcyksIDApOwotICAgIHJldHVybiBjYXBhYmlsaXRpZXM7Cisg
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpTdG9wUHJvZHVjaW5nRGF0YShtX2lkKSwgMCk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnNldE11dGVkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQorY29uc3QgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIHsKLSAgICBtX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U2V0TXV0ZWQoaWQsIG11dGVkKSwg
MCk7CisgICAgaWYgKCFtX2NhcGFiaWxpdGllcykgeworICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICAgICAgY29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2FwYWJpbGl0aWVz
IHsgbV9pZCB9LCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2FwYWJp
bGl0aWVzOjpSZXBseShjYXBhYmlsaXRpZXMpLCAwKTsKKyAgICAgICAgbV9jYXBhYmlsaXRpZXMg
PSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CisgICAgfQorCisgICAgcmV0dXJuIG1fY2FwYWJpbGl0
aWVzLnZhbHVlKCk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjphcHBseUNv
bnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBB
cHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG1fcHJv
Y2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNv
bnN0cmFpbnRzKGlkLCBjb25zdHJhaW50cyksIDApOworICAgIG1fcGVuZGluZ0FwcGx5Q29uc3Ry
YWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBj
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkFwcGx5Q29uc3RyYWludHMobV9pZCwgY29uc3RyYWludHMpLCAwKTsKIH0KIAogdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5kZWQodWludDY0X3QgaWQpCiB7Ci0gICAgbV9w
cm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZChp
ZCksIDApOwogICAgIG1fc291cmNlcy5yZW1vdmUoaWQpOwogfQogCit2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpTb3VyY2U6Omhhc0VuZGVkKCkKK3sKKyAgICBjb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWQgfSwg
MCk7CisgICAgbV9tYW5hZ2VyLnNvdXJjZUVuZGVkKG1faWQpOworfQorCiB2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHVpbnQ2NF90IGlkLCBj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewog
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWQpKQpAQCAtNDQ0LDE1ICs0NjEs
MjAgQEAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpj
bG9uZVZpZGVvU291cmNlKFNvdXJjZSYgc291cmMKICAgICByZXR1cm4gY2xvbmVTb3VyY2U7CiB9
CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlcXVlc3RUb0VuZCh1aW50NjRfdCBz
b3VyY2VJRCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c3RvcEJlaW5n
T2JzZXJ2ZWQoKQogewotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQgeyBzb3VyY2VJRCB9LCAwKTsKKyAgICBjb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlJl
cXVlc3RUb0VuZCB7IG1faWQgfSwgMCk7CiB9CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAgICBpZiAobV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQorICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpIHsKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgICAgIHJldHVybiBtX21hbmFnZXIuY3JlYXRlQ2Fw
dHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cywgbV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyNlbHNlCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvciB7ICJBdWRpbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90IGltcGxlbWVu
dGVkIl9zIH07CisjZW5kaWYKKyAgICB9CiAgICAgcmV0dXJuIG1fbWFuYWdlci5jcmVhdGVDYXB0
dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaAppbmRleCBlY2VlZjA4ZGRmZmUxNTdmNjAwMTA4ZjQ2Y2I1ZmRkMTNmZmM2
NzEyLi5mMzhmZTQ5ZmQ0NGZjN2M1MmU3ZGZjZWM4MmJiYWQxZWZmNjgwMDJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogc3VwcGxlbWVudE5hbWUoKTsKIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BV
UHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCiBwcml2YXRl
OgogICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBmaW5hbDsKQEAgLTk2LDcgKzk4LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKICAg
ICB9OwogCi0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNv
dXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJp
bmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIGJvb2wgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKIAogICAgIGNsYXNzIE5vT3BDYXB0dXJlRGV2aWNlTWFu
YWdlciA6IHB1YmxpYyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlTWFuYWdlciB7CiAgICAgcHVibGlj
OgpAQCAtMTI4LDcgKzEzMCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKHVp
bnQ2NF90KTsKLSAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90LCBib29sKTsKICAgICB2b2lkIGFw
cGx5Q29uc3RyYWludHModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
KTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQodWludDY0X3QsIGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50c0ZhaWxlZCh1aW50NjRfdCwgU3RyaW5nJiYsIFN0cmluZyYmKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNzVk
MmM4NjliZDBhYzY0ODNjMjk5ZGI4MjU4YzIzMTQ2NzZiMjg4Li43ZWMwMzM2Y2E3OGIzMjlkM2M1
MGVhMTg5NTBhNjg5OTZlNGQ4ZGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMTItMTcg
IHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBBdWRpbyBDYXB0dXJlIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9jYXB0dXJlQXVkaW9J
bkdQVVByb2Nlc3MtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEyLTE3ICB5b3Vlbm4gZmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZVN0b3JhZ2VFbmdpbmUgc2hvdWxkIG5v
dCBjbGVhciBjYWNoZXMgbWVtb3J5IHJlcHJlc2VudGF0aW9uIGZvciBlcGhlbWVyYWwgc2Vzc2lv
bnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vY2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Y2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLWV4cGVjdGVkLnR4dAppbmRleCBhYWIwYzZkMWYwZjkx
YzEwYmZhMjEyMjdhZmFhNWY2M2QzY2NhNWUzLi5hOWJhNTAwMzAzNDk2YTg2ZTFhN2VlZjNlY2Rh
OGYyZWI0NjI5Y2U2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Nh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9jYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBGYWlsZWQgdG8gY3JlYXRlIE1lZGlhU3RyZWFt
IGF1ZGlvIHNvdXJjZTogQXVkaW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1l
bnRlZAogCiAKLUZBSUwgUGxheSBhdWRpbyBjYXB0dXJlZCBpbiBHUFUgcHJvY2VzcyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJOb3RSZWFkYWJs
ZUVycm9yOiBUaGUgSS9PIHJlYWQgb3BlcmF0aW9uIGZhaWxlZC4iCitQQVNTIFBsYXkgYXVkaW8g
Y2FwdHVyZWQgaW4gR1BVIHByb2Nlc3MgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385882</attachid>
            <date>2019-12-17 06:34:13 -0800</date>
            <delta_ts>2019-12-18 08:29:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205056-20191217153411.patch</filename>
            <type>text/plain</type>
            <size>42798</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ2OWZkODI1YTJhMzk4
NmZlYWQxY2IyYTE5YTM5MWY1Mzc1MDgwMS4uOWFlNDk4ODhkMWZlYjRkNjg0YzE1ZDJhMWM1YTA5
M2I4M2IzMGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEyLTE3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
QXVkaW8gQ2FwdHVyZSBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFeHBvcnQgc29tZSBXZWJDb3JlIGhlYWRlcnMuCisgICAgICAg
IEFsbG93IGRpc2FibGluZyB0aGUgYXVkaW8gc2Vzc2lvbiBkZWJ1ZyBhc3NlcnQgaW4gdGhlIEdQ
VSBwcm9jZXNzLgorICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZUF1ZGlvU2hhcmVkVW5pdDo6c3RhcnRVbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZUF1ZGlvU2hhcmVkVW5pdDo6c2V0RGlzYWJsZUF1ZGlvU2Vzc2lvbkNoZWNrKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5oOgorCiAyMDE5
LTEyLTE3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRh
dGUgc2Vzc2lvbiBjYXRlZ29yeSBpbiBNb2NrQXVkaW9TaGFyZWRVbml0IGFzIGRvbmUgaW4gQ29y
ZUF1ZGlvU2hhcmVkVW5pdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5ZTg5YTYyZWZmYzljZTA5ODc5NTgyNTQ4NmM0
OWZjNmI0Y2YyMWU2Li5jZDYwZDVjZjlmZjhkNTY4ODJkM2Y2MjJjMDFiODEzMmExNDYzYmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE5LTEyLTE3ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQXVkaW8gQ2FwdHVyZSBp
biBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDUwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWtlIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIGFuZCBQcm94eSBhYmxlIHRvIHdvcmsg
d2l0aCBHUFUgcHJvY2Vzcy4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGNhcHR1cmluZyBhdWRp
byBpbiB0aGUgR1BVIHByb2Nlc3MsIHRoaXMgaXMgbGltaXRlZCB0byBtb2NrIGF1ZGlvIHNvdXJj
ZXMgZm9yIG5vdworICAgICAgICBhcyB3ZSBkbyBub3Qgc3VwcG9ydCBBdWRpb1Nlc3Npb24gaW4g
dGhlIEdQVSBwcm9jZXNzLgorICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdC4KKworICAg
ICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNsb25lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
RnJvbUdQVVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcyBjb25zdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpT
b3VyY2U6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpjYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6Y29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BQcm9kdWNp
bmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6Omhhc0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MpOgorCiAyMDE5LTEyLTE3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZVN0b3JhZ2VFbmdp
bmUgc2hvdWxkIG5vdCBjbGVhciBjYWNoZXMgbWVtb3J5IHJlcHJlc2VudGF0aW9uIGZvciBlcGhl
bWVyYWwgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1NTExZTBlMjAyMzg5ODI4Mzg2OGQ1MmMwMDUyOTYzOGQzNGZk
ODRkLi4zZjA0MjdjNzIyNWIwNzZiMDZmOGY2MjE4MmM5MmFmMGFmZWExMmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDUw
LDYgKzEwNTAsOCBAQAogCQk0MTI5QzlBQjFGNTlDNTczMDA5RDc0MDMgLyogUmVhZGFibGVTdHJl
YW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxOEMzOTVCMUM4RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMjlDOUFGMUY1
OUNGNUIwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBS
ZWFkYWJsZVN0cmVhbVNpbmsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0MTJERTRCODIxOTI4NUMwMDA3NUYzQTcgLyogUlRDUnRwQ2FwYWJpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTJE
RTRCNjIxOTI4NUJGMDA3NUYzQTcgLyogUlRDUnRwQ2FwYWJpbGl0aWVzLmggKi87IH07CisJCTQx
MkRFRjFEMjNBOTE4NjYwMEQ4NDBGNiAvKiBNb2NrQXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ0RUNFQjFFMEM0QUU1MDAw
RDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMkRFRjFGMjNBOTE4QTMwMEQ4NDBGNiAvKiBCYXNl
QXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc3RjUxRTIzODI1NDVFMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMzND
QjhCMjBGODBFOTkwMEU4OUIxMSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzM0NCODkyMEY4
MEU4NjAwRTg5QjExIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi87IH07CiAJ
CTQxMzZDNTdBMjM5OEU1QkUwMDI0OTdEMyAvKiBJbnRlcm5hbHNNYXBMaWtlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzZDNTc4MjM5OEU1QjUw
MDI0OTdEMyAvKiBJbnRlcm5hbHNNYXBMaWtlLmNwcCAqLzsgfTsKIAkJNDEzNkM1N0MyMzk4RUND
RjAwMjQ5N0QzIC8qIEpTSW50ZXJuYWxzTWFwTGlrZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDZGM0U5MjFDMUY4NTU1MDA2MURCRDYgLyogSlNJ
bnRlcm5hbHNNYXBMaWtlLmNwcCAqLzsgfTsKQEAgLTI5MTEzLDYgKzI5MTE1LDcgQEAKIAkJCQk1
MUExQjg3RDIwODdDNEMwMDA5NzlBNzUgLyogQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMxMjRFRTgwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhclByb3AuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2MEJCNjE2MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMkRFRjFGMjNBOTE4QTMwMEQ4NDBGNiAvKiBC
YXNlQXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzlFNjFDQTEyNkNBNUM0
MDBCNjNFOEQgLyogQmFzZUJ1dHRvbklucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5
RTYxQ0MxMjZDQTVDNDAwQjYzRThEIC8qIEJhc2VDaGVja2FibGVJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY1RTBDNjVDMTY0M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTQ5Miw2ICszMTQ5NSw3
IEBACiAJCQkJNTNCODk1QUYxOURDN0VEOTAwOUNBQTkzIC8qIE1pY3JvdGFza3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNzcyQzRGMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkYxMDg2NjE2MkI2REE4MDA5QUM4MUUgLyogTWl4ZWRD
b250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEyREVGMUQyM0E5MTg2NjAwRDg0
MEY2IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjJCMDEx
MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY0Qjcy
NDFFMDNCRjgxMDBFMjM1QTIgLyogTW9ja0NETUZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNERjRCNzIwMUUwM0JGNkYwMEUyMzVBMiAvKiBNb2NrQ0RNRmFjdG9yeS5pZGwgaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcAppbmRleCBiMDY3NzZmOWUwMDg2NjAw
OGYxOTBlNzA1NjcyMTg3YzU3ZGU1MTliLi4zOGRiY2U5NmM0NDQ0NzgxOWYxMzUzNzEyY2M2NDI2
MzRhODRiNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuY3BwCkBAIC05Myw4ICs5Mywx
MCBAQCB2b2lkIEJhc2VBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiBib29s
IEJhc2VBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0VW5pdCgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5z
ZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwotICAgIEFTU0VSVChBdWRpb1Nlc3Npb246
OnNoYXJlZFNlc3Npb24oKS5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29y
ZCk7CisgICAgaWYgKCFtX2Rpc2FibGVBdWRpb1Nlc3Npb25DaGVjaykgeworICAgICAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uQ2FuUHJvZHVj
ZUF1ZGlvQ2hhbmdlZCgpOworICAgICAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNz
aW9uKCkuY2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQpOworICAgIH0K
ICNlbmRpZgogCiAgICAgaWYgKGF1dG8gZXJyb3IgPSBzdGFydEludGVybmFsKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9T
aGFyZWRVbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFz
ZUF1ZGlvU2hhcmVkVW5pdC5oCmluZGV4IGIwNjA4NDkwMzMwMjJlM2ZkMTg3Yjg2ZDY1MjU2MGE5
NGZjZGZjZGUuLjU3ODlhNzM3NTZmNzIzZWM5ZWJhNGE2MTk0MDE0YjE5NzE2NDllNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9T
aGFyZWRVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0Jhc2VBdWRpb1NoYXJlZFVuaXQuaApAQCAtNzYsNiArNzYsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2Ugc2FtcGxlUmF0ZUNhcGFjaXRpZXMoKSBjb25z
dCA9IDA7CiAKKyAgICB2b2lkIHNldERpc2FibGVBdWRpb1Nlc3Npb25DaGVjayhib29sIHZhbHVl
KSB7IG1fZGlzYWJsZUF1ZGlvU2Vzc2lvbkNoZWNrID0gdmFsdWU7IH07CisKIHByb3RlY3RlZDoK
ICAgICB2b2lkIGZvckVhY2hDbGllbnQoY29uc3QgRnVuY3Rpb248dm9pZChDb3JlQXVkaW9DYXB0
dXJlU291cmNlJik+JikgY29uc3Q7CiAgICAgYm9vbCBoYXNDbGllbnRzKCkgY29uc3QgeyByZXR1
cm4gIW1fY2xpZW50cy5pc0VtcHR5KCk7IH0KQEAgLTEwMyw2ICsxMDUsNyBAQCBwcml2YXRlOgog
CiAgICAgSGFzaFNldDxDb3JlQXVkaW9DYXB0dXJlU291cmNlKj4gbV9jbGllbnRzOwogICAgIG11
dGFibGUgUmVjdXJzaXZlTG9jayBtX2NsaWVudHNMb2NrOworICAgIGJvb2wgbV9kaXNhYmxlQXVk
aW9TZXNzaW9uQ2hlY2sgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tB
dWRpb1NoYXJlZFVuaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrQXVkaW9TaGFyZWRVbml0LmgKaW5kZXggNTRjNzI3ODIzNjE5ODYzYWVkMmQ4ZDlmZTVj
MzQ4OGMxYTQ3YmI0OS4uODAzMjhlNTAyZWY5YTcwOGE3ZmIwNzQyYzM0ZWNkMWM4ZDMzYTlhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tB
dWRpb1NoYXJlZFVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogCiBjbGFzcyBNb2NrQXVkaW9TaGFyZWRVbml0IGZp
bmFsIDogcHVibGljIEJhc2VBdWRpb1NoYXJlZFVuaXQgewogcHVibGljOgotICAgIHN0YXRpYyBN
b2NrQXVkaW9TaGFyZWRVbml0JiBzaW5nbGV0b24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgTW9ja0F1ZGlvU2hhcmVkVW5pdCYgc2luZ2xldG9uKCk7CiAgICAgTW9ja0F1ZGlvU2hhcmVk
VW5pdCgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGMzNDhlMzBkZThhMjllOTczZWFl
YWE2YTliOGE4ZTA5MzNhYTg4MjUuLjg0ZGE4MmQwZTM5MWQyMGNlMTUyYTA3MDE0OTExYWY4ZTMz
MzczNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM4LDEzICszOCwzNSBAQAogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKK2NsYXNzIEdQVVByb3h5Rm9yQ2FwdHVyZSBmaW5hbCA6IHB1YmxpYyBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDb25uZWN0aW9uUHJveHkgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IEdQVVByb3h5Rm9yQ2FwdHVy
ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBwcm9jZXNzKQorICAgICAgICA6IG1fcHJvY2Vz
cyhwcm9jZXNzKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBhZGRNZXNzYWdl
UmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXImIHJlY2VpdmVyKSBmaW5hbCB7IH0KKyAgICB2b2lkIHJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKSBmaW5h
bCB7IH0KKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiBt
X3Byb2Nlc3MuY29ubmVjdGlvbigpOyB9CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBtX3Byb2Nlc3M7Cit9OworI2VuZGlmCisKIFJlZjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
PiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoR1BVUHJvY2VzcyYgZ3B1UHJvY2Vz
cywgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdVByb2Nlc3MsIHdl
YlByb2Nlc3NJZGVudGlmaWVyLCBjb25uZWN0aW9uSWRlbnRpZmllcikpOwpAQCAtNTQsNiArNzYs
OSBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRo
aXMpKQogICAgICwgbV9ncHVQcm9jZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KG1ha2VVbmlxdWU8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4obWFrZVVuaXF1ZVJlZjxH
UFVQcm94eUZvckNhcHR1cmU+KCp0aGlzKSkpCisjZW5kaWYKIHsKICAgICBSRUxFQVNFX0FTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CkBAIC05MCw2
ICsxMTUsMTIgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAgICAgcmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVz
c2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVy
KQpAQCAtOTksNiArMTMwLDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1fdXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29u
bmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGJi
ZmMxNjgwYmJiMzBlMTk3ZGFmODAzNjA1Y2ZjNGEyMTc5YWVmNDkuLmRmNjhjYWVlNGMwZTllM2Fj
YjA0ODk1MGMyNWNiOTA5ZTYwOWVmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAog
Y2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KQEAgLTYwLDE1ICs2MSwxOCBAQCBwcml2YXRlOgog
ICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSgpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpIGZpbmFsOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOwogICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+IG1fcmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHk7CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1f
dXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggZjli
N2YxNzYzOGNlM2ExMGNkZDczNTEwZjExYmM1ZTFhYmVlYjFlYy4uNzQxZDljNGM4MDMyMmQwMjBl
NzM4MDVjYTA4N2ZlY2UyNGYwYjFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vY2tBdWRpb1NoYXJl
ZFVuaXQuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9DYWxs
YmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CkBAIC0xMzYsNiAr
MTM3LDE1IEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIEdQVVByb2Nlc3M6OndlYlByb2Nl
c3NDb25uZWN0aW9uKFByb2Nlc3NJZGVudGlmaWVyIGlkCiAgICAgcmV0dXJuIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCit2b2lkIEdQVVByb2Nlc3M6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoYm9vbCBp
c0VuYWJsZWQpCit7CisgICAgLy8gRklYTUU6IEVuYWJsZSB0aGUgYXVkaW8gc2Vzc2lvbiBjaGVj
ayBieSBpbXBsZW1lbnRpbmcgYW4gQXVkaW9TZXNzaW9uIGZvciB0aGUgR1BVUHJvY2Vzcy4KKyAg
ICBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKS5zZXREaXNhYmxlQXVkaW9TZXNzaW9u
Q2hlY2soaXNFbmFibGVkKTsKKyAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKGlzRW5hYmxlZCk7Cit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCBlODg4NzI2ODg3OGZl
ZDBkMjY3YTA1NGU1YzBhZmNhMzM5NTg3N2EwLi4xM2YwNGMxZDIxMDU4OTE4MjFjNTQxNWI3OGYz
NTRhZjg0YTk3YjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQx
LDcgKzQxLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBjbGFzcyBH
UFVQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxHUFVQcm9jZXNzPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEdQVVByb2Nlc3M+IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9jZXNzKTsKIHB1YmxpYzoKLSAgICBHUFVQ
cm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJik7CisgICAg
ZXhwbGljaXQgR1BVUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiYpOwogICAgIH5HUFVQcm9jZXNzKCk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBQcm9jZXNz
VHlwZSBwcm9jZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpHUFU7CiAKQEAgLTc0LDcgKzc0LDkgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgcHJvY2Vzc0RpZFRyYW5zaXRpb25Ub0ZvcmVncm91bmQoKTsK
ICAgICB2b2lkIHByb2Nlc3NEaWRUcmFuc2l0aW9uVG9CYWNrZ3JvdW5kKCk7Ci0KKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgc2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChi
b29sKTsKKyNlbmRpZgogICAgIC8vIENvbm5lY3Rpb25zIHRvIFdlYlByb2Nlc3Nlcy4KICAgICBI
YXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWY8R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcz4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZjE4NDc3OGVmMGY2OWFh
NjY2M2I4MTBkYzVjN2FhYjI1N2M4MjRlZC4uOTQ4MmExOGUwNWNiOGU5N2RlMjgxZGRiMDU1Mzll
NWU0MThmOTYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTMxLDYgKzMxLDEwIEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3Mgewog
CiAgICAgUHJvY2Vzc0RpZFRyYW5zaXRpb25Ub0ZvcmVncm91bmQoKQogICAgIFByb2Nlc3NEaWRU
cmFuc2l0aW9uVG9CYWNrZ3JvdW5kKCkKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
U2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChib29sIGlzRW5hYmxlZCkKKyNlbmRpZgogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAppbmRleCAzNDFkNjdiYWYyZGNkNWMxMjZiMTE2NDllNjVkMjA2MzY5NGI2ZTQ3Li5mOWIzNWQ0
NTEzMzYwZmU5Njg5MDVhMTZmZWQyYzVkNzU3ZGM4ZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCi0jZGVmaW5lIE1FU1NBR0Vf
Q0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0VfQ0hFQ0tfQkFTRShtX3Byb3hpZXMu
aXNWYWxpZEtleShpZGVudGlmaWVyKSwgbV9wcm9jZXNzLmNvbm5lY3Rpb24oKSkKKyNkZWZpbmUg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWRlbnRpZmllcikgTUVTU0FHRV9DSEVDS19CQVNFKG1f
cHJveGllcy5pc1ZhbGlkS2V5KGlkZW50aWZpZXIpLCAmbV9jb25uZWN0aW9uUHJveHktPmNvbm5l
Y3Rpb24oKSkKIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTE1NSwxNSArMTU1LDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxz
ZSB9OwogfTsKIAotVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCi0gICAgOiBtX3Byb2Nlc3Mo
cHJvY2VzcykKK1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkp
CisgICAgOiBtX2Nvbm5lY3Rpb25Qcm94eShXVEZNb3ZlKGNvbm5lY3Rpb25Qcm94eSkpCiB7Ci0g
ICAgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7CisgICAgbV9jb25u
ZWN0aW9uUHJveHktPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7CiB9CiAKIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkK
IHsKLSAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIG1fY29u
bmVjdGlvblByb3h5LT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9CiAKIHZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtMTk2LDcgKzE5Niw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpCiAgICAgICAgIGF1dG8gc291cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKICAgICAg
ICAgc2V0dGluZ3MgPSBzb3VyY2UtPnNldHRpbmdzKCk7CiAgICAgICAgIEFTU0VSVCghbV9wcm94
aWVzLmNvbnRhaW5zKGlkKSk7Ci0gICAgICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8
U291cmNlUHJveHk+KGlkLCAqbV9wcm9jZXNzLmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2Up
KSk7CisgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlk
LCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpKTsKICAg
ICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVy
cm9yLmVycm9yTWVzc2FnZSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoc3VjY2VlZGVkLCBpbnZh
bGlkQ29uc3RyYWludHMsIFdURk1vdmUoc2V0dGluZ3MpKTsKQEAgLTI0OCw5ICsyNDgsOSBAQCB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWludHModWludDY0
X3QgaWQsIGNvbnN0IFdlYkNvcmU6OgogICAgIGF1dG8mIHNvdXJjZSA9IHByb3h5LT5zb3VyY2Uo
KTsKICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRz
KTsKICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGlkLCBzb3Vy
Y2Uuc2V0dGluZ3MoKSksIDApOworICAgICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKGlkLCBzb3VyY2Uuc2V0dGluZ3MoKSksIDApOwogICAgIGVsc2UKLSAgICAg
ICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBs
eUNvbnN0cmFpbnRzRmFpbGVkKGlkLCByZXN1bHQtPmJhZENvbnN0cmFpbnQsIHJlc3VsdC0+bWVz
c2FnZSksIDApOworICAgICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVk
KGlkLCByZXN1bHQtPmJhZENvbnN0cmFpbnQsIHJlc3VsdC0+bWVzc2FnZSksIDApOwogfQogCiB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKHVpbnQ2NF90IGNsb25lZElE
LCB1aW50NjRfdCBuZXdTb3VyY2VJRCkKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBu
ZXdTb3VyY2VJRAogICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoY2xvbmVkSUQpKTsKICAg
ICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwogICAgIGlmIChhdXRv
KiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBtX3Byb3hpZXMuYWRk
KG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgKm1fcHJv
Y2Vzcy5jb25uZWN0aW9uKCksIHByb3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1f
cHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJj
ZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xv
bmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RU
b0VuZCh1aW50NjRfdCBzb3VyY2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA0YTE1
MGFmNjFjYjQ2Y2ExYzUzYTc1ZDEzMDNmNWNmM2U0NWNhYmYxLi40MmU4YzljNThkNzUyYmE4NTg4
MzUzMjM2N2U5NzRhZDJkMDNmNzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC00MSwxNCArNDIsMjMgQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5Owog
Y2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSA6IHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4
cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7Cisg
ICAgY2xhc3MgQ29ubmVjdGlvblByb3h5IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwg
fkNvbm5lY3Rpb25Qcm94eSgpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1l
c3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXIm
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIoSVBDOjpT
dHJpbmdSZWZlcmVuY2UpID0gMDsKKyAgICAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKSA9IDA7CisgICAgfTsKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYpOwogICAgIH5Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5KCk7CiAKLSAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSBj
b25zdCB7IHJldHVybiBtX3Byb2Nlc3M7IH0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICB2b2lk
IHNldE9yaWVudGF0aW9uKHVpbnQ2NF90KTsKIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+JiBlbmNvZGVyKSB7IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyLCBlbmNvZGVyKTsgfQorCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKQEAgLTY3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBTb3Vy
Y2VQcm94eTsKICAgICBmcmllbmQgY2xhc3MgU291cmNlUHJveHk7CiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZVByb3h5Pj4gbV9wcm94aWVzOwotICAgIFdlYlBy
b2Nlc3NQcm94eSYgbV9wcm9jZXNzOworICAgIFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+IG1f
Y29ubmVjdGlvblByb3h5OwogICAgIFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmll
bnRhdGlvbk5vdGlmaWVyIHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCmluZGV4IDZkNjExMzg5Y2FhZjdhMmI0MmQ2MThjMjMzOWYzYWYwMWFlYzdjOTQuLjIx
MzYwNTllYmZhYmUwNTZhZjhlN2UxY2M0OTJjNGZiNjc0OGVjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDExIEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisjaW5jbHVkZSAiR1BVUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjk5LDcgKzcwNCwxMyBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNvcmVQcmVmcygpIGNv
bnN0CiAgICAgLy8gRW5hYmxlL2Rpc2FibGUgdGhlIG1vY2sgY2FwdHVyZSBkZXZpY2VzIGZvciB0
aGUgVUkgcHJvY2VzcyBhcyBwZXIgdGhlIFdlYkNvcmUgcHJlZmVyZW5jZXMuIE5vdGUgdGhhdAog
ICAgIC8vIHRoaXMgaXMgYSBub29wIGlmIHRoZSBwcmVmZXJlbmNlIGhhc24ndCBjaGFuZ2VkIHNp
bmNlIHRoZSBsYXN0IHRpbWUgdGhpcyB3YXMgY2FsbGVkLgogICAgIGJvb2wgbW9ja0RldmljZXNF
bmFibGVkID0gbV9tb2NrRGV2aWNlc0VuYWJsZWRPdmVycmlkZSA/ICptX21vY2tEZXZpY2VzRW5h
YmxlZE92ZXJyaWRlIDogbV9wYWdlLnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZCgpOworICAgIGlmIChNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkgPT0gbW9ja0RldmljZXNFbmFibGVkKQorICAg
ICAgICByZXR1cm47CiAgICAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChtb2NrRGV2aWNlc0VuYWJsZWQpOworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV9wYWdlLnByZWZlcmVuY2VzKCkuY2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICBHUFVQcm9jZXNzUHJveHk6OnNp
bmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNldE1vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQgeyBtb2NrRGV2aWNlc0VuYWJsZWQgfSwgMCk7CisjZW5kaWYKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxMGFhZWI1Njdh
MTBiMWNmNzczODU2YjEyNmRiOGNkNWQwNjU1N2Q1Li5mZmFiM2YzZDIzZGEzMDM3ZDI1YjgzY2Qw
MmIwZWQ4ZjMzZmYzNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmgKQEAgLTM4NCw3ICszODQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFy
eSYsIFdhbGxUaW1lKTsKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgICBHUFVQcm9jZXNz
UHJveHkmIGVuc3VyZUdQVVByb2Nlc3MoKTsKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldEdQVVBy
b2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDYyMjcxN2ViMGM1NmNhZWZiMzU5
YTc2ZWFkOTUyOWI5NTVmMjA1YTkuLmM0NGJmN2MzMmU5OTMxMzljMTAzYzQ3ZTUxNjQyNGQ4ZWRj
ODY1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMTUwLDYgKzE1MCwyMCBAQCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUHJveHk6
OmNyZWF0ZUZvclNlcnZpY2VXb3JrZXJzKFdlYlByb2Nlc3NQb29sJiBwcgogfQogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFVJUHJv
eHlGb3JDYXB0dXJlIGZpbmFsIDogcHVibGljIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkNvbm5lY3Rpb25Qcm94eSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgVUlQcm94eUZvckNhcHR1cmUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
KSA6IG1fcHJvY2Vzcyhwcm9jZXNzKSB7IH0KK3ByaXZhdGU6CisgICAgdm9pZCBhZGRNZXNzYWdl
UmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXImIHJlY2VpdmVyKSBmaW5hbCB7IG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVj
ZWl2ZXIobWVzc2FnZVJlY2VpdmVyTmFtZSwgcmVjZWl2ZXIpOyB9CisgICAgdm9pZCByZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkg
ZmluYWwgeyBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNlaXZlck5h
bWUpOyB9CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4g
Km1fcHJvY2Vzcy5jb25uZWN0aW9uKCk7IH0KKworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9j
ZXNzOworfTsKKyNlbmRpZgorCiBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQ
cm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3Rv
cmUsIElzUHJld2FybWVkIGlzUHJld2FybWVkKQogICAgIDogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
KHByb2Nlc3NQb29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQogICAgICwgbV9y
ZXNwb25zaXZlbmVzc1RpbWVyKCp0aGlzKQpAQCAtMTYyLDcgKzE3Niw3IEBAIFdlYlByb2Nlc3NQ
cm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0
ZURhdGFTdG9yZSoKICAgICAsIG1fdmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVy
RXZlbnQpIHsgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAs
IG1fd2Vic2l0ZURhdGFTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQogI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5KG1ha2VVbmlxdWU8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4oKnRoaXMpKQor
ICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KG1ha2VVbmlxdWU8VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eT4obWFrZVVuaXF1ZVJlZjxVSVByb3h5Rm9yQ2FwdHVyZT4oKnRo
aXMpKSkKICNlbmRpZgogICAgICwgbV9pc1ByZXdhcm1lZChpc1ByZXdhcm1lZCA9PSBJc1ByZXdh
cm1lZDo6WWVzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA1ODRhMWIzZGY2M2Q4Mzc5ZmQ2ODliY2NmODdk
ODY3NTZkZWQ5MmM3Li5lOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3NDIxNTgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgpAQCAtNjYs
NiArNjgsMTMgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKICAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAoZGVjb2Rl
ci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhcHR1cmVN
YW5hZ2VyID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcj4oKSkKKyAgICAgICAgICAgIGNhcHR1cmVNYW5hZ2VyLT5kaWRSZWNlaXZlTWVz
c2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDhi
NzQyOTllNGFhNmI3NjM2ODA3MTU4NzZmMGQ0ZTU3NDJhNzMyZDQuLjg1M2NjMTY1NTA5NGJiNTI0
MjFmYjZjZmExYzMxOWE5NjQ3MWMwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0
ZToKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIG92ZXJyaWRlOwogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSBhIHdlYiBw
cm9jZXNzIHRvIHRoaXMgR1BVIHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA1ODc1
M2IzNmIwNmFjY2JmODYzNGEwMmM1YmJiYjZlODY2YzRkOGEzLi45YjBlZWI0ZTMyNWJhOTVhYTFm
M2I0MGVlMGQ3NGRlZDQ3YzcyOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisj
aW5jbHVkZSAgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBA
IC0xMjUsMTIgKzEyNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fc2V0dGluZ3M7CiAg
ICAgfQogCi0gICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJp
bGl0aWVzKCkgZmluYWwKLSAgICB7Ci0gICAgICAgIGlmICghbV9jYXBhYmlsaXRpZXMpCi0gICAg
ICAgICAgICBtX2NhcGFiaWxpdGllcyA9IG1fbWFuYWdlci5jYXBhYmlsaXRpZXMobV9pZCk7Ci0g
ICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy52YWx1ZSgpOwotICAgIH0KKyAgICBjb25zdCBS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKIAog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgdm9pZCBzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKQEAgLTIxNiwzMSArMjEyLDI2IEBAIHB1YmxpYzoK
IAogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fZGV2aWNlVHlwZTsgfQogCisgICAgdm9pZCBzZXRTaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gdmFs
dWU7IH0KKyAgICBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVy
biBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3M7IH0KKworICAgIElQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbigpOworCisgICAgdm9pZCBoYXNFbmRlZCgpIGZpbmFsOworCiBwcml2YXRlOgot
ICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RhcnRQcm9k
dWNpbmdEYXRhKG1faWQpOyB9Ci0gICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsg
bV9tYW5hZ2VyLnN0b3BQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisgICAgdm9pZCBzdGFydFByb2R1
Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAg
ICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24o
KSBmaW5hbCB7IH0KICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAg
ICB2b2lkIGhhc0VuZGVkKCkgZmluYWwgeyBtX21hbmFnZXIuc291cmNlRW5kZWQobV9pZCk7IH0K
IAotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFu
ZGxlcikgZmluYWwKLSAgICB7Ci0gICAgICAgIG1fbWFuYWdlci5hcHBseUNvbnN0cmFpbnRzKG1f
aWQsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAgbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxi
YWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIH0KKyAgICB2b2lk
IGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5
Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwogCi0gICAgdm9pZCByZXF1ZXN0VG9FbmQoUmVh
bHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXImKQotICAgIHsKLSAgICAgICAgbV9tYW5hZ2VyLnJl
cXVlc3RUb0VuZChtX2lkKTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkK
LSAgICB7Ci0gICAgICAgIG1fbWFuYWdlci5yZXF1ZXN0VG9FbmQobV9pZCk7Ci0gICAgfQorICAg
IHZvaWQgcmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJikgeyBzdG9w
QmVpbmdPYnNlcnZlZCgpOyB9CisgICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpOwogCiAgICAg
dWludDY0X3QgbV9pZDsKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwpA
QCAtMjU0LDYgKzI0NSw3IEBAIHByaXZhdGU6CiAgICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSBtX2RldmljZVR5cGUgeyBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duIH07CiAK
ICAgICBEZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJh
aW50c0NhbGxiYWNrczsKKyAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZh
bHNlIH07CiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIoV2ViUHJvY2VzcyYgcHJvY2VzcykKQEAgLTI5Myw3ICsyODUsNyBAQCB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcgogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5zZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7CiB9CiAKLVdl
YkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVh
dGVDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorV2Vi
Q29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0
ZUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKIHsKICAgICBpZiAoIWNvbnN0cmFpbnRzKQogICAg
ICAgICByZXR1cm4geyB9OwpAQCAtMzAyLDExICsyOTQsMjIgQEAgV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2Uo
Y29uc3QKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKICAgICBib29sIHN1Y2NlZWRlZDsKLSAgICBpZiAoIW1fcHJvY2Vz
cy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGhh
c2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpS
ZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisgICAgYXV0byogY29ubmVjdGlvbiA9IHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MgPyAmbV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpIDogbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7CisjZWxzZQorICAgIEFT
U0VSVCghc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgYXV0byogY29ubmVjdGlvbiA9
IG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworI2VuZGlmCisgICAgaWYgKCFj
b25uZWN0aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBk
ZXZpY2UsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyAg
ICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKworICAgIGlmICghc3VjY2VlZGVk
KQogICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwogCiAgICAgYXV0byB0eXBl
ID0gZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25l
ID8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKICAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgdHlwZSwgZGV2aWNlLnR5cGUoKSwg
U3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwg
aWQsICp0aGlzKSk7CisgICAgaWYgKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgICAg
IHNvdXJjZS0+c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKTsKICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKICAg
ICBtX3NvdXJjZXMuYWRkKGlkLCBzb3VyY2UuY29weVJlZigpKTsKICAgICByZXR1cm4gV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKQEAgLTMxNiw3ICszMTks
NyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVkKHVpbnQ2NF90
IGlkKQogewogICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWQpKSB7CiAgICAg
ICAgIHNvdXJjZS0+c3RvcCgpOwotICAgICAgICBzb3VyY2VFbmRlZChpZCk7CisgICAgICAgIHNv
dXJjZS0+aGFzRW5kZWQoKTsKICAgICB9CiB9CiAKQEAgLTMyNCw3ICszMjcsNyBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXB0dXJlRmFpbGVkKHVpbnQ2NF90IGlkKQogewogICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWQpKSB7CiAgICAgICAgIHNvdXJjZS0+
Y2FwdHVyZUZhaWxlZCgpOwotICAgICAgICBzb3VyY2VFbmRlZChpZCk7CisgICAgICAgIHNvdXJj
ZS0+aGFzRW5kZWQoKTsKICAgICB9CiB9CiAKQEAgLTM3MywzOSArMzc2LDUzIEBAIE5PX1JFVFVS
Tl9EVUVfVE9fQVNTRVJUIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW90ZVZpZGVv
U2FtcGxlQXZhaWxhYmxlCiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorSVBDOjpDb25uZWN0aW9uKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpjb25uZWN0aW9uKCkKIHsKLSAgICBtX3Byb2Nl
c3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9k
dWNpbmdEYXRhKGlkKSwgMCk7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHJldHVybiBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgPyAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkgOiBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworI2Vsc2UKKyAgICByZXR1cm4gbV9w
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7CisjZW5kaWYKIH0KIAotdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7
Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OlN0b3BQcm9kdWNpbmdEYXRhKGlkKSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEo
bV9pZCksIDApOwogfQogCi1XZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXBhYmlsaXRpZXModWludDY0X3QgaWQpCit2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIHsK
LSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGll
czsKLSAgICBtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNhcGFiaWxpdGllcyhpZCksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpDYXBhYmlsaXRpZXM6OlJlcGx5KGNhcGFiaWxpdGllcyksIDApOwotICAgIHJl
dHVybiBjYXBhYmlsaXRpZXM7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YShtX2lkKSwgMCk7CiB9
CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNldE11dGVkKHVpbnQ2NF90IGlkLCBi
b29sIG11dGVkKQorY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIHsKLSAg
ICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U2V0TXV0ZWQoaWQsIG11dGVkKSwgMCk7CisgICAgaWYgKCFtX2NhcGFiaWxpdGllcykgeworICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICAg
ICAgY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q2FwYWJpbGl0aWVzIHsgbV9pZCB9LCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q2FwYWJpbGl0aWVzOjpSZXBseShjYXBhYmlsaXRpZXMpLCAwKTsKKyAg
ICAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CisgICAgfQorCisg
ICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLnZhbHVlKCk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6U291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzKGlkLCBjb25zdHJhaW50cyksIDApOworICAg
IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMobV9pZCwgY29uc3RyYWludHMp
LCAwKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5kZWQodWlu
dDY0X3QgaWQpCiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OkVuZChpZCksIDApOwogICAgIG1fc291cmNlcy5yZW1vdmUoaWQpOwog
fQogCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6Omhhc0VuZGVkKCkKK3sK
KyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkVuZCB7IG1faWQgfSwgMCk7CisgICAgbV9tYW5hZ2VyLnNvdXJjZUVuZGVkKG1faWQp
OworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3Vj
Y2VlZGVkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQo
aWQpKQpAQCAtNDQ0LDE1ICs0NjEsMjAgQEAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpjbG9uZVZpZGVvU291cmNlKFNvdXJjZSYgc291cmMKICAgICBy
ZXR1cm4gY2xvbmVTb3VyY2U7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJl
cXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJRCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQogewotICAgIG1fcHJvY2Vzcy5zZW5kKE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQgeyBzb3Vy
Y2VJRCB9LCAwKTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlJlcXVlc3RUb0VuZCB7IG1faWQgfSwgMCk7CiB9CiAKIENhcHR1
cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAg
ICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgIGlmIChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpIHsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgICAgIHJldHVy
biBtX21hbmFnZXIuY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cywgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyNlbHNlCiAgICAg
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJBdWRpbyBjYXB0dXJlIGluIEdQVVBy
b2Nlc3MgaXMgbm90IGltcGxlbWVudGVkIl9zIH07CisjZW5kaWYKKyAgICB9CiAgICAgcmV0dXJu
IG1fbWFuYWdlci5jcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCBlY2VlZjA4ZGRmZmUxNTdm
NjAwMTA4ZjQ2Y2I1ZmRkMTNmZmM2NzEyLi5mMzhmZTQ5ZmQ0NGZjN2M1MmU3ZGZjZWM4MmJiYWQx
ZWZmNjgwMDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsgfQorCiBwcml2YXRlOgogICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50CiAgICAg
dm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBmaW5h
bDsKQEAgLTk2LDcgKzk4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1fbWFuYWdlcjsKICAgICB9OwogCi0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyosIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKIAogICAgIGNsYXNz
IE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciA6IHB1YmxpYyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
TWFuYWdlciB7CiAgICAgcHVibGljOgpAQCAtMTI4LDcgKzEzMCw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEodWludDY0X3QpOwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMgY2FwYWJpbGl0aWVzKHVpbnQ2NF90KTsKLSAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90
LCBib29sKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHModWludDY0X3QsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQodWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYp
OwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZCh1aW50NjRfdCwgU3RyaW5nJiYsIFN0
cmluZyYmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxNzVkMmM4NjliZDBhYzY0ODNjMjk5ZGI4MjU4YzIzMTQ2NzZiMjg4
Li43ZWMwMzM2Y2E3OGIzMjlkM2M1MGVhMTg5NTBhNjg5OTZlNGQ4ZGEwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMTItMTcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpbyBDYXB0dXJlIGluIEdQVVByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9jYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEy
LTE3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZVN0
b3JhZ2VFbmdpbmUgc2hvdWxkIG5vdCBjbGVhciBjYWNoZXMgbWVtb3J5IHJlcHJlc2VudGF0aW9u
IGZvciBlcGhlbWVyYWwgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLWV4cGVjdGVkLnR4
dAppbmRleCBhYWIwYzZkMWYwZjkxYzEwYmZhMjEyMjdhZmFhNWY2M2QzY2NhNWUzLi5hOWJhNTAw
MzAzNDk2YTg2ZTFhN2VlZjNlY2RhOGYyZWI0NjI5Y2U2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVBdWRpb0luR1BVUHJvY2Vzcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9jYXB0dXJlQXVkaW9JbkdQVVByb2Nl
c3MtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBGYWlsZWQg
dG8gY3JlYXRlIE1lZGlhU3RyZWFtIGF1ZGlvIHNvdXJjZTogQXVkaW8gY2FwdHVyZSBpbiBHUFVQ
cm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZAogCiAKLUZBSUwgUGxheSBhdWRpbyBjYXB0dXJlZCBp
biBHUFUgcHJvY2VzcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJOb3RSZWFkYWJsZUVycm9yOiBUaGUgSS9PIHJlYWQgb3BlcmF0aW9uIGZhaWxl
ZC4iCitQQVNTIFBsYXkgYXVkaW8gY2FwdHVyZWQgaW4gR1BVIHByb2Nlc3MgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385977</attachid>
            <date>2019-12-18 08:29:30 -0800</date>
            <delta_ts>2019-12-18 11:40:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205056-20191218172928.patch</filename>
            <type>text/plain</type>
            <size>42498</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ0NzNmNGFiNzNkZGQ4
MGQ1MjNlY2RlODRmMWQyZDZiMzhkOGEzYy4uZTZiZDk1ZWU3YjMwMzc5ZWMwNTA3YmI4ZjZlOTc1
MzljZDdlMDQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEyLTE4ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
QXVkaW8gQ2FwdHVyZSBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENh
cmxzb24uCisKKyAgICAgICAgRXhwb3J0IHNvbWUgV2ViQ29yZSBoZWFkZXJzLgorICAgICAgICBB
bGxvdyBkaXNhYmxpbmcgdGhlIGF1ZGlvIHNlc3Npb24gZGVidWcgYXNzZXJ0IGluIHRoZSBHUFUg
cHJvY2Vzcy4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VBdWRpb1NoYXJlZFVuaXQ6OnN0YXJ0VW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VB
dWRpb1NoYXJlZFVuaXQ6OnNldERpc2FibGVBdWRpb1Nlc3Npb25DaGVjayk6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQuaDoKKwogMjAxOS0x
Mi0xOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdGVj
dCBTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZSBmcm9tIGEgbnVsbCBleGVjU3RhdGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNmU3NTJhZWU5ZjdjMzdlODAyMjA3OGNkMjc1ZTdlYTMyYTZjZWFkZi4uNTk2MDlkNWYw
Mjg4ZjkzNjY4YzExNDA5YjMyY2E2MDE0OWY3MzAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBA
QAorMjAxOS0xMi0xOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIEF1ZGlvIENhcHR1cmUgaW4gR1BVUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE1ha2UgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIgYW5kIFByb3h5IGFibGUgdG8gd29yayB3aXRoIEdQVSBwcm9jZXNzLgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgY2FwdHVyaW5nIGF1ZGlvIGluIHRoZSBHUFUgcHJvY2VzcywgdGhp
cyBpcyBsaW1pdGVkIHRvIG1vY2sgYXVkaW8gc291cmNlcyBmb3Igbm93CisgICAgICAgIGFzIHdl
IGRvIG5vdCBzdXBwb3J0IEF1ZGlvU2Vzc2lvbiBpbiB0aGUgR1BVIHByb2Nlc3MuCisgICAgICAg
IENvdmVyZWQgYnkgcmViYXNlZCB0ZXN0LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQ
cm9jZXNzOjpzZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUdQVVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tR1BVUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnN5bmNXaXRoV2ViQ29yZVByZWZzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpT
b3VyY2U6OnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcHR1cmVGYWls
ZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpj
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNv
dXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpjYXBhYmlsaXRpZXMpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjphcHBseUNvbnN0cmFp
bnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVu
ZGVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6
aGFzRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291
cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
R1BVUHJvY2Vzcyk6CisKIDIwMTktMTItMTggIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlZmluZSBSVENNb25pdG9yIGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOWYwYTFkNmQ2
NjIzNzJlY2I0NjJmYzc2ZjM2ZjUzY2I5Y2YzMmEzLi4zYjhlM2M1N2I2ZmJmYWRjMGUwYzkzNGVh
MTMyNWY2NWY1NWM3ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDUxLDYgKzEwNTEsOCBAQAogCQk0MTI5QzlBQjFGNTlD
NTczMDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEMzOTVCMUM4RjBBNjEwMDUxQzhBMyAvKiBS
ZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQxMjlDOUFGMUY1OUNGNUIwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVh
bVNpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MjlDOTgwMUY1ODYxQzcwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTJERTRCODIxOTI4NUMw
MDA3NUYzQTcgLyogUlRDUnRwQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTJERTRCNjIxOTI4NUJGMDA3NUYzQTcgLyogUlRDUnRw
Q2FwYWJpbGl0aWVzLmggKi87IH07CisJCTQxMkRFRjFEMjNBOTE4NjYwMEQ4NDBGNiAvKiBNb2Nr
QXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzQ0RUNFQjFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMkRF
RjFGMjNBOTE4QTMwMEQ4NDBGNiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc3RjUxRTIzODI1NDVFMDBDMDQ0
ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxMzNDQjhCMjBGODBFOTkwMEU4OUIxMSAvKiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEzM0NCODkyMEY4MEU4NjAwRTg5QjExIC8qIE1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VDb2NvYS5jcHAgKi87IH07CiAJCTQxMzZDNTdBMjM5OEU1QkUwMDI0OTdEMyAvKiBJ
bnRlcm5hbHNNYXBMaWtlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMzZDNTc4MjM5OEU1QjUwMDI0OTdEMyAvKiBJbnRlcm5hbHNNYXBMaWtlLmNw
cCAqLzsgfTsKIAkJNDEzNkM1N0MyMzk4RUNDRjAwMjQ5N0QzIC8qIEpTSW50ZXJuYWxzTWFwTGlr
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDZG
M0U5MjFDMUY4NTU1MDA2MURCRDYgLyogSlNJbnRlcm5hbHNNYXBMaWtlLmNwcCAqLzsgfTsKQEAg
LTI5MTEyLDYgKzI5MTE0LDcgQEAKIAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUgLyogQmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMjRFRTgwQzI2
NDFDRDAwOUUyMzQ5IC8qIEJhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEJCNjE2MUQw
QTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MkRFRjFGMjNBOTE4QTMwMEQ4NDBGNiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzlFNjFDQTEyNkNBNUM0MDBCNjNFOEQgLyogQmFzZUJ1dHRvbklucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5RTYxQ0MxMjZDQTVDNDAwQjYzRThEIC8qIEJhc2VD
aGVja2FibGVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1RTBDNjVDMTY0M0M0MkMw
MEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMTQ5MSw2ICszMTQ5NCw3IEBACiAJCQkJNTNCODk1QUYxOURDN0VEOTAwOUNB
QTkzIC8qIE1pY3JvdGFza3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzcyQzRGMEM0RUIzMDQw
MDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkYxMDg2
NjE2MkI2REE4MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDEyREVGMUQyM0E5MTg2NjAwRDg0MEY2IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUNERjJCMDExMTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREY0QjcyNDFFMDNCRjgxMDBFMjM1QTIgLyogTW9ja0NETUZh
Y3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzIwMUUwM0JGNkYwMEUyMzVBMiAvKiBN
b2NrQ0RNRmFjdG9yeS5pZGwgaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0
LmNwcAppbmRleCAxZGE3OThhYzE2N2QyYzg1YjAwOGIzYjM5NTAwYmJjZmRkMGUxM2E3Li45YWE4
OWRiMTBlMzVjZmI5Zjg0NGM3ZDAxYTJmZWI5MjRkMjYzOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1No
YXJlZFVuaXQuY3BwCkBAIC05Myw4ICs5MywxMCBAQCB2b2lkIEJhc2VBdWRpb1NoYXJlZFVuaXQ6
OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiBPU1N0YXR1cyBCYXNlQXVkaW9TaGFyZWRVbml0OjpzdGFy
dFVuaXQoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5n
ZWQoKTsKLSAgICBBU1NFUlQoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuY2F0ZWdvcnko
KSA9PSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQpOworICAgIGlmICghbV9kaXNhYmxlQXVk
aW9TZXNzaW9uQ2hlY2spIHsKKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKKyAgICAgICAg
QVNTRVJUKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmNhdGVnb3J5KCkgPT0gQXVkaW9T
ZXNzaW9uOjpQbGF5QW5kUmVjb3JkKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIGlmIChhdXRvIGVy
cm9yID0gc3RhcnRJbnRlcm5hbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Jhc2VBdWRpb1NoYXJlZFVuaXQuaAppbmRleCA1
YmU5MjUxNjE5MGY1OTUzZjA4ZDYyYWUyMmY2YTY3NTk5OWRhYTc5Li5hM2IyMTFhZDc3MzJkOWFi
YjA2NjYwNzcxNDU1MTRlMTAxODg0ZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQmFzZUF1ZGlvU2hhcmVkVW5pdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9CYXNlQXVkaW9TaGFyZWRVbml0LmgKQEAg
LTc2LDYgKzc2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBDYXBhYmlsaXR5VmFsdWVPclJh
bmdlIHNhbXBsZVJhdGVDYXBhY2l0aWVzKCkgY29uc3QgPSAwOwogCisgICAgdm9pZCBzZXREaXNh
YmxlQXVkaW9TZXNzaW9uQ2hlY2soYm9vbCB2YWx1ZSkgeyBtX2Rpc2FibGVBdWRpb1Nlc3Npb25D
aGVjayA9IHZhbHVlOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmb3JFYWNoQ2xpZW50KGNv
bnN0IEZ1bmN0aW9uPHZvaWQoQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSYpPiYpIGNvbnN0OwogICAg
IGJvb2wgaGFzQ2xpZW50cygpIGNvbnN0IHsgcmV0dXJuICFtX2NsaWVudHMuaXNFbXB0eSgpOyB9
CkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8Q29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZSo+IG1fY2xpZW50czsKICAgICBtdXRhYmxlIFJlY3Vyc2l2ZUxvY2sgbV9jbGll
bnRzTG9jazsKKyAgICBib29sIG1fZGlzYWJsZUF1ZGlvU2Vzc2lvbkNoZWNrIHsgZmFsc2UgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja0F1ZGlvU2hhcmVkVW5pdC5oCmlu
ZGV4IDU0YzcyNzgyMzYxOTg2M2FlZDJkOGQ5ZmU1YzM0ODhjMWE0N2JiNDkuLjgwMzI4ZTUwMmVm
OWE3MDhhN2ZiMDc0MmMzNGVjZDFjOGQzM2E5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrQXVkaW9TaGFyZWRVbml0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tBdWRpb1NoYXJlZFVuaXQu
aApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsK
IAogY2xhc3MgTW9ja0F1ZGlvU2hhcmVkVW5pdCBmaW5hbCA6IHB1YmxpYyBCYXNlQXVkaW9TaGFy
ZWRVbml0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTW9ja0F1ZGlvU2hhcmVkVW5pdCYgc2luZ2xl
dG9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE1vY2tBdWRpb1NoYXJlZFVuaXQmIHNp
bmdsZXRvbigpOwogICAgIE1vY2tBdWRpb1NoYXJlZFVuaXQoKTsKIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCBjMzQ4ZTMwZGU4YTI5ZTk3M2VhZWFhNmE5YjhhOGUwOTMzYWE4ODI1Li5kMDE5
ZTcxNWE2YzY4MmVjNmE0MjViNWUzOTM5NzBlYTJjNzhkNjVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0z
OCwxMyArMzgsMzUgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCisjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNz
YWdlcy5oIgogCisjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBHUFVQcm94
eUZvckNhcHR1cmUgZmluYWwgOiBwdWJsaWMgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Q29ubmVjdGlvblByb3h5IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBHUFVQcm94eUZvckNhcHR1cmUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgcHJvY2VzcykKKyAgICAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKKyAgICB7CisgICAgfQor
Citwcml2YXRlOgorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVzc2FnZVJlY2VpdmVyJiByZWNlaXZlcikg
ZmluYWwgeyB9CisgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSkgZmluYWwgeyB9CisgICAgSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9wcm9jZXNzLmNvbm5lY3Rpb24oKTsgfQor
CisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9wcm9jZXNzOworfTsKKyNlbmRpZgor
CiBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y3JlYXRlKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyhncHVQcm9jZXNzLCB3ZWJQcm9jZXNzSWRlbnRpZmllciwgY29ubmVj
dGlvbklkZW50aWZpZXIpKTsKQEAgLTg0LDEyICsxMDYsMjggQEAgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUGxheWVy
TWFuYWcKICAgICByZXR1cm4gKm1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiB9CiAK
KyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkoKQoreworICAgIGlmICghbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5KQorICAgICAgICBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgPSBtYWtlVW5p
cXVlPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KG1ha2VVbmlxdWVSZWY8R1BVUHJveHlG
b3JDYXB0dXJlPigqdGhpcykpOworCisgICAgcmV0dXJuICptX3VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgdXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlv
biwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0
cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCkBAIC05OSw2ICsxMzcsMTMgQEAgdm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpIHsKKyAgICAgICAgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVT
eW5jTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBiYmZjMTY4MGJiYjMwZTE5N2RhZjgwMzYwNWNmYzRh
MjE3OWFlZjQ5Li5jNDA2ODVmMTY3ZDU0MGJlNWVhNzRlNjgzYWQwOTczOGI5ZGFhZDlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVBy
b2Nlc3M7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKK2NsYXNzIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBA
IC01OCwxNyArNTksMjMgQEAgcHJpdmF0ZToKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKTsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIHVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKKyNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVBy
b2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNz
SWRlbnRpZmllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAKaW5kZXggZjliN2YxNzYzOGNlM2ExMGNkZDczNTEwZjExYmM1ZTFhYmVl
YjFlYy4uNzQxZDljNGM4MDMyMmQwMjBlNzM4MDVjYTA4N2ZlY2UyNGYwYjFmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNz
YWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01vY2tBdWRpb1NoYXJlZFVuaXQuaD4KICNpbmNsdWRlIDx3dGYvQWxnb3JpdGht
cy5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uU2V0Lmg+CkBAIC0xMzYsNiArMTM3LDE1IEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MqIEdQVVByb2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9uKFByb2Nlc3NJZGVudGlmaWVyIGlk
CiAgICAgcmV0dXJuIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyKTsKIH0K
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIEdQVVByb2Nlc3M6OnNldE1vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCit7CisgICAgLy8gRklYTUU6IEVuYWJs
ZSB0aGUgYXVkaW8gc2Vzc2lvbiBjaGVjayBieSBpbXBsZW1lbnRpbmcgYW4gQXVkaW9TZXNzaW9u
IGZvciB0aGUgR1BVUHJvY2Vzcy4KKyAgICBNb2NrQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0b24o
KS5zZXREaXNhYmxlQXVkaW9TZXNzaW9uQ2hlY2soaXNFbmFibGVkKTsKKyAgICBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFi
bGVkKGlzRW5hYmxlZCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuaAppbmRleCBlODg4NzI2ODg3OGZlZDBkMjY3YTA1NGU1YzBhZmNhMzM5NTg3N2EwLi4xM2Yw
NGMxZDIxMDU4OTE4MjFjNTQxNWI3OGYzNTRhZjg0YTk3YjRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM7CiBjbGFzcyBHUFVQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nl
c3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxHUFVQcm9jZXNzPiwgcHVibGljIENhbk1h
a2VXZWFrUHRyPEdQVVByb2Nlc3M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9j
ZXNzKTsKIHB1YmxpYzoKLSAgICBHUFVQcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmJik7CisgICAgZXhwbGljaXQgR1BVUHJvY2VzcyhBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5HUFVQcm9jZXNzKCk7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpH
UFU7CiAKQEAgLTc0LDcgKzc0LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcHJvY2Vzc0RpZFRy
YW5zaXRpb25Ub0ZvcmVncm91bmQoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRUcmFuc2l0aW9uVG9C
YWNrZ3JvdW5kKCk7Ci0KKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgc2V0TW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZChib29sKTsKKyNlbmRpZgogICAgIC8vIENvbm5lY3Rpb25z
IHRvIFdlYlByb2Nlc3Nlcy4KICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
LCBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25z
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggZjE4NDc3OGVmMGY2OWFhNjY2M2I4MTBkYzVjN2FhYjI1N2M4MjRlZC4uOTQ4MmEx
OGUwNWNiOGU5N2RlMjgxZGRiMDU1MzllNWU0MThmOTYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTMxLDYgKzMxLDEwIEBAIG1l
c3NhZ2VzIC0+IEdQVVByb2Nlc3MgewogCiAgICAgUHJvY2Vzc0RpZFRyYW5zaXRpb25Ub0ZvcmVn
cm91bmQoKQogICAgIFByb2Nlc3NEaWRUcmFuc2l0aW9uVG9CYWNrZ3JvdW5kKCkKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChib29s
IGlzRW5hYmxlZCkKKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzNDFkNjdiYWYyZGNkNWMxMjZiMTE2NDll
NjVkMjA2MzY5NGI2ZTQ3Li5mOWIzNWQ0NTEzMzYwZmU5Njg5MDVhMTZmZWQyYzVkNzU3ZGM4ZjFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJl
Zi5oPgogCi0jZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NB
R0VfQ0hFQ0tfQkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgbV9wcm9jZXNz
LmNvbm5lY3Rpb24oKSkKKyNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWRlbnRpZmll
cikgTUVTU0FHRV9DSEVDS19CQVNFKG1fcHJveGllcy5pc1ZhbGlkS2V5KGlkZW50aWZpZXIpLCAm
bV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSkKIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE1NSwxNSArMTU1LDE1IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIAotVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MpCi0gICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Q
cm94eT4mJiBjb25uZWN0aW9uUHJveHkpCisgICAgOiBtX2Nvbm5lY3Rpb25Qcm94eShXVEZNb3Zl
KGNvbm5lY3Rpb25Qcm94eSkpCiB7Ci0gICAgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCAqdGhpcyk7CisgICAgbV9jb25uZWN0aW9uUHJveHktPmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCAqdGhpcyk7CiB9CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KCkKIHsKLSAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpOworICAgIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1
Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTk2LDcgKzE5Niw3
IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIGF1dG8gc291cmNlID0gc291cmNl
T3JFcnJvci5zb3VyY2UoKTsKICAgICAgICAgc2V0dGluZ3MgPSBzb3VyY2UtPnNldHRpbmdzKCk7
CiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7Ci0gICAgICAgIG1fcHJv
eGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCAqbV9wcm9jZXNzLmNvbm5l
Y3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIG1h
a2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigp
LCBXVEZNb3ZlKHNvdXJjZSkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFp
bnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CiAgICAgY29tcGxldGlv
bkhhbmRsZXIoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdURk1vdmUoc2V0dGluZ3Mp
KTsKQEAgLTI0OCw5ICsyNDgsOSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OgogICAgIGF1dG8m
IHNvdXJjZSA9IHByb3h5LT5zb3VyY2UoKTsKICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS5hcHBs
eUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKTsKICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgbV9w
cm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0
cmFpbnRzU3VjY2VlZGVkKGlkLCBzb3VyY2Uuc2V0dGluZ3MoKSksIDApOworICAgICAgICBtX2Nv
bm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGlkLCBzb3VyY2Uuc2V0dGluZ3Mo
KSksIDApOwogICAgIGVsc2UKLSAgICAgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVkKGlkLCByZXN1bHQtPmJh
ZENvbnN0cmFpbnQsIHJlc3VsdC0+bWVzc2FnZSksIDApOworICAgICAgICBtX2Nvbm5lY3Rpb25Q
cm94eS0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpBcHBseUNvbnN0cmFpbnRzRmFpbGVkKGlkLCByZXN1bHQtPmJhZENvbnN0cmFpbnQsIHJlc3Vs
dC0+bWVzc2FnZSksIDApOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmNsb25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBuZXdTb3VyY2VJRCkKQEAgLTI1OCw3
ICsyNTgsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKHVpbnQ2
NF90IGNsb25lZElELCB1aW50NjRfdCBuZXdTb3VyY2VJRAogICAgIEFTU0VSVChtX3Byb3hpZXMu
Y29udGFpbnMoY2xvbmVkSUQpKTsKICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhuZXdT
b3VyY2VJRCkpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQp
KQotICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVBy
b3h5PihuZXdTb3VyY2VJRCwgKm1fcHJvY2Vzcy5jb25uZWN0aW9uKCksIHByb3h5LT5zb3VyY2Uo
KS5jbG9uZSgpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlx
dWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlv
bigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaAppbmRleCA0YTE1MGFmNjFjYjQ2Y2ExYzUzYTc1ZDEzMDNmNWNmM2U0NWNh
YmYxLi40MmU4YzljNThkNzUyYmE4NTg4MzUzMjM2N2U5NzRhZDJkMDNmNzk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYv
VW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSwxNCArNDIsMjMgQEAg
Y2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgY2xhc3MgQ29ubmVjdGlvblByb3h5IHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkNvbm5lY3Rpb25Qcm94eSgpID0gZGVmYXVsdDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5j
ZSwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UpID0gMDsKKyAgICAgICAgdmly
dHVhbCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSA9IDA7CisgICAgfTsKKyAgICBleHBs
aWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJv
eHk+JiYpOwogICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CiAKLSAgICBXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3M7IH0KICAgICB2
b2lkIGNsZWFyKCk7CiAKICAgICB2b2lkIHNldE9yaWVudGF0aW9uKHVpbnQ2NF90KTsKIAorICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbUdQ
VVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBlbmNvZGVyKSB7IGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCBlbmNvZGVyKTsgfQorCiBwcml2YXRlOgog
ICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKQEAgLTY3LDcgKzc3LDcgQEAg
cHJpdmF0ZToKICAgICBjbGFzcyBTb3VyY2VQcm94eTsKICAgICBmcmllbmQgY2xhc3MgU291cmNl
UHJveHk7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZVByb3h5
Pj4gbV9wcm94aWVzOwotICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworICAgIFVuaXF1
ZVJlZjxDb25uZWN0aW9uUHJveHk+IG1fY29ubmVjdGlvblByb3h5OwogICAgIFdlYkNvcmU6Ok9y
aWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyIHsgMCB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDZkNjExMzg5Y2FhZjdhMmI0MmQ2
MThjMjMzOWYzYWYwMWFlYzdjOTQuLjIxMzYwNTllYmZhYmUwNTZhZjhlN2UxY2M0OTJjNGZiNjc0
OGVjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTQwLDYgKzQw
LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL1Njb3BlLmg+CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaW5jbHVkZSAiR1BVUHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjk5LDcg
KzcwNCwxMyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpz
eW5jV2l0aFdlYkNvcmVQcmVmcygpIGNvbnN0CiAgICAgLy8gRW5hYmxlL2Rpc2FibGUgdGhlIG1v
Y2sgY2FwdHVyZSBkZXZpY2VzIGZvciB0aGUgVUkgcHJvY2VzcyBhcyBwZXIgdGhlIFdlYkNvcmUg
cHJlZmVyZW5jZXMuIE5vdGUgdGhhdAogICAgIC8vIHRoaXMgaXMgYSBub29wIGlmIHRoZSBwcmVm
ZXJlbmNlIGhhc24ndCBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhpcyB3YXMgY2FsbGVk
LgogICAgIGJvb2wgbW9ja0RldmljZXNFbmFibGVkID0gbV9tb2NrRGV2aWNlc0VuYWJsZWRPdmVy
cmlkZSA/ICptX21vY2tEZXZpY2VzRW5hYmxlZE92ZXJyaWRlIDogbV9wYWdlLnByZWZlcmVuY2Vz
KCkubW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCgpOworICAgIGlmIChNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6bW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKCkgPT0g
bW9ja0RldmljZXNFbmFibGVkKQorICAgICAgICByZXR1cm47CiAgICAgTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNldE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZCht
b2NrRGV2aWNlc0VuYWJsZWQpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV9w
YWdlLnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAg
ICAgICBHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6OkdQVVByb2Nl
c3M6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgeyBtb2NrRGV2aWNlc0VuYWJsZWQgfSwg
MCk7CisjZW5kaWYKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA2MjI3MTdlYjBjNTZjYWVmYjM1OWE3NmVhZDk1MjliOTU1ZjIw
NWE5Li5jNDRiZjdjMzJlOTkzMTM5YzEwM2M0N2U1MTY0MjRkOGVkYzg2NTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE1MCw2ICsxNTAsMjAg
QEAgUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVGb3JTZXJ2aWNl
V29ya2VycyhXZWJQcm9jZXNzUG9vbCYgcHIKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBVSVByb3h5Rm9yQ2FwdHVyZSBmaW5h
bCA6IHB1YmxpYyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDb25uZWN0aW9uUHJveHkg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFVJ
UHJveHlGb3JDYXB0dXJlKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykgOiBtX3Byb2Nlc3MocHJv
Y2VzcykgeyB9Citwcml2YXRlOgorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6TWVzc2FnZVJlY2VpdmVyJiBy
ZWNlaXZlcikgZmluYWwgeyBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNl
aXZlck5hbWUsIHJlY2VpdmVyKTsgfQorICAgIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUpIGZpbmFsIHsgbV9wcm9jZXNz
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lKTsgfQorICAgIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuICptX3Byb2Nlc3MuY29ubmVj
dGlvbigpOyB9CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307CisjZW5kaWYK
KwogV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nl
c3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlLCBJc1ByZXdhcm1lZCBp
c1ByZXdhcm1lZCkKICAgICA6IEF1eGlsaWFyeVByb2Nlc3NQcm94eShwcm9jZXNzUG9vbC5hbHdh
eXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKICAgICAsIG1fcmVzcG9uc2l2ZW5lc3NUaW1l
cigqdGhpcykKQEAgLTE2Miw3ICsxNzYsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQ
cm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAg
LCBtX3Zpc2libGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZUJh
Y2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAgICAgLCBtX3dlYnNpdGVEYXRhU3Rv
cmUod2Vic2l0ZURhdGFTdG9yZSkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKLSAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShtYWtlVW5pcXVl
PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KCp0aGlzKSkKKyAgICAsIG1fdXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eShtYWtlVW5pcXVlPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk+KG1ha2VVbmlxdWVSZWY8VUlQcm94eUZvckNhcHR1cmU+KCp0aGlzKSkpCiAjZW5kaWYKICAg
ICAsIG1faXNQcmV3YXJtZWQoaXNQcmV3YXJtZWQgPT0gSXNQcmV3YXJtZWQ6OlllcykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKaW5kZXggNTg0YTFiM2RmNjNkODM3OWZkNjg5YmNjZjg3ZDg2NzU2ZGVkOTJjNy4uZThk
YWFlMGY5YmE4NWEyNTFiNzA2N2RlMzhjYTRhNzY5NzQyMTU4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTMy
LDYgKzMyLDggQEAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2Uu
aCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKQEAgLTY2LDYgKzY4LDEzIEBAIHZvaWQg
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpECiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBs
ZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT5kaWRSZWNlaXZlTWVzc2FnZUZyb21X
ZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CisgICAgICAgIGlmIChhdXRvKiBjYXB0dXJlTWFuYWdlciA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+KCkpCisg
ICAgICAgICAgICBjYXB0dXJlTWFuYWdlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vz
cyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4Yjc0Mjk5ZTRhYTZiNzYzNjgw
NzE1ODc2ZjBkNGU1NzQyYTczMmQ0Li44NTNjYzE2NTUwOTRiYjUyNDIxZmI2Y2ZhMWMzMTlhOTY0
NzFjMDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6
OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlk
ZTsKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gYSB3ZWIgcHJvY2VzcyB0byB0aGlzIEdQ
VSBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggNTg3NTNiMzZiMDZhY2NiZjg2MzRh
MDJjNWJiYmI2ZTg2NmM0ZDhhMy4uOWIwZWViNGUzMjViYTk1YWExZjNiNDBlZTBkNzRkZWQ0N2M3
MjljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgICJHUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAj
aW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMTI1LDEyICsxMjYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3NldHRpbmdzOwogICAgIH0KIAotICAgIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsCi0g
ICAgewotICAgICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKQotICAgICAgICAgICAgbV9jYXBhYmls
aXRpZXMgPSBtX21hbmFnZXIuY2FwYWJpbGl0aWVzKG1faWQpOwotICAgICAgICByZXR1cm4gbV9j
YXBhYmlsaXRpZXMudmFsdWUoKTsKLSAgICB9CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7CiAKICAgICBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5n
czsgfQogICAgIHZvaWQgc2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYg
c2V0dGluZ3MpCkBAIC0yMTYsMzEgKzIxMiwyNiBAQCBwdWJsaWM6CiAKICAgICBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Rldmlj
ZVR5cGU7IH0KIAorICAgIHZvaWQgc2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZh
bHVlKSB7IG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IHZhbHVlOyB9CisgICAgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzOyB9CisKKyAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKTsKKwor
ICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKKwogcHJpdmF0ZToKLSAgICB2b2lkIHN0YXJ0UHJv
ZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0YXJ0UHJvZHVjaW5nRGF0YShtX2lkKTsg
fQotICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fbWFuYWdlci5zdG9wUHJv
ZHVjaW5nRGF0YShtX2lkKTsgfQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7
CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIGJvb2wgaXNDYXB0dXJl
U291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gUmVhbHRpbWVN
ZWRpYVNvdXJjZQogICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CiAgICAg
dm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBoYXNFbmRlZCgp
IGZpbmFsIHsgbV9tYW5hZ2VyLnNvdXJjZUVuZGVkKG1faWQpOyB9CiAKLSAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCi0gICAg
ewotICAgICAgICBtX21hbmFnZXIuYXBwbHlDb25zdHJhaW50cyhtX2lkLCBjb25zdHJhaW50cyk7
Ci0gICAgICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRz
KGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxl
ciYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2U6
Ok9ic2VydmVyJikKLSAgICB7Ci0gICAgICAgIG1fbWFuYWdlci5yZXF1ZXN0VG9FbmQobV9pZCk7
Ci0gICAgfQotCi0gICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpCi0gICAgewotICAgICAgICBt
X21hbmFnZXIucmVxdWVzdFRvRW5kKG1faWQpOwotICAgIH0KKyAgICB2b2lkIHJlcXVlc3RUb0Vu
ZChSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYpIHsgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsg
fQorICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKIAogICAgIHVpbnQ2NF90IG1faWQ7CiAg
ICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKQEAgLTI1NCw2ICsyNDUsNyBA
QCBwcml2YXRlOgogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgbV9kZXZpY2VUeXBlIHsg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93biB9OwogCiAgICAgRGVxdWU8QXBwbHlD
b25zdHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7Cisg
ICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwogfTsKIAogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3Mm
IHByb2Nlc3MpCkBAIC0yOTMsNyArMjg1LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXIKICAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGlzcGxheUNh
cHR1cmVGYWN0b3J5KG1fZGlzcGxheUZhY3RvcnkpOwogfQogCi1XZWJDb3JlOjpDYXB0dXJlU291
cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK1dlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCiB7CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTMwMiwxMSArMjk0LDIyIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7
CiAgICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwgKmNvbnN0cmFp
bnRzKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBl
cnJvck1lc3NhZ2UsIHNldHRpbmdzKSwgMCkpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAg
IGF1dG8qIGNvbm5lY3Rpb24gPSBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID8gJm1fcHJvY2Vz
cy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSA6IG1fcHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworI2Vsc2UKKyAgICBBU1NFUlQoIXNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpOworICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX3Byb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyNlbmRpZgorICAgIGlmICghY29ubmVjdGlvbi0+c2VuZFN5
bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBoYXNoU2FsdCwg
KmNvbnN0cmFpbnRzKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3Vj
Y2VlZGVkLCBlcnJvck1lc3NhZ2UsIHNldHRpbmdzKSwgMCkpCisgICAgICAgIHJldHVybiBXVEZN
b3ZlKGVycm9yTWVzc2FnZSk7CisKKyAgICBpZiAoIXN1Y2NlZWRlZCkKICAgICAgICAgcmV0dXJu
IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKIAogICAgIGF1dG8gdHlwZSA9IGRldmljZS50eXBlKCkg
PT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSA/IFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6VmlkZW87CiAgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShT
dHJpbmc6Om51bWJlcihpZCksIHR5cGUsIGRldmljZS50eXBlKCksIFN0cmluZyB7IHNldHRpbmdz
LmxhYmVsKCkuc3RyaW5nKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGlkLCAqdGhpcykpOworICAg
IGlmIChzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAgICBzb3VyY2UtPnNldFNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiAgICAgc291
cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLmFkZChp
ZCwgc291cmNlLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yKFdURk1vdmUoc291cmNlKSk7CkBAIC0zMTYsNyArMzE5LDcgQEAgdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKIHsKICAgICBpZiAo
YXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkKSkgewogICAgICAgICBzb3VyY2UtPnN0b3Ao
KTsKLSAgICAgICAgc291cmNlRW5kZWQoaWQpOworICAgICAgICBzb3VyY2UtPmhhc0VuZGVkKCk7
CiAgICAgfQogfQogCkBAIC0zMjQsNyArMzI3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y2FwdHVyZUZhaWxlZCh1aW50NjRfdCBpZCkKIHsKICAgICBpZiAoYXV0byBzb3VyY2Ug
PSBtX3NvdXJjZXMuZ2V0KGlkKSkgewogICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsK
LSAgICAgICAgc291cmNlRW5kZWQoaWQpOworICAgICAgICBzb3VyY2UtPmhhc0VuZGVkKCk7CiAg
ICAgfQogfQogCkBAIC0zNzMsMzkgKzM3Niw1MyBAQCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZQog
fQogI2VuZGlmCiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5n
RGF0YSh1aW50NjRfdCBpZCkKK0lQQzo6Q29ubmVjdGlvbiogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6Y29ubmVjdGlvbigpCiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YShpZCksIDAp
OworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICByZXR1cm4gbV9zaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzID8gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpIDogV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKKyNlbHNlCisgICAgcmV0dXJuIG1fcHJvY2Vzcy5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOworI2VuZGlmCiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OnN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQordm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewotICAgIG1fcHJvY2Vzcy5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5n
RGF0YShpZCksIDApOworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhKG1faWQpLCAwKTsKIH0KIAot
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6Y2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKQordm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCiB7Ci0gICAgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgbV9wcm9jZXNz
LnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmls
aXRpZXMoaWQpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2FwYWJp
bGl0aWVzOjpSZXBseShjYXBhYmlsaXRpZXMpLCAwKTsKLSAgICByZXR1cm4gY2FwYWJpbGl0aWVz
OworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEobV9pZCksIDApOwogfQogCi12b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzZXRNdXRlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCkKK2NvbnN0
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpTb3VyY2U6OmNhcGFiaWxpdGllcygpCiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldE11dGVkKGlkLCBtdXRl
ZCksIDApOworICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CisgICAgICAgIGNvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNhcGFiaWxp
dGllcyB7IG1faWQgfSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNh
cGFiaWxpdGllczo6UmVwbHkoY2FwYWJpbGl0aWVzKSwgMCk7CisgICAgICAgIG1fY2FwYWJpbGl0
aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOworICAgIH0KKworICAgIHJldHVybiBtX2NhcGFi
aWxpdGllcy52YWx1ZSgpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBs
eUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiBjb25zdHJhaW50cykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXBw
bHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBt
X3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBw
bHlDb25zdHJhaW50cyhpZCwgY29uc3RyYWludHMpLCAwKTsKKyAgICBtX3BlbmRpbmdBcHBseUNv
bnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpBcHBseUNvbnN0cmFpbnRzKG1faWQsIGNvbnN0cmFpbnRzKSwgMCk7CiB9CiAKIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuZGVkKHVpbnQ2NF90IGlkKQogewotICAg
IG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpF
bmQoaWQpLCAwKTsKICAgICBtX3NvdXJjZXMucmVtb3ZlKGlkKTsKIH0KIAordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpoYXNFbmRlZCgpCit7CisgICAgY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmQgeyBtX2lk
IH0sIDApOworICAgIG1fbWFuYWdlci5zb3VyY2VFbmRlZChtX2lkKTsKK30KKwogdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCh1aW50NjRfdCBp
ZCwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykK
IHsKICAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkKSkKQEAgLTQ0NCwxNSAr
NDYxLDIwIEBAIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6Y2xvbmVWaWRlb1NvdXJjZShTb3VyY2UmIHNvdXJjCiAgICAgcmV0dXJuIGNsb25lU291cmNl
OwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZXF1ZXN0VG9FbmQodWludDY0
X3Qgc291cmNlSUQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BC
ZWluZ09ic2VydmVkKCkKIHsKLSAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5kIHsgc291cmNlSUQgfSwgMCk7CisgICAg
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpSZXF1ZXN0VG9FbmQgeyBtX2lkIH0sIDApOwogfQogCiBDYXB0dXJlU291cmNlT3JFcnJvciBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgaWYgKG1fc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSB7
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgICAgICByZXR1cm4gbV9tYW5hZ2VyLmNyZWF0
ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMsIG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisjZWxzZQogICAgICAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeyAiQXVkaW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBs
ZW1lbnRlZCJfcyB9OworI2VuZGlmCisgICAgfQogICAgIHJldHVybiBtX21hbmFnZXIuY3JlYXRl
Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggZWNlZWYwOGRkZmZlMTU3ZjYwMDEwOGY0NmNiNWZkZDEz
ZmZjNjcxMi4uZjM4ZmU0OWZkNDRmYzdjNTJlN2RmY2VjODJiYmFkMWVmZjY4MDAyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmgKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJv
bUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKwogcHJp
dmF0ZToKICAgICAvLyBXZWJQcm9jZXNzU3VwcGxlbWVudAogICAgIHZvaWQgaW5pdGlhbGl6ZShj
b25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgZmluYWw7CkBAIC05Niw3ICs5OCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7
CiAgICAgfTsKIAotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1
cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
U3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBib29sIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MgPSBmYWxzZSk7CiAKICAgICBjbGFzcyBOb09wQ2FwdHVyZURldmlj
ZU1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q2FwdHVyZURldmljZU1hbmFnZXIgewogICAgIHB1
YmxpYzoKQEAgLTEyOCw3ICsxMzAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRQcm9kdWNp
bmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsK
ICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGll
cyh1aW50NjRfdCk7Ci0gICAgdm9pZCBzZXRNdXRlZCh1aW50NjRfdCwgYm9vbCk7CiAgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHVpbnQ2NF90LCBjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKICAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHNGYWlsZWQodWludDY0X3QsIFN0cmluZyYmLCBTdHJpbmcmJik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZTc0MDQ4YTRhMGI2MGVjZDJmYWI0ZWFlYjAyZmVkYjU4ODNlOTJiNS4uMzg0YjUyYTI3ZTQzMGY1
MjhlODAwZWEwNzQzM2EyMGVmZGM4ZGYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTEy
LTE4ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgQXVkaW8gQ2FwdHVyZSBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVBdWRp
b0luR1BVUHJvY2Vzcy1leHBlY3RlZC50eHQ6CisKIDIwMTktMTItMTggIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3BsYXktd2l0aC1zbG93LXRleHQtdHJhY2tzLmh0bWwg
aXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vY2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLWV4cGVjdGVkLnR4dAppbmRleCBhYWIwYzZk
MWYwZjkxYzEwYmZhMjEyMjdhZmFhNWY2M2QzY2NhNWUzLi5hOWJhNTAwMzAzNDk2YTg2ZTFhN2Vl
ZjNlY2RhOGYyZWI0NjI5Y2U2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2NhcHR1cmVBdWRpb0luR1BVUHJvY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9jYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MtZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBGYWlsZWQgdG8gY3JlYXRlIE1lZGlh
U3RyZWFtIGF1ZGlvIHNvdXJjZTogQXVkaW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBp
bXBsZW1lbnRlZAogCiAKLUZBSUwgUGxheSBhdWRpbyBjYXB0dXJlZCBpbiBHUFUgcHJvY2VzcyBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJOb3RS
ZWFkYWJsZUVycm9yOiBUaGUgSS9PIHJlYWQgb3BlcmF0aW9uIGZhaWxlZC4iCitQQVNTIFBsYXkg
YXVkaW8gY2FwdHVyZWQgaW4gR1BVIHByb2Nlc3MgCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>