<?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>168348</bug_id>
          
          <creation_ts>2017-02-14 18:02:00 -0800</creation_ts>
          <short_desc>[WebRTC] ICE candidates should be filtered according a policy</short_desc>
          <delta_ts>2017-02-21 13:30:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=168392</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1277014</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-14 18:02:00 -0800</bug_when>
    <thetext>The policy should be controlled by the UIProcess in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277015</commentid>
    <comment_count>1</comment_count>
      <attachid>301567</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-14 18:04:35 -0800</bug_when>
    <thetext>Created attachment 301567
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277255</commentid>
    <comment_count>2</comment_count>
      <attachid>301630</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-15 10:25:07 -0800</bug_when>
    <thetext>Created attachment 301630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277258</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-15 10:26:34 -0800</bug_when>
    <thetext>Patch adds the infrastructure to filter out ICE candidate according a given policy defined by the UI process.
At this early stage, current policy is to not disable any filtering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277259</commentid>
    <comment_count>4</comment_count>
      <attachid>301631</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-15 10:30:07 -0800</bug_when>
    <thetext>Created attachment 301631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277264</commentid>
    <comment_count>5</comment_count>
      <attachid>301631</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-15 10:44:14 -0800</bug_when>
    <thetext>Comment on attachment 301631
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Stored candidates may be asvertised to the JS layer if RTCController is notified of a change of filtering policy.

Nit: &quot;asvertised&quot; -&gt; &quot;advertised&quot;

&gt; Source/WebCore/ChangeLog:15
&gt; +        To implement that, PeerConnectionBackend is storing all filtered out candidates and RTCPeerConnection register

Nit: &quot;is storing&quot; -&gt; &quot;stores&quot;

&gt; Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:293
&gt; +    Vector&lt;String&gt; items;

Why not use a StringBuilder, is a Vector&lt;String&gt; more efficient?

&gt; Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:307
&gt; +    bool skip = false;
&gt; +    bool isFirst = true;
&gt; +    StringBuilder filteredSDP;
&gt; +    for (auto&amp; item : items) {
&gt; +        if (skip) {
&gt; +            skip = false;
&gt; +            continue;
&gt; +        }
&gt; +        if (item == &quot;raddr&quot; || item == &quot;rport&quot;) {
&gt; +            skip = true;
&gt; +            continue;
&gt; +        }

Nit: I had to read this several times to understand the logic, renaming the variable to something like &quot;skipNextItem&quot; would make it easier to understand at a glance.

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:67
&gt; +    // RTCPeerConnection may send events at about any time during its lifetime.

Nit: &quot;about&quot; is unnecessary.

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:68
&gt; +    // Let&apos;s make it uncollectable until the pc is closed by JS or the page is stopping it.

Nit: &quot;the page is stopping it&quot; -&gt; &quot;the page stops it&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277266</commentid>
    <comment_count>6</comment_count>
      <attachid>301632</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-15 10:47:21 -0800</bug_when>
    <thetext>Created attachment 301632
Fixing EFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277282</commentid>
    <comment_count>7</comment_count>
      <attachid>301638</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-15 11:36:31 -0800</bug_when>
    <thetext>Created attachment 301638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277284</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-15 11:37:49 -0800</bug_when>
    <thetext>Thanks for the feedback.

(In reply to comment #5)
&gt; Comment on attachment 301631 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301631&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        Stored candidates may be asvertised to the JS layer if RTCController is notified of a change of filtering policy.
&gt; 
&gt; Nit: &quot;asvertised&quot; -&gt; &quot;advertised&quot;

OK

&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        To implement that, PeerConnectionBackend is storing all filtered out candidates and RTCPeerConnection register
&gt; 
&gt; Nit: &quot;is storing&quot; -&gt; &quot;stores&quot;

OK

&gt; &gt; Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:293
&gt; &gt; +    Vector&lt;String&gt; items;
&gt; 
&gt; Why not use a StringBuilder, is a Vector&lt;String&gt; more efficient?

We use a StringBuilder to write the new string.
To split the filtered string, we use the Vector.

&gt; &gt; Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:307
&gt; &gt; +    bool skip = false;
&gt; &gt; +    bool isFirst = true;
&gt; &gt; +    StringBuilder filteredSDP;
&gt; &gt; +    for (auto&amp; item : items) {
&gt; &gt; +        if (skip) {
&gt; &gt; +            skip = false;
&gt; &gt; +            continue;
&gt; &gt; +        }
&gt; &gt; +        if (item == &quot;raddr&quot; || item == &quot;rport&quot;) {
&gt; &gt; +            skip = true;
&gt; &gt; +            continue;
&gt; &gt; +        }
&gt; 
&gt; Nit: I had to read this several times to understand the logic, renaming the
&gt; variable to something like &quot;skipNextItem&quot; would make it easier to understand
&gt; at a glance.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277365</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-02-15 14:45:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/30543773&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277985</commentid>
    <comment_count>10</comment_count>
      <attachid>301638</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-16 15:59:26 -0800</bug_when>
    <thetext>Comment on attachment 301638
Patch

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

We really ought to move the filtering to the NetworkProcess.

&gt; Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:148
&gt; +        String sdp;
&gt; +        String mid;

These need better names or explanations of what they are.

&gt; Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:97
&gt; +    if (configuration.iceTransportPolicy == PeerConnectionStates::IceTransportPolicy::Relay)
&gt; +        disableICECandidateFiltering();

I think this isn&apos;t worth the risk of leaking privacy information for any benefits from skipping filtering.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:832
&gt; +#if ENABLE(WEB_RTC)
&gt; +    // FIXME: Tie ICE filtering with getUserMedia permission.
&gt; +    m_process-&gt;send(Messages::WebPage::DisableICECandidateFiltering(), m_pageID);
&gt; +#if USE(LIBWEBRTC)
&gt; +    // FIXME: Turn down network interface enumeration by default.
&gt; +    m_process-&gt;send(Messages::WebPage::EnableEnumeratingAllNetworkInterfaces(), m_pageID);
&gt; +#endif
&gt; +#endif

This should be put in the creationParameters instead of a message sent just after WebProcess::CreateWebPage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278519</commentid>
    <comment_count>11</comment_count>
      <attachid>302015</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-17 17:05:05 -0800</bug_when>
    <thetext>Created attachment 302015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278560</commentid>
    <comment_count>12</comment_count>
      <attachid>302033</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-17 18:39:10 -0800</bug_when>
    <thetext>Created attachment 302033
Fixing GTK build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278562</commentid>
    <comment_count>13</comment_count>
      <attachid>302033</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-17 18:48:56 -0800</bug_when>
    <thetext>Comment on attachment 302033
Fixing GTK build

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

&gt; Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:94
&gt; +    if (configuration.iceTransportPolicy == PeerConnectionStates::IceTransportPolicy::Relay)
&gt; +        disableICECandidateFiltering();

Is there a reason this wasn&apos;t removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278566</commentid>
    <comment_count>14</comment_count>
      <attachid>302035</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-17 18:56:21 -0800</bug_when>
    <thetext>Created attachment 302035
Fixing relay comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278568</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-17 18:56:52 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 302033 [details]
&gt; Fixing GTK build
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302033&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:94
&gt; &gt; +    if (configuration.iceTransportPolicy == PeerConnectionStates::IceTransportPolicy::Relay)
&gt; &gt; +        disableICECandidateFiltering();
&gt; 
&gt; Is there a reason this wasn&apos;t removed?

The change got lost... fixed in latest patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279501</commentid>
    <comment_count>16</comment_count>
      <attachid>302035</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-21 13:30:48 -0800</bug_when>
    <thetext>Comment on attachment 302035
Fixing relay comment

Clearing flags on attachment: 302035

Committed r212745: &lt;http://trac.webkit.org/changeset/212745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279502</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-21 13:30:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301567</attachid>
            <date>2017-02-14 18:04:35 -0800</date>
            <delta_ts>2017-02-15 10:25:04 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-168348-20170214180201.patch</filename>
            <type>text/plain</type>
            <size>32799</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ1ZTA2ZjYwZTc1MjVm
N2U1YTcwOThjNTk4NGYzZjc2ZGVhMmE5ZC4uYWNkZGY5MWVkZjYwMWQwYjdkMDM5MThlMGRlZjg0
ODU4MzczZmNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggMTY4MzQ4CisKKyAg
ICAgICAgW1dlYlJUQ10gSUNFIGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGZpbHRlcmVkIGFjY29yZGlu
ZyBhIHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY4MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVySUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UlRDQ29udHJvbGxlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRy
b2xsZXI6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjpkaXNhYmxlSUNF
Q2FuZGlkYXRlRmlsdGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmVu
YWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2Up
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJ0Y0NvbnRyb2xsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlZ2lzdGVyVG9Db250cm9sbGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRnJvbUNv
bnRyb2xsZXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENN
ZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9p
bnQ6Ok9uSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6cnRjQ29udHJvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNl
c3Npb24pOgorCiAyMDE3LTAyLTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gYWRkIG5hdmlnYXRvci5nZXRVc2VyTWVkaWEg
Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdhY3kgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZiMGQ2
NDk0YjFiNTNiNzY2NmU0NmY4MTI1YTEyZWIzMDY5MmMwNDcuLmQ4ZmNlMjViZjNhYjZhOTkwZmEy
MGRhYTBlMmVkNDQxM2MxOTQzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNy0w
Mi0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IDE2
ODM0OAorCisgICAgICAgIFtXZWJSVENdIElDRSBjYW5kaWRhdGVzIHNob3VsZCBiZSBmaWx0ZXJl
ZCBhY2NvcmRpbmcgYSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2ODM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQpOgor
ICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpk
aXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjplbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxNy0wMi0w
NyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ11b
TWFjXSBBY3RpdmF0ZSBsaWJ3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCAwYTk0
MTI2MGNhMjllOWM4ZTY0MDE0MTgyNzYyOWE1NzMxZDQzOWM5Li40NzE0Y2Y2NzQ1MDJkZDVjZjEx
YTFjNGZiNmM0ZjQ1Y2JhMDhjNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0zOSw2
ICszOSw3IEBACiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDSWNl
Q2FuZGlkYXRlRXZlbnQuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0yNjksNiArMjcwLDU4IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaXJlSUNFQ2Fu
ZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4mJiBjYW5kCiAgICAgbV9wZWVyQ29u
bmVjdGlvbi5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShmYWxzZSwgZmFs
c2UsIFdURk1vdmUoY2FuZGlkYXRlKSkpOwogfQogCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKK3sKKyAgICBtX3Nob3VsZEZpbHRlcklD
RUNhbmRpZGF0ZXMgPSB0cnVlOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlz
YWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VDYW5k
aWRhdGVzID0gZmFsc2U7CisgICAgZm9yIChhdXRvJiBwZW5kaW5nSUNFQ2FuZGlkYXRlIDogbV9w
ZW5kaW5nSUNFQ2FuZGlkYXRlcykKKyAgICAgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0lj
ZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUocGVuZGluZ0lDRUNhbmRpZGF0ZS5zZHApLCBXVEZN
b3ZlKHBlbmRpbmdJQ0VDYW5kaWRhdGUubWlkKSwgMCkpOworICAgIG1fcGVuZGluZ0lDRUNhbmRp
ZGF0ZXMuY2xlYXIoKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgZmlsdGVySUNFQ2FuZGlk
YXRlKFN0cmluZyYmIHNkcCkKK3sKKyAgICBBU1NFUlQoIXNkcC5jb250YWlucygiIGhvc3QgIikp
OworCisgICAgaWYgKCFzZHAuY29udGFpbnMoIiByYWRkciAiKSkKKyAgICAgICAgcmV0dXJuIFdU
Rk1vdmUoc2RwKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGl0ZW1zOworICAgIHNkcC5zcGxpdCgn
ICcsIGl0ZW1zKTsKKworICAgIGJvb2wgc2tpcCA9IGZhbHNlOworICAgIFN0cmluZ0J1aWxkZXIg
ZmlsdGVyZWRTRFA7CisgICAgZm9yIChhdXRvJiBpdGVtIDogaXRlbXMpIHsKKyAgICAgICAgaWYg
KHNraXApIHsKKyAgICAgICAgICAgIHNraXAgPSBmYWxzZTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9CisgICAgICAgIGlmIChpdGVtID09ICJyYWRkciIgfHwgaXRlbSA9PSAicnBv
cnQiKSB7CisgICAgICAgICAgICBza2lwID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChpdGVtKTsKKyAgICB9CisgICAg
cmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQpCit7Cisg
ICAgaWYgKCFtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMpIHsKKyAgICAgICAgZmlyZUlDRUNh
bmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUoc2RwKSwgV1RGTW92
ZShtaWQpLCAwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHNkcC5jb250YWlu
cygiIGhvc3QgIikpIHsKKyAgICAgICAgbV9wZW5kaW5nSUNFQ2FuZGlkYXRlcy5hcHBlbmQoUGVu
ZGluZ0lDRUNhbmRpZGF0ZSB7IFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQpfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0
ZTo6Y3JlYXRlKGZpbHRlcklDRUNhbmRpZGF0ZShXVEZNb3ZlKHNkcCkpLCBXVEZNb3ZlKG1pZCks
IDApKTsKK30KKwogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvbmVHYXRoZXJpbmdDYW5k
aWRhdGVzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmgKaW5kZXggNDFjNzAwMzhiYjQzYzkxY2U3M2RhNDVlYzhjZmY1ZjZmOGFhOGYzOS4uMzI3Zjc4
Y2YyNTQxYzAzNzQ3ZWQ5NmZlYTY5OGNkMDI5ZDcyZjBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
CkBAIC0xMDEsNiArMTAxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRl
UGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgPSAwOwogCisgICAgdm9pZCBuZXdJ
Q0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQpOworICAgIHZvaWQgZGlzYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKCk7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5kaWRhdGVFdmVudChS
ZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiYmKTsKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRh
dGVzKCk7CkBAIC0xMzcsNiArMTQxLDEzIEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxQ
ZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZT4gbV9vZmZlckFuc3dlclBy
b21pc2U7CiAgICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlPHZvaWQ+PiBtX3NldERlc2NyaXB0
aW9uUHJvbWlzZTsKICAgICBzdGQ6Om9wdGlvbmFsPERPTVByb21pc2U8dm9pZD4+IG1fYWRkSWNl
Q2FuZGlkYXRlUHJvbWlzZTsKKworICAgIGJvb2wgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVz
IHsgdHJ1ZSB9OworICAgIHN0cnVjdCBQZW5kaW5nSUNFQ2FuZGlkYXRlIHsKKyAgICAgICAgU3Ry
aW5nIHNkcDsKKyAgICAgICAgU3RyaW5nIG1pZDsKKyAgICB9OworICAgIFZlY3RvcjxQZW5kaW5n
SUNFQ2FuZGlkYXRlPiBtX3BlbmRpbmdJQ0VDYW5kaWRhdGVzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q0MmJhYWZhZDNhNTU2ODkyZTRmOGIyNmUx
MzcwOTg4YWRkMzI5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5oIgorCisj
aWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6cmVtb3ZlKFJUQ1BlZXJD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIG1fcGVlckNvbm5lY3Rpb25zLnJlbW92ZUZp
cnN0TWF0Y2hpbmcoWyZjb25uZWN0aW9uXShhdXRvIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuICZj
b25uZWN0aW9uID09ICZpdGVtLmdldCgpOworICAgIH0pOworfQorCit2b2lkIFJUQ0NvbnRyb2xs
ZXI6OmFkZChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBtX3BlZXJDb25u
ZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbik7CisgICAgaWYgKCFtX3Nob3VsZEZpbHRlcklDRUNh
bmRpZGF0ZXMpCisgICAgICAgIGNvbm5lY3Rpb24uZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmlu
ZygpOworfQorCit2b2lkIFJUQ0NvbnRyb2xsZXI6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmcoKQoreworICAgIGZvciAoUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24gOiBtX3BlZXJD
b25uZWN0aW9ucykKKyAgICAgICAgY29ubmVjdGlvbi5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCk7Cit9CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCkKK3sKKyAgICBmb3IgKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uIDogbV9wZWVy
Q29ubmVjdGlvbnMpCisgICAgICAgIGNvbm5lY3Rpb24uZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkxMmRhNDlkMTljZDk2ZWE4N2JhZDI0MmJjNTAwOTRmZWNlMTA0NjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIu
aApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1BlZXJD
b25uZWN0aW9uOworCitjbGFzcyBSVENDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICBSVENDb250
cm9sbGVyKCkgPSBkZWZhdWx0OworCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdm9pZCBhZGQo
UlRDUGVlckNvbm5lY3Rpb24mKTsKKyAgICB2b2lkIHJlbW92ZShSVENQZWVyQ29ubmVjdGlvbiYp
OworCisgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisgICAgdm9pZCBl
bmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKworcHJpdmF0ZToKKyAgICBWZWN0b3I8c3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxSVENQZWVyQ29ubmVjdGlvbj4+IG1fcGVlckNvbm5lY3Rpb25z
OworICAgIGJvb2wgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzIHsgdHJ1ZSB9OworI2VuZGlm
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDhlNGRj
YjExMzNiYmRmYzUxMjAzODgxNDA1YmM0NjVhZDQ1OGVhNmEuLjFmOWZiNDhmOTdjMWVlNThlZWQ1
YmY2MWQyNDU5Y2EyN2FjMmFiYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC00Miw3ICs0Miw5IEBA
CiAjaW5jbHVkZSAiTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJNZWRp
YVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKKyNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUlRDQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbC5oIgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRp
ZGF0ZS5oIgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmgiCkBAIC02Miw3ICs2NCwx
MiBAQCBSZWY8UlRDUGVlckNvbm5lY3Rpb24+IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dAogewogICAgIFJlZjxSVENQZWVyQ29ubmVjdGlv
bj4gcGVlckNvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbnRl
eHQpKTsKICAgICBwZWVyQ29ubmVjdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7Ci0KKyAgICAvLyBS
VENQZWVyQ29ubmVjdGlvbiBtYXkgc2VuZCBldmVudHMgYXQgYWJvdXQgYW55IHRpbWUgZHVyaW5n
IGl0cyBsaWZldGltZS4KKyAgICAvLyBMZXQncyBtYWtlIGl0IHVuY29sbGVjdGFibGUgdW50aWwg
dGhlIHBjIGlzIGNsb3NlZCBieSBKUyBvciB0aGUgcGFnZSBpcyBzdG9wcGluZyBpdC4KKyAgICBp
ZiAocGVlckNvbm5lY3Rpb24tPm1fc2lnbmFsaW5nU3RhdGUgIT0gU2lnbmFsaW5nU3RhdGU6OkNs
b3NlZCkgeworICAgICAgICBwZWVyQ29ubmVjdGlvbi0+c2V0UGVuZGluZ0FjdGl2aXR5KHBlZXJD
b25uZWN0aW9uLnB0cigpKTsKKyAgICAgICAgcGVlckNvbm5lY3Rpb24tPnJlZ2lzdGVyVG9Db250
cm9sbGVyKCk7CisgICAgfQogICAgIHJldHVybiBwZWVyQ29ubmVjdGlvbjsKIH0KIApAQCAtNDEy
LDYgKzQxOSw5IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKCkKIAogICAgIGZvciAo
UlRDUnRwU2VuZGVyJiBzZW5kZXIgOiBtX3RyYW5zY2VpdmVyU2V0LT5zZW5kZXJzKCkpCiAgICAg
ICAgIHNlbmRlci5zdG9wKCk7CisKKyAgICB1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIoKTsKKyAg
ICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAogdm9pZCBSVENQZWVyQ29ubmVjdGlv
bjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pCkBAIC00MjQsNiAr
NDM0LDI0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN0b3AoKQogICAgIGNsb3NlKCk7CiB9
CiAKK1JUQ0NvbnRyb2xsZXImIFJUQ1BlZXJDb25uZWN0aW9uOjpydGNDb250cm9sbGVyKCkKK3sK
KyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpOworICAgIGF1dG8qIHBhZ2UgPSBzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnBhZ2UoKTsKKyAg
ICByZXR1cm4gcGFnZS0+cnRjQ29udHJvbGxlcigpOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uOjpyZWdpc3RlclRvQ29udHJvbGxlcigpCit7CisgICAgcnRjQ29udHJvbGxlcigpLmFkZCgq
dGhpcyk7Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVucmVnaXN0ZXJGcm9tQ29udHJv
bGxlcigpCit7CisgICAgcnRjQ29udHJvbGxlcigpLnJlbW92ZSgqdGhpcyk7Cit9CisKIGNvbnN0
IGNoYXIqIFJUQ1BlZXJDb25uZWN0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gIlJUQ1BlZXJDb25uZWN0aW9uIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBhMTBhYWVi
NGM0MGE3YzRhYmNiNGZhYzZkNmE1OTBjNDllYjQzZjlhLi4yYzA1NjJlMzgyNGUwNTRiNWJhODZk
OTE3MDU2OTAxNTllMWJmZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFBlZXJDb25u
ZWN0aW9uQmFja2VuZDsKK2NsYXNzIFJUQ0NvbnRyb2xsZXI7CiBjbGFzcyBSVENJY2VDYW5kaWRh
dGU7CiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s7CiBjbGFzcyBSVENTZXNz
aW9uRGVzY3JpcHRpb247CkBAIC0xMzYsMTEgKzEzNywxOCBAQCBwdWJsaWM6CiAgICAgUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlIGludGVybmFsSWNlR2F0aGVyaW5nU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX2ljZUdhdGhlcmluZ1N0YXRlOyB9CiAgICAgUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZSBpbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWNlQ29ubmVjdGlvblN0YXRlOyB9CiAKKyAgICB2b2lkIGRp
c2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKSB7IG1fYmFja2VuZC0+ZGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZygpOyB9CisgICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KSB7IG1fYmFja2VuZC0+ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7IH0KKwogcHJpdmF0
ZToKICAgICBSVENQZWVyQ29ubmVjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAg
ICB2b2lkIGNvbXBsZXRlQWRkVHJhbnNjZWl2ZXIoUlRDUnRwVHJhbnNjZWl2ZXImLCBjb25zdCBS
dHBUcmFuc2NlaXZlckluaXQmKTsKIAorICAgIFJUQ0NvbnRyb2xsZXImIHJ0Y0NvbnRyb2xsZXIo
KTsKKyAgICB2b2lkIHJlZ2lzdGVyVG9Db250cm9sbGVyKCk7CisgICAgdm9pZCB1bnJlZ2lzdGVy
RnJvbUNvbnRyb2xsZXIoKTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgog
ICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ5ZjY5M2JiYmQ5MTdlOWQwODQ0MDZkODNmNzBj
MTk3ZjJlNjQ0NWEuLjdmNTM0ZDkwNjJjN2EyZDUyZTk0MzY2MzVhMWE3MzA1YmExMmFkMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC0zNiw3ICsz
Niw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUlRDRGF0
YUNoYW5uZWwuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEV2ZW50LmgiCi0jaW5jbHVkZSAi
UlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJSVENUcmFja0V2ZW50Lmgi
CkBAIC00MDcsNyArNDA2LDcgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbkljZUNh
bmRpZGF0ZShjb25zdCB3ZWJydGM6OkljZUNhbmRpZGF0ZUludGVyZmFjZQogICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWlkID0gV1RGTW92ZShj
YW5kaWRhdGVNaWQpLCBzZHAgPSBXVEZNb3ZlKGNhbmRpZGF0ZVNEUCldIHsKICAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPmlzU3RvcHBlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5maXJlSUNFQ2FuZGlkYXRl
RXZlbnQoUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoU3RyaW5nKHNkcCksIFN0cmluZyhtaWQpLCAw
KSk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld0lD
RUNhbmRpZGF0ZShTdHJpbmcoc2RwKSwgU3RyaW5nKG1pZCkpOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApp
bmRleCBkYjc5OTI2NGQ2ZjJmZjEzNDgwNTMxNjE0MzE2M2NlNDU0MGIzMTQ0Li41NjdkNjkxZTg1
OTQ5NGFiNzRmYzYzN2ViZTQ5M2MyZTgxYWM1YjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTkzLDYgKzkzLDggQEAg
c3RhdGljIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24g
Y29uZmlndXJhdGlvbkZyb21NZWRpYUUKIAogdm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OnNldENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24mJiBjb25m
aWd1cmF0aW9uKQogeworICAgIGlmIChjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSA9
PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlVHJhbnNwb3J0UG9saWN5OjpSZWxheSkKKyAgICAg
ICAgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwogICAgIG1fZW5kcG9pbnQtPmJhY2tl
bmQoKS5TZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25Gcm9tTWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2M5NmEwMmI3YjI5
YjZlOGJmM2FhMWRjOGQzZWMxNjhiZTIzM2Y0Ni4uYzMxOWFmNTAzZjY2YzY0MTBkZjRmOGUxMTZm
ZTgxNjZlYjgzNjI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTU3OCw2ICsxNTc4LDggQEAKIAkJNDE3REE3MUUxMzczNURG
QTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQzEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMu
aCAqLzsgfTsKIAkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9y
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgx
NUMxQzEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCAqLzsgfTsKIAkJ
NDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MTVDMUQxMzgzMTk4MzAw
NTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxODIwNTQ3MUU1M0U5OEMwMEQ2MjIwNyAvKiBSVEND
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTgyMDU0NTFFNTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxODIwNTQ5MUU1M0VBQjAw
MEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9s
bGVyLmNwcCAqLzsgfTsKIAkJNDE4ODVCOTMxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNz
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4
NUI5MTExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg4NUI5NDExQjZGREE2MDAzMzgz
QkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE4ODVCOTIxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9u
LmNwcCAqLzsgfTsKIAkJNDE4QTA2RDAxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QTA2
Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oICovOyB9OwpAQCAtODgyNSw2
ICs4ODI3LDggQEAKIAkJNDE4MTVDMUMxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3Vw
cG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGVz
dFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgxNUMxRDEzODMx
OTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0Lnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9y
dC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4MjA1NDUxRTUzQzhD
RDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUlRDQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTgy
MDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAvKiBG
b3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
b3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNF
MTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNTM0OSw2ICsxNTM1Myw4IEBACiAJCQkJMDcyMjFCNjYxN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjY3MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmggKi8sCiAJCQkJMDcyMjFCNjgxN0NFQzMyNzAw
ODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaWRsICovLAorCQkJCTQxODIwNTQ1MUU1M0M4
Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi8sCisJCQkJNDE4MjA1NDgxRTUzRUFBRDAw
RDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCTA3MjIxQjY5MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEVE1GU2VuZGVyLmNwcCAqLywKIAkJCQkwNzIyMUI2QTE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRFRNRlNlbmRlci5oICovLAogCQkJCTA3MjIxQjZCMTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEVE1GU2VuZGVyLmlkbCAqLywKQEAgLTI2NTI3LDYgKzI2NTMzLDcgQEAKIAkJCQlBRDcy
NkZFRjE2REExMUY1MDAzQTRFNkQgLyogSlNDU1NSdWxlQ3VzdG9tLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEQwNUZBODBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NSdWxlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQyMDExQjcwQTAwMzEzMzAwODMwM0Y5IC8qIEpTQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJU
Q0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENzI2RkVEMTZEQTExNzEwMDNBNEU2
RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NDZDMjA3MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNDNUJFMDEwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMDQ1NCw2ICszMDQ2MSw3IEBACiAJCQkJQkM0RURFRjQwQzA4RjNGQjAw
N0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFFMkFBMUUwQTFDREFCNDAwQjQyQjI1IC8qIEpTSFRNTEFyZWFFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDOURCRkVEMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2ht
ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTgyMDU0OTFFNTNFQUIwMDBENjIy
MDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTQzNzBDRDY4
OUM0MDBGQURBNzUgLyogSlNIVE1MQXVkaW9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4MEU3QjEyMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxCYXNlRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUUyQUEyMjBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MQm9keUVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAKaW5kZXggYTg3M2MxNzRkMjdlY2RjMWYyMzI2OWMzNmM4YTdjYjMyOWZm
N2VjMC4uNmViM2Y4MWU5ZjdjNGFmZWQ3NTQ2YWYyNDBkMjgyOGZjMDk4N2Q4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUG9seWdvblNo
YXBlLmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveE1v
ZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCA0ZTE4ZmRiZDI1NzdjYjVlM2FjMjg1ODNhNWYwYTk3YzdhNWE3YzA2Li4yZWVjZTFjNWQ5ZDhj
YTlmZjY1OTYyOGEwYjU3ZTBkNTQ1ODJlNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjMsNiArNjMs
MTAgQEAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoV0VCX1JUQykKKyNpbmNsdWRlICJSVENDb250cm9sbGVyLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBEZWJ1Z2dlcjsKIH0KQEAgLTIyMyw2ICsyMjcsNyBA
QCBwdWJsaWM6CiAgICAgUG9pbnRlckxvY2tDb250cm9sbGVyJiBwb2ludGVyTG9ja0NvbnRyb2xs
ZXIoKSBjb25zdCB7IHJldHVybiAqbV9wb2ludGVyTG9ja0NvbnRyb2xsZXI7IH0KICNlbmRpZgog
ICAgIExpYldlYlJUQ1Byb3ZpZGVyJiBsaWJXZWJSVENQcm92aWRlcigpIHsgcmV0dXJuIG1fbGli
V2ViUlRDUHJvdmlkZXIuZ2V0KCk7IH0KKyAgICBSVENDb250cm9sbGVyJiBydGNDb250cm9sbGVy
KCkgeyByZXR1cm4gbV9ydGNDb250cm9sbGVyOyB9CiAKICAgICBWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudCogdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3ZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50LmdldCgpOyB9CiAgICAgdm9pZCB1cGRhdGVWYWxpZGF0aW9uQnViYmxl
U3RhdGVJZk5lZWRlZCgpOwpAQCAtNjQwLDYgKzY0NSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiBtX3dlYkdMU3RhdGVUcmFja2VyOwogCiAgICAg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOworICAgIFJU
Q0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwogCiAgICAgaW50IG1fbmVzdGVkUnVuTG9vcENv
dW50IHsgMCB9OwogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX3VubmVzdENhbGxiYWNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggMDA5NWM1MTdmMGY3ZTBj
NDNlYjg2NjI3OTFhMDEzNTMxMmVlODU4Ni4uNDI4Zjg0OWM3NTgxNTJjMjBjNDRmOWU5ODZhYWQ3
ZTMyZjM2ZjdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0x
NDksNyArMTQ5LDEwIEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Y3JpY2tldDo6QmFzaWNQb3J0QWxsb2NhdG9yPiBwb3J0QWxsb2NhdG9yOwogICAgIHN0
YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkuc2lnbmFsaW5nVGhyZWFkLT5JbnZva2U8dm9pZD4oUlRD
X0ZST01fSEVSRSwgWyZdKCkgewotICAgICAgICBwb3J0QWxsb2NhdG9yLnJlc2V0KG5ldyBjcmlj
a2V0OjpCYXNpY1BvcnRBbGxvY2F0b3IoJm5ldHdvcmtNYW5hZ2VyLCAmcGFja2V0U29ja2V0RmFj
dG9yeSkpOworICAgICAgICBhdXRvIGJhc2ljUG9ydEFsbG9jYXRvciA9IHN0ZDo6bWFrZV91bmlx
dWU8Y3JpY2tldDo6QmFzaWNQb3J0QWxsb2NhdG9yPigmbmV0d29ya01hbmFnZXIsICZwYWNrZXRT
b2NrZXRGYWN0b3J5KTsKKyAgICAgICAgaWYgKCFtX2VuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMpCisgICAgICAgICAgICBiYXNpY1BvcnRBbGxvY2F0b3ItPnNldF9mbGFncyhi
YXNpY1BvcnRBbGxvY2F0b3ItPmZsYWdzKCkgfCBjcmlja2V0OjpQT1JUQUxMT0NBVE9SX0RJU0FC
TEVfQURBUFRFUl9FTlVNRVJBVElPTik7CisgICAgICAgIHBvcnRBbGxvY2F0b3IgPSBXVEZNb3Zl
KGJhc2ljUG9ydEFsbG9jYXRvcik7CiAgICAgfSk7CiAKICAgICByZXR1cm4gY3JlYXRlQWN0dWFs
UGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdURk1vdmUocG9ydEFsbG9jYXRvcikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBkY2ExYzIyNzVjZjlkNTYwMDdlOGNmMWQx
MjUxODg2ODQxN2Y2MWY0Li4xZjU0ODA5ZTA0NjgyNGY1ZTQ1OTlhNWYyYTc1NTQ5YTdlZDljYTVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNjAsOCArNjAsMTMgQEAg
cHVibGljOgogICAgIC8vIFVzZWQgZm9yIG1vY2sgdGVzdGluZwogICAgIHN0YXRpYyB2b2lkIHNl
dFBlZXJDb25uZWN0aW9uRmFjdG9yeShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+JiYpOwogCisgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzID0gZmFsc2U7IH0KKyAgICB2b2lkIGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMoKSB7IG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9
IHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlv
bih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6Ok5ldHdvcmtNYW5hZ2VyJiwg
cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Jik7CisKKyAgICBib29sIG1fZW5hYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcyB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVy
ZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1
ZGlvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCAzYTYxM2IwZDY4ZDVhMGQ1NmE1NDkxMDhlNGE5MDE2
NTQxNjI1NDA4Li4zYzFlMzllNmI0NzczNWI3YWZhMGU5NDU0NzgwMDYyYjdiMzNlZjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0Nh
cHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCkBAIC03MSw4ICs3MSwxMiBAQCBTT0ZUX0xJTktf
Q0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVPdXRwdXQpCiAjZGVmaW5lIEFWRnJhbWVSYXRl
UmFuZ2UgZ2V0QVZGcmFtZVJhdGVSYW5nZUNsYXNzKCkKIAogU09GVF9MSU5LX1BPSU5URVIoQVZG
b3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKQorU09GVF9MSU5LX1BPSU5U
RVIoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZVJhdGVLZXksIE5TU3RyaW5nICopCitTT0ZUX0xJTktf
UE9JTlRFUihBVkZvdW5kYXRpb24sIEFWRm9ybWF0SURLZXksIE5TU3RyaW5nICopCiAKICNkZWZp
bmUgQVZNZWRpYVR5cGVBdWRpbyBnZXRBVk1lZGlhVHlwZUF1ZGlvKCkKKyNkZWZpbmUgQVZTYW1w
bGVSYXRlS2V5IGdldEFWU2FtcGxlUmF0ZUtleSgpCisjZGVmaW5lIEFWRm9ybWF0SURLZXkgZ2V0
QVZGb3JtYXRJREtleSgpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQ5LDYgKzE1Myw5
IEBAIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogICAg
IFJldGFpblB0cjxBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXRUeXBlPiBhdWRpb091dHB1dCA9IGFk
b3B0TlMoW2FsbG9jQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0SW5zdGFuY2UoKSBpbml0XSk7CiAg
ICAgc2V0QXVkaW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShhdWRpb091dHB1dC5nZXQoKSk7CiAKKyAg
ICBhdXRvIHNldHRpbmdzRGljdGlvbmFyeSA9IGFkb3B0TlMoW1tOU0RpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoT2JqZWN0c0FuZEtleXM6IFtOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6MTYwMDAu
MF0sIEFWU2FtcGxlUmF0ZUtleSwgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDprQXVk
aW9Gb3JtYXRMaW5lYXJQQ01dLCBBVkZvcm1hdElES2V5LCBuaWxdKTsKKyAgICBbYXVkaW9PdXRw
dXQgc2V0QXVkaW9TZXR0aW5nczpzZXR0aW5nc0RpY3Rpb25hcnkuZ2V0KCldOworCiAgICAgaWYg
KCFbc2Vzc2lvbigpIGNhbkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oJXAp
LCB1bmFibGUgdG8gYWRkIGF1ZGlvIHNhbXBsZSBidWZmZXIgb3V0cHV0IGRlbGVnYXRlIiwgdGhp
cyk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CmluZGV4IGFmNTg0ZGM0OWZlZjlkZTgxMmQxZWU0NWViNjkyYjgxM2ZlMWM3NTMuLjcyZjI3Yzcy
OWNkZmM0OTllN2NhOTEwYjhjYzlmMDU0M2EyMDZmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtMTg3LDYgKzE4Nyw5IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBVCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIG1fcGFnZS5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6VXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlE
LCB0b1dlYkNvcmUocmVhc29uKSwgaW52YWxpZENvbnN0cmFpbnQpLCBtX3BhZ2UucGFnZUlEKCkp
OworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpLCBtX3BhZ2UucGFnZUlE
KCkpOworI2VuZGlmCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIFVOVVNF
RF9QQVJBTShpbnZhbGlkQ29uc3RyYWludCk7CkBAIC0yMTIsNiArMjE1LDkgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6dXNlck1lZGlhQWNjZXNzV2FzR3Jh
bnRlZCh1aW50NjRfdAogICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS53
aWxsQ3JlYXRlTWVkaWFTdHJlYW0oKnRoaXMsICFhdWRpb0RldmljZVVJRC5pc0VtcHR5KCksICF2
aWRlb0RldmljZVVJRC5pc0VtcHR5KCkpOwogCiAgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpVc2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVzZXJNZWRpYUlELCBh
dWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQpLCBtX3BhZ2UucGFnZUlEKCkpOworI2lmIEVO
QUJMRShXRUJfUlRDKQorICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6RGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpLCBtX3BhZ2UucGFnZUlEKCkpOworI2Vu
ZGlmCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFJRCk7CiAgICAgVU5VU0VEX1BB
UkFNKGF1ZGlvRGV2aWNlVUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MDA0ZGIwZmMwZWFhM2YzY2ZmYzdlZWE5ZThmMDI1
NWU2ZmFjZTE4Li5hMGMxZmEyNjA5Mjk0MTMwYWJmODZjNTk3NjI0ZGQzOGRkMDgwYjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC05OTk2LDcgKzk5OTYsNyBAQAogCQkJCTM3NjA4ODFFMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJS
ZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwQUZGQjkxNjU0MjA0ODAwMUJB
MDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUx
MTY1NDMxODUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNkJFOTY5QTIx
RTQzQjhBNDAwOEI3NDgzIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTZCRTk2OUEyMUU0M0I4QTQwMDhCNzQ4MyAvKiBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2
NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJSVENSZXNvbHZlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBG
MzI4MUQgLyogTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEwMTg3LDcgKzEwMTg3LDcgQEAKIAkJCQkzNzk0ODQwODE1MEM0Qjk3MDBFNTJDRTkg
LyogV0tSZW5kZXJMYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzYwODgyMjE1MDQxNEY3
MDBGQzgyQzcgLyogV0tSZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMzNjc2
M0ExMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDZCRTk2OTlFMUU0M0I0MUQw
MDhCNzQ4MyAvKiBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTZCRTk2OTlFMUU0M0I0MUQwMDhCNzQ4MyAvKiBXS1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBN0UzNzc4MThFNEE0RkUwMDNE
MEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU1NTE4
QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFD
RDFDNjYxQjM0QjlEQzAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW4ubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDcy
NDBiYmQxNTRmOGYzMjAwZTc4MjcxNWQ0OTM4MDYzMGM5MTcyOWMuLjIxZDEwOGU1OWE0NzgwMDc4
YjcyOTExYWYxM2ViMzZiODc5NTE0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSHlz
dGVyZXNpc0FjdGl2aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRTaXplSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDUHJv
dmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2VPdmVybGF5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmg+CkBA
IC0xMTkzLDYgKzExOTQsMTUgQEAgcHJpdmF0ZToKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoV0VCX1JUQykKKyAgICB2b2lkIGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKSB7IG1f
cGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQor
ICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX3BhZ2UtPnJ0Y0NvbnRy
b2xsZXIoKS5lbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQorI2lmIFVTRShMSUJXRUJS
VEMpCisgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsg
bV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzKCk7IH0KKyAgICB2b2lkIGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMoKSB7IG1fcGFnZS0+bGliV2ViUlRDUHJvdmlkZXIoKS5lbmFibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzKCk7IH0KKyNlbmRpZgorI2VuZGlmCisKICAgICB2b2lkIGFkdmFu
Y2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKTsKICAgICB2b2lk
IGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAjaWYgVVNFKEFQUEtJ
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggMjM5MzljMTkzMGU0ZmMxZmY2NmU3NTFiNmY4ZDEzMGVjZGYyZDEw
OS4uZGY3YWIwNjE0YzBmMjIyYWU4MmE0MTk5ZTc5NjEyZWVhMjMzNzUwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTMwNiw2ICszMDYsMTUgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgRGlzYWJsZUlDRUNh
bmRpZGF0ZUZpbHRlcmluZygpCisgICAgRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKKyNl
bmRpZgorI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIEVuYWJsZUVu
dW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQorICAgIERpc2FibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzKCkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24KICAgICBE
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301630</attachid>
            <date>2017-02-15 10:25:07 -0800</date>
            <delta_ts>2017-02-15 10:30:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168348-20170215102231.patch</filename>
            <type>text/plain</type>
            <size>32193</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ1ZTA2ZjYwZTc1MjVm
N2U1YTcwOThjNTk4NGYzZjc2ZGVhMmE5ZC4uNGZkYjFkMDg4MDMxMWVlMDA0NjVhMjNhYTg2NmIy
NzQ0NmM2OWYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAyLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJQ0UgY2Fu
ZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0
ZXN0cy4gU2hvdWxkIGJlIGNvdmVyZWQgaW4gdGhlIGZ1dHVyZSBieSBsYXlvdXQgdGVzdHMgd2l0
aCBkZWRpY2F0ZWQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3Ig
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYXQgUlRDUGVlckNvbm5lY3Rpb24gbGV2ZWwuCisgICAg
ICAgIElmIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGlzIG9uIChieSBkZWZhdWx0KSwgaG9zdCBj
YW5kaWRhdGVzIGFyZSBzdG9yZWQgYW5kIG5vdCBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICBS
ZWZsZXhpdmUgY2FuZGlkYXRlcyBhcmUgcHVyZ2VkIGZyb20gcmFkZHIgaW5mb3JtYXRpb24gdG8g
bm90IGxlYWsgdGhlIGhvc3QgSVAgYWRkcmVzcy4KKworICAgICAgICBTdG9yZWQgY2FuZGlkYXRl
cyBtYXkgYmUgYXN2ZXJ0aXNlZCB0byB0aGUgSlMgbGF5ZXIgaWYgUlRDQ29udHJvbGxlciBpcyBu
b3RpZmllZCBvZiBhIGNoYW5nZSBvZiBmaWx0ZXJpbmcgcG9saWN5LgorICAgICAgICBUbyBpbXBs
ZW1lbnQgdGhhdCwgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGlzIHN0b3JpbmcgYWxsIGZpbHRlcmVk
IG91dCBjYW5kaWRhdGVzIGFuZCBSVENQZWVyQ29ubmVjdGlvbiByZWdpc3RlcgorICAgICAgICB0
aGVtc2VsdmVzIHRvIFJUQ0NvbnRyb2xsZXIgdG8gZ2V0IG5vdGlmaWNhdGlvbnMgb2YgZmlsdGVy
aW5nIHBvbGljeSBjaGFuZ2VzLgorCisgICAgICAgIE1ha2luZyBSVENQZWVyQ29ubmVjdGlvbiB1
c2Ugc2V0UGVuZGluZ0FjdGl2aXR5IHRocm91Z2hvdXQgaXRzIGxpZmV0aW1lLgorICAgICAgICBU
aGlzIGVuc3VyZXMgaXQgZG9lcyBub3QgZ2V0IGNvbGxlY3RlZCB1bnRpbCB0aGUgcGFnZSBpcyBv
ZmYgb3IgY2xvc2UoKSBpcyBjYWxsZWQgb24gdGhlIG9iamVjdC4KKworICAgICAgICBBZGRpbmcg
c3VwcG9ydCBmb3IgZW51bWVyYXRpbmcgb3Igbm90IGFsbCBpbnRlcmZhY2VzIGF0IGxpYndlYnJ0
YyBsZXZlbC4KKyAgICAgICAgVGhpcyBjaG9pY2UgaXMgZG9uZSBhdCBjcmVhdGlvbiBvZiB0aGUg
cGVlciBjb25uZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjplbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZpbHRlcklDRUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6Om5ld0lDRUNhbmRpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJU
Q0NvbnRyb2xsZXI6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjph
ZGQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDQ29udHJvbGxlcjo6ZGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjplbmFibGVJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29u
dHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpydGNDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpyZWdpc3RlclRvQ29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlckZyb21Db250cm9sbGVy
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbklj
ZUNhbmRpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnRjQ29udHJvbGxlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTctMDItMTQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBhZGQgbmF2aWdhdG9yLmdldFVzZXJNZWRpYSBmb3Ig
Y29tcGF0aWJpbGl0eSB3aXRoIGxlZ2FjeSBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmIwZDY0OTRi
MWI1M2I3NjY2ZTQ2ZjgxMjVhMTJlYjMwNjkyYzA0Ny4uOTBkYmRjYmFjYTJmMGRkYTI0NDEyNjk1
NzJmNGRlMzYyY2M2NDQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTAyLTE1
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJ
Q0UgY2FuZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgdGhlIHBv
c3NpYmlsaXR5IGZvciB0aGUgVUkgcHJvY2VzcyB0byBjb250cm9sIHRoZSBJQ0UgY2FuZGlkYXRl
IGZpbHRlcmluZyBhbmQgd2hldGhlciBsaWJ3ZWJydGMgY2FuCisgICAgICAgIGVudW1lcmF0ZSBh
bGwgaW50ZXJmYWNlcyBvciBub3QuCisKKyAgICAgICAgRGlzYWJsaW5nIElDRSBjYW5kaWRhdGUg
ZmlsdGVyaW5nIGZvciB0aGUgbW9tZW50LgorICAgICAgICBFbmFibGluZyB0byBlbnVtZXJhdGUg
YWxsIGludGVyZmFjZXMgZm9yIHRoZSBtb21lbnQuCisKKyAgICAgICAgSW4gdGhlIGZ1dHVyZSwg
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgc2hvdWxkIGJlIHRpZWQgdG8gZ2V0VXNlck1lZGlhLgor
ICAgICAgICBJbnRlcmZhY2UgZW51bWVyYXRpb24gc2hvdWxkIGJlIGRpc2FibGVkIHdpdGggdGhl
IGRlZmF1bHQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgV2Ugc2hvdWxkIGRvIHRoYXQgb25jZSB3
ZSBoYXZlIHN1ZmZpY2llbnQgdGVzdGluZyBpbiB2YXJpb3VzIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1
cmVzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBhZ2UpOgorICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaXNhYmxlSUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZW5hYmxlSUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlzYWJsZUVudW1lcmF0
aW5nQWxsTmV0d29ya0ludGVyZmFjZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjplbmFi
bGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxNy0wMi0wNyAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ11bTWFjXSBBY3RpdmF0ZSBs
aWJ3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCAwYTk0MTI2MGNhMjllOWM4ZTY0
MDE0MTgyNzYyOWE1NzMxZDQzOWM5Li5jMGE5MTgzN2ZjYWI4M2Q2OTlmZDg1ZjliMDcxNmIzY2E1
NDk1MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5j
bHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQu
aCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNjksNiArMjcwLDYz
IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVm
UHRyPFJUQ0ljZUNhbmRpZGF0ZT4mJiBjYW5kCiAgICAgbV9wZWVyQ29ubmVjdGlvbi5maXJlRXZl
bnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIFdURk1vdmUoY2Fu
ZGlkYXRlKSkpOwogfQogCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZW5hYmxlSUNFQ2Fu
ZGlkYXRlRmlsdGVyaW5nKCkKK3sKKyAgICBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgPSB0
cnVlOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZygpCit7CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gZmFsc2U7
CisgICAgZm9yIChhdXRvJiBwZW5kaW5nSUNFQ2FuZGlkYXRlIDogbV9wZW5kaW5nSUNFQ2FuZGlk
YXRlcykKKyAgICAgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3Jl
YXRlKFdURk1vdmUocGVuZGluZ0lDRUNhbmRpZGF0ZS5zZHApLCBXVEZNb3ZlKHBlbmRpbmdJQ0VD
YW5kaWRhdGUubWlkKSwgMCkpOworICAgIG1fcGVuZGluZ0lDRUNhbmRpZGF0ZXMuY2xlYXIoKTsK
K30KKworc3RhdGljIGlubGluZSBTdHJpbmcgZmlsdGVySUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNk
cCkKK3sKKyAgICBBU1NFUlQoIXNkcC5jb250YWlucygiIGhvc3QgIikpOworCisgICAgaWYgKCFz
ZHAuY29udGFpbnMoIiByYWRkciAiKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoc2RwKTsKKwor
ICAgIFZlY3RvcjxTdHJpbmc+IGl0ZW1zOworICAgIHNkcC5zcGxpdCgnICcsIGl0ZW1zKTsKKwor
ICAgIGJvb2wgc2tpcCA9IGZhbHNlOworICAgIGJvb2wgaXNGaXJzdCA9IHRydWU7CisgICAgU3Ry
aW5nQnVpbGRlciBmaWx0ZXJlZFNEUDsKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiBpdGVtcykgewor
ICAgICAgICBpZiAoc2tpcCkgeworICAgICAgICAgICAgc2tpcCA9IGZhbHNlOworICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZW0gPT0gInJhZGRyIiB8fCBp
dGVtID09ICJycG9ydCIpIHsKKyAgICAgICAgICAgIHNraXAgPSB0cnVlOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzRmlyc3QpCisgICAgICAgICAgICBp
c0ZpcnN0ID0gZmFsc2U7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZpbHRlcmVkU0RQLmFw
cGVuZCgiICIpOworICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoaXRlbSk7CisgICAgfQorICAg
IHJldHVybiBmaWx0ZXJlZFNEUC50b1N0cmluZygpOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9u
QmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCwgU3RyaW5nJiYgbWlkKQorewor
ICAgIGlmICghbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzKSB7CisgICAgICAgIGZpcmVJQ0VD
YW5kaWRhdGVFdmVudChSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShXVEZNb3ZlKHNkcCksIFdURk1v
dmUobWlkKSwgMCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzZHAuY29udGFp
bnMoIiBob3N0ICIpKSB7CisgICAgICAgIG1fcGVuZGluZ0lDRUNhbmRpZGF0ZXMuYXBwZW5kKFBl
bmRpbmdJQ0VDYW5kaWRhdGUgeyBXVEZNb3ZlKHNkcCksIFdURk1vdmUobWlkKX0pOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGZpcmVJQ0VDYW5kaWRhdGVFdmVudChSVENJY2VDYW5kaWRh
dGU6OmNyZWF0ZShmaWx0ZXJJQ0VDYW5kaWRhdGUoV1RGTW92ZShzZHApKSwgV1RGTW92ZShtaWQp
LCAwKSk7Cit9CisKIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb25lR2F0aGVyaW5nQ2Fu
ZGlkYXRlcygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5oCmluZGV4IDQxYzcwMDM4YmI0M2M5MWNlNzNkYTQ1ZWM4Y2ZmNWY2ZjhhYThmMzkuLjMyN2Y3
OGNmMjU0MWMwMzc0N2VkOTZmZWE2OThjZDAyOWQ3MmYwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aApAQCAtMTAxLDYgKzEwMSwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZW11bGF0
ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pID0gMDsKIAorICAgIHZvaWQgbmV3
SUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCwgU3RyaW5nJiYgbWlkKTsKKyAgICB2b2lkIGRpc2Fi
bGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKyAgICB2b2lkIGVuYWJsZUlDRUNhbmRpZGF0ZUZp
bHRlcmluZygpOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQo
UmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4mJik7CiAgICAgdm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlk
YXRlcygpOwpAQCAtMTM3LDYgKzE0MSwxMyBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8
UGVlckNvbm5lY3Rpb246OlNlc3Npb25EZXNjcmlwdGlvblByb21pc2U+IG1fb2ZmZXJBbnN3ZXJQ
cm9taXNlOwogICAgIHN0ZDo6b3B0aW9uYWw8RE9NUHJvbWlzZTx2b2lkPj4gbV9zZXREZXNjcmlw
dGlvblByb21pc2U7CiAgICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlPHZvaWQ+PiBtX2FkZElj
ZUNhbmRpZGF0ZVByb21pc2U7CisKKyAgICBib29sIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRl
cyB7IHRydWUgfTsKKyAgICBzdHJ1Y3QgUGVuZGluZ0lDRUNhbmRpZGF0ZSB7CisgICAgICAgIFN0
cmluZyBzZHA7CisgICAgICAgIFN0cmluZyBtaWQ7CisgICAgfTsKKyAgICBWZWN0b3I8UGVuZGlu
Z0lDRUNhbmRpZGF0ZT4gbV9wZW5kaW5nSUNFQ2FuZGlkYXRlczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0NvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNTU1YzJhZGQyYzdhZWMzOTBhZTZiNjVi
MDRlYmJiZjI1Zjg4YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKKwor
I2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFJUQ0NvbnRyb2xsZXI6OnJlbW92ZShSVENQZWVy
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBtX3BlZXJDb25uZWN0aW9ucy5yZW1vdmVG
aXJzdE1hdGNoaW5nKFsmY29ubmVjdGlvbl0oYXV0byBpdGVtKSB7CisgICAgICAgIHJldHVybiAm
Y29ubmVjdGlvbiA9PSAmaXRlbS5nZXQoKTsKKyAgICB9KTsKK30KKwordm9pZCBSVENDb250cm9s
bGVyOjphZGQoUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgbV9wZWVyQ29u
bmVjdGlvbnMuYXBwZW5kKGNvbm5lY3Rpb24pOworICAgIGlmICghbV9zaG91bGRGaWx0ZXJJQ0VD
YW5kaWRhdGVzKQorICAgICAgICBjb25uZWN0aW9uLmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmcoKTsKK30KKwordm9pZCBSVENDb250cm9sbGVyOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCkKK3sKKyAgICBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgPSBmYWxzZTsKKyAgICBm
b3IgKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uIDogbV9wZWVyQ29ubmVjdGlvbnMpCisg
ICAgICAgIGNvbm5lY3Rpb24uZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworfQorCit2
b2lkIFJUQ0NvbnRyb2xsZXI6OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAg
bV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gdHJ1ZTsKKyAgICBmb3IgKFJUQ1BlZXJDb25u
ZWN0aW9uJiBjb25uZWN0aW9uIDogbV9wZWVyQ29ubmVjdGlvbnMpCisgICAgICAgIGNvbm5lY3Rp
b24uZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MzlhNzg2OGE4M2E3ZWRlMDVkOWM2ZjU3
OTVlM2U3ZjJjOTM4NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFJUQ1BlZXJDb25uZWN0aW9uOworCitjbGFzcyBSVENDb250cm9s
bGVyIHsKK3B1YmxpYzoKKyAgICBSVENDb250cm9sbGVyKCkgPSBkZWZhdWx0OworCisjaWYgRU5B
QkxFKFdFQl9SVEMpCisgICAgdm9pZCBhZGQoUlRDUGVlckNvbm5lY3Rpb24mKTsKKyAgICB2b2lk
IHJlbW92ZShSVENQZWVyQ29ubmVjdGlvbiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBl
bmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKworcHJpdmF0ZToKKyAgICBWZWN0b3I8c3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxSVENQZWVyQ29ubmVjdGlvbj4+IG1fcGVlckNvbm5lY3Rpb25z
OworICAgIGJvb2wgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzIHsgdHJ1ZSB9OworI2VuZGlm
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDhlNGRj
YjExMzNiYmRmYzUxMjAzODgxNDA1YmM0NjVhZDQ1OGVhNmEuLjFmOWZiNDhmOTdjMWVlNThlZWQ1
YmY2MWQyNDU5Y2EyN2FjMmFiYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC00Miw3ICs0Miw5IEBA
CiAjaW5jbHVkZSAiTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJNZWRp
YVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKKyNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUlRDQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbC5oIgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRp
ZGF0ZS5oIgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmgiCkBAIC02Miw3ICs2NCwx
MiBAQCBSZWY8UlRDUGVlckNvbm5lY3Rpb24+IFJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dAogewogICAgIFJlZjxSVENQZWVyQ29ubmVjdGlv
bj4gcGVlckNvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbnRl
eHQpKTsKICAgICBwZWVyQ29ubmVjdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7Ci0KKyAgICAvLyBS
VENQZWVyQ29ubmVjdGlvbiBtYXkgc2VuZCBldmVudHMgYXQgYWJvdXQgYW55IHRpbWUgZHVyaW5n
IGl0cyBsaWZldGltZS4KKyAgICAvLyBMZXQncyBtYWtlIGl0IHVuY29sbGVjdGFibGUgdW50aWwg
dGhlIHBjIGlzIGNsb3NlZCBieSBKUyBvciB0aGUgcGFnZSBpcyBzdG9wcGluZyBpdC4KKyAgICBp
ZiAocGVlckNvbm5lY3Rpb24tPm1fc2lnbmFsaW5nU3RhdGUgIT0gU2lnbmFsaW5nU3RhdGU6OkNs
b3NlZCkgeworICAgICAgICBwZWVyQ29ubmVjdGlvbi0+c2V0UGVuZGluZ0FjdGl2aXR5KHBlZXJD
b25uZWN0aW9uLnB0cigpKTsKKyAgICAgICAgcGVlckNvbm5lY3Rpb24tPnJlZ2lzdGVyVG9Db250
cm9sbGVyKCk7CisgICAgfQogICAgIHJldHVybiBwZWVyQ29ubmVjdGlvbjsKIH0KIApAQCAtNDEy
LDYgKzQxOSw5IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKCkKIAogICAgIGZvciAo
UlRDUnRwU2VuZGVyJiBzZW5kZXIgOiBtX3RyYW5zY2VpdmVyU2V0LT5zZW5kZXJzKCkpCiAgICAg
ICAgIHNlbmRlci5zdG9wKCk7CisKKyAgICB1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIoKTsKKyAg
ICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAogdm9pZCBSVENQZWVyQ29ubmVjdGlv
bjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pCkBAIC00MjQsNiAr
NDM0LDI0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN0b3AoKQogICAgIGNsb3NlKCk7CiB9
CiAKK1JUQ0NvbnRyb2xsZXImIFJUQ1BlZXJDb25uZWN0aW9uOjpydGNDb250cm9sbGVyKCkKK3sK
KyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpOworICAgIGF1dG8qIHBhZ2UgPSBzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnBhZ2UoKTsKKyAg
ICByZXR1cm4gcGFnZS0+cnRjQ29udHJvbGxlcigpOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0
aW9uOjpyZWdpc3RlclRvQ29udHJvbGxlcigpCit7CisgICAgcnRjQ29udHJvbGxlcigpLmFkZCgq
dGhpcyk7Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVucmVnaXN0ZXJGcm9tQ29udHJv
bGxlcigpCit7CisgICAgcnRjQ29udHJvbGxlcigpLnJlbW92ZSgqdGhpcyk7Cit9CisKIGNvbnN0
IGNoYXIqIFJUQ1BlZXJDb25uZWN0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gIlJUQ1BlZXJDb25uZWN0aW9uIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBhMTBhYWVi
NGM0MGE3YzRhYmNiNGZhYzZkNmE1OTBjNDllYjQzZjlhLi4yYzA1NjJlMzgyNGUwNTRiNWJhODZk
OTE3MDU2OTAxNTllMWJmZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFBlZXJDb25u
ZWN0aW9uQmFja2VuZDsKK2NsYXNzIFJUQ0NvbnRyb2xsZXI7CiBjbGFzcyBSVENJY2VDYW5kaWRh
dGU7CiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s7CiBjbGFzcyBSVENTZXNz
aW9uRGVzY3JpcHRpb247CkBAIC0xMzYsMTEgKzEzNywxOCBAQCBwdWJsaWM6CiAgICAgUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlIGludGVybmFsSWNlR2F0aGVyaW5nU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX2ljZUdhdGhlcmluZ1N0YXRlOyB9CiAgICAgUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZSBpbnRlcm5hbEljZUNvbm5lY3Rpb25TdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWNlQ29ubmVjdGlvblN0YXRlOyB9CiAKKyAgICB2b2lkIGRp
c2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKSB7IG1fYmFja2VuZC0+ZGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZygpOyB9CisgICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KSB7IG1fYmFja2VuZC0+ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7IH0KKwogcHJpdmF0
ZToKICAgICBSVENQZWVyQ29ubmVjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAg
ICB2b2lkIGNvbXBsZXRlQWRkVHJhbnNjZWl2ZXIoUlRDUnRwVHJhbnNjZWl2ZXImLCBjb25zdCBS
dHBUcmFuc2NlaXZlckluaXQmKTsKIAorICAgIFJUQ0NvbnRyb2xsZXImIHJ0Y0NvbnRyb2xsZXIo
KTsKKyAgICB2b2lkIHJlZ2lzdGVyVG9Db250cm9sbGVyKCk7CisgICAgdm9pZCB1bnJlZ2lzdGVy
RnJvbUNvbnRyb2xsZXIoKTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgog
ICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ5ZjY5M2JiYmQ5MTdlOWQwODQ0MDZkODNmNzBj
MTk3ZjJlNjQ0NWEuLjdmNTM0ZDkwNjJjN2EyZDUyZTk0MzY2MzVhMWE3MzA1YmExMmFkMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC0zNiw3ICsz
Niw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUlRDRGF0
YUNoYW5uZWwuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEV2ZW50LmgiCi0jaW5jbHVkZSAi
UlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJSVENUcmFja0V2ZW50Lmgi
CkBAIC00MDcsNyArNDA2LDcgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbkljZUNh
bmRpZGF0ZShjb25zdCB3ZWJydGM6OkljZUNhbmRpZGF0ZUludGVyZmFjZQogICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWlkID0gV1RGTW92ZShj
YW5kaWRhdGVNaWQpLCBzZHAgPSBXVEZNb3ZlKGNhbmRpZGF0ZVNEUCldIHsKICAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPmlzU3RvcHBlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5maXJlSUNFQ2FuZGlkYXRl
RXZlbnQoUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoU3RyaW5nKHNkcCksIFN0cmluZyhtaWQpLCAw
KSk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld0lD
RUNhbmRpZGF0ZShTdHJpbmcoc2RwKSwgU3RyaW5nKG1pZCkpOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApp
bmRleCBkYjc5OTI2NGQ2ZjJmZjEzNDgwNTMxNjE0MzE2M2NlNDU0MGIzMTQ0Li41NjdkNjkxZTg1
OTQ5NGFiNzRmYzYzN2ViZTQ5M2MyZTgxYWM1YjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTkzLDYgKzkzLDggQEAg
c3RhdGljIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24g
Y29uZmlndXJhdGlvbkZyb21NZWRpYUUKIAogdm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OnNldENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24mJiBjb25m
aWd1cmF0aW9uKQogeworICAgIGlmIChjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSA9
PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlVHJhbnNwb3J0UG9saWN5OjpSZWxheSkKKyAgICAg
ICAgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwogICAgIG1fZW5kcG9pbnQtPmJhY2tl
bmQoKS5TZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25Gcm9tTWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2M5NmEwMmI3YjI5
YjZlOGJmM2FhMWRjOGQzZWMxNjhiZTIzM2Y0Ni4uYzMxOWFmNTAzZjY2YzY0MTBkZjRmOGUxMTZm
ZTgxNjZlYjgzNjI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTU3OCw2ICsxNTc4LDggQEAKIAkJNDE3REE3MUUxMzczNURG
QTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQzEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMu
aCAqLzsgfTsKIAkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9y
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgx
NUMxQzEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCAqLzsgfTsKIAkJ
NDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MTVDMUQxMzgzMTk4MzAw
NTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxODIwNTQ3MUU1M0U5OEMwMEQ2MjIwNyAvKiBSVEND
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTgyMDU0NTFFNTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxODIwNTQ5MUU1M0VBQjAw
MEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9s
bGVyLmNwcCAqLzsgfTsKIAkJNDE4ODVCOTMxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNz
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4
NUI5MTExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg4NUI5NDExQjZGREE2MDAzMzgz
QkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE4ODVCOTIxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9u
LmNwcCAqLzsgfTsKIAkJNDE4QTA2RDAxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QTA2
Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oICovOyB9OwpAQCAtODgyNSw2
ICs4ODI3LDggQEAKIAkJNDE4MTVDMUMxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3Vw
cG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGVz
dFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgxNUMxRDEzODMx
OTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0Lnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9y
dC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4MjA1NDUxRTUzQzhD
RDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUlRDQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTgy
MDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAvKiBG
b3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
b3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNF
MTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNTM0OSw2ICsxNTM1Myw4IEBACiAJCQkJMDcyMjFCNjYxN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjY3MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmggKi8sCiAJCQkJMDcyMjFCNjgxN0NFQzMyNzAw
ODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaWRsICovLAorCQkJCTQxODIwNTQ1MUU1M0M4
Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi8sCisJCQkJNDE4MjA1NDgxRTUzRUFBRDAw
RDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCTA3MjIxQjY5MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEVE1GU2VuZGVyLmNwcCAqLywKIAkJCQkwNzIyMUI2QTE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRFRNRlNlbmRlci5oICovLAogCQkJCTA3MjIxQjZCMTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEVE1GU2VuZGVyLmlkbCAqLywKQEAgLTI2NTI3LDYgKzI2NTMzLDcgQEAKIAkJCQlBRDcy
NkZFRjE2REExMUY1MDAzQTRFNkQgLyogSlNDU1NSdWxlQ3VzdG9tLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEQwNUZBODBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NSdWxlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQyMDExQjcwQTAwMzEzMzAwODMwM0Y5IC8qIEpTQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJU
Q0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENzI2RkVEMTZEQTExNzEwMDNBNEU2
RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NDZDMjA3MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNDNUJFMDEwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMDQ1NCw2ICszMDQ2MSw3IEBACiAJCQkJQkM0RURFRjQwQzA4RjNGQjAw
N0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFFMkFBMUUwQTFDREFCNDAwQjQyQjI1IC8qIEpTSFRNTEFyZWFFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDOURCRkVEMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2ht
ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTgyMDU0OTFFNTNFQUIwMDBENjIy
MDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTQzNzBDRDY4
OUM0MDBGQURBNzUgLyogSlNIVE1MQXVkaW9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4MEU3QjEyMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxCYXNlRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUUyQUEyMjBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MQm9keUVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAKaW5kZXggYTg3M2MxNzRkMjdlY2RjMWYyMzI2OWMzNmM4YTdjYjMyOWZm
N2VjMC4uNmViM2Y4MWU5ZjdjNGFmZWQ3NTQ2YWYyNDBkMjgyOGZjMDk4N2Q4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUG9seWdvblNo
YXBlLmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveE1v
ZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCA0ZTE4ZmRiZDI1NzdjYjVlM2FjMjg1ODNhNWYwYTk3YzdhNWE3YzA2Li4yZWVjZTFjNWQ5ZDhj
YTlmZjY1OTYyOGEwYjU3ZTBkNTQ1ODJlNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjMsNiArNjMs
MTAgQEAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoV0VCX1JUQykKKyNpbmNsdWRlICJSVENDb250cm9sbGVyLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBEZWJ1Z2dlcjsKIH0KQEAgLTIyMyw2ICsyMjcsNyBA
QCBwdWJsaWM6CiAgICAgUG9pbnRlckxvY2tDb250cm9sbGVyJiBwb2ludGVyTG9ja0NvbnRyb2xs
ZXIoKSBjb25zdCB7IHJldHVybiAqbV9wb2ludGVyTG9ja0NvbnRyb2xsZXI7IH0KICNlbmRpZgog
ICAgIExpYldlYlJUQ1Byb3ZpZGVyJiBsaWJXZWJSVENQcm92aWRlcigpIHsgcmV0dXJuIG1fbGli
V2ViUlRDUHJvdmlkZXIuZ2V0KCk7IH0KKyAgICBSVENDb250cm9sbGVyJiBydGNDb250cm9sbGVy
KCkgeyByZXR1cm4gbV9ydGNDb250cm9sbGVyOyB9CiAKICAgICBWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudCogdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3ZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50LmdldCgpOyB9CiAgICAgdm9pZCB1cGRhdGVWYWxpZGF0aW9uQnViYmxl
U3RhdGVJZk5lZWRlZCgpOwpAQCAtNjQwLDYgKzY0NSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiBtX3dlYkdMU3RhdGVUcmFja2VyOwogCiAgICAg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOworICAgIFJU
Q0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwogCiAgICAgaW50IG1fbmVzdGVkUnVuTG9vcENv
dW50IHsgMCB9OwogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX3VubmVzdENhbGxiYWNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggMDA5NWM1MTdmMGY3ZTBj
NDNlYjg2NjI3OTFhMDEzNTMxMmVlODU4Ni4uNDI4Zjg0OWM3NTgxNTJjMjBjNDRmOWU5ODZhYWQ3
ZTMyZjM2ZjdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0x
NDksNyArMTQ5LDEwIEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Y3JpY2tldDo6QmFzaWNQb3J0QWxsb2NhdG9yPiBwb3J0QWxsb2NhdG9yOwogICAgIHN0
YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkuc2lnbmFsaW5nVGhyZWFkLT5JbnZva2U8dm9pZD4oUlRD
X0ZST01fSEVSRSwgWyZdKCkgewotICAgICAgICBwb3J0QWxsb2NhdG9yLnJlc2V0KG5ldyBjcmlj
a2V0OjpCYXNpY1BvcnRBbGxvY2F0b3IoJm5ldHdvcmtNYW5hZ2VyLCAmcGFja2V0U29ja2V0RmFj
dG9yeSkpOworICAgICAgICBhdXRvIGJhc2ljUG9ydEFsbG9jYXRvciA9IHN0ZDo6bWFrZV91bmlx
dWU8Y3JpY2tldDo6QmFzaWNQb3J0QWxsb2NhdG9yPigmbmV0d29ya01hbmFnZXIsICZwYWNrZXRT
b2NrZXRGYWN0b3J5KTsKKyAgICAgICAgaWYgKCFtX2VuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMpCisgICAgICAgICAgICBiYXNpY1BvcnRBbGxvY2F0b3ItPnNldF9mbGFncyhi
YXNpY1BvcnRBbGxvY2F0b3ItPmZsYWdzKCkgfCBjcmlja2V0OjpQT1JUQUxMT0NBVE9SX0RJU0FC
TEVfQURBUFRFUl9FTlVNRVJBVElPTik7CisgICAgICAgIHBvcnRBbGxvY2F0b3IgPSBXVEZNb3Zl
KGJhc2ljUG9ydEFsbG9jYXRvcik7CiAgICAgfSk7CiAKICAgICByZXR1cm4gY3JlYXRlQWN0dWFs
UGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdURk1vdmUocG9ydEFsbG9jYXRvcikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBkY2ExYzIyNzVjZjlkNTYwMDdlOGNmMWQx
MjUxODg2ODQxN2Y2MWY0Li4xZjU0ODA5ZTA0NjgyNGY1ZTQ1OTlhNWYyYTc1NTQ5YTdlZDljYTVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNjAsOCArNjAsMTMgQEAg
cHVibGljOgogICAgIC8vIFVzZWQgZm9yIG1vY2sgdGVzdGluZwogICAgIHN0YXRpYyB2b2lkIHNl
dFBlZXJDb25uZWN0aW9uRmFjdG9yeShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+JiYpOwogCisgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzID0gZmFsc2U7IH0KKyAgICB2b2lkIGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMoKSB7IG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9
IHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlv
bih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6Ok5ldHdvcmtNYW5hZ2VyJiwg
cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Jik7CisKKyAgICBib29sIG1fZW5hYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcyB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzU2OGVkYTAzYmZjMGJjYTQ3
M2JlMzNiY2RiZjIyODMzZWI2Y2I2YS4uMDlhOWUwZjE3OWM0YjdiYzE1MWM0NTExMWY2N2I4YzIy
ZTdkNjFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTgyMSw2ICs4MjEsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKCkK
IAogICAgIG1fbmVlZHNUb0ZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVu
Y2ggPSB0cnVlOwogICAgIGZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVu
Y2goKTsKKworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIC8vIEZJWE1FOiBUaWUgSUNFIGZpbHRl
cmluZyB3aXRoIGdldFVzZXJNZWRpYSBwZXJtaXNzaW9uLgorICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpLCBtX3BhZ2VJ
RCk7CisjaWYgVVNFKExJQldFQlJUQykKKyAgICAvLyBGSVhNRTogVHVybiBkb3duIG5ldHdvcmsg
aW50ZXJmYWNlIGVudW1lcmF0aW9uIGJ5IGRlZmF1bHQuCisgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpFbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCks
IG1fcGFnZUlEKTsKKyNlbmRpZgorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpmaW5p
c2hJbml0aWFsaXppbmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MDA0ZGIwZmMw
ZWFhM2YzY2ZmYzdlZWE5ZThmMDI1NWU2ZmFjZTE4Li5hMGMxZmEyNjA5Mjk0MTMwYWJmODZjNTk3
NjI0ZGQzOGRkMDgwYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC05OTk2LDcgKzk5OTYsNyBAQAogCQkJCTM3NjA4ODFFMTUw
NDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTEwQUZGQjkxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNkJFOTY5QTIxRTQzQjhBNDAwOEI3NDgzIC8qIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZCRTk2OUEyMUU0M0I4QTQw
MDhCNzQ4MyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgy
QyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUQgLyogTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwMTg3LDcgKzEwMTg3LDcgQEAKIAkJCQkzNzk0
ODQwODE1MEM0Qjk3MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzNzYwODgyMjE1MDQxNEY3MDBGQzgyQzcgLyogV0tSZW5kZXJPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzMzNjc2M0ExMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNo
ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDZCRTk2OTlFMUU0M0I0MUQwMDhCNzQ4MyAvKiBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZCRTk2OTlFMUU0M0I0MUQwMDhCNzQ4MyAv
KiBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBN0UzNzc4MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UubW0gaW4gU291cmNl
cyAqLywKIAkJCQkwRkNCNEU1NTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFDRDFDNjYxQjM0QjlEQzAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlP
cmlnaW4ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDcyNDBiYmQxNTRmOGYzMjAwZTc4MjcxNWQ0OTM4MDYzMGM5MTcy
OWMuLjIxZDEwOGU1OWE0NzgwMDc4YjcyOTExYWYxM2ViMzZiODc5NTE0ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNTcsNiArNTcsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSHlzdGVyZXNpc0FjdGl2aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplSGFzaC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmg+CkBAIC0xMTkzLDYgKzExOTQsMTUgQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICB2b2lkIGRpc2FibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKSB7IG1fcGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKTsgfQorICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5n
KCkgeyBtX3BhZ2UtPnJ0Y0NvbnRyb2xsZXIoKS5lbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KTsgfQorI2lmIFVTRShMSUJXRUJSVEMpCisgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRpbmdBbGxO
ZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmRpc2FibGVF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7IH0KKyAgICB2b2lkIGVuYWJsZUVudW1l
cmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKSB7IG1fcGFnZS0+bGliV2ViUlRDUHJvdmlkZXIo
KS5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7IH0KKyNlbmRpZgorI2Vu
ZGlmCisKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3Jl
U2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYg
d29yZCk7CiAjaWYgVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMjM5MzljMTkzMGU0ZmMxZmY2
NmU3NTFiNmY4ZDEzMGVjZGYyZDEwOS4uZGY3YWIwNjE0YzBmMjIyYWU4MmE0MTk5ZTc5NjEyZWVh
MjMzNzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTMwNiw2ICszMDYsMTUgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9S
VEMpCisgICAgRGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCisgICAgRW5hYmxlSUNFQ2Fu
ZGlkYXRlRmlsdGVyaW5nKCkKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBVU0UoTElC
V0VCUlRDKQorICAgIEVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQorICAg
IERpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkKKyNlbmRpZgorCiAgICAg
IyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301631</attachid>
            <date>2017-02-15 10:30:07 -0800</date>
            <delta_ts>2017-02-15 10:47:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168348-20170215102730.patch</filename>
            <type>text/plain</type>
            <size>32189</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU4MGYxZWNhYjY3OGI1
MzVkMmEzYWE1NTE3M2U0MGI2OWY4ZTJjMy4uNmIyNmQyZDdiNzY1ZjhiZDNkOTIwOTY3YTg5ZDNj
YTIzOGY2ZjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAyLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJQ0UgY2Fu
ZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0
ZXN0cy4gU2hvdWxkIGJlIGNvdmVyZWQgaW4gdGhlIGZ1dHVyZSBieSBsYXlvdXQgdGVzdHMgd2l0
aCBkZWRpY2F0ZWQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3Ig
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYXQgUlRDUGVlckNvbm5lY3Rpb24gbGV2ZWwuCisgICAg
ICAgIElmIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGlzIG9uIChieSBkZWZhdWx0KSwgaG9zdCBj
YW5kaWRhdGVzIGFyZSBzdG9yZWQgYW5kIG5vdCBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICBS
ZWZsZXhpdmUgY2FuZGlkYXRlcyBhcmUgcHVyZ2VkIGZyb20gcmFkZHIgaW5mb3JtYXRpb24gdG8g
bm90IGxlYWsgdGhlIGhvc3QgSVAgYWRkcmVzcy4KKworICAgICAgICBTdG9yZWQgY2FuZGlkYXRl
cyBtYXkgYmUgYXN2ZXJ0aXNlZCB0byB0aGUgSlMgbGF5ZXIgaWYgUlRDQ29udHJvbGxlciBpcyBu
b3RpZmllZCBvZiBhIGNoYW5nZSBvZiBmaWx0ZXJpbmcgcG9saWN5LgorICAgICAgICBUbyBpbXBs
ZW1lbnQgdGhhdCwgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGlzIHN0b3JpbmcgYWxsIGZpbHRlcmVk
IG91dCBjYW5kaWRhdGVzIGFuZCBSVENQZWVyQ29ubmVjdGlvbiByZWdpc3RlcgorICAgICAgICB0
aGVtc2VsdmVzIHRvIFJUQ0NvbnRyb2xsZXIgdG8gZ2V0IG5vdGlmaWNhdGlvbnMgb2YgZmlsdGVy
aW5nIHBvbGljeSBjaGFuZ2VzLgorCisgICAgICAgIE1ha2luZyBSVENQZWVyQ29ubmVjdGlvbiB1
c2Ugc2V0UGVuZGluZ0FjdGl2aXR5IHRocm91Z2hvdXQgaXRzIGxpZmV0aW1lLgorICAgICAgICBU
aGlzIGVuc3VyZXMgaXQgZG9lcyBub3QgZ2V0IGNvbGxlY3RlZCB1bnRpbCB0aGUgcGFnZSBpcyBv
ZmYgb3IgY2xvc2UoKSBpcyBjYWxsZWQgb24gdGhlIG9iamVjdC4KKworICAgICAgICBBZGRpbmcg
c3VwcG9ydCBmb3IgZW51bWVyYXRpbmcgb3Igbm90IGFsbCBpbnRlcmZhY2VzIGF0IGxpYndlYnJ0
YyBsZXZlbC4KKyAgICAgICAgVGhpcyBjaG9pY2UgaXMgZG9uZSBhdCBjcmVhdGlvbiBvZiB0aGUg
cGVlciBjb25uZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjplbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZpbHRlcklDRUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6Om5ld0lDRUNhbmRpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJU
Q0NvbnRyb2xsZXI6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjph
ZGQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDQ29udHJvbGxlcjo6ZGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjplbmFibGVJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29u
dHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpydGNDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpyZWdpc3RlclRvQ29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlckZyb21Db250cm9sbGVy
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbklj
ZUNhbmRpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnRjQ29udHJvbGxlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTctMDItMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBFeHBvc2UgU3ltYm9sLnRvUHJpbWl0aXZlIC8gdmFsdWVPZiBvbiBMb2NhdGlvbiBpbnN0
YW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBhMzgwMTk2YmQ4NTQ0OWRkMzYzMmM4YThkMTdiODhlNWViN2Nj
OTJiLi5lYzBhMDZkMjQ5YjNmZjc3NjFjOWQyNzZhYTM1NWRiNjNhZjVjN2EyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzAgQEAKKzIwMTctMDItMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIFtXZWJSVENdIElDRSBjYW5kaWRhdGVzIHNob3VsZCBiZSBmaWx0
ZXJlZCBhY2NvcmRpbmcgYSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGluZyB0aGUgcG9zc2liaWxpdHkgZm9yIHRoZSBVSSBwcm9jZXNz
IHRvIGNvbnRyb2wgdGhlIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGFuZCB3aGV0aGVyIGxpYndl
YnJ0YyBjYW4KKyAgICAgICAgZW51bWVyYXRlIGFsbCBpbnRlcmZhY2VzIG9yIG5vdC4KKworICAg
ICAgICBEaXNhYmxpbmcgSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgZm9yIHRoZSBtb21lbnQuCisg
ICAgICAgIEVuYWJsaW5nIHRvIGVudW1lcmF0ZSBhbGwgaW50ZXJmYWNlcyBmb3IgdGhlIG1vbWVu
dC4KKworICAgICAgICBJbiB0aGUgZnV0dXJlLCBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBzaG91
bGQgYmUgdGllZCB0byBnZXRVc2VyTWVkaWEuCisgICAgICAgIEludGVyZmFjZSBlbnVtZXJhdGlv
biBzaG91bGQgYmUgZGlzYWJsZWQgd2l0aCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLgorICAg
ICAgICBXZSBzaG91bGQgZG8gdGhhdCBvbmNlIHdlIGhhdmUgc3VmZmljaWVudCB0ZXN0aW5nIGlu
IHZhcmlvdXMgbmV0d29yayBpbmZyYXN0cnVjdHVyZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppbml0aWFs
aXplV2ViUGFnZSk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjplbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
OgorCiAyMDE3LTAyLTE1ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgV2ViSU9TRXZlbnQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKaW5kZXggYmEyZDQzZmQyNzIxOGM3MDdlN2M0YzU0ZjRmM2VkZDNmMjMwYzFiYy4uM2FmMjFh
NmM0ZWIwY2NiNjBiOTc5YWI4OTlhMmIzMzhhNTYzZmQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZS5oIgogI2lu
Y2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMjY5LDYgKzI3MCw2MyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+JiYgY2FuZAog
ICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZUV2ZW50OjpjcmVh
dGUoZmFsc2UsIGZhbHNlLCBXVEZNb3ZlKGNhbmRpZGF0ZSkpKTsKIH0KIAordm9pZCBQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9z
aG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gdHJ1ZTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQoreworICAgIG1fc2hvdWxk
RmlsdGVySUNFQ2FuZGlkYXRlcyA9IGZhbHNlOworICAgIGZvciAoYXV0byYgcGVuZGluZ0lDRUNh
bmRpZGF0ZSA6IG1fcGVuZGluZ0lDRUNhbmRpZGF0ZXMpCisgICAgICAgIGZpcmVJQ0VDYW5kaWRh
dGVFdmVudChSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShXVEZNb3ZlKHBlbmRpbmdJQ0VDYW5kaWRh
dGUuc2RwKSwgV1RGTW92ZShwZW5kaW5nSUNFQ2FuZGlkYXRlLm1pZCksIDApKTsKKyAgICBtX3Bl
bmRpbmdJQ0VDYW5kaWRhdGVzLmNsZWFyKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIGZp
bHRlcklDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHApCit7CisgICAgQVNTRVJUKCFzZHAuY29udGFp
bnMoIiBob3N0ICIpKTsKKworICAgIGlmICghc2RwLmNvbnRhaW5zKCIgcmFkZHIgIikpCisgICAg
ICAgIHJldHVybiBXVEZNb3ZlKHNkcCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBpdGVtczsKKyAg
ICBzZHAuc3BsaXQoJyAnLCBpdGVtcyk7CisKKyAgICBib29sIHNraXAgPSBmYWxzZTsKKyAgICBi
b29sIGlzRmlyc3QgPSB0cnVlOworICAgIFN0cmluZ0J1aWxkZXIgZmlsdGVyZWRTRFA7CisgICAg
Zm9yIChhdXRvJiBpdGVtIDogaXRlbXMpIHsKKyAgICAgICAgaWYgKHNraXApIHsKKyAgICAgICAg
ICAgIHNraXAgPSBmYWxzZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAg
ICAgIGlmIChpdGVtID09ICJyYWRkciIgfHwgaXRlbSA9PSAicnBvcnQiKSB7CisgICAgICAgICAg
ICBza2lwID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAg
IGlmIChpc0ZpcnN0KQorICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoIiAiKTsKKyAgICAgICAgZmlsdGVyZWRT
RFAuYXBwZW5kKGl0ZW0pOworICAgIH0KKyAgICByZXR1cm4gZmlsdGVyZWRTRFAudG9TdHJpbmco
KTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om5ld0lDRUNhbmRpZGF0ZShTdHJp
bmcmJiBzZHAsIFN0cmluZyYmIG1pZCkKK3sKKyAgICBpZiAoIW1fc2hvdWxkRmlsdGVySUNFQ2Fu
ZGlkYXRlcykgeworICAgICAgICBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUlRDSWNlQ2FuZGlkYXRl
OjpjcmVhdGUoV1RGTW92ZShzZHApLCBXVEZNb3ZlKG1pZCksIDApKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoc2RwLmNvbnRhaW5zKCIgaG9zdCAiKSkgeworICAgICAgICBtX3Bl
bmRpbmdJQ0VDYW5kaWRhdGVzLmFwcGVuZChQZW5kaW5nSUNFQ2FuZGlkYXRlIHsgV1RGTW92ZShz
ZHApLCBXVEZNb3ZlKG1pZCl9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBmaXJlSUNF
Q2FuZGlkYXRlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoZmlsdGVySUNFQ2FuZGlkYXRl
KFdURk1vdmUoc2RwKSksIFdURk1vdmUobWlkKSwgMCkpOworfQorCiB2b2lkIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCA1ZGY3ZGI0NTQ5OWM2OTUyNDFk
NGExZTJiODgwZDczMzQ3YjRkY2FkLi5hMjFiNWQ5ZDNiY2MyYmEwNGIzZmRhMTM1MGYwMzZhOGQ3
NWRjOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEwMSw2ICsxMDEsMTAgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYg
YWN0aW9uKSA9IDA7CiAKKyAgICB2b2lkIG5ld0lDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHAsIFN0
cmluZyYmIG1pZCk7CisgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cisg
ICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKwogcHJvdGVjdGVkOgogICAg
IHZvaWQgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+JiYpOwog
ICAgIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoKTsKQEAgLTEzNyw3ICsxNDEsMTQgQEAg
cHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFBlZXJDb25uZWN0aW9uOjpTZXNzaW9uRGVzY3Jp
cHRpb25Qcm9taXNlPiBtX29mZmVyQW5zd2VyUHJvbWlzZTsKICAgICBzdGQ6Om9wdGlvbmFsPERP
TVByb21pc2U8dm9pZD4+IG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlOwogICAgIHN0ZDo6b3B0aW9u
YWw8RE9NUHJvbWlzZTx2b2lkPj4gbV9hZGRJY2VDYW5kaWRhdGVQcm9taXNlOwotICAgIAorCisg
ICAgYm9vbCBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgeyB0cnVlIH07CisgICAgc3RydWN0
IFBlbmRpbmdJQ0VDYW5kaWRhdGUgeworICAgICAgICBTdHJpbmcgc2RwOworICAgICAgICBTdHJp
bmcgbWlkOworICAgIH07CisgICAgVmVjdG9yPFBlbmRpbmdJQ0VDYW5kaWRhdGU+IG1fcGVuZGlu
Z0lDRUNhbmRpZGF0ZXM7CisKICAgICBib29sIG1fbmVnb3RpYXRpb25OZWVkZWQgeyBmYWxzZSB9
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1NTVjMmFkZDJjN2FlYzM5MGFlNmI2NWIwNGVi
YmJmMjVmODhiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5oIgorCisjaWYg
RU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6cmVtb3ZlKFJUQ1BlZXJDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIG1fcGVlckNvbm5lY3Rpb25zLnJlbW92ZUZpcnN0
TWF0Y2hpbmcoWyZjb25uZWN0aW9uXShhdXRvIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuICZjb25u
ZWN0aW9uID09ICZpdGVtLmdldCgpOworICAgIH0pOworfQorCit2b2lkIFJUQ0NvbnRyb2xsZXI6
OmFkZChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBtX3BlZXJDb25uZWN0
aW9ucy5hcHBlbmQoY29ubmVjdGlvbik7CisgICAgaWYgKCFtX3Nob3VsZEZpbHRlcklDRUNhbmRp
ZGF0ZXMpCisgICAgICAgIGNvbm5lY3Rpb24uZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygp
OworfQorCit2b2lkIFJUQ0NvbnRyb2xsZXI6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KQoreworICAgIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyA9IGZhbHNlOworICAgIGZvciAo
UlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24gOiBtX3BlZXJDb25uZWN0aW9ucykKKyAgICAg
ICAgY29ubmVjdGlvbi5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cit9CisKK3ZvaWQg
UlRDQ29udHJvbGxlcjo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKK3sKKyAgICBtX3No
b3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgPSB0cnVlOworICAgIGZvciAoUlRDUGVlckNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24gOiBtX3BlZXJDb25uZWN0aW9ucykKKyAgICAgICAgY29ubmVjdGlvbi5l
bmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDczOWE3ODY4YTgzYTdlZGUwNWQ5YzZmNTc5NWUz
ZTdmMmM5Mzg0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CisKK2NsYXNzIFJUQ0NvbnRyb2xsZXIg
eworcHVibGljOgorICAgIFJUQ0NvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICB2b2lkIGFkZChSVENQZWVyQ29ubmVjdGlvbiYpOworICAgIHZvaWQgcmVt
b3ZlKFJUQ1BlZXJDb25uZWN0aW9uJik7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2Fi
bGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworCitwcml2YXRlOgorICAgIFZlY3RvcjxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFJUQ1BlZXJDb25uZWN0aW9uPj4gbV9wZWVyQ29ubmVjdGlvbnM7Cisg
ICAgYm9vbCBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgeyB0cnVlIH07CisjZW5kaWYKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOGU0ZGNiMTEz
M2JiZGZjNTEyMDM4ODE0MDViYzQ2NWFkNDU4ZWE2YS4uMWY5ZmI0OGY5N2MxZWU1OGVlZDViZjYx
ZDI0NTljYTI3YWMyYWJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQyLDcgKzQyLDkgQEAKICNp
bmNsdWRlICJNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJSVENDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRl
LmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKQEAgLTYyLDcgKzY0LDEyIEBA
IFJlZjxSVENQZWVyQ29ubmVjdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0CiB7CiAgICAgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBw
ZWVyQ29ubmVjdGlvbiA9IGFkb3B0UmVmKCpuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29udGV4dCkp
OwogICAgIHBlZXJDb25uZWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKLQorICAgIC8vIFJUQ1Bl
ZXJDb25uZWN0aW9uIG1heSBzZW5kIGV2ZW50cyBhdCBhYm91dCBhbnkgdGltZSBkdXJpbmcgaXRz
IGxpZmV0aW1lLgorICAgIC8vIExldCdzIG1ha2UgaXQgdW5jb2xsZWN0YWJsZSB1bnRpbCB0aGUg
cGMgaXMgY2xvc2VkIGJ5IEpTIG9yIHRoZSBwYWdlIGlzIHN0b3BwaW5nIGl0LgorICAgIGlmIChw
ZWVyQ29ubmVjdGlvbi0+bV9zaWduYWxpbmdTdGF0ZSAhPSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2Vk
KSB7CisgICAgICAgIHBlZXJDb25uZWN0aW9uLT5zZXRQZW5kaW5nQWN0aXZpdHkocGVlckNvbm5l
Y3Rpb24ucHRyKCkpOworICAgICAgICBwZWVyQ29ubmVjdGlvbi0+cmVnaXN0ZXJUb0NvbnRyb2xs
ZXIoKTsKKyAgICB9CiAgICAgcmV0dXJuIHBlZXJDb25uZWN0aW9uOwogfQogCkBAIC00MTIsNiAr
NDE5LDkgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoKQogCiAgICAgZm9yIChSVENS
dHBTZW5kZXImIHNlbmRlciA6IG1fdHJhbnNjZWl2ZXJTZXQtPnNlbmRlcnMoKSkKICAgICAgICAg
c2VuZGVyLnN0b3AoKTsKKworICAgIHVucmVnaXN0ZXJGcm9tQ29udHJvbGxlcigpOworICAgIHVu
c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpl
bXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikKQEAgLTQyNCw2ICs0MzQs
MjQgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiAgICAgY2xvc2UoKTsKIH0KIAor
UlRDQ29udHJvbGxlciYgUlRDUGVlckNvbm5lY3Rpb246OnJ0Y0NvbnRyb2xsZXIoKQoreworICAg
IEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIEFTU0VSVChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CisgICAgYXV0byogcGFnZSA9IHN0YXRpY19j
YXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+cGFnZSgpOworICAgIHJl
dHVybiBwYWdlLT5ydGNDb250cm9sbGVyKCk7Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OnJlZ2lzdGVyVG9Db250cm9sbGVyKCkKK3sKKyAgICBydGNDb250cm9sbGVyKCkuYWRkKCp0aGlz
KTsKK30KKwordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlckZyb21Db250cm9sbGVy
KCkKK3sKKyAgICBydGNDb250cm9sbGVyKCkucmVtb3ZlKCp0aGlzKTsKK30KKwogY29uc3QgY2hh
ciogUlRDUGVlckNvbm5lY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewogICAg
IHJldHVybiAiUlRDUGVlckNvbm5lY3Rpb24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IGExMGFhZWI0YzQw
YTdjNGFiY2I0ZmFjNmQ2YTU5MGM0OWViNDNmOWEuLjJjMDU2MmUzODI0ZTA1NGI1YmE4NmQ5MTcw
NTY5MDE1OWUxYmZmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOworY2xhc3MgUlRDQ29udHJvbGxlcjsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZTsK
IGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbjsKQEAgLTEzNiwxMSArMTM3LDE4IEBAIHB1YmxpYzoKICAgICBQZWVyQ29ubmVj
dGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGUgaW50ZXJuYWxJY2VHYXRoZXJpbmdTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWNlR2F0aGVyaW5nU3RhdGU7IH0KICAgICBQZWVyQ29ubmVjdGlv
blN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlIGludGVybmFsSWNlQ29ubmVjdGlvblN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9pY2VDb25uZWN0aW9uU3RhdGU7IH0KIAorICAgIHZvaWQgZGlzYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIHsgbV9iYWNrZW5kLT5kaXNhYmxlSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nKCk7IH0KKyAgICB2b2lkIGVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIHsg
bV9iYWNrZW5kLT5lbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQorCiBwcml2YXRlOgog
ICAgIFJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIHZv
aWQgY29tcGxldGVBZGRUcmFuc2NlaXZlcihSVENSdHBUcmFuc2NlaXZlciYsIGNvbnN0IFJ0cFRy
YW5zY2VpdmVySW5pdCYpOwogCisgICAgUlRDQ29udHJvbGxlciYgcnRjQ29udHJvbGxlcigpOwor
ICAgIHZvaWQgcmVnaXN0ZXJUb0NvbnRyb2xsZXIoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJGcm9t
Q29udHJvbGxlcigpOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCiAgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
TWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTQ2YzMxYzRlZDBiMWRkMzQ5OTZmODVmMjI2Mjg3NjQ4
NDUxMjhjZS4uOGUyZjc2YjNmMzE4NmZhZDk5ODMxOGQyYjIxOTgxODFmZDNlNzdlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hh
bm5lbC5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsRXZlbnQuaCIKLSNpbmNsdWRlICJSVENJ
Y2VDYW5kaWRhdGUuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlJUQ1RyYWNrRXZlbnQuaCIKQEAg
LTQ0Niw3ICs0NDUsNyBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uSWNlQ2FuZGlk
YXRlKGNvbnN0IHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlCiAgICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtaWQgPSBXVEZNb3ZlKGNhbmRp
ZGF0ZU1pZCksIHNkcCA9IFdURk1vdmUoY2FuZGlkYXRlU0RQKV0gewogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHBy
b3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmZpcmVJQ0VDYW5kaWRhdGVFdmVu
dChSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShTdHJpbmcoc2RwKSwgU3RyaW5nKG1pZCksIDApKTsK
KyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3SUNFQ2Fu
ZGlkYXRlKFN0cmluZyhzZHApLCBTdHJpbmcobWlkKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4
IGM4YTM4MmM1YmExYzAyMjczODc3MTJkZWJkMjcwNTdjOTVkZTM1ZjUuLjQ5YWFhMDIxYWYxOGE5
M2ZiZDAyNmQ1OTIzMmJlNTI1OWE4N2UwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtOTMsNiArOTMsOCBAQCBzdGF0
aWMgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uRnJvbU1lZGlhRQogCiB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6c2V0Q29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3Vy
YXRpb24pCiB7CisgICAgaWYgKGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5ID09IFBl
ZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VUcmFuc3BvcnRQb2xpY3k6OlJlbGF5KQorICAgICAgICBk
aXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAgICAgbV9lbmRwb2ludC0+YmFja2VuZCgp
LlNldENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbkZyb21NZWRpYUVuZHBvaW50Q29uZmlndXJh
dGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNDViZDAxOTEwNDQwMjlm
NjdiOTM5NTRlNjc3NWE5MWIwYTIyZGJkLi5lNTg2NWZkZTMzZjhiNzgzNjlkNDE0N2M3NmQxNGFl
YzZmZTYyMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNTc3LDYgKzE1NzcsOCBAQAogCQk0MTdEQTcxRTEzNzM1REZBMDA3
QzU3RkIgLyogSlNJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxN0RBNzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oICov
OyB9OwogCQk0MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODE1QzFD
MTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwICovOyB9OwogCQk0MTgx
NUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgxNUMxRDEzODMxOTgzMDA1N0FB
QTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
ODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4MjA1NDkxRTUzRUFCMDAwRDYy
MjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE4MjA1NDgxRTUzRUFBRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIu
Y3BwICovOyB9OwogCQk0MTg4NUI5MzExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1Qjkx
MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAv
KiBGb3JtU3VibWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3Bw
ICovOyB9OwogCQk0MThBMDZEMDEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZDRTEz
M0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi87IH07CkBAIC04ODIzLDYgKzg4
MjUsOCBAQAogCQk0MTgxNUMxQzEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUZXN0U3Vw
cG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODE1QzFEMTM4MzE5ODMw
MDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0Lnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTgyMDU0NTFFNTNDOENEMDBE
NjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxODIwNTQ4
MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTg4NUI5MTExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybVN1Ym1pc3Npb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTIxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1T
dWJtaXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1T
dWJtaXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QTA2Q0UxMzND
MDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFdmVudERpc3BhdGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1MzQ2LDYgKzE1MzUwLDggQEAKIAkJCQkwNzIyMUI2NjE3Q0VDMzI3MDA4NDhFNTEgLyog
UlRDRGF0YUNoYW5uZWxFdmVudC5jcHAgKi8sCiAJCQkJMDcyMjFCNjcxN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI2ODE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5pZGwgKi8sCisJCQkJNDE4MjA1NDUxRTUzQzhDRDAw
RDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLywKKwkJCQk0MTgyMDU0ODFFNTNFQUFEMDBENjIy
MDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJMDcyMjFCNjkxN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ0RUTUZTZW5kZXIuY3BwICovLAogCQkJCTA3MjIxQjZBMTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEVE1GU2VuZGVyLmggKi8sCiAJCQkJMDcyMjFCNkIxN0NFQzMyNzAwODQ4RTUxIC8qIFJU
Q0RUTUZTZW5kZXIuaWRsICovLApAQCAtMjY1MjQsNiArMjY1MzAsNyBAQAogCQkJCUFENzI2RkVG
MTZEQTExRjUwMDNBNEU2RCAvKiBKU0NTU1J1bGVDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4RDA1RkE4MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNDIwMTFCNzBBMDAzMTMzMDA4MzAzRjkgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTgyMDU0NzFFNTNFOThDMDBENjIyMDcgLyogUlRDQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ3MjZGRUQxNkRBMTE3MTAwM0E0RTZEIC8q
IEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NkMy
MDcwQzBERENBMTAwMjBDRkMzIC8qIEpTQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0M1QkUwMTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTMwNDUwLDYgKzMwNDU3LDcgQEAKIAkJCQlCQzRFREVGNDBDMDhGM0ZCMDA3RURE
NDkgLyogSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QUUyQUExRTBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MQXJlYUVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M5REJGRUQxQTlDNDlCMTAwMEQ2QjI1IC8qIEpTSFRNTEF0dGFjaG1lbnRF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxODIwNTQ5MUU1M0VBQjAwMEQ2MjIwNyAv
KiBSVENDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxNDM3MENENjg5QzQw
MEZBREE3NSAvKiBKU0hUTUxBdWRpb0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgw
RTdCMTIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEJhc2VFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBRTJBQTIyMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxCb2R5RWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcAppbmRleCBhODczYzE3NGQyN2VjZGMxZjIzMjY5YzM2YzhhN2NiMzI5ZmY3ZWMw
Li42ZWIzZjgxZTlmN2M0YWZlZDc1NDZhZjI0MGQyODI4ZmMwOTg3ZDhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQb2x5Z29uU2hhcGUu
aCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDRl
MThmZGJkMjU3N2NiNWUzYWMyODU4M2E1ZjBhOTdjN2E1YTdjMDYuLjJlZWNlMWM1ZDlkOGNhOWZm
NjU5NjI4YTBiNTdlMGQ1NDU4MmU2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC02Myw2ICs2MywxMCBA
QAogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShXRUJfUlRDKQorI2luY2x1ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiBu
YW1lc3BhY2UgSlNDIHsKIGNsYXNzIERlYnVnZ2VyOwogfQpAQCAtMjIzLDYgKzIyNyw3IEBAIHB1
YmxpYzoKICAgICBQb2ludGVyTG9ja0NvbnRyb2xsZXImIHBvaW50ZXJMb2NrQ29udHJvbGxlcigp
IGNvbnN0IHsgcmV0dXJuICptX3BvaW50ZXJMb2NrQ29udHJvbGxlcjsgfQogI2VuZGlmCiAgICAg
TGliV2ViUlRDUHJvdmlkZXImIGxpYldlYlJUQ1Byb3ZpZGVyKCkgeyByZXR1cm4gbV9saWJXZWJS
VENQcm92aWRlci5nZXQoKTsgfQorICAgIFJUQ0NvbnRyb2xsZXImIHJ0Y0NvbnRyb2xsZXIoKSB7
IHJldHVybiBtX3J0Y0NvbnRyb2xsZXI7IH0KIAogICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
KiB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQuZ2V0KCk7IH0KICAgICB2b2lkIHVwZGF0ZVZhbGlkYXRpb25CdWJibGVTdGF0
ZUlmTmVlZGVkKCk7CkBAIC02NDAsNiArNjQ1LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IG1fd2ViR0xTdGF0ZVRyYWNrZXI7CiAKICAgICBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CisgICAgUlRDQ29u
dHJvbGxlciBtX3J0Y0NvbnRyb2xsZXI7CiAKICAgICBpbnQgbV9uZXN0ZWRSdW5Mb29wQ291bnQg
eyAwIH07CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IG1fdW5uZXN0Q2FsbGJhY2s7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAwMDk1YzUxN2YwZjdlMGM0M2Vi
ODY2Mjc5MWEwMTM1MzEyZWU4NTg2Li40MjhmODQ5Yzc1ODE1MmMyMGM0NGY5ZTk4NmFhZDdlMzJm
MzZmN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTE0OSw3
ICsxNDksMTAgQEAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRl
cmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWUKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxjcmlja2V0OjpCYXNpY1BvcnRBbGxvY2F0b3I+IHBvcnRBbGxvY2F0b3I7CiAgICAgc3RhdGlj
RmFjdG9yeUFuZFRocmVhZHMoKS5zaWduYWxpbmdUaHJlYWQtPkludm9rZTx2b2lkPihSVENfRlJP
TV9IRVJFLCBbJl0oKSB7Ci0gICAgICAgIHBvcnRBbGxvY2F0b3IucmVzZXQobmV3IGNyaWNrZXQ6
OkJhc2ljUG9ydEFsbG9jYXRvcigmbmV0d29ya01hbmFnZXIsICZwYWNrZXRTb2NrZXRGYWN0b3J5
KSk7CisgICAgICAgIGF1dG8gYmFzaWNQb3J0QWxsb2NhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxj
cmlja2V0OjpCYXNpY1BvcnRBbGxvY2F0b3I+KCZuZXR3b3JrTWFuYWdlciwgJnBhY2tldFNvY2tl
dEZhY3RvcnkpOworICAgICAgICBpZiAoIW1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcykKKyAgICAgICAgICAgIGJhc2ljUG9ydEFsbG9jYXRvci0+c2V0X2ZsYWdzKGJhc2lj
UG9ydEFsbG9jYXRvci0+ZmxhZ3MoKSB8IGNyaWNrZXQ6OlBPUlRBTExPQ0FUT1JfRElTQUJMRV9B
REFQVEVSX0VOVU1FUkFUSU9OKTsKKyAgICAgICAgcG9ydEFsbG9jYXRvciA9IFdURk1vdmUoYmFz
aWNQb3J0QWxsb2NhdG9yKTsKICAgICB9KTsKIAogICAgIHJldHVybiBjcmVhdGVBY3R1YWxQZWVy
Q29ubmVjdGlvbihvYnNlcnZlciwgV1RGTW92ZShwb3J0QWxsb2NhdG9yKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGRjYTFjMjI3NWNmOWQ1NjAwN2U4Y2YxZDEyNTE4
ODY4NDE3ZjYxZjQuLjFmNTQ4MDllMDQ2ODI0ZjVlNDU5OWE1ZjJhNzU1NDlhN2VkOWNhNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02MCw4ICs2MCwxMyBAQCBwdWJs
aWM6CiAgICAgLy8gVXNlZCBmb3IgbW9jayB0ZXN0aW5nCiAgICAgc3RhdGljIHZvaWQgc2V0UGVl
ckNvbm5lY3Rpb25GYWN0b3J5KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0
aW9uRmFjdG9yeUludGVyZmFjZT4mJik7CiAKKyAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzKCkgeyBtX2VuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMgPSBmYWxzZTsgfQorICAgIHZvaWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0gdHJ1
ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6TmV0d29ya01hbmFnZXImLCBydGM6
OlBhY2tldFNvY2tldEZhY3RvcnkmKTsKKworICAgIGJvb2wgbV9lbmFibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiM2Q2NDgxY2ZlYzEzMGRiOTBhMmJk
OWNjNTAwM2UwMmZjYzg2NTBmLi45MTk5Y2NjZjUwNzNiNGM2YzY2YzM0N2M4MmVlMjRiYjdmMjc2
NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODIx
LDYgKzgyMSwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBhZ2UoKQogCiAg
ICAgbV9uZWVkc1RvRmluaXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCA9
IHRydWU7CiAgICAgZmluaXNoSW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCgp
OworCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgLy8gRklYTUU6IFRpZSBJQ0UgZmlsdGVyaW5n
IHdpdGggZ2V0VXNlck1lZGlhIHBlcm1pc3Npb24uCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCksIG1fcGFnZUlEKTsK
KyNpZiBVU0UoTElCV0VCUlRDKQorICAgIC8vIEZJWE1FOiBUdXJuIGRvd24gbmV0d29yayBpbnRl
cmZhY2UgZW51bWVyYXRpb24gYnkgZGVmYXVsdC4KKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKSwgbV9w
YWdlSUQpOworI2VuZGlmCisjZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmZpbmlzaElu
aXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2goKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkwMDRkYjBmYzBlYWEz
ZjNjZmZjN2VlYTllOGYwMjU1ZTZmYWNlMTguLmEwYzFmYTI2MDkyOTQxMzBhYmY4NmM1OTc2MjRk
ZDM4ZGQwODBiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTk5OTYsNyArOTk5Niw3IEBACiAJCQkJMzc2MDg4MUUxNTA0MTNF
OTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTBB
RkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA2QkU5NjlBMjFFNDNCOEE0MDA4Qjc0ODMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNkJFOTY5QTIxRTQzQjhBNDAwOEI3
NDgzIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJSVENTb2NrZXRNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJDIC8q
IFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RjA2MEUxMTY1NDMxODUwMEYzMjgxRCAvKiBOZXR3b3JrUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTAxODcsNyArMTAxODcsNyBAQAogCQkJCTM3OTQ4NDA4
MTUwQzRCOTcwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTM3NjA4ODIyMTUwNDE0RjcwMEZDODJDNyAvKiBXS1JlbmRlck9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMzM2NzYzQTEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NkJFOTY5OUUxRTQzQjQxRDAwOEI3NDgzIC8qIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNkJFOTY5OUUxRTQzQjQxRDAwOEI3NDgzIC8qIFdL
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3
RTM3NzgxOEU0QTRGRTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTBGQ0I0RTU1MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MUNEMUM2NjFCMzRCOURDMDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdp
bi5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggNzI0MGJiZDE1NGY4ZjMyMDBlNzgyNzE1ZDQ5MzgwNjMwYzkxNzI5Yy4u
MjFkMTA4ZTU5YTQ3ODAwNzhiNzI5MTFhZjEzZWIzNmI4Nzk1MTRkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lu
dFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemVIYXNoLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9MaWJXZWJSVENQcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VWaXNp
YmlsaXR5U3RhdGUuaD4KQEAgLTExOTMsNiArMTE5NCwxNSBAQCBwcml2YXRlOgogI2VuZGlmCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZygpIHsgbV9wYWdlLT5ydGNDb250cm9sbGVyKCkuZGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZygpOyB9CisgICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKSB7
IG1fcGFnZS0+cnRjQ29udHJvbGxlcigpLmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9
CisjaWYgVVNFKExJQldFQlJUQykKKyAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdv
cmtJbnRlcmZhY2VzKCkgeyBtX3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZGlzYWJsZUVudW1l
cmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsgfQorICAgIHZvaWQgZW5hYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmVu
YWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsgfQorI2VuZGlmCisjZW5kaWYK
KwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxl
Y3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxpbmdUb1dvcmQoY29uc3QgU3RyaW5nJiB3b3Jk
KTsKICNpZiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAyMzkzOWMxOTMwZTRmYzFmZjY2ZTc1
MWI2ZjhkMTMwZWNkZjJkMTA5Li5kZjdhYjA2MTRjMGYyMjJhZTgyYTQxOTllNzk2MTJlZWEyMzM3
NTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMzA2LDYgKzMwNiwxNSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
IExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykK
KyAgICBEaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKKyAgICBFbmFibGVJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmcoKQorI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJS
VEMpCisgICAgRW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpCisgICAgRGlz
YWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQorI2VuZGlmCisKICAgICAjIE5v
dGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301632</attachid>
            <date>2017-02-15 10:47:21 -0800</date>
            <delta_ts>2017-02-15 11:36:22 -0800</delta_ts>
            <desc>Fixing EFL</desc>
            <filename>bug-168348-20170215104446.patch</filename>
            <type>text/plain</type>
            <size>32228</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU4MGYxZWNhYjY3OGI1
MzVkMmEzYWE1NTE3M2U0MGI2OWY4ZTJjMy4uNmIyNmQyZDdiNzY1ZjhiZDNkOTIwOTY3YTg5ZDNj
YTIzOGY2ZjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAyLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJQ0UgY2Fu
ZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0
ZXN0cy4gU2hvdWxkIGJlIGNvdmVyZWQgaW4gdGhlIGZ1dHVyZSBieSBsYXlvdXQgdGVzdHMgd2l0
aCBkZWRpY2F0ZWQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3Ig
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYXQgUlRDUGVlckNvbm5lY3Rpb24gbGV2ZWwuCisgICAg
ICAgIElmIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGlzIG9uIChieSBkZWZhdWx0KSwgaG9zdCBj
YW5kaWRhdGVzIGFyZSBzdG9yZWQgYW5kIG5vdCBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICBS
ZWZsZXhpdmUgY2FuZGlkYXRlcyBhcmUgcHVyZ2VkIGZyb20gcmFkZHIgaW5mb3JtYXRpb24gdG8g
bm90IGxlYWsgdGhlIGhvc3QgSVAgYWRkcmVzcy4KKworICAgICAgICBTdG9yZWQgY2FuZGlkYXRl
cyBtYXkgYmUgYXN2ZXJ0aXNlZCB0byB0aGUgSlMgbGF5ZXIgaWYgUlRDQ29udHJvbGxlciBpcyBu
b3RpZmllZCBvZiBhIGNoYW5nZSBvZiBmaWx0ZXJpbmcgcG9saWN5LgorICAgICAgICBUbyBpbXBs
ZW1lbnQgdGhhdCwgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGlzIHN0b3JpbmcgYWxsIGZpbHRlcmVk
IG91dCBjYW5kaWRhdGVzIGFuZCBSVENQZWVyQ29ubmVjdGlvbiByZWdpc3RlcgorICAgICAgICB0
aGVtc2VsdmVzIHRvIFJUQ0NvbnRyb2xsZXIgdG8gZ2V0IG5vdGlmaWNhdGlvbnMgb2YgZmlsdGVy
aW5nIHBvbGljeSBjaGFuZ2VzLgorCisgICAgICAgIE1ha2luZyBSVENQZWVyQ29ubmVjdGlvbiB1
c2Ugc2V0UGVuZGluZ0FjdGl2aXR5IHRocm91Z2hvdXQgaXRzIGxpZmV0aW1lLgorICAgICAgICBU
aGlzIGVuc3VyZXMgaXQgZG9lcyBub3QgZ2V0IGNvbGxlY3RlZCB1bnRpbCB0aGUgcGFnZSBpcyBv
ZmYgb3IgY2xvc2UoKSBpcyBjYWxsZWQgb24gdGhlIG9iamVjdC4KKworICAgICAgICBBZGRpbmcg
c3VwcG9ydCBmb3IgZW51bWVyYXRpbmcgb3Igbm90IGFsbCBpbnRlcmZhY2VzIGF0IGxpYndlYnJ0
YyBsZXZlbC4KKyAgICAgICAgVGhpcyBjaG9pY2UgaXMgZG9uZSBhdCBjcmVhdGlvbiBvZiB0aGUg
cGVlciBjb25uZWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjplbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZpbHRlcklDRUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6Om5ld0lDRUNhbmRpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJU
Q0NvbnRyb2xsZXI6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjph
ZGQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDQ29udHJvbGxlcjo6ZGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjplbmFibGVJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29u
dHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpydGNDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpyZWdpc3RlclRvQ29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlckZyb21Db250cm9sbGVy
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbklj
ZUNhbmRpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cnRjQ29udHJvbGxlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTctMDItMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBFeHBvc2UgU3ltYm9sLnRvUHJpbWl0aXZlIC8gdmFsdWVPZiBvbiBMb2NhdGlvbiBpbnN0
YW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBhMzgwMTk2YmQ4NTQ0OWRkMzYzMmM4YThkMTdiODhlNWViN2Nj
OTJiLi5lYzBhMDZkMjQ5YjNmZjc3NjFjOWQyNzZhYTM1NWRiNjNhZjVjN2EyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzAgQEAKKzIwMTctMDItMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIFtXZWJSVENdIElDRSBjYW5kaWRhdGVzIHNob3VsZCBiZSBmaWx0
ZXJlZCBhY2NvcmRpbmcgYSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODM0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGluZyB0aGUgcG9zc2liaWxpdHkgZm9yIHRoZSBVSSBwcm9jZXNz
IHRvIGNvbnRyb2wgdGhlIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGFuZCB3aGV0aGVyIGxpYndl
YnJ0YyBjYW4KKyAgICAgICAgZW51bWVyYXRlIGFsbCBpbnRlcmZhY2VzIG9yIG5vdC4KKworICAg
ICAgICBEaXNhYmxpbmcgSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgZm9yIHRoZSBtb21lbnQuCisg
ICAgICAgIEVuYWJsaW5nIHRvIGVudW1lcmF0ZSBhbGwgaW50ZXJmYWNlcyBmb3IgdGhlIG1vbWVu
dC4KKworICAgICAgICBJbiB0aGUgZnV0dXJlLCBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBzaG91
bGQgYmUgdGllZCB0byBnZXRVc2VyTWVkaWEuCisgICAgICAgIEludGVyZmFjZSBlbnVtZXJhdGlv
biBzaG91bGQgYmUgZGlzYWJsZWQgd2l0aCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLgorICAg
ICAgICBXZSBzaG91bGQgZG8gdGhhdCBvbmNlIHdlIGhhdmUgc3VmZmljaWVudCB0ZXN0aW5nIGlu
IHZhcmlvdXMgbmV0d29yayBpbmZyYXN0cnVjdHVyZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppbml0aWFs
aXplV2ViUGFnZSk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjplbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
OgorCiAyMDE3LTAyLTE1ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgV2ViSU9TRXZlbnQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKaW5kZXggYmEyZDQzZmQyNzIxOGM3MDdlN2M0YzU0ZjRmM2VkZDNmMjMwYzFiYy4uM2FmMjFh
NmM0ZWIwY2NiNjBiOTc5YWI4OTlhMmIzMzhhNTYzZmQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZS5oIgogI2lu
Y2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMjY5LDYgKzI3MCw2MyBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+JiYgY2FuZAog
ICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZUV2ZW50OjpjcmVh
dGUoZmFsc2UsIGZhbHNlLCBXVEZNb3ZlKGNhbmRpZGF0ZSkpKTsKIH0KIAordm9pZCBQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9z
aG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gdHJ1ZTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQoreworICAgIG1fc2hvdWxk
RmlsdGVySUNFQ2FuZGlkYXRlcyA9IGZhbHNlOworICAgIGZvciAoYXV0byYgcGVuZGluZ0lDRUNh
bmRpZGF0ZSA6IG1fcGVuZGluZ0lDRUNhbmRpZGF0ZXMpCisgICAgICAgIGZpcmVJQ0VDYW5kaWRh
dGVFdmVudChSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShXVEZNb3ZlKHBlbmRpbmdJQ0VDYW5kaWRh
dGUuc2RwKSwgV1RGTW92ZShwZW5kaW5nSUNFQ2FuZGlkYXRlLm1pZCksIDApKTsKKyAgICBtX3Bl
bmRpbmdJQ0VDYW5kaWRhdGVzLmNsZWFyKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIGZp
bHRlcklDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHApCit7CisgICAgQVNTRVJUKCFzZHAuY29udGFp
bnMoIiBob3N0ICIpKTsKKworICAgIGlmICghc2RwLmNvbnRhaW5zKCIgcmFkZHIgIikpCisgICAg
ICAgIHJldHVybiBXVEZNb3ZlKHNkcCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBpdGVtczsKKyAg
ICBzZHAuc3BsaXQoJyAnLCBpdGVtcyk7CisKKyAgICBib29sIHNraXAgPSBmYWxzZTsKKyAgICBi
b29sIGlzRmlyc3QgPSB0cnVlOworICAgIFN0cmluZ0J1aWxkZXIgZmlsdGVyZWRTRFA7CisgICAg
Zm9yIChhdXRvJiBpdGVtIDogaXRlbXMpIHsKKyAgICAgICAgaWYgKHNraXApIHsKKyAgICAgICAg
ICAgIHNraXAgPSBmYWxzZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAg
ICAgIGlmIChpdGVtID09ICJyYWRkciIgfHwgaXRlbSA9PSAicnBvcnQiKSB7CisgICAgICAgICAg
ICBza2lwID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAg
IGlmIChpc0ZpcnN0KQorICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBmaWx0ZXJlZFNEUC5hcHBlbmQoIiAiKTsKKyAgICAgICAgZmlsdGVyZWRT
RFAuYXBwZW5kKGl0ZW0pOworICAgIH0KKyAgICByZXR1cm4gZmlsdGVyZWRTRFAudG9TdHJpbmco
KTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om5ld0lDRUNhbmRpZGF0ZShTdHJp
bmcmJiBzZHAsIFN0cmluZyYmIG1pZCkKK3sKKyAgICBpZiAoIW1fc2hvdWxkRmlsdGVySUNFQ2Fu
ZGlkYXRlcykgeworICAgICAgICBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUlRDSWNlQ2FuZGlkYXRl
OjpjcmVhdGUoV1RGTW92ZShzZHApLCBXVEZNb3ZlKG1pZCksIDApKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoc2RwLmNvbnRhaW5zKCIgaG9zdCAiKSkgeworICAgICAgICBtX3Bl
bmRpbmdJQ0VDYW5kaWRhdGVzLmFwcGVuZChQZW5kaW5nSUNFQ2FuZGlkYXRlIHsgV1RGTW92ZShz
ZHApLCBXVEZNb3ZlKG1pZCl9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBmaXJlSUNF
Q2FuZGlkYXRlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoZmlsdGVySUNFQ2FuZGlkYXRl
KFdURk1vdmUoc2RwKSksIFdURk1vdmUobWlkKSwgMCkpOworfQorCiB2b2lkIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCA1ZGY3ZGI0NTQ5OWM2OTUyNDFk
NGExZTJiODgwZDczMzQ3YjRkY2FkLi5hMjFiNWQ5ZDNiY2MyYmEwNGIzZmRhMTM1MGYwMzZhOGQ3
NWRjOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEwMSw2ICsxMDEsMTAgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYg
YWN0aW9uKSA9IDA7CiAKKyAgICB2b2lkIG5ld0lDRUNhbmRpZGF0ZShTdHJpbmcmJiBzZHAsIFN0
cmluZyYmIG1pZCk7CisgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cisg
ICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKwogcHJvdGVjdGVkOgogICAg
IHZvaWQgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+JiYpOwog
ICAgIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoKTsKQEAgLTEzNyw3ICsxNDEsMTQgQEAg
cHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFBlZXJDb25uZWN0aW9uOjpTZXNzaW9uRGVzY3Jp
cHRpb25Qcm9taXNlPiBtX29mZmVyQW5zd2VyUHJvbWlzZTsKICAgICBzdGQ6Om9wdGlvbmFsPERP
TVByb21pc2U8dm9pZD4+IG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlOwogICAgIHN0ZDo6b3B0aW9u
YWw8RE9NUHJvbWlzZTx2b2lkPj4gbV9hZGRJY2VDYW5kaWRhdGVQcm9taXNlOwotICAgIAorCisg
ICAgYm9vbCBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgeyB0cnVlIH07CisgICAgc3RydWN0
IFBlbmRpbmdJQ0VDYW5kaWRhdGUgeworICAgICAgICBTdHJpbmcgc2RwOworICAgICAgICBTdHJp
bmcgbWlkOworICAgIH07CisgICAgVmVjdG9yPFBlbmRpbmdJQ0VDYW5kaWRhdGU+IG1fcGVuZGlu
Z0lDRUNhbmRpZGF0ZXM7CisKICAgICBib29sIG1fbmVnb3RpYXRpb25OZWVkZWQgeyBmYWxzZSB9
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1NTVjMmFkZDJjN2FlYzM5MGFlNmI2NWIwNGVi
YmJmMjVmODhiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5oIgorCisjaWYg
RU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6cmVtb3ZlKFJUQ1BlZXJDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIG1fcGVlckNvbm5lY3Rpb25zLnJlbW92ZUZpcnN0
TWF0Y2hpbmcoWyZjb25uZWN0aW9uXShhdXRvIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuICZjb25u
ZWN0aW9uID09ICZpdGVtLmdldCgpOworICAgIH0pOworfQorCit2b2lkIFJUQ0NvbnRyb2xsZXI6
OmFkZChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBtX3BlZXJDb25uZWN0
aW9ucy5hcHBlbmQoY29ubmVjdGlvbik7CisgICAgaWYgKCFtX3Nob3VsZEZpbHRlcklDRUNhbmRp
ZGF0ZXMpCisgICAgICAgIGNvbm5lY3Rpb24uZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygp
OworfQorCit2b2lkIFJUQ0NvbnRyb2xsZXI6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KQoreworICAgIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyA9IGZhbHNlOworICAgIGZvciAo
UlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24gOiBtX3BlZXJDb25uZWN0aW9ucykKKyAgICAg
ICAgY29ubmVjdGlvbi5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cit9CisKK3ZvaWQg
UlRDQ29udHJvbGxlcjo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKK3sKKyAgICBtX3No
b3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgPSB0cnVlOworICAgIGZvciAoUlRDUGVlckNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24gOiBtX3BlZXJDb25uZWN0aW9ucykKKyAgICAgICAgY29ubmVjdGlvbi5l
bmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDczOWE3ODY4YTgzYTdlZGUwNWQ5YzZmNTc5NWUz
ZTdmMmM5Mzg0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CisKK2NsYXNzIFJUQ0NvbnRyb2xsZXIg
eworcHVibGljOgorICAgIFJUQ0NvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICB2b2lkIGFkZChSVENQZWVyQ29ubmVjdGlvbiYpOworICAgIHZvaWQgcmVt
b3ZlKFJUQ1BlZXJDb25uZWN0aW9uJik7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2Fi
bGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworCitwcml2YXRlOgorICAgIFZlY3RvcjxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFJUQ1BlZXJDb25uZWN0aW9uPj4gbV9wZWVyQ29ubmVjdGlvbnM7Cisg
ICAgYm9vbCBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgeyB0cnVlIH07CisjZW5kaWYKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOGU0ZGNiMTEz
M2JiZGZjNTEyMDM4ODE0MDViYzQ2NWFkNDU4ZWE2YS4uMWY5ZmI0OGY5N2MxZWU1OGVlZDViZjYx
ZDI0NTljYTI3YWMyYWJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQyLDcgKzQyLDkgQEAKICNp
bmNsdWRlICJNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJSVENDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRl
LmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKQEAgLTYyLDcgKzY0LDEyIEBA
IFJlZjxSVENQZWVyQ29ubmVjdGlvbj4gUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0CiB7CiAgICAgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBw
ZWVyQ29ubmVjdGlvbiA9IGFkb3B0UmVmKCpuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29udGV4dCkp
OwogICAgIHBlZXJDb25uZWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKLQorICAgIC8vIFJUQ1Bl
ZXJDb25uZWN0aW9uIG1heSBzZW5kIGV2ZW50cyBhdCBhYm91dCBhbnkgdGltZSBkdXJpbmcgaXRz
IGxpZmV0aW1lLgorICAgIC8vIExldCdzIG1ha2UgaXQgdW5jb2xsZWN0YWJsZSB1bnRpbCB0aGUg
cGMgaXMgY2xvc2VkIGJ5IEpTIG9yIHRoZSBwYWdlIGlzIHN0b3BwaW5nIGl0LgorICAgIGlmIChw
ZWVyQ29ubmVjdGlvbi0+bV9zaWduYWxpbmdTdGF0ZSAhPSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2Vk
KSB7CisgICAgICAgIHBlZXJDb25uZWN0aW9uLT5zZXRQZW5kaW5nQWN0aXZpdHkocGVlckNvbm5l
Y3Rpb24ucHRyKCkpOworICAgICAgICBwZWVyQ29ubmVjdGlvbi0+cmVnaXN0ZXJUb0NvbnRyb2xs
ZXIoKTsKKyAgICB9CiAgICAgcmV0dXJuIHBlZXJDb25uZWN0aW9uOwogfQogCkBAIC00MTIsNiAr
NDE5LDkgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoKQogCiAgICAgZm9yIChSVENS
dHBTZW5kZXImIHNlbmRlciA6IG1fdHJhbnNjZWl2ZXJTZXQtPnNlbmRlcnMoKSkKICAgICAgICAg
c2VuZGVyLnN0b3AoKTsKKworICAgIHVucmVnaXN0ZXJGcm9tQ29udHJvbGxlcigpOworICAgIHVu
c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpl
bXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikKQEAgLTQyNCw2ICs0MzQs
MjQgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiAgICAgY2xvc2UoKTsKIH0KIAor
UlRDQ29udHJvbGxlciYgUlRDUGVlckNvbm5lY3Rpb246OnJ0Y0NvbnRyb2xsZXIoKQoreworICAg
IEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIEFTU0VSVChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CisgICAgYXV0byogcGFnZSA9IHN0YXRpY19j
YXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+cGFnZSgpOworICAgIHJl
dHVybiBwYWdlLT5ydGNDb250cm9sbGVyKCk7Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OnJlZ2lzdGVyVG9Db250cm9sbGVyKCkKK3sKKyAgICBydGNDb250cm9sbGVyKCkuYWRkKCp0aGlz
KTsKK30KKwordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlckZyb21Db250cm9sbGVy
KCkKK3sKKyAgICBydGNDb250cm9sbGVyKCkucmVtb3ZlKCp0aGlzKTsKK30KKwogY29uc3QgY2hh
ciogUlRDUGVlckNvbm5lY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogewogICAg
IHJldHVybiAiUlRDUGVlckNvbm5lY3Rpb24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IGExMGFhZWI0YzQw
YTdjNGFiY2I0ZmFjNmQ2YTU5MGM0OWViNDNmOWEuLjJjMDU2MmUzODI0ZTA1NGI1YmE4NmQ5MTcw
NTY5MDE1OWUxYmZmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOworY2xhc3MgUlRDQ29udHJvbGxlcjsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZTsK
IGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uRXJyb3JDYWxsYmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbjsKQEAgLTEzNiwxMSArMTM3LDE4IEBAIHB1YmxpYzoKICAgICBQZWVyQ29ubmVj
dGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGUgaW50ZXJuYWxJY2VHYXRoZXJpbmdTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWNlR2F0aGVyaW5nU3RhdGU7IH0KICAgICBQZWVyQ29ubmVjdGlv
blN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlIGludGVybmFsSWNlQ29ubmVjdGlvblN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9pY2VDb25uZWN0aW9uU3RhdGU7IH0KIAorICAgIHZvaWQgZGlzYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIHsgbV9iYWNrZW5kLT5kaXNhYmxlSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nKCk7IH0KKyAgICB2b2lkIGVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIHsg
bV9iYWNrZW5kLT5lbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQorCiBwcml2YXRlOgog
ICAgIFJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIHZv
aWQgY29tcGxldGVBZGRUcmFuc2NlaXZlcihSVENSdHBUcmFuc2NlaXZlciYsIGNvbnN0IFJ0cFRy
YW5zY2VpdmVySW5pdCYpOwogCisgICAgUlRDQ29udHJvbGxlciYgcnRjQ29udHJvbGxlcigpOwor
ICAgIHZvaWQgcmVnaXN0ZXJUb0NvbnRyb2xsZXIoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJGcm9t
Q29udHJvbGxlcigpOworCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCiAgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
TWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTQ2YzMxYzRlZDBiMWRkMzQ5OTZmODVmMjI2Mjg3NjQ4
NDUxMjhjZS4uOGUyZjc2YjNmMzE4NmZhZDk5ODMxOGQyYjIxOTgxODFmZDNlNzdlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hh
bm5lbC5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsRXZlbnQuaCIKLSNpbmNsdWRlICJSVENJ
Y2VDYW5kaWRhdGUuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlJUQ1RyYWNrRXZlbnQuaCIKQEAg
LTQ0Niw3ICs0NDUsNyBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uSWNlQ2FuZGlk
YXRlKGNvbnN0IHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlCiAgICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtaWQgPSBXVEZNb3ZlKGNhbmRp
ZGF0ZU1pZCksIHNkcCA9IFdURk1vdmUoY2FuZGlkYXRlU0RQKV0gewogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHBy
b3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmZpcmVJQ0VDYW5kaWRhdGVFdmVu
dChSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShTdHJpbmcoc2RwKSwgU3RyaW5nKG1pZCksIDApKTsK
KyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3SUNFQ2Fu
ZGlkYXRlKFN0cmluZyhzZHApLCBTdHJpbmcobWlkKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4
IGM4YTM4MmM1YmExYzAyMjczODc3MTJkZWJkMjcwNTdjOTVkZTM1ZjUuLjQ5YWFhMDIxYWYxOGE5
M2ZiZDAyNmQ1OTIzMmJlNTI1OWE4N2UwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtOTMsNiArOTMsOCBAQCBzdGF0
aWMgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uRnJvbU1lZGlhRQogCiB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6c2V0Q29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3Vy
YXRpb24pCiB7CisgICAgaWYgKGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5ID09IFBl
ZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VUcmFuc3BvcnRQb2xpY3k6OlJlbGF5KQorICAgICAgICBk
aXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAgICAgbV9lbmRwb2ludC0+YmFja2VuZCgp
LlNldENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbkZyb21NZWRpYUVuZHBvaW50Q29uZmlndXJh
dGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNDViZDAxOTEwNDQwMjlm
NjdiOTM5NTRlNjc3NWE5MWIwYTIyZGJkLi5lNTg2NWZkZTMzZjhiNzgzNjlkNDE0N2M3NmQxNGFl
YzZmZTYyMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNTc3LDYgKzE1NzcsOCBAQAogCQk0MTdEQTcxRTEzNzM1REZBMDA3
QzU3RkIgLyogSlNJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxN0RBNzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oICov
OyB9OwogCQk0MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODE1QzFD
MTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwICovOyB9OwogCQk0MTgx
NUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgxNUMxRDEzODMxOTgzMDA1N0FB
QTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
ODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4MjA1NDkxRTUzRUFCMDAwRDYy
MjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE4MjA1NDgxRTUzRUFBRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIu
Y3BwICovOyB9OwogCQk0MTg4NUI5MzExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1Qjkx
MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAv
KiBGb3JtU3VibWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3Bw
ICovOyB9OwogCQk0MThBMDZEMDEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZDRTEz
M0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi87IH07CkBAIC04ODIzLDYgKzg4
MjUsOCBAQAogCQk0MTgxNUMxQzEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUZXN0U3Vw
cG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODE1QzFEMTM4MzE5ODMw
MDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0Lnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTgyMDU0NTFFNTNDOENEMDBE
NjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxODIwNTQ4
MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTg4NUI5MTExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybVN1Ym1pc3Npb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTIxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1T
dWJtaXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1T
dWJtaXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QTA2Q0UxMzND
MDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFdmVudERpc3BhdGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1MzQ2LDYgKzE1MzUwLDggQEAKIAkJCQkwNzIyMUI2NjE3Q0VDMzI3MDA4NDhFNTEgLyog
UlRDRGF0YUNoYW5uZWxFdmVudC5jcHAgKi8sCiAJCQkJMDcyMjFCNjcxN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI2ODE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5pZGwgKi8sCisJCQkJNDE4MjA1NDUxRTUzQzhDRDAw
RDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLywKKwkJCQk0MTgyMDU0ODFFNTNFQUFEMDBENjIy
MDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJMDcyMjFCNjkxN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ0RUTUZTZW5kZXIuY3BwICovLAogCQkJCTA3MjIxQjZBMTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEVE1GU2VuZGVyLmggKi8sCiAJCQkJMDcyMjFCNkIxN0NFQzMyNzAwODQ4RTUxIC8qIFJU
Q0RUTUZTZW5kZXIuaWRsICovLApAQCAtMjY1MjQsNiArMjY1MzAsNyBAQAogCQkJCUFENzI2RkVG
MTZEQTExRjUwMDNBNEU2RCAvKiBKU0NTU1J1bGVDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4RDA1RkE4MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNDIwMTFCNzBBMDAzMTMzMDA4MzAzRjkgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTgyMDU0NzFFNTNFOThDMDBENjIyMDcgLyogUlRDQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ3MjZGRUQxNkRBMTE3MTAwM0E0RTZEIC8q
IEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NkMy
MDcwQzBERENBMTAwMjBDRkMzIC8qIEpTQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0M1QkUwMTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTMwNDUwLDYgKzMwNDU3LDcgQEAKIAkJCQlCQzRFREVGNDBDMDhGM0ZCMDA3RURE
NDkgLyogSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QUUyQUExRTBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MQXJlYUVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M5REJGRUQxQTlDNDlCMTAwMEQ2QjI1IC8qIEpTSFRNTEF0dGFjaG1lbnRF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxODIwNTQ5MUU1M0VBQjAwMEQ2MjIwNyAv
KiBSVENDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxNDM3MENENjg5QzQw
MEZBREE3NSAvKiBKU0hUTUxBdWRpb0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgw
RTdCMTIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEJhc2VFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBRTJBQTIyMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxCb2R5RWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcAppbmRleCBhODczYzE3NGQyN2VjZGMxZjIzMjY5YzM2YzhhN2NiMzI5ZmY3ZWMw
Li42ZWIzZjgxZTlmN2M0YWZlZDc1NDZhZjI0MGQyODI4ZmMwOTg3ZDhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQb2x5Z29uU2hhcGUu
aCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDRl
MThmZGJkMjU3N2NiNWUzYWMyODU4M2E1ZjBhOTdjN2E1YTdjMDYuLjQwZjFjMDMxMGE5ZDk4YWRj
MzkxMWM3ZDZmN2NjNzU3YTA1ODg1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBhZ2luYXRpb24u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlNlc3Npb25JRC5oIgpAQCAtMjIzLDYgKzIyNCw3IEBAIHB1YmxpYzoKICAgICBQb2ludGVy
TG9ja0NvbnRyb2xsZXImIHBvaW50ZXJMb2NrQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuICpt
X3BvaW50ZXJMb2NrQ29udHJvbGxlcjsgfQogI2VuZGlmCiAgICAgTGliV2ViUlRDUHJvdmlkZXIm
IGxpYldlYlJUQ1Byb3ZpZGVyKCkgeyByZXR1cm4gbV9saWJXZWJSVENQcm92aWRlci5nZXQoKTsg
fQorICAgIFJUQ0NvbnRyb2xsZXImIHJ0Y0NvbnRyb2xsZXIoKSB7IHJldHVybiBtX3J0Y0NvbnRy
b2xsZXI7IH0KIAogICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KiB2YWxpZGF0aW9uTWVzc2Fn
ZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuZ2V0KCk7
IH0KICAgICB2b2lkIHVwZGF0ZVZhbGlkYXRpb25CdWJibGVTdGF0ZUlmTmVlZGVkKCk7CkBAIC02
NDAsNiArNjQyLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRy
YWNrZXI+IG1fd2ViR0xTdGF0ZVRyYWNrZXI7CiAKICAgICBVbmlxdWVSZWY8TGliV2ViUlRDUHJv
dmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CisgICAgUlRDQ29udHJvbGxlciBtX3J0Y0NvbnRy
b2xsZXI7CiAKICAgICBpbnQgbV9uZXN0ZWRSdW5Mb29wQ291bnQgeyAwIH07CiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fdW5uZXN0Q2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmNwcAppbmRleCAwMDk1YzUxN2YwZjdlMGM0M2ViODY2Mjc5MWEwMTM1MzEyZWU4
NTg2Li40MjhmODQ5Yzc1ODE1MmMyMGM0NGY5ZTk4NmFhZDdlMzJmMzZmN2JkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTE0OSw3ICsxNDksMTAgQEAgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1By
b3ZpZGVyOjpjcmVhdGVQZWUKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxjcmlja2V0OjpCYXNpY1Bv
cnRBbGxvY2F0b3I+IHBvcnRBbGxvY2F0b3I7CiAgICAgc3RhdGljRmFjdG9yeUFuZFRocmVhZHMo
KS5zaWduYWxpbmdUaHJlYWQtPkludm9rZTx2b2lkPihSVENfRlJPTV9IRVJFLCBbJl0oKSB7Ci0g
ICAgICAgIHBvcnRBbGxvY2F0b3IucmVzZXQobmV3IGNyaWNrZXQ6OkJhc2ljUG9ydEFsbG9jYXRv
cigmbmV0d29ya01hbmFnZXIsICZwYWNrZXRTb2NrZXRGYWN0b3J5KSk7CisgICAgICAgIGF1dG8g
YmFzaWNQb3J0QWxsb2NhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxjcmlja2V0OjpCYXNpY1BvcnRB
bGxvY2F0b3I+KCZuZXR3b3JrTWFuYWdlciwgJnBhY2tldFNvY2tldEZhY3RvcnkpOworICAgICAg
ICBpZiAoIW1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcykKKyAgICAgICAg
ICAgIGJhc2ljUG9ydEFsbG9jYXRvci0+c2V0X2ZsYWdzKGJhc2ljUG9ydEFsbG9jYXRvci0+Zmxh
Z3MoKSB8IGNyaWNrZXQ6OlBPUlRBTExPQ0FUT1JfRElTQUJMRV9BREFQVEVSX0VOVU1FUkFUSU9O
KTsKKyAgICAgICAgcG9ydEFsbG9jYXRvciA9IFdURk1vdmUoYmFzaWNQb3J0QWxsb2NhdG9yKTsK
ICAgICB9KTsKIAogICAgIHJldHVybiBjcmVhdGVBY3R1YWxQZWVyQ29ubmVjdGlvbihvYnNlcnZl
ciwgV1RGTW92ZShwb3J0QWxsb2NhdG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oCmluZGV4IGRjYTFjMjI3NWNmOWQ1NjAwN2U4Y2YxZDEyNTE4ODY4NDE3ZjYxZjQuLjFmNTQ4
MDllMDQ2ODI0ZjVlNDU5OWE1ZjJhNzU1NDlhN2VkOWNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oCkBAIC02MCw4ICs2MCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gVXNlZCBm
b3IgbW9jayB0ZXN0aW5nCiAgICAgc3RhdGljIHZvaWQgc2V0UGVlckNvbm5lY3Rpb25GYWN0b3J5
KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFj
ZT4mJik7CiAKKyAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
KCkgeyBtX2VuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgPSBmYWxzZTsgfQor
ICAgIHZvaWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9lbmFi
bGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgV0VCQ09SRV9FWFBPUlQgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rp
b25PYnNlcnZlciYsIHJ0Yzo6TmV0d29ya01hbmFnZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3Rv
cnkmKTsKKworICAgIGJvb2wgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
IHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBiM2Q2NDgxY2ZlYzEzMGRiOTBhMmJkOWNjNTAwM2UwMmZjYzg2NTBm
Li45MTk5Y2NjZjUwNzNiNGM2YzY2YzM0N2M4MmVlMjRiYjdmMjc2NDI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODIxLDYgKzgyMSwxNSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBhZ2UoKQogCiAgICAgbV9uZWVkc1RvRmluaXNo
SW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCA9IHRydWU7CiAgICAgZmluaXNo
SW5pdGlhbGl6aW5nV2ViUGFnZUFmdGVyUHJvY2Vzc0xhdW5jaCgpOworCisjaWYgRU5BQkxFKFdF
Ql9SVEMpCisgICAgLy8gRklYTUU6IFRpZSBJQ0UgZmlsdGVyaW5nIHdpdGggZ2V0VXNlck1lZGlh
IHBlcm1pc3Npb24uCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaXNh
YmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCksIG1fcGFnZUlEKTsKKyNpZiBVU0UoTElCV0VCUlRD
KQorICAgIC8vIEZJWE1FOiBUdXJuIGRvd24gbmV0d29yayBpbnRlcmZhY2UgZW51bWVyYXRpb24g
YnkgZGVmYXVsdC4KKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkVuYWJs
ZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKSwgbV9wYWdlSUQpOworI2VuZGlmCisj
ZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VB
ZnRlclByb2Nlc3NMYXVuY2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkwMDRkYjBmYzBlYWEzZjNjZmZjN2VlYTllOGYwMjU1
ZTZmYWNlMTguLmEwYzFmYTI2MDkyOTQxMzBhYmY4NmM1OTc2MjRkZDM4ZGQwODBiNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTk5OTYsNyArOTk5Niw3IEBACiAJCQkJMzc2MDg4MUUxNTA0MTNFOTAwRkM4MkM3IC8qIFdlYlJl
bmRlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEw
NUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTEx
NjU0MzE4NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2QkU5NjlBMjFF
NDNCOEE0MDA4Qjc0ODMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNkJFOTY5QTIxRTQzQjhBNDAwOEI3NDgzIC8qIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1
NDMxODUwMEYzMjgxQyAvKiBXZWJSVENTb2NrZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29sdmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYz
MjgxRCAvKiBOZXR3b3JrUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTAxODcsNyArMTAxODcsNyBAQAogCQkJCTM3OTQ4NDA4MTUwQzRCOTcwMEU1MkNFOSAv
KiBXS1JlbmRlckxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3NjA4ODIyMTUwNDE0Rjcw
MEZDODJDNyAvKiBXS1JlbmRlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzYz
QTEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNkJFOTY5OUUxRTQzQjQxRDAw
OEI3NDgzIC8qIFdLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNkJFOTY5OUUxRTQzQjQxRDAwOEI3NDgzIC8qIFdLUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3RTM3NzgxOEU0QTRGRTAwM0Qw
RkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTU1MThC
QkUwNDQwMDBGQ0ZDOSAvKiBXS1Njcm9sbFZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUNE
MUM2NjFCMzRCOURDMDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpbi5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzI0
MGJiZDE1NGY4ZjMyMDBlNzgyNzE1ZDQ5MzgwNjMwYzkxNzI5Yy4uMjFkMTA4ZTU5YTQ3ODAwNzhi
NzI5MTFhZjEzZWIzNmI4Nzk1MTRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IeXN0
ZXJlc2lzQWN0aXZpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ludFNpemVIYXNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92
aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZU92ZXJsYXkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaD4KQEAg
LTExOTMsNiArMTE5NCwxNSBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShXRUJfUlRDKQorICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIHsgbV9w
YWdlLT5ydGNDb250cm9sbGVyKCkuZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9Cisg
ICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKSB7IG1fcGFnZS0+cnRjQ29udHJv
bGxlcigpLmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CisjaWYgVVNFKExJQldFQlJU
QykKKyAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkgeyBt
X3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0lu
dGVyZmFjZXMoKTsgfQorICAgIHZvaWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJm
YWNlcygpIHsgbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmVuYWJsZUVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXMoKTsgfQorI2VuZGlmCisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5j
ZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQg
Y2hhbmdlU3BlbGxpbmdUb1dvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgppbmRleCAyMzkzOWMxOTMwZTRmYzFmZjY2ZTc1MWI2ZjhkMTMwZWNkZjJkMTA5
Li5kZjdhYjA2MTRjMGYyMjJhZTgyYTQxOTllNzk2MTJlZWEyMzM3NTA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtMzA2LDYgKzMwNiwxNSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsK
ICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBEaXNhYmxlSUNFQ2Fu
ZGlkYXRlRmlsdGVyaW5nKCkKKyAgICBFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQorI2Vu
ZGlmCisjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJSVEMpCisgICAgRW5hYmxlRW51
bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpCisgICAgRGlzYWJsZUVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXMoKQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERp
ZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301638</attachid>
            <date>2017-02-15 11:36:31 -0800</date>
            <delta_ts>2017-02-17 17:05:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168348-20170215113356.patch</filename>
            <type>text/plain</type>
            <size>32250</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU4MGYxZWNhYjY3OGI1
MzVkMmEzYWE1NTE3M2U0MGI2OWY4ZTJjMy4uYzJhY2NjYTJkNTNiZWQwZWNhNWUwYjQ3Mjk1MTdm
MzQyZTY2YzhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAyLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJQ0UgY2Fu
ZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0
ZXN0cy4gU2hvdWxkIGJlIGNvdmVyZWQgaW4gdGhlIGZ1dHVyZSBieSBsYXlvdXQgdGVzdHMgd2l0
aCBkZWRpY2F0ZWQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3Ig
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYXQgUlRDUGVlckNvbm5lY3Rpb24gbGV2ZWwuCisgICAg
ICAgIElmIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGlzIG9uIChieSBkZWZhdWx0KSwgaG9zdCBj
YW5kaWRhdGVzIGFyZSBzdG9yZWQgYW5kIG5vdCBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICBS
ZWZsZXhpdmUgY2FuZGlkYXRlcyBhcmUgcHVyZ2VkIGZyb20gcmFkZHIgaW5mb3JtYXRpb24gdG8g
bm90IGxlYWsgdGhlIGhvc3QgSVAgYWRkcmVzcy4KKworICAgICAgICBTdG9yZWQgY2FuZGlkYXRl
cyBtYXkgYmUgYWR2ZXJ0aXNlZCB0byB0aGUgSlMgbGF5ZXIgaWYgUlRDQ29udHJvbGxlciBpcyBu
b3RpZmllZCBvZiBhIGNoYW5nZSBvZiBmaWx0ZXJpbmcgcG9saWN5LgorICAgICAgICBUbyBpbXBs
ZW1lbnQgdGhhdCwgUGVlckNvbm5lY3Rpb25CYWNrZW5kIHN0b3JlcyBhbGwgZmlsdGVyZWQgb3V0
IGNhbmRpZGF0ZXMgYW5kIFJUQ1BlZXJDb25uZWN0aW9uIHJlZ2lzdGVyCisgICAgICAgIHRoZW1z
ZWx2ZXMgdG8gUlRDQ29udHJvbGxlciB0byBnZXQgbm90aWZpY2F0aW9ucyBvZiBmaWx0ZXJpbmcg
cG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgTWFraW5nIFJUQ1BlZXJDb25uZWN0aW9uIHVzZSBz
ZXRQZW5kaW5nQWN0aXZpdHkgdGhyb3VnaG91dCBpdHMgbGlmZXRpbWUuCisgICAgICAgIFRoaXMg
ZW5zdXJlcyBpdCBkb2VzIG5vdCBnZXQgY29sbGVjdGVkIHVudGlsIHRoZSBwYWdlIGlzIG9mZiBv
ciBjbG9zZSgpIGlzIGNhbGxlZCBvbiB0aGUgb2JqZWN0LgorCisgICAgICAgIEFkZGluZyBzdXBw
b3J0IGZvciBlbnVtZXJhdGluZyBvciBub3QgYWxsIGludGVyZmFjZXMgYXQgbGlid2VicnRjIGxl
dmVsLgorICAgICAgICBUaGlzIGNob2ljZSBpcyBkb25lIGF0IGNyZWF0aW9uIG9mIHRoZSBwZWVy
IGNvbm5lY3Rpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsdGVySUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UlRDQ29u
dHJvbGxlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmFkZCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9s
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJ0Y0NvbnRyb2xsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlZ2lzdGVyVG9Db250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uSWNlQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpydGNDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoK
KwogMjAxNy0wMi0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEV4cG9zZSBTeW1ib2wudG9QcmltaXRpdmUgLyB2YWx1ZU9mIG9uIExvY2F0aW9uIGluc3RhbmNl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGEzODAxOTZiZDg1NDQ5ZGQzNjMyYzhhOGQxN2I4OGU1ZWI3Y2M5MmIu
LmVjMGEwNmQyNDliM2ZmNzc2MWM5ZDI3NmFhMzU1ZGI2M2FmNWM3YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxNy0wMi0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYlJUQ10gSUNFIGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGZpbHRlcmVk
IGFjY29yZGluZyBhIHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY4MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkaW5nIHRoZSBwb3NzaWJpbGl0eSBmb3IgdGhlIFVJIHByb2Nlc3MgdG8g
Y29udHJvbCB0aGUgSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYW5kIHdoZXRoZXIgbGlid2VicnRj
IGNhbgorICAgICAgICBlbnVtZXJhdGUgYWxsIGludGVyZmFjZXMgb3Igbm90LgorCisgICAgICAg
IERpc2FibGluZyBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBmb3IgdGhlIG1vbWVudC4KKyAgICAg
ICAgRW5hYmxpbmcgdG8gZW51bWVyYXRlIGFsbCBpbnRlcmZhY2VzIGZvciB0aGUgbW9tZW50Lgor
CisgICAgICAgIEluIHRoZSBmdXR1cmUsIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIHNob3VsZCBi
ZSB0aWVkIHRvIGdldFVzZXJNZWRpYS4KKyAgICAgICAgSW50ZXJmYWNlIGVudW1lcmF0aW9uIHNo
b3VsZCBiZSBkaXNhYmxlZCB3aXRoIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uCisgICAgICAg
IFdlIHNob3VsZCBkbyB0aGF0IG9uY2Ugd2UgaGF2ZSBzdWZmaWNpZW50IHRlc3RpbmcgaW4gdmFy
aW91cyBuZXR3b3JrIGluZnJhc3RydWN0dXJlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmluaXRpYWxpemVX
ZWJQYWdlKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNl
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisK
IDIwMTctMDItMTUgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBXZWJJT1NFdmVudCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApp
bmRleCBiYTJkNDNmZDI3MjE4YzcwN2U3YzRjNTRmNGYzZWRkM2YyMzBjMWJjLi5kNzc1ZmU4ODMw
ZDhjYjE5ZDdhNjYzNThmZGFmMDg3ZGRkZjIxZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVk
ZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0yNjksNiArMjcwLDYzIEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpm
aXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4mJiBjYW5kCiAgICAg
bV9wZWVyQ29ubmVjdGlvbi5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShm
YWxzZSwgZmFsc2UsIFdURk1vdmUoY2FuZGlkYXRlKSkpOwogfQogCit2b2lkIFBlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKK3sKKyAgICBtX3Nob3Vs
ZEZpbHRlcklDRUNhbmRpZGF0ZXMgPSB0cnVlOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uQmFj
a2VuZDo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9zaG91bGRGaWx0
ZXJJQ0VDYW5kaWRhdGVzID0gZmFsc2U7CisgICAgZm9yIChhdXRvJiBwZW5kaW5nSUNFQ2FuZGlk
YXRlIDogbV9wZW5kaW5nSUNFQ2FuZGlkYXRlcykKKyAgICAgICAgZmlyZUlDRUNhbmRpZGF0ZUV2
ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUocGVuZGluZ0lDRUNhbmRpZGF0ZS5z
ZHApLCBXVEZNb3ZlKHBlbmRpbmdJQ0VDYW5kaWRhdGUubWlkKSwgMCkpOworICAgIG1fcGVuZGlu
Z0lDRUNhbmRpZGF0ZXMuY2xlYXIoKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgZmlsdGVy
SUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCkKK3sKKyAgICBBU1NFUlQoIXNkcC5jb250YWlucygi
IGhvc3QgIikpOworCisgICAgaWYgKCFzZHAuY29udGFpbnMoIiByYWRkciAiKSkKKyAgICAgICAg
cmV0dXJuIFdURk1vdmUoc2RwKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGl0ZW1zOworICAgIHNk
cC5zcGxpdCgnICcsIGl0ZW1zKTsKKworICAgIGJvb2wgc2tpcE5leHRJdGVtID0gZmFsc2U7Cisg
ICAgYm9vbCBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICBTdHJpbmdCdWlsZGVyIGZpbHRlcmVkU0RQOwor
ICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKSB7CisgICAgICAgIGlmIChza2lwTmV4dEl0ZW0p
IHsKKyAgICAgICAgICAgIHNraXBOZXh0SXRlbSA9IGZhbHNlOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZW0gPT0gInJhZGRyIiB8fCBpdGVtID09ICJy
cG9ydCIpIHsKKyAgICAgICAgICAgIHNraXBOZXh0SXRlbSA9IHRydWU7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNGaXJzdCkKKyAgICAgICAgICAgIGlz
Rmlyc3QgPSBmYWxzZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBw
ZW5kKCIgIik7CisgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChpdGVtKTsKKyAgICB9CisgICAg
cmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQpCit7Cisg
ICAgaWYgKCFtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMpIHsKKyAgICAgICAgZmlyZUlDRUNh
bmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUoc2RwKSwgV1RGTW92
ZShtaWQpLCAwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHNkcC5jb250YWlu
cygiIGhvc3QgIikpIHsKKyAgICAgICAgbV9wZW5kaW5nSUNFQ2FuZGlkYXRlcy5hcHBlbmQoUGVu
ZGluZ0lDRUNhbmRpZGF0ZSB7IFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQpfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0
ZTo6Y3JlYXRlKGZpbHRlcklDRUNhbmRpZGF0ZShXVEZNb3ZlKHNkcCkpLCBXVEZNb3ZlKG1pZCks
IDApKTsKK30KKwogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvbmVHYXRoZXJpbmdDYW5k
aWRhdGVzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmgKaW5kZXggNWRmN2RiNDU0OTljNjk1MjQxZDRhMWUyYjg4MGQ3MzM0N2I0ZGNhZC4uYTIxYjVk
OWQzYmNjMmJhMDRiM2ZkYTEzNTBmMDM2YThkNzVkYzk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
CkBAIC0xMDEsNiArMTAxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRl
UGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgPSAwOwogCisgICAgdm9pZCBuZXdJ
Q0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQpOworICAgIHZvaWQgZGlzYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKCk7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5kaWRhdGVFdmVudChS
ZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiYmKTsKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRh
dGVzKCk7CkBAIC0xMzcsNyArMTQxLDE0IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxQ
ZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZT4gbV9vZmZlckFuc3dlclBy
b21pc2U7CiAgICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlPHZvaWQ+PiBtX3NldERlc2NyaXB0
aW9uUHJvbWlzZTsKICAgICBzdGQ6Om9wdGlvbmFsPERPTVByb21pc2U8dm9pZD4+IG1fYWRkSWNl
Q2FuZGlkYXRlUHJvbWlzZTsKLSAgICAKKworICAgIGJvb2wgbV9zaG91bGRGaWx0ZXJJQ0VDYW5k
aWRhdGVzIHsgdHJ1ZSB9OworICAgIHN0cnVjdCBQZW5kaW5nSUNFQ2FuZGlkYXRlIHsKKyAgICAg
ICAgU3RyaW5nIHNkcDsKKyAgICAgICAgU3RyaW5nIG1pZDsKKyAgICB9OworICAgIFZlY3RvcjxQ
ZW5kaW5nSUNFQ2FuZGlkYXRlPiBtX3BlbmRpbmdJQ0VDYW5kaWRhdGVzOworCiAgICAgYm9vbCBt
X25lZ290aWF0aW9uTmVlZGVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEx
NTU1YzJhZGQyYzdhZWMzOTBhZTZiNjViMDRlYmJiZjI1Zjg4YjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAi
UlRDUGVlckNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFJUQ0Nv
bnRyb2xsZXI6OnJlbW92ZShSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBt
X3BlZXJDb25uZWN0aW9ucy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmY29ubmVjdGlvbl0oYXV0byBp
dGVtKSB7CisgICAgICAgIHJldHVybiAmY29ubmVjdGlvbiA9PSAmaXRlbS5nZXQoKTsKKyAgICB9
KTsKK30KKwordm9pZCBSVENDb250cm9sbGVyOjphZGQoUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCit7CisgICAgbV9wZWVyQ29ubmVjdGlvbnMuYXBwZW5kKGNvbm5lY3Rpb24pOworICAg
IGlmICghbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzKQorICAgICAgICBjb25uZWN0aW9uLmRp
c2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKK30KKwordm9pZCBSVENDb250cm9sbGVyOjpk
aXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKK3sKKyAgICBtX3Nob3VsZEZpbHRlcklDRUNh
bmRpZGF0ZXMgPSBmYWxzZTsKKyAgICBmb3IgKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9u
IDogbV9wZWVyQ29ubmVjdGlvbnMpCisgICAgICAgIGNvbm5lY3Rpb24uZGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZygpOworfQorCit2b2lkIFJUQ0NvbnRyb2xsZXI6OmVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gdHJ1
ZTsKKyAgICBmb3IgKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uIDogbV9wZWVyQ29ubmVj
dGlvbnMpCisgICAgICAgIGNvbm5lY3Rpb24uZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3
MzlhNzg2OGE4M2E3ZWRlMDVkOWM2ZjU3OTVlM2U3ZjJjOTM4NDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuaApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1BlZXJDb25uZWN0
aW9uOworCitjbGFzcyBSVENDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAgICBSVENDb250cm9sbGVy
KCkgPSBkZWZhdWx0OworCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdm9pZCBhZGQoUlRDUGVl
ckNvbm5lY3Rpb24mKTsKKyAgICB2b2lkIHJlbW92ZShSVENQZWVyQ29ubmVjdGlvbiYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKKwor
cHJpdmF0ZToKKyAgICBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxSVENQZWVyQ29ubmVj
dGlvbj4+IG1fcGVlckNvbm5lY3Rpb25zOworICAgIGJvb2wgbV9zaG91bGRGaWx0ZXJJQ0VDYW5k
aWRhdGVzIHsgdHJ1ZSB9OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDhlNGRjYjExMzNiYmRmYzUxMjAzODgxNDA1YmM0NjVhZDQ1OGVh
NmEuLjFmOGRkZDBiMTEyZmVjYzc4OWQ1YmE0MDAwN2I2OGRkYjc4M2M4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCkBAIC00Miw3ICs0Miw5IEBACiAjaW5jbHVkZSAiTWVkaWFFbmRwb2ludENvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
VHJhY2suaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUlRDQ29uZmlndXJhdGlvbi5o
IgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbC5o
IgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZS5oIgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0
ZUV2ZW50LmgiCkBAIC02Miw3ICs2NCwxMiBAQCBSZWY8UlRDUGVlckNvbm5lY3Rpb24+IFJUQ1Bl
ZXJDb25uZWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dAogewog
ICAgIFJlZjxSVENQZWVyQ29ubmVjdGlvbj4gcGVlckNvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKGNvbnRleHQpKTsKICAgICBwZWVyQ29ubmVjdGlvbi0+c3VzcGVu
ZElmTmVlZGVkKCk7Ci0KKyAgICAvLyBSVENQZWVyQ29ubmVjdGlvbiBtYXkgc2VuZCBldmVudHMg
YXQgYWJvdXQgYW55IHRpbWUgZHVyaW5nIGl0cyBsaWZldGltZS4KKyAgICAvLyBMZXQncyBtYWtl
IGl0IHVuY29sbGVjdGFibGUgdW50aWwgdGhlIHBjIGlzIGNsb3NlZCBieSBKUyBvciB0aGUgcGFn
ZSBzdG9wcyBpdC4KKyAgICBpZiAocGVlckNvbm5lY3Rpb24tPm1fc2lnbmFsaW5nU3RhdGUgIT0g
U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkgeworICAgICAgICBwZWVyQ29ubmVjdGlvbi0+c2V0UGVu
ZGluZ0FjdGl2aXR5KHBlZXJDb25uZWN0aW9uLnB0cigpKTsKKyAgICAgICAgcGVlckNvbm5lY3Rp
b24tPnJlZ2lzdGVyVG9Db250cm9sbGVyKCk7CisgICAgfQogICAgIHJldHVybiBwZWVyQ29ubmVj
dGlvbjsKIH0KIApAQCAtNDEyLDYgKzQxOSw5IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNs
b3NlKCkKIAogICAgIGZvciAoUlRDUnRwU2VuZGVyJiBzZW5kZXIgOiBtX3RyYW5zY2VpdmVyU2V0
LT5zZW5kZXJzKCkpCiAgICAgICAgIHNlbmRlci5zdG9wKCk7CisKKyAgICB1bnJlZ2lzdGVyRnJv
bUNvbnRyb2xsZXIoKTsKKyAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAogdm9p
ZCBSVENQZWVyQ29ubmVjdGlvbjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBh
Y3Rpb24pCkBAIC00MjQsNiArNDM0LDI0IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN0b3Ao
KQogICAgIGNsb3NlKCk7CiB9CiAKK1JUQ0NvbnRyb2xsZXImIFJUQ1BlZXJDb25uZWN0aW9uOjpy
dGNDb250cm9sbGVyKCkKK3sKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpOworICAg
IGF1dG8qIHBhZ2UgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSktPnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZS0+cnRjQ29udHJvbGxlcigpOworfQorCit2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpyZWdpc3RlclRvQ29udHJvbGxlcigpCit7CisgICAgcnRj
Q29udHJvbGxlcigpLmFkZCgqdGhpcyk7Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVu
cmVnaXN0ZXJGcm9tQ29udHJvbGxlcigpCit7CisgICAgcnRjQ29udHJvbGxlcigpLnJlbW92ZSgq
dGhpcyk7Cit9CisKIGNvbnN0IGNoYXIqIFJUQ1BlZXJDb25uZWN0aW9uOjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gIlJUQ1BlZXJDb25uZWN0aW9uIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaAppbmRleCBhMTBhYWViNGM0MGE3YzRhYmNiNGZhYzZkNmE1OTBjNDllYjQzZjlhLi4yYzA1
NjJlMzgyNGUwNTRiNWJhODZkOTE3MDU2OTAxNTllMWJmZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC00
Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW1UcmFj
azsKIGNsYXNzIFBlZXJDb25uZWN0aW9uQmFja2VuZDsKK2NsYXNzIFJUQ0NvbnRyb2xsZXI7CiBj
bGFzcyBSVENJY2VDYW5kaWRhdGU7CiBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJh
Y2s7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CkBAIC0xMzYsMTEgKzEzNywxOCBAQCBw
dWJsaWM6CiAgICAgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlIGludGVy
bmFsSWNlR2F0aGVyaW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2ljZUdhdGhlcmluZ1N0YXRl
OyB9CiAgICAgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZSBpbnRlcm5h
bEljZUNvbm5lY3Rpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWNlQ29ubmVjdGlvblN0YXRl
OyB9CiAKKyAgICB2b2lkIGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKSB7IG1fYmFja2Vu
ZC0+ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CisgICAgdm9pZCBlbmFibGVJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcoKSB7IG1fYmFja2VuZC0+ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCk7IH0KKwogcHJpdmF0ZToKICAgICBSVENQZWVyQ29ubmVjdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CiAKICAgICB2b2lkIGNvbXBsZXRlQWRkVHJhbnNjZWl2ZXIoUlRDUnRwVHJh
bnNjZWl2ZXImLCBjb25zdCBSdHBUcmFuc2NlaXZlckluaXQmKTsKIAorICAgIFJUQ0NvbnRyb2xs
ZXImIHJ0Y0NvbnRyb2xsZXIoKTsKKyAgICB2b2lkIHJlZ2lzdGVyVG9Db250cm9sbGVyKCk7Cisg
ICAgdm9pZCB1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIoKTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0
IGltcGxlbWVudGF0aW9uLgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigp
OyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IGU0NmMzMWM0ZWQw
YjFkZDM0OTk2Zjg1ZjIyNjI4NzY0ODQ1MTI4Y2UuLjhlMmY3NmIzZjMxODZmYWQ5OTgzMThkMmIy
MTk4MTgxZmQzZTc3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9p
bnQuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgi
CiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWwuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEV2
ZW50LmgiCi0jaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDUGVlckNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKICNpbmNsdWRl
ICJSVENUcmFja0V2ZW50LmgiCkBAIC00NDYsNyArNDQ1LDcgQEAgdm9pZCBMaWJXZWJSVENNZWRp
YUVuZHBvaW50OjpPbkljZUNhbmRpZGF0ZShjb25zdCB3ZWJydGM6OkljZUNhbmRpZGF0ZUludGVy
ZmFjZQogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgbWlkID0gV1RGTW92ZShjYW5kaWRhdGVNaWQpLCBzZHAgPSBXVEZNb3ZlKGNhbmRpZGF0ZVNE
UCldIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPmlzU3RvcHBlZCgpKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5maXJlSUNFQ2FuZGlkYXRlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoU3RyaW5nKHNk
cCksIFN0cmluZyhtaWQpLCAwKSk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5l
Y3Rpb25CYWNrZW5kLm5ld0lDRUNhbmRpZGF0ZShTdHJpbmcoc2RwKSwgU3RyaW5nKG1pZCkpOwog
ICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcAppbmRleCBjOGEzODJjNWJhMWMwMjI3Mzg3NzEyZGViZDI3MDU3Yzk1
ZGUzNWY1Li40OWFhYTAyMWFmMThhOTNmYmQwMjZkNTkyMzJiZTUyNTlhODdlMGI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
QEAgLTkzLDYgKzkzLDggQEAgc3RhdGljIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OlJUQ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbkZyb21NZWRpYUUKIAogdm9pZCBMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludENv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogeworICAgIGlmIChjb25maWd1cmF0aW9uLmlj
ZVRyYW5zcG9ydFBvbGljeSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlVHJhbnNwb3J0UG9s
aWN5OjpSZWxheSkKKyAgICAgICAgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwogICAg
IG1fZW5kcG9pbnQtPmJhY2tlbmQoKS5TZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25Gcm9t
TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZDQ1YmQwMTkxMDQ0MDI5ZjY3YjkzOTU0ZTY3NzVhOTFiMGEyMmRiZC4uZTU4NjVmZGUz
M2Y4Yjc4MzY5ZDQxNDdjNzZkMTRhZWM2ZmU2MjBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU3Nyw2ICsxNTc3LDggQEAK
IAkJNDE3REE3MUUxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQzEzNzM1REZBMDA3QzU3
RkIgLyogSlNJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8q
IFdlYkNvcmVUZXN0U3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTgxNUMxQzEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcCAqLzsgfTsKIAkJNDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0
U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE4MTVDMUQxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxODIwNTQ3MUU1M0U5
OEMwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0NTFFNTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxODIwNTQ5MUU1M0VBQjAwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODIwNTQ4MUU1M0VBQUQwMEQ2
MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJNDE4ODVCOTMxMUI2RkRBNjAwMzM4
M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTg4NUI5MTExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg4
NUI5NDExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4ODVCOTIxMUI2RkRBNjAwMzM4M0JC
IC8qIEZvcm1TdWJtaXNzaW9uLmNwcCAqLzsgfTsKIAkJNDE4QTA2RDAxMzNDMDRENTAwQ0QzNzlD
IC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE4QTA2Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5o
ICovOyB9OwpAQCAtODgyMyw2ICs4ODI1LDggQEAKIAkJNDE4MTVDMUMxMzgzMTk4MzAwNTdBQUE0
IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTgxNUMxRDEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2Vi
Q29yZVRlc3RTdXBwb3J0LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IFdlYkNvcmVUZXN0U3VwcG9ydC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENDb250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JC
IC8qIEZvcm1TdWJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZv
cm1TdWJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkyMTFC
NkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTM0Niw2ICsxNTM1MCw4IEBACiAJCQkJMDcyMjFC
NjYxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuY3BwICovLAogCQkJCTA3
MjIxQjY3MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmggKi8sCiAJCQkJ
MDcyMjFCNjgxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaWRsICovLAor
CQkJCTQxODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi8sCisJCQkJ
NDE4MjA1NDgxRTUzRUFBRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCTA3
MjIxQjY5MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEVE1GU2VuZGVyLmNwcCAqLywKIAkJCQkwNzIy
MUI2QTE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDRFRNRlNlbmRlci5oICovLAogCQkJCTA3MjIxQjZC
MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEVE1GU2VuZGVyLmlkbCAqLywKQEAgLTI2NTI0LDYgKzI2
NTMwLDcgQEAKIAkJCQlBRDcyNkZFRjE2REExMUY1MDAzQTRFNkQgLyogSlNDU1NSdWxlQ3VzdG9t
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEQwNUZBODBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NS
dWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyMDExQjcwQTAwMzEzMzAwODMwM0Y5IC8q
IEpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4MjA1NDcxRTUz
RTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENzI2
RkVEMTZEQTExNzEwMDNBNEU2RCAvKiBKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNDZDMjA3MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNUJFMDEwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NT
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDQ1MCw2ICszMDQ1Nyw3IEBACiAJCQkJ
QkM0RURFRjQwQzA4RjNGQjAwN0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFBMUUwQTFDREFCNDAwQjQyQjI1IC8qIEpTSFRNTEFy
ZWFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDOURCRkVEMUE5QzQ5QjEwMDBENkIy
NSAvKiBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTgy
MDU0OTFFNTNFQUIwMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFNDQ2MTQzNzBDRDY4OUM0MDBGQURBNzUgLyogSlNIVE1MQXVkaW9FbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4MEU3QjEyMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxCYXNl
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUUyQUEyMjBBMUNEQUI0MDBCNDJCMjUg
LyogSlNIVE1MQm9keUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggYTg3M2MxNzRkMjdlY2RjMWYy
MzI2OWMzNmM4YTdjYjMyOWZmN2VjMC4uNmViM2Y4MWU5ZjdjNGFmZWQ3NTQ2YWYyNDBkMjgyOGZj
MDk4N2Q4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCiAj
aW5jbHVkZSAiUG9seWdvblNoYXBlLmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJveE1vZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAppbmRleCA0ZTE4ZmRiZDI1NzdjYjVlM2FjMjg1ODNhNWYwYTk3YzdhNWE3
YzA2Li40MGYxYzAzMTBhOWQ5OGFkYzM5MTFjN2Q2ZjdjYzc1N2EwNTg4NTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIK
ICNpbmNsdWRlICJQYWdpbmF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKyNp
bmNsdWRlICJSVENDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJTZXNzaW9uSUQuaCIKQEAgLTIyMyw2ICsyMjQsNyBA
QCBwdWJsaWM6CiAgICAgUG9pbnRlckxvY2tDb250cm9sbGVyJiBwb2ludGVyTG9ja0NvbnRyb2xs
ZXIoKSBjb25zdCB7IHJldHVybiAqbV9wb2ludGVyTG9ja0NvbnRyb2xsZXI7IH0KICNlbmRpZgog
ICAgIExpYldlYlJUQ1Byb3ZpZGVyJiBsaWJXZWJSVENQcm92aWRlcigpIHsgcmV0dXJuIG1fbGli
V2ViUlRDUHJvdmlkZXIuZ2V0KCk7IH0KKyAgICBSVENDb250cm9sbGVyJiBydGNDb250cm9sbGVy
KCkgeyByZXR1cm4gbV9ydGNDb250cm9sbGVyOyB9CiAKICAgICBWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudCogdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3ZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50LmdldCgpOyB9CiAgICAgdm9pZCB1cGRhdGVWYWxpZGF0aW9uQnViYmxl
U3RhdGVJZk5lZWRlZCgpOwpAQCAtNjQwLDYgKzY0Miw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiBtX3dlYkdMU3RhdGVUcmFja2VyOwogCiAgICAg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOworICAgIFJU
Q0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwogCiAgICAgaW50IG1fbmVzdGVkUnVuTG9vcENv
dW50IHsgMCB9OwogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX3VubmVzdENhbGxiYWNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggMDA5NWM1MTdmMGY3ZTBj
NDNlYjg2NjI3OTFhMDEzNTMxMmVlODU4Ni4uNDI4Zjg0OWM3NTgxNTJjMjBjNDRmOWU5ODZhYWQ3
ZTMyZjM2ZjdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0x
NDksNyArMTQ5LDEwIEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Y3JpY2tldDo6QmFzaWNQb3J0QWxsb2NhdG9yPiBwb3J0QWxsb2NhdG9yOwogICAgIHN0
YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkuc2lnbmFsaW5nVGhyZWFkLT5JbnZva2U8dm9pZD4oUlRD
X0ZST01fSEVSRSwgWyZdKCkgewotICAgICAgICBwb3J0QWxsb2NhdG9yLnJlc2V0KG5ldyBjcmlj
a2V0OjpCYXNpY1BvcnRBbGxvY2F0b3IoJm5ldHdvcmtNYW5hZ2VyLCAmcGFja2V0U29ja2V0RmFj
dG9yeSkpOworICAgICAgICBhdXRvIGJhc2ljUG9ydEFsbG9jYXRvciA9IHN0ZDo6bWFrZV91bmlx
dWU8Y3JpY2tldDo6QmFzaWNQb3J0QWxsb2NhdG9yPigmbmV0d29ya01hbmFnZXIsICZwYWNrZXRT
b2NrZXRGYWN0b3J5KTsKKyAgICAgICAgaWYgKCFtX2VuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMpCisgICAgICAgICAgICBiYXNpY1BvcnRBbGxvY2F0b3ItPnNldF9mbGFncyhi
YXNpY1BvcnRBbGxvY2F0b3ItPmZsYWdzKCkgfCBjcmlja2V0OjpQT1JUQUxMT0NBVE9SX0RJU0FC
TEVfQURBUFRFUl9FTlVNRVJBVElPTik7CisgICAgICAgIHBvcnRBbGxvY2F0b3IgPSBXVEZNb3Zl
KGJhc2ljUG9ydEFsbG9jYXRvcik7CiAgICAgfSk7CiAKICAgICByZXR1cm4gY3JlYXRlQWN0dWFs
UGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdURk1vdmUocG9ydEFsbG9jYXRvcikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBkY2ExYzIyNzVjZjlkNTYwMDdlOGNmMWQx
MjUxODg2ODQxN2Y2MWY0Li4xZjU0ODA5ZTA0NjgyNGY1ZTQ1OTlhNWYyYTc1NTQ5YTdlZDljYTVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNjAsOCArNjAsMTMgQEAg
cHVibGljOgogICAgIC8vIFVzZWQgZm9yIG1vY2sgdGVzdGluZwogICAgIHN0YXRpYyB2b2lkIHNl
dFBlZXJDb25uZWN0aW9uRmFjdG9yeShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+JiYpOwogCisgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzID0gZmFsc2U7IH0KKyAgICB2b2lkIGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMoKSB7IG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9
IHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlv
bih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6Ok5ldHdvcmtNYW5hZ2VyJiwg
cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Jik7CisKKyAgICBib29sIG1fZW5hYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcyB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjNkNjQ4MWNmZWMxMzBkYjkw
YTJiZDljYzUwMDNlMDJmY2M4NjUwZi4uOTE5OWNjY2Y1MDczYjRjNmM2NmMzNDdjODJlZTI0YmI3
ZjI3NjQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTgyMSw2ICs4MjEsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKCkK
IAogICAgIG1fbmVlZHNUb0ZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVu
Y2ggPSB0cnVlOwogICAgIGZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVu
Y2goKTsKKworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIC8vIEZJWE1FOiBUaWUgSUNFIGZpbHRl
cmluZyB3aXRoIGdldFVzZXJNZWRpYSBwZXJtaXNzaW9uLgorICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpLCBtX3BhZ2VJ
RCk7CisjaWYgVVNFKExJQldFQlJUQykKKyAgICAvLyBGSVhNRTogVHVybiBkb3duIG5ldHdvcmsg
aW50ZXJmYWNlIGVudW1lcmF0aW9uIGJ5IGRlZmF1bHQuCisgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpFbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCks
IG1fcGFnZUlEKTsKKyNlbmRpZgorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpmaW5p
c2hJbml0aWFsaXppbmdXZWJQYWdlQWZ0ZXJQcm9jZXNzTGF1bmNoKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MDA0ZGIwZmMw
ZWFhM2YzY2ZmYzdlZWE5ZThmMDI1NWU2ZmFjZTE4Li5hMGMxZmEyNjA5Mjk0MTMwYWJmODZjNTk3
NjI0ZGQzOGRkMDgwYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC05OTk2LDcgKzk5OTYsNyBAQAogCQkJCTM3NjA4ODFFMTUw
NDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTEwQUZGQjkxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNkJFOTY5QTIxRTQzQjhBNDAwOEI3NDgzIC8qIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZCRTk2OUEyMUU0M0I4QTQw
MDhCNzQ4MyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgy
QyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUQgLyogTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwMTg3LDcgKzEwMTg3LDcgQEAKIAkJCQkzNzk0
ODQwODE1MEM0Qjk3MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzNzYwODgyMjE1MDQxNEY3MDBGQzgyQzcgLyogV0tSZW5kZXJPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzMzNjc2M0ExMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNo
ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDZCRTk2OTlFMUU0M0I0MUQwMDhCNzQ4MyAvKiBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZCRTk2OTlFMUU0M0I0MUQwMDhCNzQ4MyAv
KiBXS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBN0UzNzc4MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UubW0gaW4gU291cmNl
cyAqLywKIAkJCQkwRkNCNEU1NTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFDRDFDNjYxQjM0QjlEQzAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlP
cmlnaW4ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDcyNDBiYmQxNTRmOGYzMjAwZTc4MjcxNWQ0OTM4MDYzMGM5MTcy
OWMuLjIxZDEwOGU1OWE0NzgwMDc4YjcyOTExYWYxM2ViMzZiODc5NTE0ZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNTcsNiArNTcsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSHlzdGVyZXNpc0FjdGl2aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplSGFzaC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmg+CkBAIC0xMTkzLDYgKzExOTQsMTUgQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICB2b2lkIGRpc2FibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKSB7IG1fcGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKTsgfQorICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5n
KCkgeyBtX3BhZ2UtPnJ0Y0NvbnRyb2xsZXIoKS5lbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KTsgfQorI2lmIFVTRShMSUJXRUJSVEMpCisgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRpbmdBbGxO
ZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmRpc2FibGVF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7IH0KKyAgICB2b2lkIGVuYWJsZUVudW1l
cmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKSB7IG1fcGFnZS0+bGliV2ViUlRDUHJvdmlkZXIo
KS5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7IH0KKyNlbmRpZgorI2Vu
ZGlmCisKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3Jl
U2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYg
d29yZCk7CiAjaWYgVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMjM5MzljMTkzMGU0ZmMxZmY2
NmU3NTFiNmY4ZDEzMGVjZGYyZDEwOS4uZGY3YWIwNjE0YzBmMjIyYWU4MmE0MTk5ZTc5NjEyZWVh
MjMzNzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTMwNiw2ICszMDYsMTUgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9S
VEMpCisgICAgRGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCisgICAgRW5hYmxlSUNFQ2Fu
ZGlkYXRlRmlsdGVyaW5nKCkKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBVU0UoTElC
V0VCUlRDKQorICAgIEVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQorICAg
IERpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkKKyNlbmRpZgorCiAgICAg
IyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302015</attachid>
            <date>2017-02-17 17:05:05 -0800</date>
            <delta_ts>2017-02-17 18:39:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168348-20170217170227.patch</filename>
            <type>text/plain</type>
            <size>34307</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMzMTg1ZGQxNmE4NzZi
MDExYzFiOTkwMTNkZWEwMzM4ZjgyYWY2Yi4uZmZjYjNmMGU2MjA3ZmNlMmQ2YzJmM2VhMTczOGMx
YzliNjQ4MmNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAyLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJQ0UgY2Fu
ZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0
ZXN0cy4gU2hvdWxkIGJlIGNvdmVyZWQgaW4gdGhlIGZ1dHVyZSBieSBsYXlvdXQgdGVzdHMgd2l0
aCBkZWRpY2F0ZWQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3Ig
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYXQgUlRDUGVlckNvbm5lY3Rpb24gbGV2ZWwuCisgICAg
ICAgIElmIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGlzIG9uIChieSBkZWZhdWx0KSwgaG9zdCBj
YW5kaWRhdGVzIGFyZSBzdG9yZWQgYW5kIG5vdCBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICBS
ZWZsZXhpdmUgY2FuZGlkYXRlcyBhcmUgcHVyZ2VkIGZyb20gcmFkZHIgaW5mb3JtYXRpb24gdG8g
bm90IGxlYWsgdGhlIGhvc3QgSVAgYWRkcmVzcy4KKworICAgICAgICBTdG9yZWQgY2FuZGlkYXRl
cyBtYXkgYmUgYWR2ZXJ0aXNlZCB0byB0aGUgSlMgbGF5ZXIgaWYgUlRDQ29udHJvbGxlciBpcyBu
b3RpZmllZCBvZiBhIGNoYW5nZSBvZiBmaWx0ZXJpbmcgcG9saWN5LgorICAgICAgICBUbyBpbXBs
ZW1lbnQgdGhhdCwgUGVlckNvbm5lY3Rpb25CYWNrZW5kIHN0b3JlcyBhbGwgZmlsdGVyZWQgb3V0
IGNhbmRpZGF0ZXMgYW5kIFJUQ1BlZXJDb25uZWN0aW9uIHJlZ2lzdGVyCisgICAgICAgIHRoZW1z
ZWx2ZXMgdG8gUlRDQ29udHJvbGxlciB0byBnZXQgbm90aWZpY2F0aW9ucyBvZiBmaWx0ZXJpbmcg
cG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgTWFraW5nIFJUQ1BlZXJDb25uZWN0aW9uIHVzZSBz
ZXRQZW5kaW5nQWN0aXZpdHkgdGhyb3VnaG91dCBpdHMgbGlmZXRpbWUuCisgICAgICAgIFRoaXMg
ZW5zdXJlcyBpdCBkb2VzIG5vdCBnZXQgY29sbGVjdGVkIHVudGlsIHRoZSBwYWdlIGlzIG9mZiBv
ciBjbG9zZSgpIGlzIGNhbGxlZCBvbiB0aGUgb2JqZWN0LgorCisgICAgICAgIEFkZGluZyBzdXBw
b3J0IGZvciBlbnVtZXJhdGluZyBvciBub3QgYWxsIGludGVyZmFjZXMgYXQgbGlid2VicnRjIGxl
dmVsLgorICAgICAgICBUaGlzIGNob2ljZSBpcyBkb25lIGF0IGNyZWF0aW9uIG9mIHRoZSBwZWVy
IGNvbm5lY3Rpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsdGVySUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UlRDQ29u
dHJvbGxlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmFkZCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9s
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJ0Y0NvbnRyb2xsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlZ2lzdGVyVG9Db250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uSWNlQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpydGNDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoK
KwogMjAxNy0wMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYlJUQ11bTWFjXSBBY3RpdmF0ZSBsaWJ3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NjdhYjM5
YzM3MWVkNTMyM2U3YTI0YmJkZmJkZWY0YjRkNTI2YmEwLi4wMmIyNTdiZWFiOTE4ZjIzNjdkNWQ3
YWE1YWIzMDE5M2QyNTFhYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIgQEAKIDIwMTctMDIt
MTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCisgICAgICAgIFtXZWJSVENd
IElDRSBjYW5kaWRhdGVzIHNob3VsZCBiZSBmaWx0ZXJlZCBhY2NvcmRpbmcgYSBwb2xpY3kKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODM0OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyB0aGUg
cG9zc2liaWxpdHkgZm9yIHRoZSBVSSBwcm9jZXNzIHRvIGNvbnRyb2wgdGhlIElDRSBjYW5kaWRh
dGUgZmlsdGVyaW5nIGFuZCB3aGV0aGVyIGxpYndlYnJ0YyBjYW4KKyAgICAgICAgZW51bWVyYXRl
IGFsbCBpbnRlcmZhY2VzIG9yIG5vdC4KKworICAgICAgICBEaXNhYmxpbmcgSUNFIGNhbmRpZGF0
ZSBmaWx0ZXJpbmcgZm9yIHRoZSBtb21lbnQuCisgICAgICAgIEVuYWJsaW5nIHRvIGVudW1lcmF0
ZSBhbGwgaW50ZXJmYWNlcyBmb3IgdGhlIG1vbWVudC4KKworICAgICAgICBJbiB0aGUgZnV0dXJl
LCBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBzaG91bGQgYmUgdGllZCB0byBnZXRVc2VyTWVkaWEu
CisgICAgICAgIEludGVyZmFjZSBlbnVtZXJhdGlvbiBzaG91bGQgYmUgZGlzYWJsZWQgd2l0aCB0
aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLgorICAgICAgICBXZSBzaG91bGQgZG8gdGhhdCBvbmNl
IHdlIGhhdmUgc3VmZmljaWVudCB0ZXN0aW5nIGluIHZhcmlvdXMgbmV0d29yayBpbmZyYXN0cnVj
dHVyZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojppbml0aWFsaXplV2ViUGFnZSk6CisgICAgICAgICogV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpc2FibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjplbmFibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaXNhYmxlRW51bWVy
YXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVu
YWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCisyMDE3LTAyLTE3ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAgICAgICBbV2ViUlRDXVtNYWNdIEFjdGl2YXRl
IGxpYndlYnJ0YwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY3MjkzCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDQwMTg2ND4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcAppbmRleCBiYTJkNDNmZDI3MjE4YzcwN2U3YzRjNTRmNGYzZWRkM2YyMzBjMWJj
Li5kNzc1ZmU4ODMwZDhjYjE5ZDdhNjYzNThmZGFmMDg3ZGRkZjIxZWEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRl
LmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKICNpbmNsdWRlICJSVENQZWVy
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNjksNiArMjcwLDYzIEBAIHZvaWQgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4m
JiBjYW5kCiAgICAgbV9wZWVyQ29ubmVjdGlvbi5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZl
bnQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIFdURk1vdmUoY2FuZGlkYXRlKSkpOwogfQogCit2b2lk
IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKK3sK
KyAgICBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgPSB0cnVlOworfQorCit2b2lkIFBlZXJD
b25uZWN0aW9uQmFja2VuZDo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAg
bV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gZmFsc2U7CisgICAgZm9yIChhdXRvJiBwZW5k
aW5nSUNFQ2FuZGlkYXRlIDogbV9wZW5kaW5nSUNFQ2FuZGlkYXRlcykKKyAgICAgICAgZmlyZUlD
RUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUocGVuZGluZ0lD
RUNhbmRpZGF0ZS5zZHApLCBXVEZNb3ZlKHBlbmRpbmdJQ0VDYW5kaWRhdGUubWlkKSwgMCkpOwor
ICAgIG1fcGVuZGluZ0lDRUNhbmRpZGF0ZXMuY2xlYXIoKTsKK30KKworc3RhdGljIGlubGluZSBT
dHJpbmcgZmlsdGVySUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCkKK3sKKyAgICBBU1NFUlQoIXNk
cC5jb250YWlucygiIGhvc3QgIikpOworCisgICAgaWYgKCFzZHAuY29udGFpbnMoIiByYWRkciAi
KSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoc2RwKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGl0
ZW1zOworICAgIHNkcC5zcGxpdCgnICcsIGl0ZW1zKTsKKworICAgIGJvb2wgc2tpcE5leHRJdGVt
ID0gZmFsc2U7CisgICAgYm9vbCBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICBTdHJpbmdCdWlsZGVyIGZp
bHRlcmVkU0RQOworICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKSB7CisgICAgICAgIGlmIChz
a2lwTmV4dEl0ZW0pIHsKKyAgICAgICAgICAgIHNraXBOZXh0SXRlbSA9IGZhbHNlOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZW0gPT0gInJhZGRyIiB8
fCBpdGVtID09ICJycG9ydCIpIHsKKyAgICAgICAgICAgIHNraXBOZXh0SXRlbSA9IHRydWU7Cisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNGaXJzdCkKKyAg
ICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmls
dGVyZWRTRFAuYXBwZW5kKCIgIik7CisgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChpdGVtKTsK
KyAgICB9CisgICAgcmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcm
JiBtaWQpCit7CisgICAgaWYgKCFtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMpIHsKKyAgICAg
ICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUo
c2RwKSwgV1RGTW92ZShtaWQpLCAwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KHNkcC5jb250YWlucygiIGhvc3QgIikpIHsKKyAgICAgICAgbV9wZW5kaW5nSUNFQ2FuZGlkYXRl
cy5hcHBlbmQoUGVuZGluZ0lDRUNhbmRpZGF0ZSB7IFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQp
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJU
Q0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKGZpbHRlcklDRUNhbmRpZGF0ZShXVEZNb3ZlKHNkcCkpLCBX
VEZNb3ZlKG1pZCksIDApKTsKK30KKwogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvbmVH
YXRoZXJpbmdDYW5kaWRhdGVzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmgKaW5kZXggNWRmN2RiNDU0OTljNjk1MjQxZDRhMWUyYjg4MGQ3MzM0N2I0
ZGNhZC4uNjE5NTE4YmFmOTA2ZTA3ODZmMzYyZTZhNTg1ZjgwOWNmNzFhODg3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oCkBAIC0xMDEsNiArMTAxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgPSAwOwogCisg
ICAgdm9pZCBuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQpOworICAg
IHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIHZvaWQgZW5hYmxlSUNF
Q2FuZGlkYXRlRmlsdGVyaW5nKCk7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5k
aWRhdGVFdmVudChSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiYmKTsKICAgICB2b2lkIGRvbmVHYXRo
ZXJpbmdDYW5kaWRhdGVzKCk7CkBAIC0xMzcsNyArMTQxLDE1IEBAIHByaXZhdGU6CiAgICAgc3Rk
OjpvcHRpb25hbDxQZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZT4gbV9v
ZmZlckFuc3dlclByb21pc2U7CiAgICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlPHZvaWQ+PiBt
X3NldERlc2NyaXB0aW9uUHJvbWlzZTsKICAgICBzdGQ6Om9wdGlvbmFsPERPTVByb21pc2U8dm9p
ZD4+IG1fYWRkSWNlQ2FuZGlkYXRlUHJvbWlzZTsKLSAgICAKKworICAgIGJvb2wgbV9zaG91bGRG
aWx0ZXJJQ0VDYW5kaWRhdGVzIHsgdHJ1ZSB9OworICAgIHN0cnVjdCBQZW5kaW5nSUNFQ2FuZGlk
YXRlIHsKKyAgICAgICAgLy8gRmllbGRzIGRlc2NyaWJlZCBpbiBodHRwczovL3d3dy53My5vcmcv
VFIvd2VicnRjLyNpZGwtZGVmLXJ0Y2ljZWNhbmRpZGF0ZWluaXQuCisgICAgICAgIFN0cmluZyBz
ZHA7CisgICAgICAgIFN0cmluZyBtaWQ7CisgICAgfTsKKyAgICBWZWN0b3I8UGVuZGluZ0lDRUNh
bmRpZGF0ZT4gbV9wZW5kaW5nSUNFQ2FuZGlkYXRlczsKKwogICAgIGJvb2wgbV9uZWdvdGlhdGlv
bk5lZWRlZCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTU1NWMyYWRkMmM3
YWVjMzkwYWU2YjY1YjA0ZWJiYmYyNWY4OGIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSVENDb250
cm9sbGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ1BlZXJDb25u
ZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBSVENDb250cm9sbGVyOjpy
ZW1vdmUoUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgbV9wZWVyQ29ubmVj
dGlvbnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJmNvbm5lY3Rpb25dKGF1dG8gaXRlbSkgeworICAg
ICAgICByZXR1cm4gJmNvbm5lY3Rpb24gPT0gJml0ZW0uZ2V0KCk7CisgICAgfSk7Cit9CisKK3Zv
aWQgUlRDQ29udHJvbGxlcjo6YWRkKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorewor
ICAgIG1fcGVlckNvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uKTsKKyAgICBpZiAoIW1fc2hv
dWxkRmlsdGVySUNFQ2FuZGlkYXRlcykKKyAgICAgICAgY29ubmVjdGlvbi5kaXNhYmxlSUNFQ2Fu
ZGlkYXRlRmlsdGVyaW5nKCk7Cit9CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6ZGlzYWJsZUlDRUNh
bmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0g
ZmFsc2U7CisgICAgZm9yIChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiA6IG1fcGVlckNv
bm5lY3Rpb25zKQorICAgICAgICBjb25uZWN0aW9uLmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmcoKTsKK30KKwordm9pZCBSVENDb250cm9sbGVyOjplbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJp
bmcoKQoreworICAgIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyA9IHRydWU7CisgICAgZm9y
IChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiA6IG1fcGVlckNvbm5lY3Rpb25zKQorICAg
ICAgICBjb25uZWN0aW9uLmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzM5YTc4NjhhODNh
N2VkZTA1ZDljNmY1Nzk1ZTNlN2YyYzkzODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENQZWVyQ29ubmVjdGlvbjsKKworY2xh
c3MgUlRDQ29udHJvbGxlciB7CitwdWJsaWM6CisgICAgUlRDQ29udHJvbGxlcigpID0gZGVmYXVs
dDsKKworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHZvaWQgYWRkKFJUQ1BlZXJDb25uZWN0aW9u
Jik7CisgICAgdm9pZCByZW1vdmUoUlRDUGVlckNvbm5lY3Rpb24mKTsKKworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisKK3ByaXZhdGU6Cisg
ICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UlRDUGVlckNvbm5lY3Rpb24+PiBtX3Bl
ZXJDb25uZWN0aW9uczsKKyAgICBib29sIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyB7IHRy
dWUgfTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cAppbmRleCA4ZTRkY2IxMTMzYmJkZmM1MTIwMzg4MTQwNWJjNDY1YWQ0NThlYTZhLi4xZjhkZGQw
YjExMmZlY2M3ODlkNWJhNDAwMDdiNjhkZGI3ODNjODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAt
NDIsNyArNDIsOSBAQAogI2luY2x1ZGUgIk1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJUQ0NvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRl
ICJSVENDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWwuaCIKICNpbmNsdWRl
ICJSVENJY2VDYW5kaWRhdGUuaCIKICNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGVFdmVudC5oIgpA
QCAtNjIsNyArNjQsMTIgQEAgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBSVENQZWVyQ29ubmVjdGlv
bjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQKIHsKICAgICBSZWY8UlRD
UGVlckNvbm5lY3Rpb24+IHBlZXJDb25uZWN0aW9uID0gYWRvcHRSZWYoKm5ldyBSVENQZWVyQ29u
bmVjdGlvbihjb250ZXh0KSk7CiAgICAgcGVlckNvbm5lY3Rpb24tPnN1c3BlbmRJZk5lZWRlZCgp
OwotCisgICAgLy8gUlRDUGVlckNvbm5lY3Rpb24gbWF5IHNlbmQgZXZlbnRzIGF0IGFib3V0IGFu
eSB0aW1lIGR1cmluZyBpdHMgbGlmZXRpbWUuCisgICAgLy8gTGV0J3MgbWFrZSBpdCB1bmNvbGxl
Y3RhYmxlIHVudGlsIHRoZSBwYyBpcyBjbG9zZWQgYnkgSlMgb3IgdGhlIHBhZ2Ugc3RvcHMgaXQu
CisgICAgaWYgKHBlZXJDb25uZWN0aW9uLT5tX3NpZ25hbGluZ1N0YXRlICE9IFNpZ25hbGluZ1N0
YXRlOjpDbG9zZWQpIHsKKyAgICAgICAgcGVlckNvbm5lY3Rpb24tPnNldFBlbmRpbmdBY3Rpdml0
eShwZWVyQ29ubmVjdGlvbi5wdHIoKSk7CisgICAgICAgIHBlZXJDb25uZWN0aW9uLT5yZWdpc3Rl
clRvQ29udHJvbGxlcigpOworICAgIH0KICAgICByZXR1cm4gcGVlckNvbm5lY3Rpb247CiB9CiAK
QEAgLTQxMiw2ICs0MTksOSBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjbG9zZSgpCiAKICAg
ICBmb3IgKFJUQ1J0cFNlbmRlciYgc2VuZGVyIDogbV90cmFuc2NlaXZlclNldC0+c2VuZGVycygp
KQogICAgICAgICBzZW5kZXIuc3RvcCgpOworCisgICAgdW5yZWdpc3RlckZyb21Db250cm9sbGVy
KCk7CisgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiB9CiAKIHZvaWQgUlRDUGVlckNv
bm5lY3Rpb246OmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKQpAQCAt
NDI0LDYgKzQzNCwyNCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzdG9wKCkKICAgICBjbG9z
ZSgpOwogfQogCitSVENDb250cm9sbGVyJiBSVENQZWVyQ29ubmVjdGlvbjo6cnRjQ29udHJvbGxl
cigpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJU
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKKyAgICBhdXRvKiBwYWdl
ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdl
KCk7CisgICAgcmV0dXJuIHBhZ2UtPnJ0Y0NvbnRyb2xsZXIoKTsKK30KKwordm9pZCBSVENQZWVy
Q29ubmVjdGlvbjo6cmVnaXN0ZXJUb0NvbnRyb2xsZXIoKQoreworICAgIHJ0Y0NvbnRyb2xsZXIo
KS5hZGQoKnRoaXMpOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRnJv
bUNvbnRyb2xsZXIoKQoreworICAgIHJ0Y0NvbnRyb2xsZXIoKS5yZW1vdmUoKnRoaXMpOworfQor
CiBjb25zdCBjaGFyKiBSVENQZWVyQ29ubmVjdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuICJSVENQZWVyQ29ubmVjdGlvbiI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXgg
YTEwYWFlYjRjNDBhN2M0YWJjYjRmYWM2ZDZhNTkwYzQ5ZWI0M2Y5YS4uMmMwNTYyZTM4MjRlMDU0
YjViYTg2ZDkxNzA1NjkwMTU5ZTFiZmY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtNDYsNiArNDYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2s7CiBjbGFzcyBQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQ7CitjbGFzcyBSVENDb250cm9sbGVyOwogY2xhc3MgUlRDSWNl
Q2FuZGlkYXRlOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrOwogY2xhc3Mg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwpAQCAtMTM2LDExICsxMzcsMTggQEAgcHVibGljOgogICAg
IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZSBpbnRlcm5hbEljZUdhdGhl
cmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pY2VHYXRoZXJpbmdTdGF0ZTsgfQogICAgIFBl
ZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGUgaW50ZXJuYWxJY2VDb25uZWN0
aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2ljZUNvbm5lY3Rpb25TdGF0ZTsgfQogCisgICAg
dm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQtPmRpc2FibGVJ
Q0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQorICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKCkgeyBtX2JhY2tlbmQtPmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CisK
IHByaXZhdGU6CiAgICAgUlRDUGVlckNvbm5lY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OwogCiAgICAgdm9pZCBjb21wbGV0ZUFkZFRyYW5zY2VpdmVyKFJUQ1J0cFRyYW5zY2VpdmVyJiwg
Y29uc3QgUnRwVHJhbnNjZWl2ZXJJbml0Jik7CiAKKyAgICBSVENDb250cm9sbGVyJiBydGNDb250
cm9sbGVyKCk7CisgICAgdm9pZCByZWdpc3RlclRvQ29udHJvbGxlcigpOworICAgIHZvaWQgdW5y
ZWdpc3RlckZyb21Db250cm9sbGVyKCk7CisKICAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRh
dGlvbi4KICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAppbmRleCBlNDZjMzFjNGVkMGIxZGQzNDk5NmY4
NWYyMjYyODc2NDg0NTEyOGNlLi44ZTJmNzZiM2YzMTg2ZmFkOTk4MzE4ZDJiMjE5ODE4MWZkM2U3
N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcApAQCAt
MzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUg
IlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxFdmVudC5oIgotI2lu
Y2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZS5oIgogI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiUlRDVHJhY2tF
dmVudC5oIgpAQCAtNDQ2LDcgKzQ0NSw3IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6
T25JY2VDYW5kaWRhdGUoY29uc3Qgd2VicnRjOjpJY2VDYW5kaWRhdGVJbnRlcmZhY2UKICAgICBj
YWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1pZCA9IFdU
Rk1vdmUoY2FuZGlkYXRlTWlkKSwgc2RwID0gV1RGTW92ZShjYW5kaWRhdGVTRFApXSB7CiAgICAg
ICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5pc1N0b3BwZWQoKSkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuZmlyZUlDRUNh
bmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFN0cmluZyhzZHApLCBTdHJpbmco
bWlkKSwgMCkpOworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5uZXdJQ0VDYW5kaWRhdGUoU3RyaW5nKHNkcCksIFN0cmluZyhtaWQpKTsKICAgICB9KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKaW5kZXggYzhhMzgyYzViYTFjMDIyNzM4NzcxMmRlYmQyNzA1N2M5NWRlMzVmNS4uMjJk
OGM3OWUzMTJhMTI4OTkwZDMwNWU1NjFkZGNlNjM4NTIxYjExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC03MSw5ICs3
MSw2IEBAIHN0YXRpYyB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1
cmF0aW9uIGNvbmZpZ3VyYXRpb25Gcm9tTWVkaWFFCiB7CiAgICAgd2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiBydGNDb25maWd1cmF0aW9uKHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb25UeXBlOjprQWdncmVzc2l2
ZSk7CiAKLSAgICBpZiAoY29uZmlndXJhdGlvbi5pY2VUcmFuc3BvcnRQb2xpY3kgPT0gUGVlckNv
bm5lY3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFBvbGljeTo6UmVsYXkpCi0gICAgICAgIHJ0Y0Nv
bmZpZ3VyYXRpb24udHlwZSA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtSZWxh
eTsKLQogICAgIGlmIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSA9PSBQZWVyQ29ubmVjdGlv
blN0YXRlczo6QnVuZGxlUG9saWN5OjpNYXhCdW5kbGUpCiAgICAgICAgIHJ0Y0NvbmZpZ3VyYXRp
b24uYnVuZGxlX3BvbGljeSA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OmtCdW5k
bGVQb2xpY3lNYXhCdW5kbGU7CiAgICAgZWxzZSBpZiAoY29uZmlndXJhdGlvbi5idW5kbGVQb2xp
Y3kgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkJ1bmRsZVBvbGljeTo6TWF4Q29tcGF0KQpAQCAt
OTMsNiArOTAsOCBAQCBzdGF0aWMgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRD
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uRnJvbU1lZGlhRQogCiB2b2lkIExpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0Q29uZmlndXJhdGlvbihNZWRpYUVuZHBvaW50Q29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CisgICAgaWYgKGNvbmZpZ3VyYXRpb24uaWNlVHJh
bnNwb3J0UG9saWN5ID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VUcmFuc3BvcnRQb2xpY3k6
OlJlbGF5KQorICAgICAgICBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAgICAgbV9l
bmRwb2ludC0+YmFja2VuZCgpLlNldENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbkZyb21NZWRp
YUVuZHBvaW50Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyYjVkODRkN2ZiZGMxZmZkYmVmZTBlZWVjOWVmN2Q5NjE4NjBiMDRjLi4zMDJmYTcyZDU2ZTQ1
MTg3NTUwYjJhZmJkNDQ5ZGU4ZWI5ZDE1NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTc3LDYgKzE1NzcsOCBAQAogCQk0
MTdEQTcxRTEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFDMTM3MzVERkEwMDdDNTdGQiAv
KiBKU0ludGVybmFscy5oICovOyB9OwogCQk0MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2Vi
Q29yZVRlc3RTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxODE1QzFDMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwICovOyB9OwogCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBw
b3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgx
NUMxRDEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4MjA1NDcxRTUzRTk4QzAw
RDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4
MjA1NDkxRTUzRUFCMDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MjA1NDgxRTUzRUFBRDAwRDYyMjA3
IC8qIFJUQ0NvbnRyb2xsZXIuY3BwICovOyB9OwogCQk0MTg4NUI5MzExQjZGREE2MDAzMzgzQkIg
LyogRm9ybVN1Ym1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1Qjk0
MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyog
Rm9ybVN1Ym1pc3Npb24uY3BwICovOyB9OwogCQk0MThBMDZEMDEzM0MwNEQ1MDBDRDM3OUMgLyog
RXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MThBMDZDRTEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi87
IH07CkBAIC04ODI1LDYgKzg4MjcsOCBAQAogCQk0MTgxNUMxQzEzODMxOTgzMDA1N0FBQTQgLyog
V2ViQ29yZVRlc3RTdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxODE1QzFEMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3Jl
VGVzdFN1cHBvcnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2Vi
Q29yZVRlc3RTdXBwb3J0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTgyMDU0NTFFNTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4NUI5MTExQjZGREE2MDAzMzgzQkIgLyog
Rm9ybVN1Ym1pc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybVN1
Ym1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTIxMUI2RkRB
NjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE4QTA2Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudERpc3BhdGNoZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MzUwLDYgKzE1MzU0LDggQEAKIAkJCQkwNzIyMUI2NjE3
Q0VDMzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAgKi8sCiAJCQkJMDcyMjFC
NjcxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaCAqLywKIAkJCQkwNzIy
MUI2ODE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5pZGwgKi8sCisJCQkJ
NDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLywKKwkJCQk0MTgy
MDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJMDcyMjFC
NjkxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RUTUZTZW5kZXIuY3BwICovLAogCQkJCTA3MjIxQjZB
MTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEVE1GU2VuZGVyLmggKi8sCiAJCQkJMDcyMjFCNkIxN0NF
QzMyNzAwODQ4RTUxIC8qIFJUQ0RUTUZTZW5kZXIuaWRsICovLApAQCAtMjY1MjUsNiArMjY1MzEs
NyBAQAogCQkJCUFENzI2RkVGMTZEQTExRjUwMDNBNEU2RCAvKiBKU0NTU1J1bGVDdXN0b20uaCBp
biBIZWFkZXJzICovLAogCQkJCUE4RDA1RkE4MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDIwMTFCNzBBMDAzMTMzMDA4MzAzRjkgLyogSlND
U1NTdHlsZURlY2xhcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTgyMDU0NzFFNTNFOThD
MDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ3MjZGRUQx
NkRBMTE3MTAwM0E0RTZEIC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM0NkMyMDcwQzBERENBMTAwMjBDRkMzIC8qIEpTQ1NTU3R5bGVSdWxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0M1QkUwMTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHls
ZVNoZWV0LmggaW4gSGVhZGVycyAqLywKQEAgLTMwNDU5LDYgKzMwNDY2LDcgQEAKIAkJCQlCQzRF
REVGNDBDMDhGM0ZCMDA3RURENDkgLyogSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQUUyQUExRTBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MQXJlYUVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M5REJGRUQxQTlDNDlCMTAwMEQ2QjI1IC8q
IEpTSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxODIwNTQ5
MUU1M0VBQjAwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU0NDYxNDM3MENENjg5QzQwMEZBREE3NSAvKiBKU0hUTUxBdWRpb0VsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTgwRTdCMTIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEJhc2VFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTJBQTIyMEExQ0RBQjQwMEI0MkIyNSAvKiBK
U0hUTUxCb2R5RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBhODczYzE3NGQyN2VjZGMxZjIzMjY5
YzM2YzhhN2NiMzI5ZmY3ZWMwLi42ZWIzZjgxZTlmN2M0YWZlZDc1NDZhZjI0MGQyODI4ZmMwOTg3
ZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3Bw
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJQb2x5Z29uU2hhcGUuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCisjaW5jbHVk
ZSAiUlRDQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCmluZGV4IDRlMThmZGJkMjU3N2NiNWUzYWMyODU4M2E1ZjBhOTdjN2E1YTdjMDYu
LjQwZjFjMDMxMGE5ZDk4YWRjMzkxMWM3ZDZmN2NjNzU3YTA1ODg1OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlBhZ2luYXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1
ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3Jv
bGxUeXBlcy5oIgogI2luY2x1ZGUgIlNlc3Npb25JRC5oIgpAQCAtMjIzLDYgKzIyNCw3IEBAIHB1
YmxpYzoKICAgICBQb2ludGVyTG9ja0NvbnRyb2xsZXImIHBvaW50ZXJMb2NrQ29udHJvbGxlcigp
IGNvbnN0IHsgcmV0dXJuICptX3BvaW50ZXJMb2NrQ29udHJvbGxlcjsgfQogI2VuZGlmCiAgICAg
TGliV2ViUlRDUHJvdmlkZXImIGxpYldlYlJUQ1Byb3ZpZGVyKCkgeyByZXR1cm4gbV9saWJXZWJS
VENQcm92aWRlci5nZXQoKTsgfQorICAgIFJUQ0NvbnRyb2xsZXImIHJ0Y0NvbnRyb2xsZXIoKSB7
IHJldHVybiBtX3J0Y0NvbnRyb2xsZXI7IH0KIAogICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
KiB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQuZ2V0KCk7IH0KICAgICB2b2lkIHVwZGF0ZVZhbGlkYXRpb25CdWJibGVTdGF0
ZUlmTmVlZGVkKCk7CkBAIC02NDAsNiArNjQyLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IG1fd2ViR0xTdGF0ZVRyYWNrZXI7CiAKICAgICBVbmlx
dWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7CisgICAgUlRDQ29u
dHJvbGxlciBtX3J0Y0NvbnRyb2xsZXI7CiAKICAgICBpbnQgbV9uZXN0ZWRSdW5Mb29wQ291bnQg
eyAwIH07CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IG1fdW5uZXN0Q2FsbGJhY2s7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAwMDk1YzUxN2YwZjdlMGM0M2Vi
ODY2Mjc5MWEwMTM1MzEyZWU4NTg2Li40MjhmODQ5Yzc1ODE1MmMyMGM0NGY5ZTk4NmFhZDdlMzJm
MzZmN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTE0OSw3
ICsxNDksMTAgQEAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRl
cmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWUKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxjcmlja2V0OjpCYXNpY1BvcnRBbGxvY2F0b3I+IHBvcnRBbGxvY2F0b3I7CiAgICAgc3RhdGlj
RmFjdG9yeUFuZFRocmVhZHMoKS5zaWduYWxpbmdUaHJlYWQtPkludm9rZTx2b2lkPihSVENfRlJP
TV9IRVJFLCBbJl0oKSB7Ci0gICAgICAgIHBvcnRBbGxvY2F0b3IucmVzZXQobmV3IGNyaWNrZXQ6
OkJhc2ljUG9ydEFsbG9jYXRvcigmbmV0d29ya01hbmFnZXIsICZwYWNrZXRTb2NrZXRGYWN0b3J5
KSk7CisgICAgICAgIGF1dG8gYmFzaWNQb3J0QWxsb2NhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxj
cmlja2V0OjpCYXNpY1BvcnRBbGxvY2F0b3I+KCZuZXR3b3JrTWFuYWdlciwgJnBhY2tldFNvY2tl
dEZhY3RvcnkpOworICAgICAgICBpZiAoIW1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcykKKyAgICAgICAgICAgIGJhc2ljUG9ydEFsbG9jYXRvci0+c2V0X2ZsYWdzKGJhc2lj
UG9ydEFsbG9jYXRvci0+ZmxhZ3MoKSB8IGNyaWNrZXQ6OlBPUlRBTExPQ0FUT1JfRElTQUJMRV9B
REFQVEVSX0VOVU1FUkFUSU9OKTsKKyAgICAgICAgcG9ydEFsbG9jYXRvciA9IFdURk1vdmUoYmFz
aWNQb3J0QWxsb2NhdG9yKTsKICAgICB9KTsKIAogICAgIHJldHVybiBjcmVhdGVBY3R1YWxQZWVy
Q29ubmVjdGlvbihvYnNlcnZlciwgV1RGTW92ZShwb3J0QWxsb2NhdG9yKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGRjYTFjMjI3NWNmOWQ1NjAwN2U4Y2YxZDEyNTE4
ODY4NDE3ZjYxZjQuLjFmNTQ4MDllMDQ2ODI0ZjVlNDU5OWE1ZjJhNzU1NDlhN2VkOWNhNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02MCw4ICs2MCwxMyBAQCBwdWJs
aWM6CiAgICAgLy8gVXNlZCBmb3IgbW9jayB0ZXN0aW5nCiAgICAgc3RhdGljIHZvaWQgc2V0UGVl
ckNvbm5lY3Rpb25GYWN0b3J5KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0
aW9uRmFjdG9yeUludGVyZmFjZT4mJik7CiAKKyAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzKCkgeyBtX2VuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMgPSBmYWxzZTsgfQorICAgIHZvaWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0gdHJ1
ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6TmV0d29ya01hbmFnZXImLCBydGM6
OlBhY2tldFNvY2tldEZhY3RvcnkmKTsKKworICAgIGJvb2wgbV9lbmFibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGQ5
OGQwZWJkMmU1NmMyMmFjODhjMDFiZDkxOGVjYzg1MWU1NmI1YjcuLjczZWNiNjYxMTcxZDJjNmVk
NDRiMWZmMzg2OGZmMGU0YTRlYzZiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTkwLDYgKzkwLDEyIEBAIHZvaWQg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyLmVuY29kZUVudW0odXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bik7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG9ic2VydmVkTGF5b3V0TWlsZXN0b25lcyk7CiAg
ICAgZW5jb2RlciA8PCBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICBlbmNvZGVyIDw8IGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmc7Cisj
aWYgVVNFKExJQldFQlJUQykKKyAgICBlbmNvZGVyIDw8IGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0
d29ya0ludGVyZmFjZXM7CisjZW5kaWYKKyNlbmRpZgogfQogCiBib29sIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0yMDgsNiArMjE0LDE0IEBAIGJvb2wgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUGFn
ZUNyZWF0aW9uUGFyCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm92ZXJyaWRl
Q29udGVudFNlY3VyaXR5UG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgRU5B
QkxFKFdFQl9SVEMpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRpc2FibGVJ
Q0VDYW5kaWRhdGVGaWx0ZXJpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgVVNFKExJ
QldFQlJUQykKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZW5hYmxlRW51bWVy
YXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGE2MjQ0Yjg3NjcyZGI4Y2Jm
YmMxZDljNDhhY2E3ODA4YTZlNjBlYzIuLjViZWQzZmI2MWY2MzE0MmJhMmNlZTlhODI4MjA4YWU0
OGMyZjg5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaApAQCAtMTQ1LDYgKzE0NSwxMyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcyBvYnNlcnZlZExheW91
dE1pbGVzdG9uZXM7CiAKICAgICBTdHJpbmcgb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7
CisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBib29sIGRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmcgeyBmYWxzZSB9OworI2lmIFVTRShMSUJXRUJSVEMpCisgICAgYm9vbCBlbmFibGVFbnVt
ZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKKyNlbmRpZgorI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggYjNkNjQ4MWNmZWMxMzBkYjkwYTJiZDljYzUwMDNlMDJmY2M4NjUw
Zi4uMGZjN2FlNWQzYjE0NmY4Njk0N2JmNmZmMDI2OWJmZjAyYTRkMmM5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1ODksNiArNTU4OSwxNSBAQCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJz
KCkKICAgICBwYXJhbWV0ZXJzLm9ic2VydmVkTGF5b3V0TWlsZXN0b25lcyA9IG1fb2JzZXJ2ZWRM
YXlvdXRNaWxlc3RvbmVzOwogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQ
b2xpY3kgPSBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwogCisjaWYgRU5BQkxFKFdF
Ql9SVEMpCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0aWUgSUNFIGZpbHRlcmluZyB3aXRoIGdl
dFVzZXJNZWRpYSBwZXJtaXNzaW9uLgorICAgIHBhcmFtZXRlcnMuZGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZyA9IHRydWU7CisjaWYgVVNFKExJQldFQlJUQykKKyAgICAvLyBGSVhNRTogVHVy
biBkb3duIG5ldHdvcmsgaW50ZXJmYWNlIGVudW1lcmF0aW9uIGJ5IGRlZmF1bHQuCisgICAgcGFy
YW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0gdHJ1ZTsKKyNl
bmRpZgorI2VuZGlmCisKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGFjODc3ZjY5NGE1MzZl
NzI0MzU2OGI5NzNjNzE5MjMxMjBkMjAyZmMuLmIzMzdiMTBmMWFhNTMwN2RjNjg3Y2NiMTI2ZWVl
NjQ4MTM1N2M1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTU1OCw2ICs1NTgsMTUgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBw
YWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIG1fcGFn
ZS0+c2V0dGluZ3MoKS5zZXRDb250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJveEVuYWJs
ZWQodHJ1ZSk7CiAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHBhcmFtZXRlcnMuc21h
cnRJbnNlcnREZWxldGVFbmFibGVkKTsKICNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisg
ICAgaWYgKHBhcmFtZXRlcnMuZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZykKKyAgICAgICAg
ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworI2lmIFVTRShMSUJXRUJSVEMpCisgICAg
aWYgKHBhcmFtZXRlcnMuZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcykKKyAg
ICAgICAgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOworI2VuZGlmCisj
ZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdlKFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzI0MGJiZDE1NGY4ZjMyMDBlNzgyNzE1ZDQ5MzgwNjMw
YzkxNzI5Yy4uMjFkMTA4ZTU5YTQ3ODAwNzhiNzI5MTFhZjEzZWIzNmI4Nzk1MTRkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC01Nyw2ICs1Nyw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemVIYXNoLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuaD4KQEAgLTExOTMsNiArMTE5NCwxNSBAQCBwcml2YXRlOgog
I2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHZvaWQgZGlzYWJsZUlD
RUNhbmRpZGF0ZUZpbHRlcmluZygpIHsgbV9wYWdlLT5ydGNDb250cm9sbGVyKCkuZGlzYWJsZUlD
RUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CisgICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmcoKSB7IG1fcGFnZS0+cnRjQ29udHJvbGxlcigpLmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZygpOyB9CisjaWYgVVNFKExJQldFQlJUQykKKyAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGlu
Z0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkgeyBtX3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZGlz
YWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsgfQorICAgIHZvaWQgZW5hYmxl
RW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9wYWdlLT5saWJXZWJSVENQcm92
aWRlcigpLmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsgfQorI2VuZGlm
CisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRC
ZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxpbmdUb1dvcmQoY29uc3QgU3Ry
aW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAyMzkzOWMxOTMwZTRm
YzFmZjY2ZTc1MWI2ZjhkMTMwZWNkZjJkMTA5Li5kZjdhYjA2MTRjMGYyMjJhZTgyYTQxOTllNzk2
MTJlZWEyMzM3NTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzA2LDYgKzMwNiwxNSBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
V0VCX1JUQykKKyAgICBEaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKKyAgICBFbmFibGVJ
Q0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQorI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVT
RShMSUJXRUJSVEMpCisgICAgRW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygp
CisgICAgRGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQorI2VuZGlmCisK
ICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302033</attachid>
            <date>2017-02-17 18:39:10 -0800</date>
            <delta_ts>2017-02-17 18:56:16 -0800</delta_ts>
            <desc>Fixing GTK build</desc>
            <filename>bug-168348-20170217183631.patch</filename>
            <type>text/plain</type>
            <size>34946</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJhNDI4MGE3ZDg3MzVi
MGM3NWVmNWMyZmM1YzM5YjEwYjIzMTk2NS4uNGNjZDFjYzRlYTIyOWQzZTI5YmFiNGJkY2FkNjRl
ZGE3OGI3MzRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAyLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJQ0UgY2Fu
ZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0
ZXN0cy4gU2hvdWxkIGJlIGNvdmVyZWQgaW4gdGhlIGZ1dHVyZSBieSBsYXlvdXQgdGVzdHMgd2l0
aCBkZWRpY2F0ZWQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3Ig
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYXQgUlRDUGVlckNvbm5lY3Rpb24gbGV2ZWwuCisgICAg
ICAgIElmIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGlzIG9uIChieSBkZWZhdWx0KSwgaG9zdCBj
YW5kaWRhdGVzIGFyZSBzdG9yZWQgYW5kIG5vdCBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICBS
ZWZsZXhpdmUgY2FuZGlkYXRlcyBhcmUgcHVyZ2VkIGZyb20gcmFkZHIgaW5mb3JtYXRpb24gdG8g
bm90IGxlYWsgdGhlIGhvc3QgSVAgYWRkcmVzcy4KKworICAgICAgICBTdG9yZWQgY2FuZGlkYXRl
cyBtYXkgYmUgYWR2ZXJ0aXNlZCB0byB0aGUgSlMgbGF5ZXIgaWYgUlRDQ29udHJvbGxlciBpcyBu
b3RpZmllZCBvZiBhIGNoYW5nZSBvZiBmaWx0ZXJpbmcgcG9saWN5LgorICAgICAgICBUbyBpbXBs
ZW1lbnQgdGhhdCwgUGVlckNvbm5lY3Rpb25CYWNrZW5kIHN0b3JlcyBhbGwgZmlsdGVyZWQgb3V0
IGNhbmRpZGF0ZXMgYW5kIFJUQ1BlZXJDb25uZWN0aW9uIHJlZ2lzdGVyCisgICAgICAgIHRoZW1z
ZWx2ZXMgdG8gUlRDQ29udHJvbGxlciB0byBnZXQgbm90aWZpY2F0aW9ucyBvZiBmaWx0ZXJpbmcg
cG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgTWFraW5nIFJUQ1BlZXJDb25uZWN0aW9uIHVzZSBz
ZXRQZW5kaW5nQWN0aXZpdHkgdGhyb3VnaG91dCBpdHMgbGlmZXRpbWUuCisgICAgICAgIFRoaXMg
ZW5zdXJlcyBpdCBkb2VzIG5vdCBnZXQgY29sbGVjdGVkIHVudGlsIHRoZSBwYWdlIGlzIG9mZiBv
ciBjbG9zZSgpIGlzIGNhbGxlZCBvbiB0aGUgb2JqZWN0LgorCisgICAgICAgIEFkZGluZyBzdXBw
b3J0IGZvciBlbnVtZXJhdGluZyBvciBub3QgYWxsIGludGVyZmFjZXMgYXQgbGlid2VicnRjIGxl
dmVsLgorICAgICAgICBUaGlzIGNob2ljZSBpcyBkb25lIGF0IGNyZWF0aW9uIG9mIHRoZSBwZWVy
IGNvbm5lY3Rpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsdGVySUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UlRDQ29u
dHJvbGxlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmFkZCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9s
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJ0Y0NvbnRyb2xsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlZ2lzdGVyVG9Db250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uSWNlQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpydGNDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoK
KwogMjAxNy0wMi0xNyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSVEw6IEluc3BlY3RvciB3aW5kb3cgc2hvdWxkIGRvY2sgdG8gdGhlIGxl
ZnQgd2hlbiB1c2luZyBSVEwgbGF5b3V0IGRpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDUyYjM5NWM3
OTZlNDEwMGYxZDdjYzFkZDBmZjM5NjgyNTU0NzFlNGYuLmI2Mjg0MjQyNTRkYjI0ZjQ0YTRkZWVk
NGQ2ZGY3ZDYzNjQwYmM2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNy0wMi0x
NyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10g
SUNFIGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGZpbHRlcmVkIGFjY29yZGluZyBhIHBvbGljeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MzQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIHRoZSBw
b3NzaWJpbGl0eSBmb3IgdGhlIFVJIHByb2Nlc3MgdG8gY29udHJvbCB0aGUgSUNFIGNhbmRpZGF0
ZSBmaWx0ZXJpbmcgYW5kIHdoZXRoZXIgbGlid2VicnRjIGNhbgorICAgICAgICBlbnVtZXJhdGUg
YWxsIGludGVyZmFjZXMgb3Igbm90LgorCisgICAgICAgIERpc2FibGluZyBJQ0UgY2FuZGlkYXRl
IGZpbHRlcmluZyBmb3IgdGhlIG1vbWVudC4KKyAgICAgICAgRW5hYmxpbmcgdG8gZW51bWVyYXRl
IGFsbCBpbnRlcmZhY2VzIGZvciB0aGUgbW9tZW50LgorCisgICAgICAgIEluIHRoZSBmdXR1cmUs
IElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIHNob3VsZCBiZSB0aWVkIHRvIGdldFVzZXJNZWRpYS4K
KyAgICAgICAgSW50ZXJmYWNlIGVudW1lcmF0aW9uIHNob3VsZCBiZSBkaXNhYmxlZCB3aXRoIHRo
ZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uCisgICAgICAgIFdlIHNob3VsZCBkbyB0aGF0IG9uY2Ug
d2UgaGF2ZSBzdWZmaWNpZW50IHRlc3RpbmcgaW4gdmFyaW91cyBuZXR3b3JrIGluZnJhc3RydWN0
dXJlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKToKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpc2FibGVFbnVtZXJh
dGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZW5h
YmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTctMDItMTcgIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUlRMOiBJbnNwZWN0
b3Igd2luZG93IHNob3VsZCBkb2NrIHRvIHRoZSBsZWZ0IHdoZW4gdXNpbmcgUlRMIGxheW91dCBk
aXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWEyOGM3MzYxNzBlYjg5YjE3ZmExMjVi
ZDViOGEzY2RmZWE3MDA0MC4uZTk0ZTA5MDNjZjBjZWU3MjVkNjljYmUzZTgzNWUzYjA1ZTBjYTNk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkxMCw2ICs5MTAsNyBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3Bw
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuY3BwCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRFRNRlNlbmRlci5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hh
bmdlRXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBiYTJkNDNmZDI3MjE4YzcwN2U3YzRjNTRmNGYz
ZWRkM2YyMzBjMWJjLi5kNzc1ZmU4ODMwZDhjYjE5ZDdhNjYzNThmZGFmMDg3ZGRkZjIxZWEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Q
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUlRD
SWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKICNpbmNs
dWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNjksNiArMjcwLDYzIEBAIHZvaWQg
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0lj
ZUNhbmRpZGF0ZT4mJiBjYW5kCiAgICAgbV9wZWVyQ29ubmVjdGlvbi5maXJlRXZlbnQoUlRDSWNl
Q2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIFdURk1vdmUoY2FuZGlkYXRlKSkp
OwogfQogCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKCkKK3sKKyAgICBtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMgPSB0cnVlOworfQor
Cit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmlu
ZygpCit7CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gZmFsc2U7CisgICAgZm9y
IChhdXRvJiBwZW5kaW5nSUNFQ2FuZGlkYXRlIDogbV9wZW5kaW5nSUNFQ2FuZGlkYXRlcykKKyAg
ICAgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1v
dmUocGVuZGluZ0lDRUNhbmRpZGF0ZS5zZHApLCBXVEZNb3ZlKHBlbmRpbmdJQ0VDYW5kaWRhdGUu
bWlkKSwgMCkpOworICAgIG1fcGVuZGluZ0lDRUNhbmRpZGF0ZXMuY2xlYXIoKTsKK30KKworc3Rh
dGljIGlubGluZSBTdHJpbmcgZmlsdGVySUNFQ2FuZGlkYXRlKFN0cmluZyYmIHNkcCkKK3sKKyAg
ICBBU1NFUlQoIXNkcC5jb250YWlucygiIGhvc3QgIikpOworCisgICAgaWYgKCFzZHAuY29udGFp
bnMoIiByYWRkciAiKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoc2RwKTsKKworICAgIFZlY3Rv
cjxTdHJpbmc+IGl0ZW1zOworICAgIHNkcC5zcGxpdCgnICcsIGl0ZW1zKTsKKworICAgIGJvb2wg
c2tpcE5leHRJdGVtID0gZmFsc2U7CisgICAgYm9vbCBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICBTdHJp
bmdCdWlsZGVyIGZpbHRlcmVkU0RQOworICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKSB7Cisg
ICAgICAgIGlmIChza2lwTmV4dEl0ZW0pIHsKKyAgICAgICAgICAgIHNraXBOZXh0SXRlbSA9IGZh
bHNlOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZW0g
PT0gInJhZGRyIiB8fCBpdGVtID09ICJycG9ydCIpIHsKKyAgICAgICAgICAgIHNraXBOZXh0SXRl
bSA9IHRydWU7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
aXNGaXJzdCkKKyAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCIgIik7CisgICAgICAgIGZpbHRlcmVkU0RQLmFw
cGVuZChpdGVtKTsKKyAgICB9CisgICAgcmV0dXJuIGZpbHRlcmVkU0RQLnRvU3RyaW5nKCk7Cit9
CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYg
c2RwLCBTdHJpbmcmJiBtaWQpCit7CisgICAgaWYgKCFtX3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0
ZXMpIHsKKyAgICAgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3Jl
YXRlKFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQpLCAwKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgaWYgKHNkcC5jb250YWlucygiIGhvc3QgIikpIHsKKyAgICAgICAgbV9wZW5kaW5n
SUNFQ2FuZGlkYXRlcy5hcHBlbmQoUGVuZGluZ0lDRUNhbmRpZGF0ZSB7IFdURk1vdmUoc2RwKSwg
V1RGTW92ZShtaWQpfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZmlyZUlDRUNhbmRp
ZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKGZpbHRlcklDRUNhbmRpZGF0ZShXVEZN
b3ZlKHNkcCkpLCBXVEZNb3ZlKG1pZCksIDApKTsKK30KKwogdm9pZCBQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OmRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Q
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggNWRmN2RiNDU0OTljNjk1MjQxZDRhMWUy
Yjg4MGQ3MzM0N2I0ZGNhZC4uNjE5NTE4YmFmOTA2ZTA3ODZmMzYyZTZhNTg1ZjgwOWNmNzFhODg3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0xMDEsNiArMTAxLDEwIEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlv
bikgPSAwOwogCisgICAgdm9pZCBuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcm
JiBtaWQpOworICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIHZv
aWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisKIHByb3RlY3RlZDoKICAgICB2b2lk
IGZpcmVJQ0VDYW5kaWRhdGVFdmVudChSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiYmKTsKICAgICB2
b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCk7CkBAIC0xMzcsNyArMTQxLDE1IEBAIHByaXZh
dGU6CiAgICAgc3RkOjpvcHRpb25hbDxQZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9u
UHJvbWlzZT4gbV9vZmZlckFuc3dlclByb21pc2U7CiAgICAgc3RkOjpvcHRpb25hbDxET01Qcm9t
aXNlPHZvaWQ+PiBtX3NldERlc2NyaXB0aW9uUHJvbWlzZTsKICAgICBzdGQ6Om9wdGlvbmFsPERP
TVByb21pc2U8dm9pZD4+IG1fYWRkSWNlQ2FuZGlkYXRlUHJvbWlzZTsKLSAgICAKKworICAgIGJv
b2wgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzIHsgdHJ1ZSB9OworICAgIHN0cnVjdCBQZW5k
aW5nSUNFQ2FuZGlkYXRlIHsKKyAgICAgICAgLy8gRmllbGRzIGRlc2NyaWJlZCBpbiBodHRwczov
L3d3dy53My5vcmcvVFIvd2VicnRjLyNpZGwtZGVmLXJ0Y2ljZWNhbmRpZGF0ZWluaXQuCisgICAg
ICAgIFN0cmluZyBzZHA7CisgICAgICAgIFN0cmluZyBtaWQ7CisgICAgfTsKKyAgICBWZWN0b3I8
UGVuZGluZ0lDRUNhbmRpZGF0ZT4gbV9wZW5kaW5nSUNFQ2FuZGlkYXRlczsKKwogICAgIGJvb2wg
bV9uZWdvdGlhdGlvbk5lZWRlZCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MTU1NWMyYWRkMmM3YWVjMzkwYWU2YjY1YjA0ZWJiYmYyNWY4OGIzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcApA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSVENDb250cm9sbGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUg
IlJUQ1BlZXJDb25uZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBSVEND
b250cm9sbGVyOjpyZW1vdmUoUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAg
bV9wZWVyQ29ubmVjdGlvbnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJmNvbm5lY3Rpb25dKGF1dG8g
aXRlbSkgeworICAgICAgICByZXR1cm4gJmNvbm5lY3Rpb24gPT0gJml0ZW0uZ2V0KCk7CisgICAg
fSk7Cit9CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6YWRkKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKQoreworICAgIG1fcGVlckNvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uKTsKKyAg
ICBpZiAoIW1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcykKKyAgICAgICAgY29ubmVjdGlvbi5k
aXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cit9CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6
ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VD
YW5kaWRhdGVzID0gZmFsc2U7CisgICAgZm9yIChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlv
biA6IG1fcGVlckNvbm5lY3Rpb25zKQorICAgICAgICBjb25uZWN0aW9uLmRpc2FibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKTsKK30KKwordm9pZCBSVENDb250cm9sbGVyOjplbmFibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKQoreworICAgIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyA9IHRy
dWU7CisgICAgZm9yIChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiA6IG1fcGVlckNvbm5l
Y3Rpb25zKQorICAgICAgICBjb25uZWN0aW9uLmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NzM5YTc4NjhhODNhN2VkZTA1ZDljNmY1Nzk1ZTNlN2YyYzkzODQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmgKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENQZWVyQ29ubmVj
dGlvbjsKKworY2xhc3MgUlRDQ29udHJvbGxlciB7CitwdWJsaWM6CisgICAgUlRDQ29udHJvbGxl
cigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHZvaWQgYWRkKFJUQ1Bl
ZXJDb25uZWN0aW9uJik7CisgICAgdm9pZCByZW1vdmUoUlRDUGVlckNvbm5lY3Rpb24mKTsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisK
K3ByaXZhdGU6CisgICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UlRDUGVlckNvbm5l
Y3Rpb24+PiBtX3BlZXJDb25uZWN0aW9uczsKKyAgICBib29sIG1fc2hvdWxkRmlsdGVySUNFQ2Fu
ZGlkYXRlcyB7IHRydWUgfTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcAppbmRleCA4ZTRkY2IxMTMzYmJkZmM1MTIwMzg4MTQwNWJjNDY1YWQ0NThl
YTZhLi4xZjhkZGQwYjExMmZlY2M3ODlkNWJhNDAwMDdiNjhkZGI3ODNjODVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmNwcApAQCAtNDIsNyArNDIsOSBAQAogI2luY2x1ZGUgIk1lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bVRyYWNrLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJUQ0NvbmZpZ3VyYXRpb24u
aCIKKyNpbmNsdWRlICJSVENDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWwu
aCIKICNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGUuaCIKICNpbmNsdWRlICJSVENJY2VDYW5kaWRh
dGVFdmVudC5oIgpAQCAtNjIsNyArNjQsMTIgQEAgUmVmPFJUQ1BlZXJDb25uZWN0aW9uPiBSVENQ
ZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQKIHsK
ICAgICBSZWY8UlRDUGVlckNvbm5lY3Rpb24+IHBlZXJDb25uZWN0aW9uID0gYWRvcHRSZWYoKm5l
dyBSVENQZWVyQ29ubmVjdGlvbihjb250ZXh0KSk7CiAgICAgcGVlckNvbm5lY3Rpb24tPnN1c3Bl
bmRJZk5lZWRlZCgpOwotCisgICAgLy8gUlRDUGVlckNvbm5lY3Rpb24gbWF5IHNlbmQgZXZlbnRz
IGF0IGFib3V0IGFueSB0aW1lIGR1cmluZyBpdHMgbGlmZXRpbWUuCisgICAgLy8gTGV0J3MgbWFr
ZSBpdCB1bmNvbGxlY3RhYmxlIHVudGlsIHRoZSBwYyBpcyBjbG9zZWQgYnkgSlMgb3IgdGhlIHBh
Z2Ugc3RvcHMgaXQuCisgICAgaWYgKHBlZXJDb25uZWN0aW9uLT5tX3NpZ25hbGluZ1N0YXRlICE9
IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKKyAgICAgICAgcGVlckNvbm5lY3Rpb24tPnNldFBl
bmRpbmdBY3Rpdml0eShwZWVyQ29ubmVjdGlvbi5wdHIoKSk7CisgICAgICAgIHBlZXJDb25uZWN0
aW9uLT5yZWdpc3RlclRvQ29udHJvbGxlcigpOworICAgIH0KICAgICByZXR1cm4gcGVlckNvbm5l
Y3Rpb247CiB9CiAKQEAgLTQxMiw2ICs0MTksOSBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpj
bG9zZSgpCiAKICAgICBmb3IgKFJUQ1J0cFNlbmRlciYgc2VuZGVyIDogbV90cmFuc2NlaXZlclNl
dC0+c2VuZGVycygpKQogICAgICAgICBzZW5kZXIuc3RvcCgpOworCisgICAgdW5yZWdpc3RlckZy
b21Db250cm9sbGVyKCk7CisgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiB9CiAKIHZv
aWQgUlRDUGVlckNvbm5lY3Rpb246OmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYg
YWN0aW9uKQpAQCAtNDI0LDYgKzQzNCwyNCBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzdG9w
KCkKICAgICBjbG9zZSgpOwogfQogCitSVENDb250cm9sbGVyJiBSVENQZWVyQ29ubmVjdGlvbjo6
cnRjQ29udHJvbGxlcigpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKKyAg
ICBhdXRvKiBwYWdlID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpLT5wYWdlKCk7CisgICAgcmV0dXJuIHBhZ2UtPnJ0Y0NvbnRyb2xsZXIoKTsKK30KKwor
dm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJUb0NvbnRyb2xsZXIoKQoreworICAgIHJ0
Y0NvbnRyb2xsZXIoKS5hZGQoKnRoaXMpOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjp1
bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIoKQoreworICAgIHJ0Y0NvbnRyb2xsZXIoKS5yZW1vdmUo
KnRoaXMpOworfQorCiBjb25zdCBjaGFyKiBSVENQZWVyQ29ubmVjdGlvbjo6YWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJSVENQZWVyQ29ubmVjdGlvbiI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmgKaW5kZXggYTEwYWFlYjRjNDBhN2M0YWJjYjRmYWM2ZDZhNTkwYzQ5ZWI0M2Y5YS4uMmMw
NTYyZTM4MjRlMDU0YjViYTg2ZDkxNzA1NjkwMTU5ZTFiZmY5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAt
NDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtVHJh
Y2s7CiBjbGFzcyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ7CitjbGFzcyBSVENDb250cm9sbGVyOwog
Y2xhc3MgUlRDSWNlQ2FuZGlkYXRlOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25FcnJvckNhbGxi
YWNrOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwpAQCAtMTM2LDExICsxMzcsMTggQEAg
cHVibGljOgogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZSBpbnRl
cm5hbEljZUdhdGhlcmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pY2VHYXRoZXJpbmdTdGF0
ZTsgfQogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGUgaW50ZXJu
YWxJY2VDb25uZWN0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2ljZUNvbm5lY3Rpb25TdGF0
ZTsgfQogCisgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tl
bmQtPmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsgfQorICAgIHZvaWQgZW5hYmxlSUNF
Q2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQtPmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZygpOyB9CisKIHByaXZhdGU6CiAgICAgUlRDUGVlckNvbm5lY3Rpb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwogCiAgICAgdm9pZCBjb21wbGV0ZUFkZFRyYW5zY2VpdmVyKFJUQ1J0cFRy
YW5zY2VpdmVyJiwgY29uc3QgUnRwVHJhbnNjZWl2ZXJJbml0Jik7CiAKKyAgICBSVENDb250cm9s
bGVyJiBydGNDb250cm9sbGVyKCk7CisgICAgdm9pZCByZWdpc3RlclRvQ29udHJvbGxlcigpOwor
ICAgIHZvaWQgdW5yZWdpc3RlckZyb21Db250cm9sbGVyKCk7CisKICAgICAvLyBFdmVudFRhcmdl
dCBpbXBsZW1lbnRhdGlvbi4KICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYo
KTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAppbmRleCBlNDZjMzFjNGVk
MGIxZGQzNDk5NmY4NWYyMjYyODc2NDg0NTEyOGNlLi44ZTJmNzZiM2YzMTg2ZmFkOTk4MzE4ZDJi
MjE5ODE4MWZkM2U3N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBv
aW50LmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5o
IgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxF
dmVudC5oIgotI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZS5oIgogI2luY2x1ZGUgIlJUQ1BlZXJD
b25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiUlRDVHJhY2tFdmVudC5oIgpAQCAtNDQ2LDcgKzQ0NSw3IEBAIHZvaWQgTGliV2ViUlRDTWVk
aWFFbmRwb2ludDo6T25JY2VDYW5kaWRhdGUoY29uc3Qgd2VicnRjOjpJY2VDYW5kaWRhdGVJbnRl
cmZhY2UKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIG1pZCA9IFdURk1vdmUoY2FuZGlkYXRlTWlkKSwgc2RwID0gV1RGTW92ZShjYW5kaWRhdGVT
RFApXSB7CiAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5pc1N0b3BwZWQoKSkKICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFN0cmluZyhz
ZHApLCBTdHJpbmcobWlkKSwgMCkpOworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25u
ZWN0aW9uQmFja2VuZC5uZXdJQ0VDYW5kaWRhdGUoU3RyaW5nKHNkcCksIFN0cmluZyhtaWQpKTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggYzhhMzgyYzViYTFjMDIyNzM4NzcxMmRlYmQyNzA1N2M5
NWRlMzVmNS4uMjJkOGM3OWUzMTJhMTI4OTkwZDMwNWU1NjFkZGNlNjM4NTIxYjExOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CkBAIC03MSw5ICs3MSw2IEBAIHN0YXRpYyB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNl
OjpSVENDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb25Gcm9tTWVkaWFFCiB7CiAgICAgd2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiBydGNDb25maWd1cmF0
aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb25UeXBl
OjprQWdncmVzc2l2ZSk7CiAKLSAgICBpZiAoY29uZmlndXJhdGlvbi5pY2VUcmFuc3BvcnRQb2xp
Y3kgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFBvbGljeTo6UmVsYXkpCi0g
ICAgICAgIHJ0Y0NvbmZpZ3VyYXRpb24udHlwZSA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRl
cmZhY2U6OmtSZWxheTsKLQogICAgIGlmIChjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSA9PSBQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6QnVuZGxlUG9saWN5OjpNYXhCdW5kbGUpCiAgICAgICAgIHJ0
Y0NvbmZpZ3VyYXRpb24uYnVuZGxlX3BvbGljeSA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRl
cmZhY2U6OmtCdW5kbGVQb2xpY3lNYXhCdW5kbGU7CiAgICAgZWxzZSBpZiAoY29uZmlndXJhdGlv
bi5idW5kbGVQb2xpY3kgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkJ1bmRsZVBvbGljeTo6TWF4
Q29tcGF0KQpAQCAtOTMsNiArOTAsOCBAQCBzdGF0aWMgd2VicnRjOjpQZWVyQ29ubmVjdGlvbklu
dGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uRnJvbU1lZGlhRQogCiB2b2lk
IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0Q29uZmlndXJhdGlvbihNZWRpYUVu
ZHBvaW50Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CisgICAgaWYgKGNvbmZpZ3Vy
YXRpb24uaWNlVHJhbnNwb3J0UG9saWN5ID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VUcmFu
c3BvcnRQb2xpY3k6OlJlbGF5KQorICAgICAgICBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5n
KCk7CiAgICAgbV9lbmRwb2ludC0+YmFja2VuZCgpLlNldENvbmZpZ3VyYXRpb24oY29uZmlndXJh
dGlvbkZyb21NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24p
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBhNDU4OGI5Njc1ZjAyOTEzOTdhMTcyMDA0MWQwYzQ4YzlhODRmMTMxLi5l
NTFiYmMxNWY1MjE2ZGEyZjY0MWUyYjFlZWUwMTcxNTk0ZDAzM2ZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTgwLDYgKzE1
ODAsOCBAQAogCQk0MTdEQTcxRTEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNzFDMTM3MzVE
RkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oICovOyB9OwogCQk0MTgxNUMxRTEzODMxOTgzMDA1
N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODE1QzFDMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwICovOyB9OwogCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2Vi
Q29yZVRlc3RTdXBwb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTgxNUMxRDEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4MjA1
NDcxRTUzRTk4QzAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBS
VENDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNDE4MjA1NDkxRTUzRUFCMDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MjA1NDgxRTUz
RUFBRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwICovOyB9OwogCQk0MTg4NUI5MzExQjZG
REE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3Vi
bWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4NUI5MjExQjZGREE2
MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwICovOyB9OwogCQk0MThBMDZEMDEzM0MwNEQ1
MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZDRTEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNw
YXRjaGVyLmggKi87IH07CkBAIC04ODMxLDYgKzg4MzMsOCBAQAogCQk0MTgxNUMxQzEzODMxOTgz
MDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxODE1QzFEMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBv
cnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODE3MDdEMTM4NkVERjIwMDU3QUFB
NCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTgyMDU0NTFFNTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENDb250cm9sbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250
cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0NvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4NUI5MTExQjZGREE2
MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9ybVN1Ym1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4
ODVCOTIxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QTA2Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0
Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudERpc3BhdGNoZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MzU2LDYgKzE1MzYwLDggQEAKIAkJ
CQkwNzIyMUI2NjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAgKi8s
CiAJCQkJMDcyMjFCNjcxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaCAq
LywKIAkJCQkwNzIyMUI2ODE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5p
ZGwgKi8sCisJCQkJNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAq
LywKKwkJCQk0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJMDcyMjFCNjkxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RUTUZTZW5kZXIuY3BwICovLAog
CQkJCTA3MjIxQjZBMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENEVE1GU2VuZGVyLmggKi8sCiAJCQkJ
MDcyMjFCNkIxN0NFQzMyNzAwODQ4RTUxIC8qIFJUQ0RUTUZTZW5kZXIuaWRsICovLApAQCAtMjY1
MzUsNiArMjY1NDEsNyBAQAogCQkJCUFENzI2RkVGMTZEQTExRjUwMDNBNEU2RCAvKiBKU0NTU1J1
bGVDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RDA1RkE4MEEyM0IzMDEwMDVFNzIwMyAv
KiBKU0NTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDIwMTFCNzBBMDAzMTMzMDA4
MzAzRjkgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTgy
MDU0NzFFNTNFOThDMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUQ3MjZGRUQxNkRBMTE3MTAwM0E0RTZEIC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3Rv
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NkMyMDcwQzBERENBMTAwMjBDRkMzIC8qIEpTQ1NT
U3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0M1QkUwMTBDMEU5MzExMDAxMUMyREIg
LyogSlNDU1NTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKQEAgLTMwNDY5LDYgKzMwNDc2LDcg
QEAKIAkJCQlCQzRFREVGNDBDMDhGM0ZCMDA3RURENDkgLyogSlNIVE1MQXBwbGV0RWxlbWVudEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUUyQUExRTBBMUNEQUI0MDBCNDJCMjUgLyog
SlNIVE1MQXJlYUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M5REJGRUQxQTlDNDlC
MTAwMEQ2QjI1IC8qIEpTSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTQxODIwNTQ5MUU1M0VBQjAwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUU0NDYxNDM3MENENjg5QzQwMEZBREE3NSAvKiBKU0hUTUxBdWRpb0VsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdCMTIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpT
SFRNTEJhc2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTJBQTIyMEExQ0RBQjQw
MEI0MkIyNSAvKiBKU0hUTUxCb2R5RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBhODczYzE3NGQy
N2VjZGMxZjIzMjY5YzM2YzhhN2NiMzI5ZmY3ZWMwLi42ZWIzZjgxZTlmN2M0YWZlZDc1NDZhZjI0
MGQyODI4ZmMwOTg3ZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRp
b24uaCIKICNpbmNsdWRlICJQb2x5Z29uU2hhcGUuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50
LmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDRlMThmZGJkMjU3N2NiNWUzYWMyODU4M2E1ZjBh
OTdjN2E1YTdjMDYuLjQwZjFjMDMxMGE5ZDk4YWRjMzkxMWM3ZDZmN2NjNzU3YTA1ODg1OTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlT
dGF0ZS5oIgogI2luY2x1ZGUgIlBhZ2luYXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVl
bi5oIgorI2luY2x1ZGUgIlJUQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNp
bmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlNlc3Npb25JRC5oIgpAQCAtMjIzLDYg
KzIyNCw3IEBAIHB1YmxpYzoKICAgICBQb2ludGVyTG9ja0NvbnRyb2xsZXImIHBvaW50ZXJMb2Nr
Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuICptX3BvaW50ZXJMb2NrQ29udHJvbGxlcjsgfQog
I2VuZGlmCiAgICAgTGliV2ViUlRDUHJvdmlkZXImIGxpYldlYlJUQ1Byb3ZpZGVyKCkgeyByZXR1
cm4gbV9saWJXZWJSVENQcm92aWRlci5nZXQoKTsgfQorICAgIFJUQ0NvbnRyb2xsZXImIHJ0Y0Nv
bnRyb2xsZXIoKSB7IHJldHVybiBtX3J0Y0NvbnRyb2xsZXI7IH0KIAogICAgIFZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50KiB2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuZ2V0KCk7IH0KICAgICB2b2lkIHVwZGF0ZVZhbGlkYXRp
b25CdWJibGVTdGF0ZUlmTmVlZGVkKCk7CkBAIC02NDAsNiArNjQyLDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IG1fd2ViR0xTdGF0ZVRyYWNrZXI7
CiAKICAgICBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+IG1fbGliV2ViUlRDUHJvdmlkZXI7
CisgICAgUlRDQ29udHJvbGxlciBtX3J0Y0NvbnRyb2xsZXI7CiAKICAgICBpbnQgbV9uZXN0ZWRS
dW5Mb29wQ291bnQgeyAwIH07CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IG1fdW5uZXN0Q2Fs
bGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAwMDk1YzUx
N2YwZjdlMGM0M2ViODY2Mjc5MWEwMTM1MzEyZWU4NTg2Li40MjhmODQ5Yzc1ODE1MmMyMGM0NGY5
ZTk4NmFhZDdlMzJmMzZmN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHAKQEAgLTE0OSw3ICsxNDksMTAgQEAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNv
bm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWUKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxjcmlja2V0OjpCYXNpY1BvcnRBbGxvY2F0b3I+IHBvcnRBbGxvY2F0b3I7
CiAgICAgc3RhdGljRmFjdG9yeUFuZFRocmVhZHMoKS5zaWduYWxpbmdUaHJlYWQtPkludm9rZTx2
b2lkPihSVENfRlJPTV9IRVJFLCBbJl0oKSB7Ci0gICAgICAgIHBvcnRBbGxvY2F0b3IucmVzZXQo
bmV3IGNyaWNrZXQ6OkJhc2ljUG9ydEFsbG9jYXRvcigmbmV0d29ya01hbmFnZXIsICZwYWNrZXRT
b2NrZXRGYWN0b3J5KSk7CisgICAgICAgIGF1dG8gYmFzaWNQb3J0QWxsb2NhdG9yID0gc3RkOjpt
YWtlX3VuaXF1ZTxjcmlja2V0OjpCYXNpY1BvcnRBbGxvY2F0b3I+KCZuZXR3b3JrTWFuYWdlciwg
JnBhY2tldFNvY2tldEZhY3RvcnkpOworICAgICAgICBpZiAoIW1fZW5hYmxlRW51bWVyYXRpbmdB
bGxOZXR3b3JrSW50ZXJmYWNlcykKKyAgICAgICAgICAgIGJhc2ljUG9ydEFsbG9jYXRvci0+c2V0
X2ZsYWdzKGJhc2ljUG9ydEFsbG9jYXRvci0+ZmxhZ3MoKSB8IGNyaWNrZXQ6OlBPUlRBTExPQ0FU
T1JfRElTQUJMRV9BREFQVEVSX0VOVU1FUkFUSU9OKTsKKyAgICAgICAgcG9ydEFsbG9jYXRvciA9
IFdURk1vdmUoYmFzaWNQb3J0QWxsb2NhdG9yKTsKICAgICB9KTsKIAogICAgIHJldHVybiBjcmVh
dGVBY3R1YWxQZWVyQ29ubmVjdGlvbihvYnNlcnZlciwgV1RGTW92ZShwb3J0QWxsb2NhdG9yKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGRjYTFjMjI3NWNmOWQ1NjAw
N2U4Y2YxZDEyNTE4ODY4NDE3ZjYxZjQuLjFmNTQ4MDllMDQ2ODI0ZjVlNDU5OWE1ZjJhNzU1NDlh
N2VkOWNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02MCw4ICs2
MCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gVXNlZCBmb3IgbW9jayB0ZXN0aW5nCiAgICAgc3RhdGlj
IHZvaWQgc2V0UGVlckNvbm5lY3Rpb25GYWN0b3J5KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6
OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZT4mJik7CiAKKyAgICB2b2lkIGRpc2FibGVF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkgeyBtX2VuYWJsZUVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXMgPSBmYWxzZTsgfQorICAgIHZvaWQgZW5hYmxlRW51bWVyYXRpbmdB
bGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRl
cmZhY2VzID0gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJD
b25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6TmV0d29ya01h
bmFnZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkmKTsKKworICAgIGJvb2wgbV9lbmFibGVF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IGQ5OGQwZWJkMmU1NmMyMmFjODhjMDFiZDkxOGVjYzg1MWU1NmI1YjcuLjczZWNi
NjYxMTcxZDJjNmVkNDRiMWZmMzg2OGZmMGU0YTRlYzZiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTkwLDYgKzkw
LDEyIEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyLmVuY29kZUVudW0odXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbik7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG9ic2VydmVkTGF5b3V0TWls
ZXN0b25lcyk7CiAgICAgZW5jb2RlciA8PCBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsK
KyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBlbmNvZGVyIDw8IGRpc2FibGVJQ0VDYW5kaWRhdGVG
aWx0ZXJpbmc7CisjaWYgVVNFKExJQldFQlJUQykKKyAgICBlbmNvZGVyIDw8IGVuYWJsZUVudW1l
cmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXM7CisjZW5kaWYKKyNlbmRpZgogfQogCiBib29sIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0yMDgsNiArMjE0LDE0IEBA
IGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgV2ViUGFnZUNyZWF0aW9uUGFyCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLm92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisjaWYgVVNFKExJQldFQlJUQykKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
ZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcykpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGE2MjQ0
Yjg3NjcyZGI4Y2JmYmMxZDljNDhhY2E3ODA4YTZlNjBlYzIuLjViZWQzZmI2MWY2MzE0MmJhMmNl
ZTlhODI4MjA4YWU0OGMyZjg5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTQ1LDYgKzE0NSwxMyBAQCBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcyBv
YnNlcnZlZExheW91dE1pbGVzdG9uZXM7CiAKICAgICBTdHJpbmcgb3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3k7CisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBib29sIGRpc2FibGVJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcgeyBmYWxzZSB9OworI2lmIFVTRShMSUJXRUJSVEMpCisgICAgYm9v
bCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKKyNlbmRp
ZgorI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjNkNjQ4MWNmZWMxMzBkYjkwYTJiZDljYzUw
MDNlMDJmY2M4NjUwZi4uMGZjN2FlNWQzYjE0NmY4Njk0N2JmNmZmMDI2OWJmZjAyYTRkMmM5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1ODksNiAr
NTU4OSwxNSBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRp
b25QYXJhbWV0ZXJzKCkKICAgICBwYXJhbWV0ZXJzLm9ic2VydmVkTGF5b3V0TWlsZXN0b25lcyA9
IG1fb2JzZXJ2ZWRMYXlvdXRNaWxlc3RvbmVzOwogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVDb250
ZW50U2VjdXJpdHlQb2xpY3kgPSBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwogCisj
aWYgRU5BQkxFKFdFQl9SVEMpCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0aWUgSUNFIGZpbHRl
cmluZyB3aXRoIGdldFVzZXJNZWRpYSBwZXJtaXNzaW9uLgorICAgIHBhcmFtZXRlcnMuZGlzYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyA9IHRydWU7CisjaWYgVVNFKExJQldFQlJUQykKKyAgICAv
LyBGSVhNRTogVHVybiBkb3duIG5ldHdvcmsgaW50ZXJmYWNlIGVudW1lcmF0aW9uIGJ5IGRlZmF1
bHQuCisgICAgcGFyYW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
ID0gdHJ1ZTsKKyNlbmRpZgorI2VuZGlmCisKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE1
MTc1YzAzZDlkYzQ4N2JlZjY0MDZiNzExZTMxNWEzMjQ3MmM0OGUuLjE3YTNkZTUyYjNlYTM4NDFh
ZWFlYTM5MjJiYWQyNzQ0YTVlYTdlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU1OCw2ICs1NTgsMTUgQEAgV2ViUGFnZTo6V2ViUGFn
ZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRDb250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50
U2FuZGJveEVuYWJsZWQodHJ1ZSk7CiAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHBh
cmFtZXRlcnMuc21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKICNlbmRpZgorCisjaWYgRU5BQkxF
KFdFQl9SVEMpCisgICAgaWYgKHBhcmFtZXRlcnMuZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmlu
ZykKKyAgICAgICAgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworI2lmIFVTRShMSUJX
RUJSVEMpCisgICAgaWYgKHBhcmFtZXRlcnMuZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcykKKyAgICAgICAgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygp
OworI2VuZGlmCisjZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdl
KFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNjU4Y2RhNDZhNDhmYjc0Zjk0MzNk
NWVlMTU5MTJmY2E3OTQ0MmE0Zi4uOGZjNTgzYTEwMjYwYWM1M2Q3MTU1MjM4MDM2ZThjMmY0NTAx
OWVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemVI
YXNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaD4KQEAgLTExODQsNiArMTE4NSwxNSBA
QCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIHZv
aWQgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIHsgbV9wYWdlLT5ydGNDb250cm9sbGVy
KCkuZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CisgICAgdm9pZCBlbmFibGVJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcoKSB7IG1fcGFnZS0+cnRjQ29udHJvbGxlcigpLmVuYWJsZUlDRUNh
bmRpZGF0ZUZpbHRlcmluZygpOyB9CisjaWYgVVNFKExJQldFQlJUQykKKyAgICB2b2lkIGRpc2Fi
bGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkgeyBtX3BhZ2UtPmxpYldlYlJUQ1By
b3ZpZGVyKCkuZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsgfQorICAg
IHZvaWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9wYWdlLT5s
aWJXZWJSVENQcm92aWRlcigpLmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMo
KTsgfQorI2VuZGlmCisjZW5kaWYKKwogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5n
KGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxpbmdUb1dv
cmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICNpZiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBm
YjMwYmU1ZTdmN2MwZWI4OTRiM2Y1NmQ5N2UwOWE4MGQ1NmEzMjhkLi4zYzVhNWRjNDA4ZmIzOTBi
ZWI4OGIzODY1OWNkNWQ4YmMyNDAxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzA2LDYgKzMwNiwxNSBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBEaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkK
KyAgICBFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQorI2VuZGlmCisjaWYgRU5BQkxFKFdF
Ql9SVEMpICYmIFVTRShMSUJXRUJSVEMpCisgICAgRW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3Jr
SW50ZXJmYWNlcygpCisgICAgRGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMo
KQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302035</attachid>
            <date>2017-02-17 18:56:21 -0800</date>
            <delta_ts>2017-02-21 13:30:48 -0800</delta_ts>
            <desc>Fixing relay comment</desc>
            <filename>bug-168348-20170217185342.patch</filename>
            <type>text/plain</type>
            <size>33208</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJhNDI4MGE3ZDg3MzVi
MGM3NWVmNWMyZmM1YzM5YjEwYjIzMTk2NS4uOTVjNTI0YmVkZTY2MzQ5NmIwMWRjYjIyZjQ0MDE0
YTg1MjE5NzA1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTAyLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJQ0UgY2Fu
ZGlkYXRlcyBzaG91bGQgYmUgZmlsdGVyZWQgYWNjb3JkaW5nIGEgcG9saWN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0
ZXN0cy4gU2hvdWxkIGJlIGNvdmVyZWQgaW4gdGhlIGZ1dHVyZSBieSBsYXlvdXQgdGVzdHMgd2l0
aCBkZWRpY2F0ZWQgaW50ZXJuYWxzIEFQSS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3Ig
SUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYXQgUlRDUGVlckNvbm5lY3Rpb24gbGV2ZWwuCisgICAg
ICAgIElmIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGlzIG9uIChieSBkZWZhdWx0KSwgaG9zdCBj
YW5kaWRhdGVzIGFyZSBzdG9yZWQgYW5kIG5vdCBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICBS
ZWZsZXhpdmUgY2FuZGlkYXRlcyBhcmUgcHVyZ2VkIGZyb20gcmFkZHIgaW5mb3JtYXRpb24gdG8g
bm90IGxlYWsgdGhlIGhvc3QgSVAgYWRkcmVzcy4KKworICAgICAgICBTdG9yZWQgY2FuZGlkYXRl
cyBtYXkgYmUgYWR2ZXJ0aXNlZCB0byB0aGUgSlMgbGF5ZXIgaWYgUlRDQ29udHJvbGxlciBpcyBu
b3RpZmllZCBvZiBhIGNoYW5nZSBvZiBmaWx0ZXJpbmcgcG9saWN5LgorICAgICAgICBUbyBpbXBs
ZW1lbnQgdGhhdCwgUGVlckNvbm5lY3Rpb25CYWNrZW5kIHN0b3JlcyBhbGwgZmlsdGVyZWQgb3V0
IGNhbmRpZGF0ZXMgYW5kIFJUQ1BlZXJDb25uZWN0aW9uIHJlZ2lzdGVyCisgICAgICAgIHRoZW1z
ZWx2ZXMgdG8gUlRDQ29udHJvbGxlciB0byBnZXQgbm90aWZpY2F0aW9ucyBvZiBmaWx0ZXJpbmcg
cG9saWN5IGNoYW5nZXMuCisKKyAgICAgICAgTWFraW5nIFJUQ1BlZXJDb25uZWN0aW9uIHVzZSBz
ZXRQZW5kaW5nQWN0aXZpdHkgdGhyb3VnaG91dCBpdHMgbGlmZXRpbWUuCisgICAgICAgIFRoaXMg
ZW5zdXJlcyBpdCBkb2VzIG5vdCBnZXQgY29sbGVjdGVkIHVudGlsIHRoZSBwYWdlIGlzIG9mZiBv
ciBjbG9zZSgpIGlzIGNhbGxlZCBvbiB0aGUgb2JqZWN0LgorCisgICAgICAgIEFkZGluZyBzdXBw
b3J0IGZvciBlbnVtZXJhdGluZyBvciBub3QgYWxsIGludGVyZmFjZXMgYXQgbGlid2VicnRjIGxl
dmVsLgorICAgICAgICBUaGlzIGNob2ljZSBpcyBkb25lIGF0IGNyZWF0aW9uIG9mIHRoZSBwZWVy
IGNvbm5lY3Rpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsdGVySUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UlRDQ29u
dHJvbGxlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmFkZCk6
CisgICAgICAgIChXZWJDb3JlOjpSVENDb250cm9sbGVyOjpkaXNhYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0NvbnRyb2xsZXI6OmVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9s
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJ0Y0NvbnRyb2xsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnJlZ2lzdGVyVG9Db250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uSWNlQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpydGNDb250cm9s
bGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZVBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKwogMjAxNy0wMi0xNyAgQnJpYW4gQnVyZyAgPGJidXJn
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSVEw6IEluc3BlY3RvciB3aW5k
b3cgc2hvdWxkIGRvY2sgdG8gdGhlIGxlZnQgd2hlbiB1c2luZyBSVEwgbGF5b3V0IGRpcmVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDUyYjM5NWM3OTZlNDEwMGYxZDdjYzFkZDBmZjM5NjgyNTU0NzFlNGYu
LmI2Mjg0MjQyNTRkYjI0ZjQ0YTRkZWVkNGQ2ZGY3ZDYzNjQwYmM2ZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxNy0wMi0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYlJUQ10gSUNFIGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGZpbHRlcmVk
IGFjY29yZGluZyBhIHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY4MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkaW5nIHRoZSBwb3NzaWJpbGl0eSBmb3IgdGhlIFVJIHByb2Nlc3MgdG8g
Y29udHJvbCB0aGUgSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYW5kIHdoZXRoZXIgbGlid2VicnRj
IGNhbgorICAgICAgICBlbnVtZXJhdGUgYWxsIGludGVyZmFjZXMgb3Igbm90LgorCisgICAgICAg
IERpc2FibGluZyBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBmb3IgdGhlIG1vbWVudC4KKyAgICAg
ICAgRW5hYmxpbmcgdG8gZW51bWVyYXRlIGFsbCBpbnRlcmZhY2VzIGZvciB0aGUgbW9tZW50Lgor
CisgICAgICAgIEluIHRoZSBmdXR1cmUsIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIHNob3VsZCBi
ZSB0aWVkIHRvIGdldFVzZXJNZWRpYS4KKyAgICAgICAgSW50ZXJmYWNlIGVudW1lcmF0aW9uIHNo
b3VsZCBiZSBkaXNhYmxlZCB3aXRoIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uCisgICAgICAg
IFdlIHNob3VsZCBkbyB0aGF0IG9uY2Ugd2UgaGF2ZSBzdWZmaWNpZW50IHRlc3RpbmcgaW4gdmFy
aW91cyBuZXR3b3JrIGluZnJhc3RydWN0dXJlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmluaXRpYWxpemVX
ZWJQYWdlKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNl
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisK
IDIwMTctMDItMTcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogUlRMOiBJbnNwZWN0b3Igd2luZG93IHNob3VsZCBkb2NrIHRvIHRoZSBsZWZ0
IHdoZW4gdXNpbmcgUlRMIGxheW91dCBkaXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YWEyOGM3MzYxNzBlYjg5YjE3ZmExMjViZDViOGEzY2RmZWE3MDA0MC4uZTk0ZTA5MDNjZjBjZWU3
MjVkNjljYmUzZTgzNWUzYjA1ZTBjYTNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkxMCw2
ICs5MTAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0
b3JNZWRpYURldmljZXMuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250cm9sbGVyLmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hhbmdlRXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBiYTJk
NDNmZDI3MjE4YzcwN2U3YzRjNTRmNGYzZWRkM2YyMzBjMWJjLi5kNzc1ZmU4ODMwZDhjYjE5ZDdh
NjYzNThmZGFmMDg3ZGRkZjIxZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0zOSw2
ICszOSw3IEBACiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDSWNl
Q2FuZGlkYXRlRXZlbnQuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0yNjksNiArMjcwLDYzIEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaXJlSUNFQ2Fu
ZGlkYXRlRXZlbnQoUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4mJiBjYW5kCiAgICAgbV9wZWVyQ29u
bmVjdGlvbi5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShmYWxzZSwgZmFs
c2UsIFdURk1vdmUoY2FuZGlkYXRlKSkpOwogfQogCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkKK3sKKyAgICBtX3Nob3VsZEZpbHRlcklD
RUNhbmRpZGF0ZXMgPSB0cnVlOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZGlz
YWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VDYW5k
aWRhdGVzID0gZmFsc2U7CisgICAgZm9yIChhdXRvJiBwZW5kaW5nSUNFQ2FuZGlkYXRlIDogbV9w
ZW5kaW5nSUNFQ2FuZGlkYXRlcykKKyAgICAgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0lj
ZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUocGVuZGluZ0lDRUNhbmRpZGF0ZS5zZHApLCBXVEZN
b3ZlKHBlbmRpbmdJQ0VDYW5kaWRhdGUubWlkKSwgMCkpOworICAgIG1fcGVuZGluZ0lDRUNhbmRp
ZGF0ZXMuY2xlYXIoKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgZmlsdGVySUNFQ2FuZGlk
YXRlKFN0cmluZyYmIHNkcCkKK3sKKyAgICBBU1NFUlQoIXNkcC5jb250YWlucygiIGhvc3QgIikp
OworCisgICAgaWYgKCFzZHAuY29udGFpbnMoIiByYWRkciAiKSkKKyAgICAgICAgcmV0dXJuIFdU
Rk1vdmUoc2RwKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGl0ZW1zOworICAgIHNkcC5zcGxpdCgn
ICcsIGl0ZW1zKTsKKworICAgIGJvb2wgc2tpcE5leHRJdGVtID0gZmFsc2U7CisgICAgYm9vbCBp
c0ZpcnN0ID0gdHJ1ZTsKKyAgICBTdHJpbmdCdWlsZGVyIGZpbHRlcmVkU0RQOworICAgIGZvciAo
YXV0byYgaXRlbSA6IGl0ZW1zKSB7CisgICAgICAgIGlmIChza2lwTmV4dEl0ZW0pIHsKKyAgICAg
ICAgICAgIHNraXBOZXh0SXRlbSA9IGZhbHNlOworICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGl0ZW0gPT0gInJhZGRyIiB8fCBpdGVtID09ICJycG9ydCIpIHsK
KyAgICAgICAgICAgIHNraXBOZXh0SXRlbSA9IHRydWU7CisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgfQorICAgICAgICBpZiAoaXNGaXJzdCkKKyAgICAgICAgICAgIGlzRmlyc3QgPSBm
YWxzZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmlsdGVyZWRTRFAuYXBwZW5kKCIgIik7
CisgICAgICAgIGZpbHRlcmVkU0RQLmFwcGVuZChpdGVtKTsKKyAgICB9CisgICAgcmV0dXJuIGZp
bHRlcmVkU0RQLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpu
ZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQpCit7CisgICAgaWYgKCFt
X3Nob3VsZEZpbHRlcklDRUNhbmRpZGF0ZXMpIHsKKyAgICAgICAgZmlyZUlDRUNhbmRpZGF0ZUV2
ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQpLCAw
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHNkcC5jb250YWlucygiIGhvc3Qg
IikpIHsKKyAgICAgICAgbV9wZW5kaW5nSUNFQ2FuZGlkYXRlcy5hcHBlbmQoUGVuZGluZ0lDRUNh
bmRpZGF0ZSB7IFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQpfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRl
KGZpbHRlcklDRUNhbmRpZGF0ZShXVEZNb3ZlKHNkcCkpLCBXVEZNb3ZlKG1pZCksIDApKTsKK30K
Kwogdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXgg
NWRmN2RiNDU0OTljNjk1MjQxZDRhMWUyYjg4MGQ3MzM0N2I0ZGNhZC4uNjE5NTE4YmFmOTA2ZTA3
ODZmMzYyZTZhNTg1ZjgwOWNmNzFhODg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0xMDEs
NiArMTAxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1F
dmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgPSAwOwogCisgICAgdm9pZCBuZXdJQ0VDYW5kaWRh
dGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQpOworICAgIHZvaWQgZGlzYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZygpOworICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7
CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5kaWRhdGVFdmVudChSZWZQdHI8UlRD
SWNlQ2FuZGlkYXRlPiYmKTsKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCk7CkBA
IC0xMzcsNyArMTQxLDE1IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxQZWVyQ29ubmVj
dGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZT4gbV9vZmZlckFuc3dlclByb21pc2U7CiAg
ICAgc3RkOjpvcHRpb25hbDxET01Qcm9taXNlPHZvaWQ+PiBtX3NldERlc2NyaXB0aW9uUHJvbWlz
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPERPTVByb21pc2U8dm9pZD4+IG1fYWRkSWNlQ2FuZGlkYXRl
UHJvbWlzZTsKLSAgICAKKworICAgIGJvb2wgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzIHsg
dHJ1ZSB9OworICAgIHN0cnVjdCBQZW5kaW5nSUNFQ2FuZGlkYXRlIHsKKyAgICAgICAgLy8gRmll
bGRzIGRlc2NyaWJlZCBpbiBodHRwczovL3d3dy53My5vcmcvVFIvd2VicnRjLyNpZGwtZGVmLXJ0
Y2ljZWNhbmRpZGF0ZWluaXQuCisgICAgICAgIFN0cmluZyBzZHA7CisgICAgICAgIFN0cmluZyBt
aWQ7CisgICAgfTsKKyAgICBWZWN0b3I8UGVuZGluZ0lDRUNhbmRpZGF0ZT4gbV9wZW5kaW5nSUNF
Q2FuZGlkYXRlczsKKwogICAgIGJvb2wgbV9uZWdvdGlhdGlvbk5lZWRlZCB7IGZhbHNlIH07CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENDb250
cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTU1NWMyYWRkMmM3YWVjMzkwYWU2YjY1YjA0ZWJiYmYy
NWY4OGIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSVENDb250cm9sbGVyLmgiCisKKyNpZiBFTkFC
TEUoV0VCX1JUQykKKworI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordm9pZCBSVENDb250cm9sbGVyOjpyZW1vdmUoUlRDUGVlckNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pCit7CisgICAgbV9wZWVyQ29ubmVjdGlvbnMucmVtb3ZlRmlyc3RNYXRj
aGluZyhbJmNvbm5lY3Rpb25dKGF1dG8gaXRlbSkgeworICAgICAgICByZXR1cm4gJmNvbm5lY3Rp
b24gPT0gJml0ZW0uZ2V0KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6YWRk
KFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIG1fcGVlckNvbm5lY3Rpb25z
LmFwcGVuZChjb25uZWN0aW9uKTsKKyAgICBpZiAoIW1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRl
cykKKyAgICAgICAgY29ubmVjdGlvbi5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cit9
CisKK3ZvaWQgUlRDQ29udHJvbGxlcjo6ZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpCit7
CisgICAgbV9zaG91bGRGaWx0ZXJJQ0VDYW5kaWRhdGVzID0gZmFsc2U7CisgICAgZm9yIChSVENQ
ZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiA6IG1fcGVlckNvbm5lY3Rpb25zKQorICAgICAgICBj
b25uZWN0aW9uLmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKK30KKwordm9pZCBSVEND
b250cm9sbGVyOjplbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQoreworICAgIG1fc2hvdWxk
RmlsdGVySUNFQ2FuZGlkYXRlcyA9IHRydWU7CisgICAgZm9yIChSVENQZWVyQ29ubmVjdGlvbiYg
Y29ubmVjdGlvbiA6IG1fcGVlckNvbm5lY3Rpb25zKQorICAgICAgICBjb25uZWN0aW9uLmVuYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Nv
bnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzM5YTc4NjhhODNhN2VkZTA1ZDljNmY1Nzk1ZTNlN2Yy
YzkzODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSVENQZWVyQ29ubmVjdGlvbjsKKworY2xhc3MgUlRDQ29udHJvbGxlciB7Citw
dWJsaWM6CisgICAgUlRDQ29udHJvbGxlcigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJMRShXRUJf
UlRDKQorICAgIHZvaWQgYWRkKFJUQ1BlZXJDb25uZWN0aW9uJik7CisgICAgdm9pZCByZW1vdmUo
UlRDUGVlckNvbm5lY3Rpb24mKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzYWJsZUlD
RUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlSUNF
Q2FuZGlkYXRlRmlsdGVyaW5nKCk7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8UlRDUGVlckNvbm5lY3Rpb24+PiBtX3BlZXJDb25uZWN0aW9uczsKKyAgICBi
b29sIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcyB7IHRydWUgfTsKKyNlbmRpZgorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA4ZTRkY2IxMTMzYmJk
ZmM1MTIwMzg4MTQwNWJjNDY1YWQ0NThlYTZhLi4xZjhkZGQwYjExMmZlY2M3ODlkNWJhNDAwMDdi
NjhkZGI3ODNjODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtNDIsNyArNDIsOSBAQAogI2luY2x1
ZGUgIk1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0u
aCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlJUQ0NvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJSVENDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWwuaCIKICNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGUuaCIK
ICNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGVFdmVudC5oIgpAQCAtNjIsNyArNjQsMTIgQEAgUmVm
PFJUQ1BlZXJDb25uZWN0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQKIHsKICAgICBSZWY8UlRDUGVlckNvbm5lY3Rpb24+IHBlZXJD
b25uZWN0aW9uID0gYWRvcHRSZWYoKm5ldyBSVENQZWVyQ29ubmVjdGlvbihjb250ZXh0KSk7CiAg
ICAgcGVlckNvbm5lY3Rpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwotCisgICAgLy8gUlRDUGVlckNv
bm5lY3Rpb24gbWF5IHNlbmQgZXZlbnRzIGF0IGFib3V0IGFueSB0aW1lIGR1cmluZyBpdHMgbGlm
ZXRpbWUuCisgICAgLy8gTGV0J3MgbWFrZSBpdCB1bmNvbGxlY3RhYmxlIHVudGlsIHRoZSBwYyBp
cyBjbG9zZWQgYnkgSlMgb3IgdGhlIHBhZ2Ugc3RvcHMgaXQuCisgICAgaWYgKHBlZXJDb25uZWN0
aW9uLT5tX3NpZ25hbGluZ1N0YXRlICE9IFNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpIHsKKyAgICAg
ICAgcGVlckNvbm5lY3Rpb24tPnNldFBlbmRpbmdBY3Rpdml0eShwZWVyQ29ubmVjdGlvbi5wdHIo
KSk7CisgICAgICAgIHBlZXJDb25uZWN0aW9uLT5yZWdpc3RlclRvQ29udHJvbGxlcigpOworICAg
IH0KICAgICByZXR1cm4gcGVlckNvbm5lY3Rpb247CiB9CiAKQEAgLTQxMiw2ICs0MTksOSBAQCB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjbG9zZSgpCiAKICAgICBmb3IgKFJUQ1J0cFNlbmRlciYg
c2VuZGVyIDogbV90cmFuc2NlaXZlclNldC0+c2VuZGVycygpKQogICAgICAgICBzZW5kZXIuc3Rv
cCgpOworCisgICAgdW5yZWdpc3RlckZyb21Db250cm9sbGVyKCk7CisgICAgdW5zZXRQZW5kaW5n
QWN0aXZpdHkodGhpcyk7CiB9CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmVtdWxhdGVQbGF0
Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKQpAQCAtNDI0LDYgKzQzNCwyNCBAQCB2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uOjpzdG9wKCkKICAgICBjbG9zZSgpOwogfQogCitSVENDb250cm9s
bGVyJiBSVENQZWVyQ29ubmVjdGlvbjo6cnRjQ29udHJvbGxlcigpCit7CisgICAgQVNTRVJUKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpKTsKKyAgICBhdXRvKiBwYWdlID0gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5wYWdlKCk7CisgICAgcmV0dXJuIHBhZ2Ut
PnJ0Y0NvbnRyb2xsZXIoKTsKK30KKwordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJU
b0NvbnRyb2xsZXIoKQoreworICAgIHJ0Y0NvbnRyb2xsZXIoKS5hZGQoKnRoaXMpOworfQorCit2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIoKQoreworICAg
IHJ0Y0NvbnRyb2xsZXIoKS5yZW1vdmUoKnRoaXMpOworfQorCiBjb25zdCBjaGFyKiBSVENQZWVy
Q29ubmVjdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJS
VENQZWVyQ29ubmVjdGlvbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggYTEwYWFlYjRjNDBhN2M0YWJjYjRm
YWM2ZDZhNTkwYzQ5ZWI0M2Y5YS4uMmMwNTYyZTM4MjRlMDU0YjViYTg2ZDkxNzA1NjkwMTU5ZTFi
ZmY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2s7CiBjbGFzcyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ7
CitjbGFzcyBSVENDb250cm9sbGVyOwogY2xhc3MgUlRDSWNlQ2FuZGlkYXRlOwogY2xhc3MgUlRD
UGVlckNvbm5lY3Rpb25FcnJvckNhbGxiYWNrOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
OwpAQCAtMTM2LDExICsxMzcsMTggQEAgcHVibGljOgogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVz
OjpJY2VHYXRoZXJpbmdTdGF0ZSBpbnRlcm5hbEljZUdhdGhlcmluZ1N0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pY2VHYXRoZXJpbmdTdGF0ZTsgfQogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJ
Y2VDb25uZWN0aW9uU3RhdGUgaW50ZXJuYWxJY2VDb25uZWN0aW9uU3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX2ljZUNvbm5lY3Rpb25TdGF0ZTsgfQogCisgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQtPmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmco
KTsgfQorICAgIHZvaWQgZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCkgeyBtX2JhY2tlbmQt
PmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOyB9CisKIHByaXZhdGU6CiAgICAgUlRDUGVl
ckNvbm5lY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAgdm9pZCBjb21wbGV0
ZUFkZFRyYW5zY2VpdmVyKFJUQ1J0cFRyYW5zY2VpdmVyJiwgY29uc3QgUnRwVHJhbnNjZWl2ZXJJ
bml0Jik7CiAKKyAgICBSVENDb250cm9sbGVyJiBydGNDb250cm9sbGVyKCk7CisgICAgdm9pZCBy
ZWdpc3RlclRvQ29udHJvbGxlcigpOworICAgIHZvaWQgdW5yZWdpc3RlckZyb21Db250cm9sbGVy
KCk7CisKICAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4KICAgICB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IGZpbmFsIHsgZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBv
aW50LmNwcAppbmRleCBlNDZjMzFjNGVkMGIxZGQzNDk5NmY4NWYyMjYyODc2NDg0NTEyOGNlLi44
ZTJmNzZiM2YzMTg2ZmFkOTk4MzE4ZDJiMjE5ODE4MWZkM2U3N2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsLmgiCiAj
aW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxFdmVudC5oIgotI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0
ZS5oIgogI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiUlRDVHJhY2tFdmVudC5oIgpAQCAtNDQ2LDcgKzQ0
NSw3IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6T25JY2VDYW5kaWRhdGUoY29uc3Qg
d2VicnRjOjpJY2VDYW5kaWRhdGVJbnRlcmZhY2UKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1pZCA9IFdURk1vdmUoY2FuZGlkYXRlTWlkKSwg
c2RwID0gV1RGTW92ZShjYW5kaWRhdGVTRFApXSB7CiAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlz
LT5pc1N0b3BwZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuZmlyZUlDRUNhbmRpZGF0ZUV2ZW50KFJUQ0ljZUNh
bmRpZGF0ZTo6Y3JlYXRlKFN0cmluZyhzZHApLCBTdHJpbmcobWlkKSwgMCkpOworICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdJQ0VDYW5kaWRhdGUoU3Ry
aW5nKHNkcCksIFN0cmluZyhtaWQpKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE0NTg4Yjk2NzVmMDI5
MTM5N2ExNzIwMDQxZDBjNDhjOWE4NGYxMzEuLmU1MWJiYzE1ZjUyMTZkYTJmNjQxZTJiMWVlZTAx
NzE1OTRkMDMzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE1ODAsNiArMTU4MCw4IEBACiAJCTQxN0RBNzFFMTM3MzVERkEw
MDdDNTdGQiAvKiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE3REE3MUMxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmgg
Ki87IH07CiAJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MTVD
MUMxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5jcHAgKi87IH07CiAJCTQx
ODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODE1QzFEMTM4MzE5ODMwMDU3
QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0MTgyMDU0NzFFNTNFOThDMDBENjIyMDcgLyogUlRDQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTgyMDU0OTFFNTNFQUIwMDBE
NjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxl
ci5jcHAgKi87IH07CiAJCTQxODg1QjkzMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4ODVC
OTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4ODVCOTQxMUI2RkRBNjAwMzM4M0JC
IC8qIEZvcm1TdWJtaXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5j
cHAgKi87IH07CiAJCTQxOEEwNkQwMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEEwNkNF
MTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLzsgfTsKQEAgLTg4MzEsNiAr
ODgzMyw4IEBACiAJCTQxODE1QzFDMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBv
cnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRlc3RT
dXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MTVDMUQxMzgzMTk4
MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb3JlVGVzdFN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE4MTcwN0QxMzg2RURGMjAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJDb3JlVGVzdFN1cHBvcnQu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxODIwNTQ1MUU1M0M4Q0Qw
MEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJUQ0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4MjA1
NDgxRTUzRUFBRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUlRDQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtU3VibWlzc2lvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9y
bVN1Ym1pc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9y
bVN1Ym1pc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MThBMDZDRTEz
M0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEV2ZW50RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTUzNTYsNiArMTUzNjAsOCBAQAogCQkJCTA3MjIxQjY2MTdDRUMzMjcwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbEV2ZW50LmNwcCAqLywKIAkJCQkwNzIyMUI2NzE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRGF0YUNoYW5uZWxFdmVudC5oICovLAogCQkJCTA3MjIxQjY4MTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmlkbCAqLywKKwkJCQk0MTgyMDU0NTFFNTNDOENE
MDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovLAorCQkJCTQxODIwNTQ4MUU1M0VBQUQwMEQ2
MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLywKIAkJCQkwNzIyMUI2OTE3Q0VDMzI3MDA4NDhF
NTEgLyogUlRDRFRNRlNlbmRlci5jcHAgKi8sCiAJCQkJMDcyMjFCNkExN0NFQzMyNzAwODQ4RTUx
IC8qIFJUQ0RUTUZTZW5kZXIuaCAqLywKIAkJCQkwNzIyMUI2QjE3Q0VDMzI3MDA4NDhFNTEgLyog
UlRDRFRNRlNlbmRlci5pZGwgKi8sCkBAIC0yNjUzNSw2ICsyNjU0MSw3IEBACiAJCQkJQUQ3MjZG
RUYxNkRBMTFGNTAwM0E0RTZEIC8qIEpTQ1NTUnVsZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThEMDVGQTgwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0MjAxMUI3MEEwMDMxMzMwMDgzMDNGOSAvKiBKU0NTU1N0eWxlRGVjbGFyYXRp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODIwNTQ3MUU1M0U5OEMwMEQ2MjIwNyAvKiBSVEND
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDcyNkZFRDE2REExMTcxMDAzQTRFNkQg
LyogSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ2
QzIwNzBDMEREQ0ExMDAyMENGQzMgLyogSlNDU1NTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQzVCRTAxMEMwRTkzMTEwMDExQzJEQiAvKiBKU0NTU1N0eWxlU2hlZXQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzA0NjksNiArMzA0NzYsNyBAQAogCQkJCUJDNEVERUY0MEMwOEYzRkIwMDdF
REQ0OSAvKiBKU0hUTUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBRTJBQTFFMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxBcmVhRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QzlEQkZFRDFBOUM0OUIxMDAwRDZCMjUgLyogSlNIVE1MQXR0YWNobWVu
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4MjA1NDkxRTUzRUFCMDAwRDYyMjA3
IC8qIFJUQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjE0MzcwQ0Q2ODlD
NDAwRkFEQTc1IC8qIEpTSFRNTEF1ZGlvRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODBFN0IxMjBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MQmFzZUVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFFMkFBMjIwQTFDREFCNDAwQjQyQjI1IC8qIEpTSFRNTEJvZHlFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCmluZGV4IGE4NzNjMTc0ZDI3ZWNkYzFmMjMyNjljMzZjOGE3Y2IzMjlmZjdl
YzAuLjZlYjNmODFlOWY3YzRhZmVkNzU0NmFmMjQwZDI4MjhmYzA5ODdkOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBvbHlnb25TaGFw
ZS5oIgogI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKKyNpbmNsdWRlICJSVENDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiUmVjdGFuZ2xlU2hhcGUuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hNb2Rl
bE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXgg
NGUxOGZkYmQyNTc3Y2I1ZTNhYzI4NTgzYTVmMGE5N2M3YTVhN2MwNi4uNDBmMWMwMzEwYTlkOThh
ZGMzOTExYzdkNmY3Y2M3NTdhMDU4ODU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGFnaW5hdGlv
bi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAiUlRDQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5j
bHVkZSAiU2Vzc2lvbklELmgiCkBAIC0yMjMsNiArMjI0LDcgQEAgcHVibGljOgogICAgIFBvaW50
ZXJMb2NrQ29udHJvbGxlciYgcG9pbnRlckxvY2tDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4g
Km1fcG9pbnRlckxvY2tDb250cm9sbGVyOyB9CiAjZW5kaWYKICAgICBMaWJXZWJSVENQcm92aWRl
ciYgbGliV2ViUlRDUHJvdmlkZXIoKSB7IHJldHVybiBtX2xpYldlYlJUQ1Byb3ZpZGVyLmdldCgp
OyB9CisgICAgUlRDQ29udHJvbGxlciYgcnRjQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fcnRjQ29u
dHJvbGxlcjsgfQogCiAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5nZXQo
KTsgfQogICAgIHZvaWQgdXBkYXRlVmFsaWRhdGlvbkJ1YmJsZVN0YXRlSWZOZWVkZWQoKTsKQEAg
LTY0MCw2ICs2NDIsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFN0YXRl
VHJhY2tlcj4gbV93ZWJHTFN0YXRlVHJhY2tlcjsKIAogICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENQ
cm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKKyAgICBSVENDb250cm9sbGVyIG1fcnRjQ29u
dHJvbGxlcjsKIAogICAgIGludCBtX25lc3RlZFJ1bkxvb3BDb3VudCB7IDAgfTsKICAgICBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gbV91bm5lc3RDYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwCmluZGV4IDAwOTVjNTE3ZjBmN2UwYzQzZWI4NjYyNzkxYTAxMzUzMTJl
ZTg1ODYuLjQyOGY4NDljNzU4MTUyYzIwYzQ0ZjllOTg2YWFkN2UzMmYzNmY3YmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMTQ5LDcgKzE0OSwxMCBAQCBydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRD
UHJvdmlkZXI6OmNyZWF0ZVBlZQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPGNyaWNrZXQ6OkJhc2lj
UG9ydEFsbG9jYXRvcj4gcG9ydEFsbG9jYXRvcjsKICAgICBzdGF0aWNGYWN0b3J5QW5kVGhyZWFk
cygpLnNpZ25hbGluZ1RocmVhZC0+SW52b2tlPHZvaWQ+KFJUQ19GUk9NX0hFUkUsIFsmXSgpIHsK
LSAgICAgICAgcG9ydEFsbG9jYXRvci5yZXNldChuZXcgY3JpY2tldDo6QmFzaWNQb3J0QWxsb2Nh
dG9yKCZuZXR3b3JrTWFuYWdlciwgJnBhY2tldFNvY2tldEZhY3RvcnkpKTsKKyAgICAgICAgYXV0
byBiYXNpY1BvcnRBbGxvY2F0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPGNyaWNrZXQ6OkJhc2ljUG9y
dEFsbG9jYXRvcj4oJm5ldHdvcmtNYW5hZ2VyLCAmcGFja2V0U29ja2V0RmFjdG9yeSk7CisgICAg
ICAgIGlmICghbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKQorICAgICAg
ICAgICAgYmFzaWNQb3J0QWxsb2NhdG9yLT5zZXRfZmxhZ3MoYmFzaWNQb3J0QWxsb2NhdG9yLT5m
bGFncygpIHwgY3JpY2tldDo6UE9SVEFMTE9DQVRPUl9ESVNBQkxFX0FEQVBURVJfRU5VTUVSQVRJ
T04pOworICAgICAgICBwb3J0QWxsb2NhdG9yID0gV1RGTW92ZShiYXNpY1BvcnRBbGxvY2F0b3Ip
OwogICAgIH0pOwogCiAgICAgcmV0dXJuIGNyZWF0ZUFjdHVhbFBlZXJDb25uZWN0aW9uKG9ic2Vy
dmVyLCBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKaW5kZXggZGNhMWMyMjc1Y2Y5ZDU2MDA3ZThjZjFkMTI1MTg4Njg0MTdmNjFmNC4uMWY1
NDgwOWUwNDY4MjRmNWU0NTk5YTVmMmE3NTU0OWE3ZWQ5Y2E1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTYwLDggKzYwLDEzIEBAIHB1YmxpYzoKICAgICAvLyBVc2Vk
IGZvciBtb2NrIHRlc3RpbmcKICAgICBzdGF0aWMgdm9pZCBzZXRQZWVyQ29ubmVjdGlvbkZhY3Rv
cnkocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJm
YWNlPiYmKTsKIAorICAgIHZvaWQgZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFj
ZXMoKSB7IG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IGZhbHNlOyB9
CisgICAgdm9pZCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkgeyBtX2Vu
YWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgPSB0cnVlOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBXRUJDT1JFX0VYUE9SVCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVj
dGlvbk9ic2VydmVyJiwgcnRjOjpOZXR3b3JrTWFuYWdlciYsIHJ0Yzo6UGFja2V0U29ja2V0RmFj
dG9yeSYpOworCisgICAgYm9vbCBtX2VuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFj
ZXMgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZDk4ZDBlYmQyZTU2YzIyYWM4
OGMwMWJkOTE4ZWNjODUxZTU2YjViNy4uNzNlY2I2NjExNzFkMmM2ZWQ0NGIxZmYzODY4ZmYwZTRh
NGVjNmJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtOTAsNiArOTAsMTIgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIuZW5jb2RlRW51bSh1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKTsKICAgICBlbmNvZGVy
LmVuY29kZUVudW0ob2JzZXJ2ZWRMYXlvdXRNaWxlc3RvbmVzKTsKICAgICBlbmNvZGVyIDw8IG92
ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OworI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIGVu
Y29kZXIgPDwgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZzsKKyNpZiBVU0UoTElCV0VCUlRD
KQorICAgIGVuY29kZXIgPDwgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlczsK
KyNlbmRpZgorI2VuZGlmCiB9CiAKIGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKQEAgLTIwOCw2ICsyMTQsMTQgQEAgYm9vbCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQYWdlQ3JlYXRpb25QYXIKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMub3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQ
b2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBVU0UoTElCV0VCUlRDKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisjZW5kaWYKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYTYyNDRiODc2NzJkYjhjYmZiYzFkOWM0OGFjYTc4MDhh
NmU2MGVjMi4uNWJlZDNmYjYxZjYzMTQyYmEyY2VlOWE4MjgyMDhhZTQ4YzJmODk2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0xNDUsNiArMTQ1LDEzIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmVzIG9ic2VydmVkTGF5b3V0TWlsZXN0b25lczsKIAog
ICAgIFN0cmluZyBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKKworI2lmIEVOQUJMRShX
RUJfUlRDKQorICAgIGJvb2wgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyB7IGZhbHNlIH07
CisjaWYgVVNFKExJQldFQlJUQykKKyAgICBib29sIGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29y
a0ludGVyZmFjZXMgeyBmYWxzZSB9OworI2VuZGlmCisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBiM2Q2NDgxY2ZlYzEzMGRiOTBhMmJkOWNjNTAwM2UwMmZjYzg2NTBmLi4wZmM3YWU1ZDNiMTQ2
Zjg2OTQ3YmY2ZmYwMjY5YmZmMDJhNGQyYzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNTU4OSw2ICs1NTg5LDE1IEBAIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRl
cnMub2JzZXJ2ZWRMYXlvdXRNaWxlc3RvbmVzID0gbV9vYnNlcnZlZExheW91dE1pbGVzdG9uZXM7
CiAgICAgcGFyYW1ldGVycy5vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fb3ZlcnJp
ZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHRpZSBJQ0UgZmlsdGVyaW5nIHdpdGggZ2V0VXNlck1lZGlhIHBlcm1p
c3Npb24uCisgICAgcGFyYW1ldGVycy5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nID0gdHJ1
ZTsKKyNpZiBVU0UoTElCV0VCUlRDKQorICAgIC8vIEZJWE1FOiBUdXJuIGRvd24gbmV0d29yayBp
bnRlcmZhY2UgZW51bWVyYXRpb24gYnkgZGVmYXVsdC4KKyAgICBwYXJhbWV0ZXJzLmVuYWJsZUVu
dW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMgPSB0cnVlOworI2VuZGlmCisjZW5kaWYKKwog
ICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTUxNzVjMDNkOWRjNDg3YmVmNjQwNmI3MTFlMzE1
YTMyNDcyYzQ4ZS4uMTdhM2RlNTJiM2VhMzg0MWFlYWVhMzkyMmJhZDI3NDRhNWVhN2VmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTU4
LDYgKzU1OCwxNSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNl
dENvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94RW5hYmxlZCh0cnVlKTsKICAgICBz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQocGFyYW1ldGVycy5zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKyAgICBpZiAocGFyYW1ldGVy
cy5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKQorICAgICAgICBkaXNhYmxlSUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKCk7CisjaWYgVVNFKExJQldFQlJUQykKKyAgICBpZiAocGFyYW1ldGVycy5l
bmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKQorICAgICAgICBlbmFibGVFbnVt
ZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7CisjZW5kaWYKKyNlbmRpZgogfQogCiB2b2lk
IFdlYlBhZ2U6OnJlaW5pdGlhbGl6ZVdlYlBhZ2UoV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCA2NThjZGE0NmE0OGZiNzRmOTQzM2Q1ZWUxNTkxMmZjYTc5NDQyYTRmLi44ZmM1ODNh
MTAyNjBhYzUzZDcxNTUyMzgwMzZlOGMyZjQ1MDE5ZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0h5c3RlcmVzaXNBY3Rpdml0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZUhhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xp
YldlYlJUQ1Byb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlT3ZlcmxheS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZVZpc2liaWxpdHlT
dGF0ZS5oPgpAQCAtMTE4NCw2ICsxMTg1LDE1IEBAIHByaXZhdGU6CiAjZW5kaWYKICNlbmRpZgog
CisjaWYgRU5BQkxFKFdFQl9SVEMpCisgICAgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCkgeyBtX3BhZ2UtPnJ0Y0NvbnRyb2xsZXIoKS5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVy
aW5nKCk7IH0KKyAgICB2b2lkIGVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpIHsgbV9wYWdl
LT5ydGNDb250cm9sbGVyKCkuZW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7IH0KKyNpZiBV
U0UoTElCV0VCUlRDKQorICAgIHZvaWQgZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMoKSB7IG1fcGFnZS0+bGliV2ViUlRDUHJvdmlkZXIoKS5kaXNhYmxlRW51bWVyYXRpbmdB
bGxOZXR3b3JrSW50ZXJmYWNlcygpOyB9CisgICAgdm9pZCBlbmFibGVFbnVtZXJhdGluZ0FsbE5l
dHdvcmtJbnRlcmZhY2VzKCkgeyBtX3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZW5hYmxlRW51
bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOyB9CisjZW5kaWYKKyNlbmRpZgorCiAgICAg
dm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbik7
CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdvcmQpOwogI2lm
IFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGZiMzBiZTVlN2Y3YzBlYjg5NGIzZjU2ZDk3ZTA5
YTgwZDU2YTMyOGQuLjNjNWE1ZGM0MDhmYjM5MGJlYjg4YjM4NjU5Y2Q1ZDhiYzI0MDFiNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC0zMDYsNiArMzA2LDE1IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfUlRDKQorICAgIERp
c2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKQorICAgIEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZygpCisjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX1JUQykgJiYgVVNFKExJQldFQlJUQykKKyAg
ICBFbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCkKKyAgICBEaXNhYmxlRW51
bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0
aW9uCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>