<?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>207352</bug_id>
          
          <creation_ts>2020-02-06 14:05:50 -0800</creation_ts>
          <short_desc>Add a variant of -[WKWebViewPrivate _getContentsAsStringWithCompletionHandler:] that includes contents from subframes.</short_desc>
          <delta_ts>2020-02-21 12:23:50 -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>WebKit Misc.</component>
          <version>Safari 13</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alan Sien Wei Hshieh">hshieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>hshieh</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1615791</commentid>
    <comment_count>0</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 14:05:50 -0800</bug_when>
    <thetext>Add a variant of -[WKWebViewPrivate _getContentsAsStringWithCompletionHandler:] that includes contents from subframes instead of just the primary frame. This could be a -[WKWebViewPrivate _getContentsAsStringInAllFrames:withCompletionHandler:].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615792</commentid>
    <comment_count>1</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 14:06:15 -0800</bug_when>
    <thetext>&lt;rdar://59115798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615796</commentid>
    <comment_count>2</comment_count>
      <attachid>389994</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 14:10:30 -0800</bug_when>
    <thetext>Created attachment 389994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615798</commentid>
    <comment_count>3</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 14:13:00 -0800</bug_when>
    <thetext>Did I do this right :X ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615901</commentid>
    <comment_count>4</comment_count>
      <attachid>389994</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-06 16:01:22 -0800</bug_when>
    <thetext>Comment on attachment 389994
Patch

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

We&apos;d ideally want an API test for this, as well.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:270
&gt; +- (void)_getContentsAsStringInAllFrames:(BOOL)allFrames withCompletionHandler:(void (^)(NSString *, NSError *))completionHandler WK_API_AVAILABLE(macos(10.15), ios(13.0));

The availability should be `WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA))`.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3459
&gt; +        WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);

Nit - this would be ever so slightly cleaner as:

if (auto* webFrame = WebFrame::fromCoreFrame(*frame))
    resultString.append(webFrame-&gt;contentsAsString());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615965</commentid>
    <comment_count>5</comment_count>
      <attachid>390035</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 17:54:38 -0800</bug_when>
    <thetext>Created attachment 390035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616026</commentid>
    <comment_count>6</comment_count>
      <attachid>390049</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 19:46:13 -0800</bug_when>
    <thetext>Created attachment 390049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616029</commentid>
    <comment_count>7</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 19:52:52 -0800</bug_when>
    <thetext>(attempting to build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616031</commentid>
    <comment_count>8</comment_count>
      <attachid>390035</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-06 20:10:55 -0800</bug_when>
    <thetext>Comment on attachment 390035
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKPage.h:250
&gt; +typedef void (*WKPageGetContentsAsStringInAllFramesFunction)(WKStringRef, WKErrorRef, void*);
&gt; +WK_EXPORT void WKPageGetContentsAsStringInAllFrames(WKPageRef page, void* context, WKPageGetContentsAsStringInAllFramesFunction function);
&gt; +

If there aren&apos;t any clients that need C API, I think we should avoid adding it (we&apos;ve been pushing SPI clients towards using the more modern, Objective-C API when possible).

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3457
&gt; +    String resultString = &quot;&quot;;

I /think/ using StringBuilder and toString() here would be more efficient than calling String::append here, which seems to copy the contents of the string every time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616037</commentid>
    <comment_count>9</comment_count>
      <attachid>390052</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-06 20:38:33 -0800</bug_when>
    <thetext>Created attachment 390052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616038</commentid>
    <comment_count>10</comment_count>
      <attachid>390052</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-06 20:47:00 -0800</bug_when>
    <thetext>Comment on attachment 390052
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616226</commentid>
    <comment_count>11</comment_count>
      <attachid>390052</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 10:26:51 -0800</bug_when>
    <thetext>Comment on attachment 390052
Patch

Rejecting attachment 390052 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 390052, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

/Volumes/Data/EWS/WebKit/Source/WebKit/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: https://webkit-queues.webkit.org/results/13318632</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616242</commentid>
    <comment_count>12</comment_count>
      <attachid>390052</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-07 10:38:20 -0800</bug_when>
    <thetext>Comment on attachment 390052
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.h:1081
&gt;      void getContentsAsString(WTF::Function&lt;void (const String&amp;, CallbackBase::Error)&gt;&amp;&amp;);
&gt; +    void getContentsAsStringInAllFrames(WTF::Function&lt;void(const String&amp;, CallbackBase::Error)&gt;&amp;&amp;);

Instead of making a new function doing basically the same thing, could you pass a parameter?
enum class InAllFrames : bool { No, Yes };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616267</commentid>
    <comment_count>13</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-07 11:12:12 -0800</bug_when>
    <thetext>There are existing clients which I don&apos;t want to break by augmenting a method. My plan was to add this and then move all clients over and then ideally, remove the original method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616268</commentid>
    <comment_count>14</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-07 11:13:24 -0800</bug_when>
    <thetext>Oh I understand now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616299</commentid>
    <comment_count>15</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-07 12:38:46 -0800</bug_when>
    <thetext>@Alex How do you recommend I expose enum class InAllFrames : bool { No, Yes }; to WKWebView.mm, WebPageProxy.h, and WebPage.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616308</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-07 12:47:08 -0800</bug_when>
    <thetext>In _getContentsAsStringInAllFrames:withCompletionHandler: call _page-&gt;getContentsAsString(allFrames ? InAllFrames::Yes : InAllFrames::No, ...);
In _getContentsAsStringWithCompletionHandler: call _page-&gt;getContentsAsString(InAllFrames::No, ...);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616316</commentid>
    <comment_count>17</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-07 12:59:55 -0800</bug_when>
    <thetext>WKWebView doesn&apos;t have a concept of InAllFrames so this won&apos;t build. Am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616398</commentid>
    <comment_count>18</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-07 15:12:19 -0800</bug_when>
    <thetext>You&apos;ll have to put the definition of InAllFrames in a place that it can access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616491</commentid>
    <comment_count>19</comment_count>
      <attachid>390154</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-07 17:48:42 -0800</bug_when>
    <thetext>Created attachment 390154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616764</commentid>
    <comment_count>20</comment_count>
      <attachid>390154</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-09 21:02:42 -0800</bug_when>
    <thetext>Comment on attachment 390154
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:269
&gt;  - (void)_getContentsAsStringWithCompletionHandler:(void (^)(NSString *, NSError *))completionHandler WK_API_AVAILABLE(macos(10.13), ios(11.0));
&gt; +- (void)_getContentsAsStringInAllFrames:(BOOL)allFrames withCompletionHandler:(void (^)(NSString *, NSError *))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

Do we really need the boolean here? Why not just have two separate methods? I’d suggest the name:

    _getAllFrameContentsAsStringWithCompletionHandler:

Or maybe:

    _getContentsOfAllFramesAsStringWithCompletionHandler:

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3461
&gt; +                builder.append(webFrame-&gt;contentsAsString());

Seems risky to concatenate frames without separating them with something like a newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616864</commentid>
    <comment_count>21</comment_count>
      <attachid>390154</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-10 08:07:41 -0800</bug_when>
    <thetext>Comment on attachment 390154
Patch

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

&gt; Source/WebKit/Shared/ContentAsStringIncludesChildFrames.h:38
&gt; +template&lt;&gt; struct EnumTraits&lt;WebKit::ContentAsStringIncludesChildFrames&gt; {

If you use a bool as the storage type of an enum, you don&apos;t need EnumTraits because we know there are only two valid values: 0 and 1.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:269
&gt;&gt; +- (void)_getContentsAsStringInAllFrames:(BOOL)allFrames withCompletionHandler:(void (^)(NSString *, NSError *))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; Do we really need the boolean here? Why not just have two separate methods? I’d suggest the name:
&gt; 
&gt;     _getAllFrameContentsAsStringWithCompletionHandler:
&gt; 
&gt; Or maybe:
&gt; 
&gt;     _getContentsOfAllFramesAsStringWithCompletionHandler:

Do we know existing users of _getContentsAsStringWithCompletionHandler need to not have subframe content, or do we just want to not change them out of caution?
If we do need the boolean, should we deprecate _getContentsAsStringWithCompletionHandler with this as a replacement?
Also, I don&apos;t think we need to have the NSError exposed in this SPI, even though its predecessor had it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616872</commentid>
    <comment_count>22</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 08:32:27 -0800</bug_when>
    <thetext>I should be able to get rid of the bool at the interface level. Books I believe will never want subframe content. I’ll add in a line break after each concatenation and remove the error also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617112</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-10 14:22:58 -0800</bug_when>
    <thetext>(In reply to Alan Sien Wei Hshieh from comment #22)
&gt; I’ll add in a line break after
&gt; each concatenation and remove the error also.

On reflection maybe two line breaks would be even better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617127</commentid>
    <comment_count>24</comment_count>
      <attachid>390298</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 14:51:21 -0800</bug_when>
    <thetext>Created attachment 390298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617129</commentid>
    <comment_count>25</comment_count>
      <attachid>390299</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 14:54:36 -0800</bug_when>
    <thetext>Created attachment 390299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617130</commentid>
    <comment_count>26</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 14:55:23 -0800</bug_when>
    <thetext>I updated the patch making sure to do two line breaks per Darin&apos;s comment above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617145</commentid>
    <comment_count>27</comment_count>
      <attachid>390303</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 15:39:19 -0800</bug_when>
    <thetext>Created attachment 390303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617146</commentid>
    <comment_count>28</comment_count>
      <attachid>390303</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-10 15:41:50 -0800</bug_when>
    <thetext>Comment on attachment 390303
Patch

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

r=me

&gt; Source/WebKit/Shared/ContentAsStringIncludesChildFrames.h:28
&gt; +#include &lt;wtf/EnumTraits.h&gt;

Not needed.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3463
&gt; +                    builder.append(&apos;\n&apos;);
&gt; +                    builder.append(&apos;\n&apos;);

Are you sure you want two newlines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617174</commentid>
    <comment_count>29</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 16:33:15 -0800</bug_when>
    <thetext>Will remove the include.

I double checked with my management and it seems they are pro-double-new-lines, so I think that is what we&apos;ll go with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617189</commentid>
    <comment_count>30</comment_count>
      <attachid>390316</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 16:48:04 -0800</bug_when>
    <thetext>Created attachment 390316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617196</commentid>
    <comment_count>31</comment_count>
      <attachid>390318</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 16:53:14 -0800</bug_when>
    <thetext>Created attachment 390318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617201</commentid>
    <comment_count>32</comment_count>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 16:55:15 -0800</bug_when>
    <thetext>Whoops.. don&apos;t mind me... amending.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617209</commentid>
    <comment_count>33</comment_count>
      <attachid>390320</attachid>
    <who name="Alan Sien Wei Hshieh">hshieh</who>
    <bug_when>2020-02-10 17:05:23 -0800</bug_when>
    <thetext>Created attachment 390320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617231</commentid>
    <comment_count>34</comment_count>
      <attachid>390320</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-10 17:43:15 -0800</bug_when>
    <thetext>Comment on attachment 390320
Patch

Management-designed software is the best software :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617249</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-10 18:17:32 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 390320:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617250</commentid>
    <comment_count>36</comment_count>
      <attachid>390320</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-10 18:18:11 -0800</bug_when>
    <thetext>Comment on attachment 390320
Patch

Clearing flags on attachment: 390320

Committed r256236: &lt;https://trac.webkit.org/changeset/256236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617251</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-10 18:18:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617252</commentid>
    <comment_count>38</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-10 18:19:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/59334314&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617548</commentid>
    <comment_count>39</comment_count>
      <attachid>390320</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-11 12:25:58 -0800</bug_when>
    <thetext>Comment on attachment 390320
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3464
&gt; +                if (!builder.isEmpty()) {
&gt; +                    builder.append(&apos;\n&apos;);
&gt; +                    builder.append(&apos;\n&apos;);
&gt; +                }

Someone could come back here and tweak this. It’s slightly more efficient like this:

    if (!builder.isEmpty())
        builder.appendLiteral(&quot;\n\n&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617555</commentid>
    <comment_count>40</comment_count>
      <attachid>390320</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-11 12:52:48 -0800</bug_when>
    <thetext>Comment on attachment 390320
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3459
&gt; +        for (RefPtr&lt;Frame&gt; frame = &amp;corePage()-&gt;mainFrame(); frame; frame = frame-&gt;tree().traverseNextRendered()) {

Just noticed that the code above using m_mainFrame, but we use corePage()-&gt;mainFrame() here. I think we can use m_mainFrame too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621709</commentid>
    <comment_count>41</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-21 10:49:36 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621710</commentid>
    <comment_count>42</comment_count>
      <attachid>391410</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-21 10:49:37 -0800</bug_when>
    <thetext>Created attachment 391410
Address comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621749</commentid>
    <comment_count>43</comment_count>
      <attachid>391410</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-21 12:23:48 -0800</bug_when>
    <thetext>Comment on attachment 391410
Address comments

Clearing flags on attachment: 391410

Committed r257155: &lt;https://trac.webkit.org/changeset/257155&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621750</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-21 12:23:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389994</attachid>
            <date>2020-02-06 14:10:30 -0800</date>
            <delta_ts>2020-02-06 17:54:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200206140942.patch</filename>
            <type>text/plain</type>
            <size>11385</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1MGRiNmU1MzA5YjYwNWE0
ZDY5NTIxZDJiYWFjMDU4YTI4MTdlMTkuLmI3NGViMDhhMDJmZDMxYmE1MzNlNDAxN2VlNDMwOWJl
NGNkYjA5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0Q29udGVudHNBc1N0cmlu
Z0luQWxsRnJhbWVzKTogUGlwaW5nLiAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
Lmg6IEV4cG9ydGluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9nZXRDb250ZW50c0FzU3RyaW5nV2l0aENvbXBsZXRp
b25IYW5kbGVyOl0pOiAKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9nZXRDb250ZW50c0FzU3RyaW5n
SW5BbGxGcmFtZXM6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOiBDYWxsIHRoZSBhYm92ZSBtZXRo
b2QgaWYgdGhlIHVzZXIganVzdCB3YW50cyB0aGUKKyAgICAgICAgbWFpbiBmcmFtZSBjb250ZW50
cy4gT3RoZXJ3aXNlLCBjYWxsIHRoZSBuZXcgZnVuY3Rpb24gb24gcGFnZS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOiBFeHBvc2UgYSBuZXcgU1BJ
IGZvciBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJh
bWVzKTogUGlwaW5nLiBUaGlzIGVtdWxhdGVzIHdoYXQgZ2V0Q29udGVudHNBc1N0cmluZygpIGRv
ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEV4cG9zZSBuZXcgbWV0
aG9kLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Z2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKTogSXRlcmF0ZSBvdmVy
IGZyYW1lcyBhbmQgZ2V0IHRoZWlyIGNvbnRlbnQgc3RyaW5ncy4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46IFBpcGluZy4KKwogMjAyMC0wMi0wNSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBNVE92ZXJyaWRlU2hvdWxkUGxheUhE
UlZpZGVvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGVj
Y2Y0YWUzNTY2MTk2ODA1N2E3Y2ZlZWIyZDk1NDMxZTkyNDQ0ZGEuLjFiODdjODI5ZDliZGM0MDdk
ZDc5MWUwZWQ2NzdjMDlkYTc3OGNmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcApAQCAtMjUxMyw2ICsyNTEzLDExIEBAIHZvaWQgV0tQYWdlR2V0Q29udGVudHNB
c1N0cmluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdlR2V0Q29udGVu
CiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRDb250ZW50c0FzU3RyaW5nKHRvR2VuZXJpY0NhbGxi
YWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAordm9pZCBXS1BhZ2VHZXRDb250
ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoV0tQYWdlUmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQs
IFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lc0Z1bmN0aW9uIGNhbGxiYWNrKQor
eworICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKHRv
R2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwogdm9pZCBX
S1BhZ2VHZXRCeXRlY29kZVByb2ZpbGUoV0tQYWdlUmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQs
IFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZUZ1bmN0aW9uIGNhbGxiYWNrKQogewogICAgIHRvSW1w
bChwYWdlUmVmKS0+Z2V0Qnl0ZWNvZGVQcm9maWxlKHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24o
Y29udGV4dCwgY2FsbGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgK
aW5kZXggYjdiZGY1OTA2MzUzYTI0NDg4MmM0NzNmNWM5ZjNhNmI2OTYzOTc1Zi4uN2MxMzIwNjZl
M2U3MjJiNmU2NDE3MzRkZDQ4MWVkM2MwNWI2MmJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKQEAgLTI0NSw2ICsyNDUsOSBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VH
ZXRTb3VyY2VGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgdm9pZCog
YwogdHlwZWRlZiB2b2lkICgqV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZ0Z1bmN0aW9uKShXS1N0
cmluZ1JlZiwgV0tFcnJvclJlZiwgdm9pZCopOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlR2V0Q29u
dGVudHNBc1N0cmluZyhXS1BhZ2VSZWYgcGFnZSwgdm9pZCogY29udGV4dCwgV0tQYWdlR2V0Q29u
dGVudHNBc1N0cmluZ0Z1bmN0aW9uIGZ1bmN0aW9uKTsKIAordHlwZWRlZiB2b2lkICgqV0tQYWdl
R2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzRnVuY3Rpb24pKFdLU3RyaW5nUmVmLCBXS0Vy
cm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5n
SW5BbGxGcmFtZXMoV0tQYWdlUmVmIHBhZ2UsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRl
bnRzQXNTdHJpbmdJbkFsbEZyYW1lc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlR2V0Q29udGVudHNBc01IVE1MRGF0YUZ1bmN0aW9uKShXS0RhdGFSZWYsIFdLRXJy
b3JSZWYsIHZvaWQqKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERh
dGEoV0tQYWdlUmVmIHBhZ2UsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNNSFRN
TERhdGFGdW5jdGlvbiBmdW5jdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDgzZDhhY2IwOTBiMTVlMjBlNGI0NDNlZGQwMjYw
MTM1OTc2MWVhZWMuLmU1MDFkMmVhMzk2ODRkMzNjYmIxNjRlYTgyMzg0NDA5MDE3NjMyNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MjI4Nyw2ICsyMjg3LDIzIEBAIC0gKHZvaWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IKICAgICB9KTsKIH0KIAor
LSAodm9pZClfZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOihCT09MKWFsbEZyYW1lcyB3
aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IgKikpY29t
cGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoIWFsbEZyYW1lcykgeworICAgICAgICBbc2VsZiBf
Z2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxl
cl07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOworICAgIF9wYWdlLT5nZXRDb250ZW50c0FzU3RyaW5n
SW5BbGxGcmFtZXMoW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcsIFdlYktpdDo6Q2FsbGJhY2tCYXNl
OjpFcnJvciBlcnJvcikgeworICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yOjpOb25lKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogUGlwZSBhIHByb3BlciBl
cnJvciBpbiBmcm9tIHRoZSBXZWJQYWdlUHJveHkuCisgICAgICAgICAgICBoYW5kbGVyKG5pbCwg
W05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpzdGF0aWNfY2FzdDxp
bnQ+KGVycm9yKSB1c2VySW5mbzpuaWxdKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBo
YW5kbGVyKHN0cmluZywgbmlsKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfZ2V0Q29udGVudHNB
c0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmli
dXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRy
aWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgX3Bh
Z2UtPmdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKFtoYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYgYXR0cmlidXRlZFN0cmluZykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5k
ZXggY2NiNjljNjc3M2ZkYWVhOTFiYjllMzBhNzg2Mzk3YjVhMGViZDE3OC4uZTc3NTBjNzY5NmE3
NmI1NTI1ZmI5ZWMxOGI4MTExMmNkNWI3MTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNjcsNiArMjY3LDcg
QEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9nZXRNYWluUmVzb3VyY2VEYXRhV2l0aENv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9u
SGFuZGxlcjsKIC0gKHZvaWQpX2dldFdlYkFyY2hpdmVEYXRhV2l0aENvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZv
aWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nSW5B
bGxGcmFtZXM6KEJPT0wpYWxsRnJhbWVzIHdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNTdHJpbmcgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0gKHZvaWQpX2dldENvbnRlbnRzQXNBdHRyaWJ1
dGVkU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0F0dHJpYnV0ZWRTdHJp
bmcgKiwgTlNEaWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5
LCBpZD4gKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIAogLSAodm9pZClfZ2V0QXBwbGljYXRpb25NYW5pZmVz
dFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLQXBwbGljYXRpb25NYW5pZmVzdCAq
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
MTEuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMjE0
NTA3ZTQ0YjgzYTY3ZTJhYWQxMmU4YWU1YzY2ODE2M2M2NmQ2OC4uMzM1NmQwMjNhYjIzZDk4MTBk
NDAxODAzZGI2NWY5MDg1OGZlMzcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0zOTY0LDYgKzM5NjQsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdldENv
bnRlbnRzQXNTdHJpbmcoV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBDYWxsYmEK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0FzU3RyaW5nKGNhbGxiYWNr
SUQpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZy
YW1lcyhXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJy
b3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vzcygp
KSB7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5nKCksIENhbGxiYWNrQmFzZTo6RXJy
b3I6OlVua25vd24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjYWxsYmFj
a0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIG1fcHJvY2Vz
cy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5KCJXZWJQYWdlUHJveHk6OmdldENvbnRl
bnRzQXNTdHJpbmdJbkFsbEZyYW1lcyJfcykpOworICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0Nh
bGxiYWNrSURzLmFkZChjYWxsYmFja0lEKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpH
ZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoY2FsbGJhY2tJRCkpOworfQorCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc0F0dHJpYnV0ZWRT
dHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBBdHRyaWJ1dGVkU3RyaW5nJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDQ4MDcxMDYyYTNiOWM4NGU4OTliMjZmNzc1NzFhMmY4MDQwZjNjMmEuLjc4OGIwMDNi
NDQxOTgwMWVjYzZiYTFhMDcwZjdkNzFkMDEyZWRmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMDc4LDYgKzEwNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8VmVjdG9yPFdl
YkNvcmU6OkludFJlY3Q+PiYgbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4QWZ0ZXJTZWxl
Y3Rpb24pOwogCiAgICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKFdURjo6RnVuY3Rpb248dm9p
ZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgZ2V0
Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgU3Ry
aW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgZ2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBBdHRyaWJ1dGVkU3RyaW5nJik+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVmMmE1MDIwY2I2ZDU0MzYyNmI4
NjZkZmY2ZmZjZWNlMTZjOGY3MTMuLmZiZWE2NDk5NDc0YWFmODQ4NjgyY2JlMGUyZDliYTFkNmNk
MGM4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0zNDUyLDYgKzM0NTIsMTggQEAgdm9pZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5n
KENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCit2b2lkIFdl
YlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyhDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCit7CisgICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9ICIiOworICAgIGZvciAoUmVmUHRyPEZy
YW1lPiBmcmFtZSA9ICZjb3JlUGFnZSgpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHRSZW5kZXJlZCgpKSB7CisgICAgICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgICAgIGlmICh3
ZWJGcmFtZSkKKyAgICAgICAgICAgIHJlc3VsdFN0cmluZy5hcHBlbmQod2ViRnJhbWUtPmNvbnRl
bnRzQXNTdHJpbmcoKSk7CisgICAgfQorCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKK30KKwogI2lmIEVO
QUJMRShNSFRNTCkKIHZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc01IVE1MRGF0YShDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggYjllZDlkNGZjNmQ4MTk5MWJkMTlmZjIyZDFlODI5MGU4OWZmNTQ1Yy4uZjVl
Y2Q3Nzk0YjEyOGJlNDllM2I1YzdiZmJiMzczN2U4MzBmYWMxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQ1Miw2ICsxNDUyLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpOwogCiAgICAgdm9pZCBnZXRDb250
ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZ0lu
QWxsRnJhbWVzKENhbGxiYWNrSUQpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgZ2V0
Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBB
dHRyaWJ1dGVkU3RyaW5nJik+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkY2IxMjM0ZTk1YWNh
Y2ZjZGVlNmJlNjBiNjlkMDgxZDVmMWM2Mzk5Li45ZDJmNWU3YjQ0MTY2ZDhlMTM3MWRkNzNhZDc4
YWQzMWMyZTU5MzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE5Myw2ICsxOTMsNyBAQCBHZW5lcmF0ZVN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZQogCiAgICAgIyBDYWxsYmFja3MuCiAgICAgR2V0Q29udGVudHNBc1N0cmluZyhX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRDb250ZW50c0FzU3RyaW5nSW5B
bGxGcmFtZXMoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgR2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoKSAtPiAoc3RydWN0IFdlYktp
dDo6QXR0cmlidXRlZFN0cmluZyByZXN1bHQpIEFzeW5jCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390035</attachid>
            <date>2020-02-06 17:54:38 -0800</date>
            <delta_ts>2020-02-06 20:11:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200206175350.patch</filename>
            <type>text/plain</type>
            <size>12798</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1OTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJlNjhiZGY5NzQ4M2VhY2M5
YjIxYWVkM2Q2MWY0MjUyZThjY2U3ZDguLmY1NjZmMWMxOGFhMTEwMWYzNzc4MzkxNDc4ZWVkMzNk
ZmU2NmM5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5n
SW5BbGxGcmFtZXMpOiBQaXBpbmcuIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDogRXhwb3J0aW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlv
bkhhbmRsZXI6XSk6IAorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldENvbnRlbnRzQXNTdHJpbmdJ
bkFsbEZyYW1lczp3aXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6IENhbGwgdGhlIGFib3ZlIG1ldGhv
ZCBpZiB0aGUgdXNlciBqdXN0IHdhbnRzIHRoZQorICAgICAgICBtYWluIGZyYW1lIGNvbnRlbnRz
LiBPdGhlcndpc2UsIGNhbGwgdGhlIG5ldyBmdW5jdGlvbiBvbiBwYWdlLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6IEV4cG9zZSBhIG5ldyBTUEkg
Zm9yIGNsaWVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFt
ZXMpOiBQaXBpbmcuIFRoaXMgZW11bGF0ZXMgd2hhdCBnZXRDb250ZW50c0FzU3RyaW5nKCkgZG9l
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogRXhwb3NlIG5ldyBtZXRo
b2QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMpOiBJdGVyYXRlIG92ZXIg
ZnJhbWVzIGFuZCBnZXQgdGhlaXIgY29udGVudCBzdHJpbmdzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjogUGlwaW5nLgorCiAyMDIwLTAyLTA2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl1baU9TXSBBZGQgV0tXZWJ2aWV3Q29uZmln
dXJhdGlvbiBTUEkgdG8gcnVuIGNsaWVudCBuYXZpZ2F0aW9ucyBhdCBmb3JlZ3JvdW5kIHByaW9y
aXR5LCBldmVuIGlmIHRoZSB2aWV3IGlzIGJhY2tncm91bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGVjY2Y0YWUzNTY2MTk2ODA1N2E3Y2ZlZWIyZDk1NDMx
ZTkyNDQ0ZGEuLjFiODdjODI5ZDliZGM0MDdkZDc5MWUwZWQ2NzdjMDlkYTc3OGNmMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjUxMyw2ICsyNTEzLDEx
IEBAIHZvaWQgV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgdm9p
ZCogY29udGV4dCwgV0tQYWdlR2V0Q29udGVuCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRDb250
ZW50c0FzU3RyaW5nKHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2sp
KTsKIH0KIAordm9pZCBXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoV0tQYWdl
UmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdJbkFs
bEZyYW1lc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Q29u
dGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4
dCwgY2FsbGJhY2spKTsKK30KKwogdm9pZCBXS1BhZ2VHZXRCeXRlY29kZVByb2ZpbGUoV0tQYWdl
UmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZUZ1bmN0
aW9uIGNhbGxiYWNrKQogewogICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Qnl0ZWNvZGVQcm9maWxl
KHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggYjdiZGY1OTA2MzUzYTI0NDg4MmM0NzNm
NWM5ZjNhNmI2OTYzOTc1Zi4uN2MxMzIwNjZlM2U3MjJiNmU2NDE3MzRkZDQ4MWVkM2MwNWI2MmJi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTI0NSw2ICsyNDUs
OSBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VHZXRTb3VyY2VGb3JGcmFtZShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgdm9pZCogYwogdHlwZWRlZiB2b2lkICgqV0tQYWdlR2V0Q29u
dGVudHNBc1N0cmluZ0Z1bmN0aW9uKShXS1N0cmluZ1JlZiwgV0tFcnJvclJlZiwgdm9pZCopOwog
V0tfRVhQT1JUIHZvaWQgV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZyhXS1BhZ2VSZWYgcGFnZSwg
dm9pZCogY29udGV4dCwgV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZ0Z1bmN0aW9uIGZ1bmN0aW9u
KTsKIAordHlwZWRlZiB2b2lkICgqV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVz
RnVuY3Rpb24pKFdLU3RyaW5nUmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9p
ZCBXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoV0tQYWdlUmVmIHBhZ2UsIHZv
aWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lc0Z1bmN0aW9u
IGZ1bmN0aW9uKTsKKwogdHlwZWRlZiB2b2lkICgqV0tQYWdlR2V0Q29udGVudHNBc01IVE1MRGF0
YUZ1bmN0aW9uKShXS0RhdGFSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKIFdLX0VYUE9SVCB2b2lk
IFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGEoV0tQYWdlUmVmIHBhZ2UsIHZvaWQqIGNvbnRl
eHQsIFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGFGdW5jdGlvbiBmdW5jdGlvbik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDRm
YTc0NjZmZWQ0MmI2MWJlMjI0YjhiZDJiYWFhMGNjMjM1OTI0ZTguLjAwMmM4M2UwZDZiYWFlMWE5
YmNhYWI4NDI0YzBmYzk4ODQyNGI2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjI4OCw2ICsyMjg4LDIzIEBAIC0gKHZvaWQpX2dl
dENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICosIE5TRXJyb3IKICAgICB9KTsKIH0KIAorLSAodm9pZClfZ2V0Q29udGVudHNBc1N0cmluZ0lu
QWxsRnJhbWVzOihCT09MKWFsbEZyYW1lcyB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TU3RyaW5nICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoIWFs
bEZyYW1lcykgeworICAgICAgICBbc2VsZiBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0
aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIGhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOworICAg
IF9wYWdlLT5nZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoW2hhbmRsZXJdKFN0cmluZyBz
dHJpbmcsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBpZiAo
ZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogUGlwZSBhIHByb3BlciBlcnJvciBpbiBmcm9tIHRoZSBXZWJQYWdlUHJveHku
CisgICAgICAgICAgICBoYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJy
b3JEb21haW4gY29kZTpzdGF0aWNfY2FzdDxpbnQ+KGVycm9yKSB1c2VySW5mbzpuaWxdKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBoYW5kbGVyKHN0cmluZywgbmlsKTsKKyAgICB9KTsK
K30KKwogLSAodm9pZClfZ2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmlidXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNB
dHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRyaWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNv
bXBsZXRpb25IYW5kbGVyCiB7CiAgICAgX3BhZ2UtPmdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3Ry
aW5nKFtoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYgYXR0
cmlidXRlZFN0cmluZykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggY2NiNjljNjc3M2ZkYWVhOTFiYjllMzBhNzg2
Mzk3YjVhMGViZDE3OC4uNzg1N2MzZDVkZDEwYzA0MTQ1MmUwYTgyNzVjN2QzMzZkNjUyNTgxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCkBAIC0yNjcsNiArMjY3LDcgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lk
KV9nZXRNYWluUmVzb3VyY2VEYXRhV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0Rh
dGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2dldFdlYkFyY2hp
dmVEYXRhV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAq
KSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IgKikpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2
b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXM6KEJPT0wpYWxsRnJhbWVzIHdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJvciAqKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogLSAodm9pZClfZ2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmlidXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8
TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRyaWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMu
MCkpOwogCiAtICh2b2lkKV9nZXRBcHBsaWNhdGlvbk1hbmlmZXN0V2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShfV0tBcHBsaWNhdGlvbk1hbmlmZXN0ICopKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1ZjAzODQ0MGY4NmRjYjI3MjFiZjky
ZDExOGJjYWM1OGRkYWM5NTk2Li4xNjJkMzNiMjQyMTNlYjk0NWM4NTdjZDBiMjhlYzAxYzg0ZjFh
NDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM5NzQs
NiArMzk3NCwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyhXVEY6
OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYQogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkdldENvbnRlbnRzQXNTdHJpbmcoY2FsbGJhY2tJRCkpOwogfQogCit2b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKFdURjo6RnVuY3Rpb248
dm9pZChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0
aW9uKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgeworICAgICAgICBjYWxsYmFj
a0Z1bmN0aW9uKFN0cmluZygpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFt
ZXMiX3MpKTsKKyAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5hZGQoY2FsbGJh
Y2tJRCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZ0lu
QWxsRnJhbWVzKGNhbGxiYWNrSUQpKTsKK30KKwogI2lmIFBMQVRGT1JNKENPQ09BKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmYzRmMjBiNDU3MTQ1
MTdjNGI1ZjAyNzcyNTg5ZWZkZjM3MjliMGM1Li40MjBlOWI4ODVkYzZkOTRhZjdmMDdjMjQ3YTcw
ODJiODE2N2FjNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTA3OCw2ICsxMDc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluZFN0cmluZ01hdGNoZXMo
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0Pj4mIG1h
dGNoUmVjdHMsIGludDMyX3QgZmlyc3RJbmRleEFmdGVyU2VsZWN0aW9uKTsKIAogICAgIHZvaWQg
Z2V0Q29udGVudHNBc1N0cmluZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGdldENvbnRlbnRzQXNTdHJpbmdJbkFs
bEZyYW1lcyhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpF
cnJvcik+JiYpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc0F0
dHJpYnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBBdHRyaWJ1dGVkU3Ry
aW5nJik+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDVmMmE1MDIwY2I2ZDU0MzYyNmI4NjZkZmY2ZmZjZWNlMTZjOGY3MTMu
LmFlZmRjNDRmMTU1OGUzN2UzYjlkYTZlYmYwZDY5YWMyMmRmODU0ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDUyLDYgKzM0NTIsMTcg
QEAgdm9pZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxiYWNrKHJlc3Vs
dFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCit2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNT
dHJpbmdJbkFsbEZyYW1lcyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit7CisgICAgU3RyaW5nIHJl
c3VsdFN0cmluZyA9ICIiOworICAgIGZvciAoUmVmUHRyPEZyYW1lPiBmcmFtZSA9ICZjb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHRSZW5kZXJlZCgpKSB7CisgICAgICAgIGlmIChhdXRvKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKCpmcmFtZSkpCisgICAgICAgICAgICByZXN1bHRTdHJpbmcuYXBwZW5kKHdl
YkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkpOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7
Cit9CisKICNpZiBFTkFCTEUoTUhUTUwpCiB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNNSFRN
TERhdGEoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI5ZWQ5ZDRmYzZkODE5OTFiZDE5ZmYyMmQxZTgyOTBl
ODlmZjU0NWMuLmY1ZWNkNzc5NGIxMjhiZTQ5ZTNiNWM3YmZiYjM3MzdlODMwZmFjMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0NTIsNiArMTQ1
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWV3V2lsbEVuZExpdmVSZXNpemUoKTsKIAogICAg
IHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldENvbnRl
bnRzQXNTdHJpbmdJbkFsbEZyYW1lcyhDYWxsYmFja0lEKTsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
ZGNiMTIzNGU5NWFjYWNmY2RlZTZiZTYwYjY5ZDA4MWQ1ZjFjNjM5OS4uOWQyZjVlN2I0NDE2NmQ4
ZTEzNzFkZDczYWQ3OGFkMzFjMmU1OTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xOTMsNiArMTkzLDcgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgICMgQ2FsbGJhY2tzLgogICAgIEdldENvbnRl
bnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0Q29udGVu
dHNBc1N0cmluZ0luQWxsRnJhbWVzKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIEdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKCkgLT4g
KHN0cnVjdCBXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0KSBBc3luYwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA2YWZhNjQ1N2FiNjg5ODc5NGJmNjY5M2MxY2Fm
ODRiYWUwMTUxNzc2Li4zZWI4NDFmZThmYjZhYWQ1MGQ0ZmU3ZDIzY2Q2ZWQ1MzVmODg4ODU0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0dldENvbnRlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KQEAgLTQ5LDYgKzQ5LDI0IEBAIFRFU1QoV0tXZWJW
aWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVyblN0cmluZykKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIEdldENvbnRlbnRzSW5B
bGxGcmFtZXNTaG91bGRSZXR1cm5TdHJpbmcpCit7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZp
ZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+QmVlcDxpZnJhbWUgc3JjZG9jPVwiaGVycFwiPm1l
ZXA8L2lmcmFtZT48aWZyYW1lIHNyY2RvYz1cImRlcnBcIj48L2lmcmFtZT48L2JvZHk+Il07CisK
KyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWQgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IF9nZXRD
b250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXM6WUVTIHdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKE5T
U3RyaW5nICpzdHJpbmcsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVy
cm9yKTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiQmVlcG1lZXAiLCBzdHJpbmcpOworICAg
ICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpbmlzaGVkKTsKK30KKworCiBURVNUKFdLV2ViVmlldywgR2V0Q29udGVudHNTaG91
bGRSZXR1cm5BdHRyaWJ1dGVkU3RyaW5nKQogewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3
PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
</data>
<flag name="review"
          id="405700"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="405699"
          type_id="3"
          status="-"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390049</attachid>
            <date>2020-02-06 19:46:13 -0800</date>
            <delta_ts>2020-02-06 20:38:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200206194524.patch</filename>
            <type>text/plain</type>
            <size>12806</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1OTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJlNjhiZGY5NzQ4M2VhY2M5
YjIxYWVkM2Q2MWY0MjUyZThjY2U3ZDguLmY1NjZmMWMxOGFhMTEwMWYzNzc4MzkxNDc4ZWVkMzNk
ZmU2NmM5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5n
SW5BbGxGcmFtZXMpOiBQaXBpbmcuIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDogRXhwb3J0aW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlv
bkhhbmRsZXI6XSk6IAorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldENvbnRlbnRzQXNTdHJpbmdJ
bkFsbEZyYW1lczp3aXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6IENhbGwgdGhlIGFib3ZlIG1ldGhv
ZCBpZiB0aGUgdXNlciBqdXN0IHdhbnRzIHRoZQorICAgICAgICBtYWluIGZyYW1lIGNvbnRlbnRz
LiBPdGhlcndpc2UsIGNhbGwgdGhlIG5ldyBmdW5jdGlvbiBvbiBwYWdlLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6IEV4cG9zZSBhIG5ldyBTUEkg
Zm9yIGNsaWVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFt
ZXMpOiBQaXBpbmcuIFRoaXMgZW11bGF0ZXMgd2hhdCBnZXRDb250ZW50c0FzU3RyaW5nKCkgZG9l
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogRXhwb3NlIG5ldyBtZXRo
b2QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMpOiBJdGVyYXRlIG92ZXIg
ZnJhbWVzIGFuZCBnZXQgdGhlaXIgY29udGVudCBzdHJpbmdzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjogUGlwaW5nLgorCiAyMDIwLTAyLTA2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl1baU9TXSBBZGQgV0tXZWJ2aWV3Q29uZmln
dXJhdGlvbiBTUEkgdG8gcnVuIGNsaWVudCBuYXZpZ2F0aW9ucyBhdCBmb3JlZ3JvdW5kIHByaW9y
aXR5LCBldmVuIGlmIHRoZSB2aWV3IGlzIGJhY2tncm91bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGVjY2Y0YWUzNTY2MTk2ODA1N2E3Y2ZlZWIyZDk1NDMx
ZTkyNDQ0ZGEuLjFiODdjODI5ZDliZGM0MDdkZDc5MWUwZWQ2NzdjMDlkYTc3OGNmMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjUxMyw2ICsyNTEzLDEx
IEBAIHZvaWQgV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgdm9p
ZCogY29udGV4dCwgV0tQYWdlR2V0Q29udGVuCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRDb250
ZW50c0FzU3RyaW5nKHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2sp
KTsKIH0KIAordm9pZCBXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoV0tQYWdl
UmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdJbkFs
bEZyYW1lc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Q29u
dGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4
dCwgY2FsbGJhY2spKTsKK30KKwogdm9pZCBXS1BhZ2VHZXRCeXRlY29kZVByb2ZpbGUoV0tQYWdl
UmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZUZ1bmN0
aW9uIGNhbGxiYWNrKQogewogICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Qnl0ZWNvZGVQcm9maWxl
KHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggYjdiZGY1OTA2MzUzYTI0NDg4MmM0NzNm
NWM5ZjNhNmI2OTYzOTc1Zi4uN2MxMzIwNjZlM2U3MjJiNmU2NDE3MzRkZDQ4MWVkM2MwNWI2MmJi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTI0NSw2ICsyNDUs
OSBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VHZXRTb3VyY2VGb3JGcmFtZShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgdm9pZCogYwogdHlwZWRlZiB2b2lkICgqV0tQYWdlR2V0Q29u
dGVudHNBc1N0cmluZ0Z1bmN0aW9uKShXS1N0cmluZ1JlZiwgV0tFcnJvclJlZiwgdm9pZCopOwog
V0tfRVhQT1JUIHZvaWQgV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZyhXS1BhZ2VSZWYgcGFnZSwg
dm9pZCogY29udGV4dCwgV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZ0Z1bmN0aW9uIGZ1bmN0aW9u
KTsKIAordHlwZWRlZiB2b2lkICgqV0tQYWdlR2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVz
RnVuY3Rpb24pKFdLU3RyaW5nUmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9p
ZCBXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoV0tQYWdlUmVmIHBhZ2UsIHZv
aWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lc0Z1bmN0aW9u
IGZ1bmN0aW9uKTsKKwogdHlwZWRlZiB2b2lkICgqV0tQYWdlR2V0Q29udGVudHNBc01IVE1MRGF0
YUZ1bmN0aW9uKShXS0RhdGFSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKIFdLX0VYUE9SVCB2b2lk
IFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGEoV0tQYWdlUmVmIHBhZ2UsIHZvaWQqIGNvbnRl
eHQsIFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGFGdW5jdGlvbiBmdW5jdGlvbik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDRm
YTc0NjZmZWQ0MmI2MWJlMjI0YjhiZDJiYWFhMGNjMjM1OTI0ZTguLjAwMmM4M2UwZDZiYWFlMWE5
YmNhYWI4NDI0YzBmYzk4ODQyNGI2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjI4OCw2ICsyMjg4LDIzIEBAIC0gKHZvaWQpX2dl
dENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICosIE5TRXJyb3IKICAgICB9KTsKIH0KIAorLSAodm9pZClfZ2V0Q29udGVudHNBc1N0cmluZ0lu
QWxsRnJhbWVzOihCT09MKWFsbEZyYW1lcyB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TU3RyaW5nICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoIWFs
bEZyYW1lcykgeworICAgICAgICBbc2VsZiBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0
aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIGhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOworICAg
IF9wYWdlLT5nZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoW2hhbmRsZXJdKFN0cmluZyBz
dHJpbmcsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBpZiAo
ZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogUGlwZSBhIHByb3BlciBlcnJvciBpbiBmcm9tIHRoZSBXZWJQYWdlUHJveHku
CisgICAgICAgICAgICBoYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJy
b3JEb21haW4gY29kZTpzdGF0aWNfY2FzdDxpbnQ+KGVycm9yKSB1c2VySW5mbzpuaWxdKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBoYW5kbGVyKHN0cmluZywgbmlsKTsKKyAgICB9KTsK
K30KKwogLSAodm9pZClfZ2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmlidXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNB
dHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRyaWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNv
bXBsZXRpb25IYW5kbGVyCiB7CiAgICAgX3BhZ2UtPmdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3Ry
aW5nKFtoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYgYXR0
cmlidXRlZFN0cmluZykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggY2NiNjljNjc3M2ZkYWVhOTFiYjllMzBhNzg2
Mzk3YjVhMGViZDE3OC4uNzg1N2MzZDVkZDEwYzA0MTQ1MmUwYTgyNzVjN2QzMzZkNjUyNTgxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCkBAIC0yNjcsNiArMjY3LDcgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lk
KV9nZXRNYWluUmVzb3VyY2VEYXRhV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0Rh
dGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2dldFdlYkFyY2hp
dmVEYXRhV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAq
KSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IgKikpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2
b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXM6KEJPT0wpYWxsRnJhbWVzIHdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJvciAqKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogLSAodm9pZClfZ2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmlidXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8
TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRyaWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMu
MCkpOwogCiAtICh2b2lkKV9nZXRBcHBsaWNhdGlvbk1hbmlmZXN0V2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShfV0tBcHBsaWNhdGlvbk1hbmlmZXN0ICopKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1ZjAzODQ0MGY4NmRjYjI3MjFiZjky
ZDExOGJjYWM1OGRkYWM5NTk2Li4xNjJkMzNiMjQyMTNlYjk0NWM4NTdjZDBiMjhlYzAxYzg0ZjFh
NDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM5NzQs
NiArMzk3NCwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyhXVEY6
OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYQogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkdldENvbnRlbnRzQXNTdHJpbmcoY2FsbGJhY2tJRCkpOwogfQogCit2b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKFdURjo6RnVuY3Rpb248
dm9pZChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0
aW9uKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgeworICAgICAgICBjYWxsYmFj
a0Z1bmN0aW9uKFN0cmluZygpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFt
ZXMiX3MpKTsKKyAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5hZGQoY2FsbGJh
Y2tJRCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZ0lu
QWxsRnJhbWVzKGNhbGxiYWNrSUQpKTsKK30KKwogI2lmIFBMQVRGT1JNKENPQ09BKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmYzRmMjBiNDU3MTQ1
MTdjNGI1ZjAyNzcyNTg5ZWZkZjM3MjliMGM1Li40MjBlOWI4ODVkYzZkOTRhZjdmMDdjMjQ3YTcw
ODJiODE2N2FjNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTA3OCw2ICsxMDc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluZFN0cmluZ01hdGNoZXMo
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0Pj4mIG1h
dGNoUmVjdHMsIGludDMyX3QgZmlyc3RJbmRleEFmdGVyU2VsZWN0aW9uKTsKIAogICAgIHZvaWQg
Z2V0Q29udGVudHNBc1N0cmluZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGdldENvbnRlbnRzQXNTdHJpbmdJbkFs
bEZyYW1lcyhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpF
cnJvcik+JiYpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc0F0
dHJpYnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBBdHRyaWJ1dGVkU3Ry
aW5nJik+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDVmMmE1MDIwY2I2ZDU0MzYyNmI4NjZkZmY2ZmZjZWNlMTZjOGY3MTMu
LmFlZmRjNDRmMTU1OGUzN2UzYjlkYTZlYmYwZDY5YWMyMmRmODU0ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDUyLDYgKzM0NTIsMTcg
QEAgdm9pZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxiYWNrKHJlc3Vs
dFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCit2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNT
dHJpbmdJbkFsbEZyYW1lcyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit7CisgICAgU3RyaW5nIHJl
c3VsdFN0cmluZyA9ICIiOworICAgIGZvciAoUmVmUHRyPEZyYW1lPiBmcmFtZSA9ICZjb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHRSZW5kZXJlZCgpKSB7CisgICAgICAgIGlmIChhdXRvKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKCpmcmFtZSkpCisgICAgICAgICAgICByZXN1bHRTdHJpbmcuYXBwZW5kKHdl
YkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkpOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7
Cit9CisKICNpZiBFTkFCTEUoTUhUTUwpCiB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNNSFRN
TERhdGEoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI5ZWQ5ZDRmYzZkODE5OTFiZDE5ZmYyMmQxZTgyOTBl
ODlmZjU0NWMuLmY1ZWNkNzc5NGIxMjhiZTQ5ZTNiNWM3YmZiYjM3MzdlODMwZmFjMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0NTIsNiArMTQ1
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWV3V2lsbEVuZExpdmVSZXNpemUoKTsKIAogICAg
IHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldENvbnRl
bnRzQXNTdHJpbmdJbkFsbEZyYW1lcyhDYWxsYmFja0lEKTsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
ZGNiMTIzNGU5NWFjYWNmY2RlZTZiZTYwYjY5ZDA4MWQ1ZjFjNjM5OS4uOWQyZjVlN2I0NDE2NmQ4
ZTEzNzFkZDczYWQ3OGFkMzFjMmU1OTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xOTMsNiArMTkzLDcgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgICMgQ2FsbGJhY2tzLgogICAgIEdldENvbnRl
bnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0Q29udGVu
dHNBc1N0cmluZ0luQWxsRnJhbWVzKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIEdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKCkgLT4g
KHN0cnVjdCBXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0KSBBc3luYwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA2YWZhNjQ1N2FiNjg5ODc5NGJmNjY5M2MxY2Fm
ODRiYWUwMTUxNzc2Li42ZmVjM2FhYmI5MTFjOTJhMjNmYTg2NjE3ZTZiYTUxNzI0NzM0OTIwIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0dldENvbnRlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KQEAgLTQ5LDYgKzQ5LDI0IEBAIFRFU1QoV0tXZWJW
aWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVyblN0cmluZykKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIEdldENvbnRlbnRzSW5B
bGxGcmFtZXNTaG91bGRSZXR1cm5TdHJpbmcpCit7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZp
ZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+YmVlcDxpZnJhbWUgc3JjZG9jPVwibWVlcFwiPmhl
cnA8L2lmcmFtZT48aWZyYW1lIHNyY2RvYz1cIm1vb3BcIj5kZXJwPC9pZnJhbWU+PC9ib2R5PiJd
OworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBf
Z2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOllFUyB3aXRoQ29tcGxldGlvbkhhbmRsZXI6
XihOU1N0cmluZyAqc3RyaW5nLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImJlZXBtZWVwbW9vcCIsIHN0cmlu
Zyk7CisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworfQorCisKIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250
ZW50c1Nob3VsZFJldHVybkF0dHJpYnV0ZWRTdHJpbmcpCiB7CiAgICAgUmV0YWluUHRyPFRlc3RX
S1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390052</attachid>
            <date>2020-02-06 20:38:33 -0800</date>
            <delta_ts>2020-02-07 17:48:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200206203745.patch</filename>
            <type>text/plain</type>
            <size>10703</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1OTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJlNjhiZGY5NzQ4M2VhY2M5
YjIxYWVkM2Q2MWY0MjUyZThjY2U3ZDguLmM2YTcxZjMxODJjODU5ZDliODUyMWJkMGY2ZjFkMzc1
MjIzYzdmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpdKTogCisgICAgICAgICgtW1dLV2Vi
VmlldyBfZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOndpdGhDb21wbGV0aW9uSGFuZGxl
cjpdKTogQ2FsbCB0aGUgYWJvdmUgbWV0aG9kIGlmIHRoZSB1c2VyIGp1c3Qgd2FudHMgdGhlCisg
ICAgICAgIG1haW4gZnJhbWUgY29udGVudHMuIE90aGVyd2lzZSwgY2FsbCB0aGUgbmV3IGZ1bmN0
aW9uIG9uIHBhZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDogRXhwb3NlIGEgbmV3IFNQSSBmb3IgY2xpZW50cy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omdl
dENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyk6IFBpcGluZy4gVGhpcyBlbXVsYXRlcyB3aGF0
IGdldENvbnRlbnRzQXNTdHJpbmcoKSBkb2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOiBFeHBvc2UgbmV3IG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0Q29udGVudHNB
c1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmdJ
bkFsbEZyYW1lcyk6IEl0ZXJhdGUgb3ZlciBmcmFtZXMgYW5kIGdldCB0aGVpciBjb250ZW50IHN0
cmluZ3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBQaXBpbmcuCisKIDIw
MjAtMDItMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0sy
XVtpT1NdIEFkZCBXS1dlYnZpZXdDb25maWd1cmF0aW9uIFNQSSB0byBydW4gY2xpZW50IG5hdmln
YXRpb25zIGF0IGZvcmVncm91bmQgcHJpb3JpdHksIGV2ZW4gaWYgdGhlIHZpZXcgaXMgYmFja2dy
b3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
aW5kZXggNGZhNzQ2NmZlZDQyYjYxYmUyMjRiOGJkMmJhYWEwY2MyMzU5MjRlOC4uMDAyYzgzZTBk
NmJhYWUxYTliY2FhYjg0MjRjMGZjOTg4NDI0YjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yMjg4LDYgKzIyODgsMjMgQEAgLSAo
dm9pZClfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNTdHJpbmcgKiwgTlNFcnJvcgogICAgIH0pOwogfQogCistICh2b2lkKV9nZXRDb250ZW50c0Fz
U3RyaW5nSW5BbGxGcmFtZXM6KEJPT0wpYWxsRnJhbWVzIHdpdGhDb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcgoreworICAg
IGlmICghYWxsRnJhbWVzKSB7CisgICAgICAgIFtzZWxmIF9nZXRDb250ZW50c0FzU3RyaW5nV2l0
aENvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gaGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxl
cik7CisgICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyhbaGFuZGxlcl0o
U3RyaW5nIHN0cmluZywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAg
ICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBQaXBlIGEgcHJvcGVyIGVycm9yIGluIGZyb20gdGhlIFdlYlBh
Z2VQcm94eS4KKyAgICAgICAgICAgIGhhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21h
aW46V0tFcnJvckRvbWFpbiBjb2RlOnN0YXRpY19jYXN0PGludD4oZXJyb3IpIHVzZXJJbmZvOm5p
bF0pOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGhhbmRsZXIoc3RyaW5nLCBuaWwpOwor
ICAgIH0pOworfQorCiAtICh2b2lkKV9nZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZ1dpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TRGljdGlv
bmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICosIE5TRXJy
b3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfcGFnZS0+Z2V0Q29udGVudHNBc0F0dHJp
YnV0ZWRTdHJpbmcoW2hhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvJiBhdHRyaWJ1dGVkU3RyaW5nKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBjY2I2OWM2NzczZmRhZWE5MWJi
OWUzMGE3ODYzOTdiNWEwZWJkMTc4Li43ODU3YzNkNWRkMTBjMDQxNDUyZTBhODI3NWM3ZDMzNmQ2
NTI1ODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKQEAgLTI2Nyw2ICsyNjcsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4K
IC0gKHZvaWQpX2dldE1haW5SZXNvdXJjZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TRGF0YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZ2V0
V2ViQXJjaGl2ZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqLCBO
U0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZ2V0Q29udGVudHNBc1N0cmlu
Z1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJvciAqKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKKy0gKHZvaWQpX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczooQk9PTClhbGxGcmFt
ZXMgd2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBOU0Vycm9yICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9nZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZ1dp
dGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TRGlj
dGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICosIE5T
RXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSks
IGlvcygxMy4wKSk7CiAKIC0gKHZvaWQpX2dldEFwcGxpY2F0aW9uTWFuaWZlc3RXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QgKikpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDVmMDM4NDQwZjg2ZGNi
MjcyMWJmOTJkMTE4YmNhYzU4ZGRhYzk1OTYuLjE2MmQzM2IyNDIxM2ViOTQ1Yzg1N2NkMGIyOGVj
MDFjODRmMWE0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMzk3NCw2ICszOTc0LDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3Ry
aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhjYWxsYmFja0lEKSk7CiB9CiAK
K3ZvaWQgV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nSW5BbGxGcmFtZXMoV1RGOjpG
dW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxi
YWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CisgICAgICAg
IGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5nKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24p
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxs
YmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIG1fcHJvY2Vzcy0+dGhyb3R0bGVy
KCkuYmFja2dyb3VuZEFjdGl2aXR5KCJXZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmdJ
bkFsbEZyYW1lcyJfcykpOworICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURzLmFk
ZChjYWxsYmFja0lEKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0Fz
U3RyaW5nSW5BbGxGcmFtZXMoY2FsbGJhY2tJRCkpOworfQorCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBBdHRyaWJ1dGVkU3RyaW5nJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGZjNGYy
MGI0NTcxNDUxN2M0YjVmMDI3NzI1ODllZmRmMzcyOWIwYzUuLjQyMGU5Yjg4NWRjNmQ5NGFmN2Yw
N2MyNDdhNzA4MmI4MTY3YWM0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xMDc4LDYgKzEwNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5kU3RyaW5n
TWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8VmVjdG9yPFdlYkNvcmU6OkludFJl
Y3Q+PiYgbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4QWZ0ZXJTZWxlY3Rpb24pOwogCiAg
ICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgU3Ry
aW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0
cmluZ0luQWxsRnJhbWVzKFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJik7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRDb250
ZW50c0FzQXR0cmlidXRlZFN0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEF0dHJp
YnV0ZWRTdHJpbmcmKT4mJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWYyYTUwMjBjYjZkNTQzNjI2Yjg2NmRmZjZmZmNlY2Ux
NmM4ZjcxMy4uMDNlNWExNTZkMGYzZDY2ODQ1MTkxODZjMzQ5YjdkYjZhY2Y0Y2MxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0NTIsNiAr
MzQ1MiwxNyBAQCB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJh
Y2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6Z2V0Q29u
dGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3sKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgZm9yIChSZWZQdHI8RnJhbWU+IGZyYW1lID0gJmNv
cmVQYWdlKCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlTmV4dFJlbmRlcmVkKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdl
YkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkpOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2soYnVpbGRlci50b1N0cmluZygpLCBjYWxsYmFj
a0lEKSk7Cit9CisKICNpZiBFTkFCTEUoTUhUTUwpCiB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRz
QXNNSFRNTERhdGEoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI5ZWQ5ZDRmYzZkODE5OTFiZDE5ZmYyMmQx
ZTgyOTBlODlmZjU0NWMuLmY1ZWNkNzc5NGIxMjhiZTQ5ZTNiNWM3YmZiYjM3MzdlODMwZmFjMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0NTIs
NiArMTQ1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWV3V2lsbEVuZExpdmVSZXNpemUoKTsK
IAogICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdl
dENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyhDYWxsYmFja0lEKTsKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYpPiYmKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggZGNiMTIzNGU5NWFjYWNmY2RlZTZiZTYwYjY5ZDA4MWQ1ZjFjNjM5OS4uOWQyZjVlN2I0
NDE2NmQ4ZTEzNzFkZDczYWQ3OGFkMzFjMmU1OTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xOTMsNiArMTkz
LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgICMgQ2FsbGJhY2tzLgogICAgIEdl
dENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0
Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5n
KCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0KSBBc3luYwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA2YWZhNjQ1N2FiNjg5ODc5NGJmNjY5
M2MxY2FmODRiYWUwMTUxNzc2Li42ZmVjM2FhYmI5MTFjOTJhMjNmYTg2NjE3ZTZiYTUxNzI0NzM0
OTIwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0dldENvbnRlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KQEAgLTQ5LDYgKzQ5LDI0IEBAIFRFU1Qo
V0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVyblN0cmluZykKICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIEdldENvbnRl
bnRzSW5BbGxGcmFtZXNTaG91bGRSZXR1cm5TdHJpbmcpCit7CisgICAgUmV0YWluUHRyPFRlc3RX
S1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+YmVlcDxpZnJhbWUgc3JjZG9jPVwibWVl
cFwiPmhlcnA8L2lmcmFtZT48aWZyYW1lIHNyY2RvYz1cIm1vb3BcIj5kZXJwPC9pZnJhbWU+PC9i
b2R5PiJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7CisKKyAgICBbd2Vi
VmlldyBfZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOllFUyB3aXRoQ29tcGxldGlvbkhh
bmRsZXI6XihOU1N0cmluZyAqc3RyaW5nLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBF
Q1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImJlZXBtZWVwbW9vcCIs
IHN0cmluZyk7CisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworfQorCisKIFRFU1QoV0tXZWJWaWV3LCBH
ZXRDb250ZW50c1Nob3VsZFJldHVybkF0dHJpYnV0ZWRTdHJpbmcpCiB7CiAgICAgUmV0YWluUHRy
PFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390154</attachid>
            <date>2020-02-07 17:48:42 -0800</date>
            <delta_ts>2020-02-10 14:51:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200207174753.patch</filename>
            <type>text/plain</type>
            <size>21150</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkZmYxNmUyZmE5YTQzYmU4
OGE3Yzk3NjI4ZjNlZWUxN2RhMzk0ZjIuLmE3MjBhMzhlMTUwNzVjZTU2YTE1ZWFhMmMyMDFhOTI1
OTM0NmQ2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpdKTogCisgICAgICAgICgtW1dLV2Vi
VmlldyBfZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOndpdGhDb21wbGV0aW9uSGFuZGxl
cjpdKTogQ2FsbCB0aGUgYWJvdmUgbWV0aG9kIGlmIHRoZSB1c2VyIGp1c3Qgd2FudHMgdGhlCisg
ICAgICAgIG1haW4gZnJhbWUgY29udGVudHMuIE90aGVyd2lzZSwgY2FsbCB0aGUgbmV3IGZ1bmN0
aW9uIG9uIHBhZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDogRXhwb3NlIGEgbmV3IFNQSSBmb3IgY2xpZW50cy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omdl
dENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyk6IFBpcGluZy4gVGhpcyBlbXVsYXRlcyB3aGF0
IGdldENvbnRlbnRzQXNTdHJpbmcoKSBkb2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOiBFeHBvc2UgbmV3IG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0Q29udGVudHNB
c1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmdJ
bkFsbEZyYW1lcyk6IEl0ZXJhdGUgb3ZlciBmcmFtZXMgYW5kIGdldCB0aGVpciBjb250ZW50IHN0
cmluZ3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBQaXBpbmcuCisKIDIw
MjAtMDItMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEJh
Y2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lciBzaG91bGQgbm90IGJlIGFjdGl2ZSBp
ZiBydW5uaW5nIGFjdGl2ZSBwYWdlcyBhbmQgc2VydmljZSB3b3JrZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVz
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWUzODliNjQxZDMzNWM3NzAzMTczYTk3N2Y5MzNlNWY1ODQ2ZmYzZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0cmluZ0lu
Y2x1ZGVzQ2hpbGRGcmFtZXMuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworZW51bSBjbGFzcyBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIDogYm9v
bCB7IE5vLCBZZXMgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6Q29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAor
ICAgIFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcywKKyAgICBXZWJL
aXQ6OkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6Ok5vLAorICAgIFdlYktpdDo6
Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6WWVzCisgICAgPjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggZWNjZjRhZTM1NjYxOTY4MDU3YTdjZmVlYjJkOTU0MzFlOTI0NDRkYS4uZDcyNzk1NTQ2
NzViMzFhNjRlNWVkYzFmNmYzYzgzZGIxNzkyOTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIu
aCIKKyNpbmNsdWRlICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5j
bHVkZSAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKQEAgLTI1MTAsNyArMjUxMSw3IEBA
IHZvaWQgV0tQYWdlR2V0U291cmNlRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLRnJhbWVS
ZWYgZnJhbWVSZWYsIHZvaWQqIGNvbnRlCiAKIHZvaWQgV0tQYWdlR2V0Q29udGVudHNBc1N0cmlu
ZyhXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdlR2V0Q29udGVudHNBc1N0
cmluZ0Z1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0Q29udGVu
dHNBc1N0cmluZyh0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRleHQsIGNhbGxiYWNrKSk7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRDb250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXM6Ok5vLCB0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRl
eHQsIGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV0tQYWdlR2V0Qnl0ZWNvZGVQcm9maWxlKFdLUGFn
ZVJlZiBwYWdlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VHZXRCeXRlY29kZVByb2ZpbGVGdW5j
dGlvbiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IGFhOTAwMmU1NjMwODViMTlkYThiOGQ4NWM4NzZkZWEzN2JmZjFjZmIu
LjMzMmNiMTc3M2QwYzU5NWFkNzU1M2UyZmJlNTIxYjgwZGYwODE1YzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzEsNiArMzEsNyBA
QAogI2ltcG9ydCAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW1wb3J0ICJBdHRyaWJ1
dGVkU3RyaW5nLmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCisj
aW1wb3J0ICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW1wb3J0ICJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2ltcG9ydCAiRmluZENsaWVudC5oIgogI2ltcG9y
dCAiRnVsbHNjcmVlbkNsaWVudC5oIgpAQCAtMjI3OSw3ICsyMjgwLDI0IEBAIC0gKHZvaWQpX2dl
dENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICosIE5TRXJyb3IKIHsKICAgICBhdXRvIGhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlv
bkhhbmRsZXIpOwogCi0gICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmcoW2hhbmRsZXJdKFN0
cmluZyBzdHJpbmcsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9w
YWdlLT5nZXRDb250ZW50c0FzU3RyaW5nKFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXND
aGlsZEZyYW1lczo6Tm8sIFtoYW5kbGVyXShTdHJpbmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJh
Y2tCYXNlOjpFcnJvcjo6Tm9uZSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFBpcGUgYSBwcm9w
ZXIgZXJyb3IgaW4gZnJvbSB0aGUgV2ViUGFnZVByb3h5LgorICAgICAgICAgICAgaGFuZGxlcihu
aWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6c3RhdGljX2Nh
c3Q8aW50PihlcnJvcikgdXNlckluZm86bmlsXSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgaGFuZGxlcihzdHJpbmcsIG5pbCk7CisgICAgfSk7Cit9CisKKy0gKHZvaWQpX2dldENvbnRl
bnRzQXNTdHJpbmdJbkFsbEZyYW1lczooQk9PTClhbGxGcmFtZXMgd2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU1N0cmluZyAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCit7
CisgICAgaWYgKCFhbGxGcmFtZXMpIHsKKyAgICAgICAgW3NlbGYgX2dldENvbnRlbnRzQXNTdHJp
bmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byBoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICBfcGFnZS0+Z2V0Q29udGVudHNBc1N0cmluZyhhbGxGcmFtZXMgPyBXZWJL
aXQ6OkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6OlllcyA6IFdlYktpdDo6Q29u
dGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6Tm8sIFtoYW5kbGVyXShTdHJpbmcgc3Ry
aW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgaWYgKGVy
cm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IFBpcGUgYSBwcm9wZXIgZXJyb3IgaW4gZnJvbSB0aGUgV2ViUGFnZVByb3h5Lgog
ICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9y
RG9tYWluIGNvZGU6c3RhdGljX2Nhc3Q8aW50PihlcnJvcikgdXNlckluZm86bmlsXSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAppbmRleCA1Yjk1Zjk3ZGQyOGY5NDNhZmIyMWE1MmVjZDBjYWMxZjA4MWM4MmNlLi4zYWU1NzRh
OGY5Y2NmM2MyNjM0OTQwMDg4OWIzOTFhNTk4N2Y3Nzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI2Niw2ICsy
NjYsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX2dldE1haW5SZXNvdXJjZURhdGFX
aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqLCBOU0Vycm9yICopKWNvbXBs
ZXRpb25IYW5kbGVyOwogLSAodm9pZClfZ2V0V2ViQXJjaGl2ZURhdGFXaXRoQ29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwog
LSAodm9pZClfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX2dldENvbnRlbnRzQXNTdHJp
bmdJbkFsbEZyYW1lczooQk9PTClhbGxGcmFtZXMgd2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShOU1N0cmluZyAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9nZXRD
b250ZW50c0FzQXR0cmlidXRlZFN0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TRGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1
bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAKIC0gKHZvaWQpX2dldEFw
cGxpY2F0aW9uTWFuaWZlc3RXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0FwcGxp
Y2F0aW9uTWFuaWZlc3QgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDVmMDM4NDQwZjg2ZGNiMjcyMWJmOTJkMTE4YmNhYzU4ZGRhYzk1OTYuLjUw
ZjYzOTM4Y2JhMjg4MmE4MTNlMTU0ZDNlZTYxYWYxNTExNTUxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzk2MiwxNiArMzk2MiwxNiBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0U291cmNlRm9yRnJhbWUoV2ViRnJhbWVQcm94eSogZnJhbWUsIFdURjo6
RnVuY3Rpb248dm9pZCAoYwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFNvdXJjZUZv
ckZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmcoV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBTdHJp
bmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQ
YWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGls
ZEZyYW1lcyBpbmNsdWRlc0NoaWxkRnJhbWVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3Ry
aW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBp
ZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihTdHJp
bmcoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgCisKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92
ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0
aXZpdHkoIldlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyJfcykpOwogICAgIG1fbG9h
ZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURzLmFkZChjYWxsYmFja0lEKTsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0FzU3RyaW5nKGNhbGxiYWNrSUQpKTsKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0FzU3RyaW5nKGluY2x1ZGVzQ2hpbGRG
cmFtZXMsIGNhbGxiYWNrSUQpKTsKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmYzRmMjBiNDU3MTQ1MTdjNGI1ZjAyNzcy
NTg5ZWZkZjM3MjliMGM1Li5hNjlmMTliZjg1ZDdjNTQ5YjNlZTViMjU0NTczYTM2ODBjZTc1M2M1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjcsNiArMjcsNyBA
QAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbmNsdWRlICJD
b250ZXh0TWVudUNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgogI2luY2x1
ZGUgIkRyYWdDb250cm9sbGVyQWN0aW9uLmgiCkBAIC0xMDc3LDcgKzEwNzgsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRGYWlsVG9GaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQg
ZGlkRmluZFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFZlY3RvcjxX
ZWJDb3JlOjpJbnRSZWN0Pj4mIG1hdGNoUmVjdHMsIGludDMyX3QgZmlyc3RJbmRleEFmdGVyU2Vs
ZWN0aW9uKTsKIAotICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhXVEY6OkZ1bmN0aW9uPHZv
aWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGdl
dENvbnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcywgV1RG
OjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3Ry
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYpPiYmKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMTYzMGMwOGQwM2VmNTc3ZTA5MTM1ZWNiYjc4YjQ1MTBjZThmNzU4Zi4uNDhiYTg3
YzBmMjc2MDVjYmU0MzZmMjBhZDgzOWUxOTEzZTIzZTMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjg0LDYgKzE2ODQsOCBAQAog
CQlDOUMxODMzQzFCNzQwMjZEMDA3MDM2QTcgLyogV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2Vy
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
OUMxODMzODFCNzNGRDZBMDA3MDM2QTcgLyogV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyQ2xp
ZW50LmggKi87IH07CiAJCUM5Q0Q0Mzk4MUI0QjAwMUQwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Np
b25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzlDRDQzOTQxQjRCMDAwRTAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgg
Ki87IH07CiAJCUM5Q0Q0MzlEMUI0QjAyNEYwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUNE
NDM5QTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNBMDUzOTc3MjNFRTMx
RTEwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQTA1Mzk3NjIzRUUzMUUx
MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oICovOyB9Owor
CQlDQTA1Mzk3OTIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGls
ZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0EwNTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMuaCAqLzsgfTsKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCUNEMEM2ODMxMjAxRkQxMDEwMEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5W
aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QwQzY4MkYyMDFGRDEwMTAwQTU5NDA5IC8qIFdLRnVsbFNjcmVlblZpZXdDb250cm9s
bGVyLmggKi87IH07CiAJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggKi87IH07CkBAIC00OTA5LDYgKzQ5MTEsOCBAQAogCQlDOUNENDM5NDFCNEIwMDBFMDAy
MzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzlDRDQzOTkxQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0
YWRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM5Q0Q0MzlB
MUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0EwNTM5NzYyM0VFMzFFMTAwQTU1M0RDIC8qIENvbnRlbnRB
c1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEFzU3Ry
aW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
QTA1Mzk3ODIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZy
YW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUwMTlENDlCNUQwMDVBQkNF
MCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwOyBwYXRoID0gTWVk
aWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5oOyBwYXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMEM2ODJGMjAxRkQxMDEwMEE1
OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1
bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2Ny
ZWVuVmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU2Njgs
NiArNTY3Miw3IEBACiAJCQkJQkNGMTg2MzcxNjdEMDcxRTAwQTFBODVBIC8qIENhY2hlTW9kZWwu
Y3BwICovLAogCQkJCUJDMzA2NUY5MTI1OTM0NEUwMEU3MTI3OCAvKiBDYWNoZU1vZGVsLmggKi8s
CiAJCQkJOUJDNTlENkMxRUZDQ0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLywKKwkJCQlD
QTA1Mzk3ODIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZy
YW1lcy5oICovLAogCQkJCTUxMjlFQjExMjNEMERFNzgwMEFGMUNENyAvKiBDb250ZW50V29ybGRT
aGFyZWQuaCAqLywKIAkJCQk1MTA2RDdCRjE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5jcHAgKi8sCiAJCQkJNTEwNkQ3QzAxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRl
eHRNZW51Q29udGV4dERhdGEuaCAqLywKQEAgLTg0NDgsNiArODQ1Myw3IEBACiAJCQkJRTE1MTND
NjUxNjZFQUJCMjAwMTQ5RkNCIC8qIEF1eGlsaWFyeVByb2Nlc3NQcm94eS5oICovLAogCQkJCTQ2
QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwICovLAogCQkJCTQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5k
UHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLywKKwkJCQlDQTA1Mzk3NjIzRUUzMUUxMDBB
NTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oICovLAogCQkJCTA3
Mjk3RjlDMUMxNzExRUEwMDNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAgKi8s
CiAJCQkJMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdl
LmggKi8sCiAJCQkJQkMyNjUyMTIxMTgyNjA4MTAwMjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHku
Y3BwICovLApAQCAtMTAxOTAsNiArMTAxOTYsOCBAQAogCQkJCTM3QkVDNEUxMTk0OTE0ODYwMDhC
NDI4NiAvKiBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzN0M0RTlGNjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzAzMkRBQjEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0EwNTM5NzkyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVz
Q2hpbGRGcmFtZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNBMDUzOTc3MjNFRTMxRTEwMEE1NTNE
QyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hhcmVkLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTA2RDdDNDE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjFDQUUxRTk5NEMwQzAwMjlENUY5
IC8qIENvcmVQcmVkaWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWYyYTUwMjBjYjZkNTQzNjI2Yjg2
NmRmZjZmZmNlY2UxNmM4ZjcxMy4uYWJlNzQzMmUyYzE3YmU0YzY5OWY2ZGI2MGY0MDk1ZGI5N2Ji
YmQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTM0NDYsMTAgKzM0NDYsMjUgQEAgdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5GcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQKICAgICBydW5K
YXZhU2NyaXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9LCBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpLCBjYWxsYmFja0lEKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKLXsKLSAgICBTdHJpbmcgcmVzdWx0U3RyaW5nID0gbV9tYWluRnJhbWUtPmNvbnRlbnRzQXNT
dHJpbmcoKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxiYWNr
KHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwordm9pZCBXZWJQYWdlOjpnZXRDb250ZW50c0Fz
U3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMgaW5jbHVkZUNoaWxkRnJh
bWVzLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit7CisgICAgc3dpdGNoIChpbmNsdWRlQ2hpbGRG
cmFtZXMpIHsKKyAgICBjYXNlIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6Ok5v
OiB7CisgICAgICAgIFN0cmluZyByZXN1bHRTdHJpbmcgPSBtX21haW5GcmFtZS0+Y29udGVudHNB
c1N0cmluZygpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0Nh
bGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzOjpZZXM6IHsKKyAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICBmb3IgKFJlZlB0cjxGcmFtZT4g
ZnJhbWUgPSAmY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0UmVuZGVyZWQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHdl
YkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKSkKKyAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCh3ZWJGcmFtZS0+Y29udGVudHNBc1N0cmluZygpKTsKKyAgICAgICAg
fQorCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2so
YnVpbGRlci50b1N0cmluZygpLCBjYWxsYmFja0lEKSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICB9CiB9CiAKICNpZiBFTkFCTEUoTUhUTUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjllZDlkNGZjNmQ4MTk5MWJkMTlmZjIyZDFlODI5MGU4
OWZmNTQ1Yy4uMzllM2IxM2Q0NmYyYzIzMDE4YjI4ZDVkYWVjYjNhZGU0ZDNmNThiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkFQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgorI2luY2x1ZGUgIkNvbnRlbnRB
c1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8u
aCIKICNpbmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKICNpbmNsdWRlICJGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uLmgiCkBAIC0xNDUxLDcgKzE0NTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdmll
d1dpbGxTdGFydExpdmVSZXNpemUoKTsKICAgICB2b2lkIHZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgp
OwogCi0gICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOworICAgIHZvaWQg
Z2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLCBD
YWxsYmFja0lEKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNB
dHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0
cmluZyYpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZGNiMTIzNGU5NWFjYWNmY2RlZTZiZTYw
YjY5ZDA4MWQ1ZjFjNjM5OS4uZjlhNjQyOTNhMmE1YjFjODk0MzI2ZDFiZmEwYjFlNjFlYmJiNDQ4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0xOTIsNyArMTkyLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCkKIAogICAgICMg
Q2FsbGJhY2tzLgotICAgIEdldENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCisgICAgR2V0Q29udGVudHNBc1N0cmluZyhlbnVtOmJvb2wgV2ViS2l0OjpDb250
ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIGluQ2hpbGRGcmFtZXMsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdldENvbnRlbnRz
QXNBdHRyaWJ1dGVkU3RyaW5nKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmcg
cmVzdWx0KSBBc3luYwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA2YWZh
NjQ1N2FiNjg5ODc5NGJmNjY5M2MxY2FmODRiYWUwMTUxNzc2Li5jNGI0N2E0MGM0MjE4NDBlYTU4
MjkyMDM0MDI5Yzg0NzgwNmZmNTE5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KQEAgLTQ5
LDYgKzQ5LDIzIEBAIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVyblN0cmlu
ZykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KIAorVEVTVChX
S1dlYlZpZXcsIEdldENvbnRlbnRzSW5BbGxGcmFtZXNTaG91bGRSZXR1cm5TdHJpbmcpCit7Cisg
ICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwor
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+YmVlcDxp
ZnJhbWUgc3JjZG9jPVwibWVlcFwiPmhlcnA8L2lmcmFtZT48aWZyYW1lIHNyY2RvYz1cIm1vb3Bc
Ij5kZXJwPC9pZnJhbWU+PC9ib2R5PiJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0g
ZmFsc2U7CisKKyAgICBbd2ViVmlldyBfZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOllF
UyB3aXRoQ29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqc3RyaW5nLCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAImJlZXBtZWVwbW9vcCIsIHN0cmluZyk7CisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAg
ICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworfQorCiBU
RVNUKFdLV2ViVmlldywgR2V0Q29udGVudHNTaG91bGRSZXR1cm5BdHRyaWJ1dGVkU3RyaW5nKQog
ewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390298</attachid>
            <date>2020-02-10 14:51:21 -0800</date>
            <delta_ts>2020-02-10 14:54:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200210145031.patch</filename>
            <type>text/plain</type>
            <size>21144</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkZmYxNmUyZmE5YTQzYmU4
OGE3Yzk3NjI4ZjNlZWUxN2RhMzk0ZjIuLjQ4NzQyNjExODU4NmM3OGE0N2NiODU0MDMwZDc5NTgy
ZGEwZDM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpdKTogCisgICAgICAgICgtW1dLV2Vi
VmlldyBfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVy
Ol0pOiBDYWxsIHRoZSBuZXcgZnVuY3Rpb24gdG8gZXh0cmFjdCBjb250ZW50cyBmcm9tIGFsbAor
ICAgICAgICBmcmFtZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaDogRXhwb3NlIGEgbmV3IFNQSSBmb3IgY2xpZW50cy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyk6IFBpcGluZy4gVGhpcyBlbXVsYXRlcyB3
aGF0IGdldENvbnRlbnRzQXNTdHJpbmcoKSBkb2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOiBFeHBvc2UgbmV3IG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0Q29udGVu
dHNBc1N0cmluZyk6IEF1Z21lbnQgdG8gdGFrZSBhIGZsYWcgc2F5aW5nIHdoZXRoZXIgb3Igbm90
IHdlIHdhbnQgdG8gZXh0cmFjdAorICAgICAgICBmcm9tIGFsbCBmcmFtZXMuIElmIHdlIGRvLCBp
dGVyYXRlIG92ZXIgYWxsIHRoZSBmcmFtZXMgYW5kIGdldCB0aGVpciBjb250ZW50IHN0cmluZ3Ms
IGFwcGVuZGluZyB0d28KKyAgICAgICAgbmV3IGxpbmVzIGluIHRoZSBtaWRkbGUuCisgCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogUGlwaW5nLgorCisgICAgICAgICogU2hhcmVk
L0NvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaDogQWRkIGEgbmV3IGhlYWRlciB0
byBleHBvc2UgYW4gZW51bS4KKwogMjAyMC0wMi0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
IHNob3VsZCBub3QgYmUgYWN0aXZlIGlmIHJ1bm5pbmcgYWN0aXZlIHBhZ2VzIGFuZCBzZXJ2aWNl
IHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0
cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjgyNDEyOThkZDhiOTUwZjMx
Y2I1YThlYjAxOTM5ODNjNWQ3MTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIENvbnRlbnRBc1N0cmluZ0lu
Y2x1ZGVzQ2hpbGRGcmFtZXMgOiBib29sIHsgTm8sIFllcyB9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGVjY2Y0
YWUzNTY2MTk2ODA1N2E3Y2ZlZWIyZDk1NDMxZTkyNDQ0ZGEuLmQ3Mjc5NTU0Njc1YjMxYTY0ZTVl
ZGMxZjZmM2M4M2RiMTc5Mjk4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb24uaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCisjaW5jbHVk
ZSAiQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2luY2x1ZGUgIkxlZ2Fj
eVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCkBAIC0yNTEwLDcgKzI1MTEsNyBAQCB2b2lkIFdLUGFn
ZUdldFNvdXJjZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lUmVm
LCB2b2lkKiBjb250ZQogCiB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmcoV0tQYWdlUmVm
IHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdGdW5jdGlv
biBjYWxsYmFjaykKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNTdHJpbmco
dG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFjaykpOworICAgIHRvSW1w
bChwYWdlUmVmKS0+Z2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzOjpObywgdG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFj
aykpOwogfQogCiB2b2lkIFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZShXS1BhZ2VSZWYgcGFnZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tQYWdlR2V0Qnl0ZWNvZGVQcm9maWxlRnVuY3Rpb24gY2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCBhYTkwMDJlNTYzMDg1YjE5ZGE4YjhkODVjODc2ZGVhMzdiZmYxY2ZiLi40NjBjMWE4YTgw
NDQ5YTgzODk1NGNjYjNmZWVjMjg3MWI0MmZhOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5o
IgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAiQ29u
dGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2ltcG9ydCAiRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCIKICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkZ1bGxzY3Jl
ZW5DbGllbnQuaCIKQEAgLTIyNzksNyArMjI4MCw3IEBAIC0gKHZvaWQpX2dldENvbnRlbnRzQXNT
dHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IK
IHsKICAgICBhdXRvIGhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOwog
Ci0gICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmcoW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcs
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5nZXRDb250
ZW50c0FzU3RyaW5nKFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6
Tm8sIFtoYW5kbGVyXShTdHJpbmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpIHsKICAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJv
cjo6Tm9uZSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFBpcGUgYSBwcm9wZXIgZXJyb3IgaW4g
ZnJvbSB0aGUgV2ViUGFnZVByb3h5LgogICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9y
IGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6c3RhdGljX2Nhc3Q8aW50PihlcnJv
cikgdXNlckluZm86bmlsXSk7CkBAIC0yMjg4LDYgKzIyODksMTcgQEAgLSAodm9pZClfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwg
TlNFcnJvcgogICAgIH0pOwogfQogCistICh2b2lkKV9nZXRDb250ZW50c09mQWxsRnJhbWVzQXNT
dHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgYXV0byBoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICBfcGFnZS0+Z2V0Q29udGVudHNBc1N0cmluZyhXZWJLaXQ6OkNvbnRlbnRB
c1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6OlllcywgW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcs
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBpZiAoZXJyb3Ig
IT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQorICAgICAgICAgICAgaGFuZGxl
cihuaWwpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBoYW5kbGVyKHN0cmluZyk7CisgICAg
fSk7Cit9CisKIC0gKHZvaWQpX2dldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nV2l0aENvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5
PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBpZD4gKiwgTlNFcnJvciAq
KSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIF9wYWdlLT5nZXRDb250ZW50c0FzQXR0cmlidXRl
ZFN0cmluZyhbaGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGF1dG8m
IGF0dHJpYnV0ZWRTdHJpbmcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDViOTVmOTdkZDI4Zjk0M2FmYjIxYTUy
ZWNkMGNhYzFmMDgxYzgyY2UuLjQ1NmIyY2E4ZTIyNDM3ODc0MDM1ZjNlNjU0MTJjNDlkNjVhZjM3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaApAQCAtMjY2LDYgKzI2Niw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogLSAo
dm9pZClfZ2V0TWFpblJlc291cmNlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9nZXRXZWJB
cmNoaXZlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJy
b3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nV2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBOU0Vycm9yICopKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwor
LSAodm9pZClfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfZ2V0Q29u
dGVudHNBc0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
QXR0cmlidXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1l
bnRBdHRyaWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCiAtICh2b2lkKV9nZXRBcHBs
aWNhdGlvbk1hbmlmZXN0V2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tBcHBsaWNh
dGlvbk1hbmlmZXN0ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA1ZjAzODQ0MGY4NmRjYjI3MjFiZjkyZDExOGJjYWM1OGRkYWM5NTk2Li41MGY2
MzkzOGNiYTI4ODJhODEzZTE1NGQzZWU2MWFmMTUxMTU1MWZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM5NjIsMTYgKzM5NjIsMTYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmdldFNvdXJjZUZvckZyYW1lKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXVEY6OkZ1
bmN0aW9uPHZvaWQgKGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTb3VyY2VGb3JG
cmFtZShmcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpnZXRDb250ZW50c0FzU3RyaW5nKFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5n
JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMgaW5jbHVkZXNDaGlsZEZyYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmlu
ZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYg
KCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CiAgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5n
KCksIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIAorCiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUo
Y2FsbGJhY2tGdW5jdGlvbiksIG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2
aXR5KCJXZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmciX3MpKTsKICAgICBtX2xvYWRE
ZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5hZGQoY2FsbGJhY2tJRCk7Ci0gICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhjYWxsYmFja0lEKSk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhpbmNsdWRlc0NoaWxkRnJh
bWVzLCBjYWxsYmFja0lEKSk7CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZmM0ZjIwYjQ1NzE0NTE3YzRiNWYwMjc3MjU4
OWVmZGYzNzI5YjBjNS4uYTY5ZjE5YmY4NWQ3YzU0OWIzZWU1YjI1NDU3M2EzNjgwY2U3NTNjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNs
dWRlICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRl
ICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgpAQCAtMTA3Nyw3ICsxMDc4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRp
ZEZpbmRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8V2Vi
Q29yZTo6SW50UmVjdD4+JiBtYXRjaFJlY3RzLCBpbnQzMl90IGZpcnN0SW5kZXhBZnRlclNlbGVj
dGlvbik7CiAKLSAgICB2b2lkIGdldENvbnRlbnRzQXNTdHJpbmcoV1RGOjpGdW5jdGlvbjx2b2lk
IChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CisgICAgdm9pZCBnZXRD
b250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMsIFdURjo6
RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmlu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEF0dHJpYnV0ZWRTdHJpbmcmKT4mJik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE2MzBjMDhkMDNlZjU3N2UwOTEzNWVjYmI3OGI0NTEwY2U4Zjc1OGYuLjQ4YmE4N2Mw
ZjI3NjA1Y2JlNDM2ZjIwYWQ4MzllMTkxM2UyM2UzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY4NCw2ICsxNjg0LDggQEAKIAkJ
QzlDMTgzM0MxQjc0MDI2RDAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlD
MTgzMzgxQjczRkQ2QTAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVu
dC5oICovOyB9OwogCQlDOUNENDM5ODFCNEIwMDFEMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICov
OyB9OwogCQlDOUNENDM5RDFCNEIwMjRGMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQz
OUExQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDQTA1Mzk3NzIzRUUzMUUx
MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EwNTM5NzYyM0VFMzFFMTAw
QTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLzsgfTsKKwkJ
Q0EwNTM5NzkyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENB
MDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJh
bWVzLmggKi87IH07CiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0
b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oICovOyB9OwogCQlDRDBDNjgzMTIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMEM2ODJGMjAxRkQxMDEwMEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ci5oICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oICovOyB9OwpAQCAtNDkwOSw2ICs0OTExLDggQEAKIAkJQzlDRDQzOTQxQjRCMDAwRTAwMjM5
RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM5Q0Q0Mzk5MUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDOUNENDM5QTFC
NEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNBMDUzOTc2MjNFRTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Ew
NTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFt
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAg
LyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lZGlh
Q2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDBDNjgyRjIwMUZEMTAxMDBBNTk0
MDkgLyogV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGdWxs
U2NyZWVuVmlld0NvbnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjY4LDYg
KzU2NzIsNyBAQAogCQkJCUJDRjE4NjM3MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNw
cCAqLywKIAkJCQlCQzMwNjVGOTEyNTkzNDRFMDBFNzEyNzggLyogQ2FjaGVNb2RlbC5oICovLAog
CQkJCTlCQzU5RDZDMUVGQ0NDQjYwMDFFOEQwOSAvKiBDYWxsYmFja0lELmggKi8sCisJCQkJQ0Ew
NTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFt
ZXMuaCAqLywKIAkJCQk1MTI5RUIxMTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hh
cmVkLmggKi8sCiAJCQkJNTEwNkQ3QkYxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29u
dGV4dERhdGEuY3BwICovLAogCQkJCTUxMDZEN0MwMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0
TWVudUNvbnRleHREYXRhLmggKi8sCkBAIC04NDQ4LDYgKzg0NTMsNyBAQAogCQkJCUUxNTEzQzY1
MTY2RUFCQjIwMDE0OUZDQiAvKiBBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCAqLywKIAkJCQk0NkEy
QjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcCAqLywKIAkJCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFBy
b2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCisJCQkJQ0EwNTM5NzYyM0VFMzFFMTAwQTU1
M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLywKIAkJCQkwNzI5
N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovLAog
CQkJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5o
ICovLAogCQkJCUJDMjY1MjEyMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmNw
cCAqLywKQEAgLTEwMTkwLDYgKzEwMTk2LDggQEAKIAkJCQkzN0JFQzRFMTE5NDkxNDg2MDA4QjQy
ODYgLyogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzdDNEU5RjYxMzFDNkU3RTAwMjlCRDVBIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMwMzJEQUIxMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUNBMDUzOTc5MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQTA1Mzk3NzIzRUUzMUUxMDBBNTUzREMg
LyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEyOUVCMTIyM0QwREU3QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEwNkQ3QzQxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29u
dGV4dERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzIxQ0FFMUU5OTRDMEMwMDI5RDVGOSAv
KiBDb3JlUHJlZGljdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVmMmE1MDIwY2I2ZDU0MzYyNmI4NjZk
ZmY2ZmZjZWNlMTZjOGY3MTMuLjE2MzdmYjQ0MWNhNGRjOTU3ODdiN2MyYmI5NmVkYzhjYjBmMGQ2
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0zNDQ2LDEwICszNDQ2LDMxIEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0CiAgICAgcnVuSmF2
YVNjcmlwdChmcmFtZSwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZvcmNlVXNlckdl
c3R1cmUgfSwgcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSwgY2FsbGJhY2tJRCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci17Ci0gICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9IG1fbWFpbkZyYW1lLT5jb250ZW50c0FzU3Ry
aW5nKCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhy
ZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKK3ZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc1N0
cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIGluY2x1ZGVDaGlsZEZyYW1l
cywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQoreworICAgIHN3aXRjaCAoaW5jbHVkZUNoaWxkRnJh
bWVzKSB7CisgICAgY2FzZSBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzOjpObzog
eworICAgICAgICBTdHJpbmcgcmVzdWx0U3RyaW5nID0gbV9tYWluRnJhbWUtPmNvbnRlbnRzQXNT
dHJpbmcoKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxs
YmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6WWVzOiB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgZm9yIChSZWZQdHI8RnJhbWU+IGZy
YW1lID0gJmNvcmVQYWdlKCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dFJlbmRlcmVkKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJG
cmFtZS0+Y29udGVudHNBc1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2soYnVpbGRl
ci50b1N0cmluZygpLCBjYWxsYmFja0lEKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9
CiB9CiAKICNpZiBFTkFCTEUoTUhUTUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggYjllZDlkNGZjNmQ4MTk5MWJkMTlmZjIyZDFlODI5MGU4OWZmNTQ1
Yy4uMzllM2IxM2Q0NmYyYzIzMDE4YjI4ZDVkYWVjYjNhZGU0ZDNmNThiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkFQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgorI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNp
bmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKICNpbmNsdWRlICJGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmgiCkBAIC0xNDUxLDcgKzE0NTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdmlld1dpbGxT
dGFydExpdmVSZXNpemUoKTsKICAgICB2b2lkIHZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpOwogCi0g
ICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29u
dGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLCBDYWxsYmFj
a0lEKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1
dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYp
PiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZGNiMTIzNGU5NWFjYWNmY2RlZTZiZTYwYjY5ZDA4
MWQ1ZjFjNjM5OS4uZjlhNjQyOTNhMmE1YjFjODk0MzI2ZDFiZmEwYjFlNjFlYmJiNDQ4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCkBAIC0xOTIsNyArMTkyLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBS
ZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCkKIAogICAgICMgQ2FsbGJh
Y2tzLgotICAgIEdldENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCisgICAgR2V0Q29udGVudHNBc1N0cmluZyhlbnVtOmJvb2wgV2ViS2l0OjpDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIGluQ2hpbGRGcmFtZXMsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdldENvbnRlbnRzQXNBdHRy
aWJ1dGVkU3RyaW5nKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0
KSBBc3luYwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA2YWZhNjQ1N2Fi
Njg5ODc5NGJmNjY5M2MxY2FmODRiYWUwMTUxNzc2Li5jNGI0N2E0MGM0MjE4NDBlYTU4MjkyMDM0
MDI5Yzg0NzgwNmZmNTE5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KQEAgLTQ5LDYgKzQ5
LDIzIEBAIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVyblN0cmluZykKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KIAorVEVTVChXS1dlYlZp
ZXcsIEdldENvbnRlbnRzSW5BbGxGcmFtZXNTaG91bGRSZXR1cm5TdHJpbmcpCit7CisgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+YmVlcDxpZnJhbWUg
c3JjZG9jPVwibWVlcFwiPmhlcnA8L2lmcmFtZT48aWZyYW1lIHNyY2RvYz1cIm1vb3BcIj5kZXJw
PC9pZnJhbWU+PC9ib2R5PiJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7
CisKKyAgICBbd2ViVmlldyBfZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOllFUyB3aXRo
Q29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqc3RyaW5nLCBOU0Vycm9yICplcnJvcikgewor
ICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImJl
ZXBtZWVwbW9vcCIsIHN0cmluZyk7CisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsK
KworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworfQorCiBURVNUKFdL
V2ViVmlldywgR2V0Q29udGVudHNTaG91bGRSZXR1cm5BdHRyaWJ1dGVkU3RyaW5nKQogewogICAg
IFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390299</attachid>
            <date>2020-02-10 14:54:36 -0800</date>
            <delta_ts>2020-02-10 15:39:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200210145347.patch</filename>
            <type>text/plain</type>
            <size>21152</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkZmYxNmUyZmE5YTQzYmU4
OGE3Yzk3NjI4ZjNlZWUxN2RhMzk0ZjIuLjQ4NzQyNjExODU4NmM3OGE0N2NiODU0MDMwZDc5NTgy
ZGEwZDM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpdKTogCisgICAgICAgICgtW1dLV2Vi
VmlldyBfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVy
Ol0pOiBDYWxsIHRoZSBuZXcgZnVuY3Rpb24gdG8gZXh0cmFjdCBjb250ZW50cyBmcm9tIGFsbAor
ICAgICAgICBmcmFtZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaDogRXhwb3NlIGEgbmV3IFNQSSBmb3IgY2xpZW50cy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyk6IFBpcGluZy4gVGhpcyBlbXVsYXRlcyB3
aGF0IGdldENvbnRlbnRzQXNTdHJpbmcoKSBkb2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOiBFeHBvc2UgbmV3IG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0Q29udGVu
dHNBc1N0cmluZyk6IEF1Z21lbnQgdG8gdGFrZSBhIGZsYWcgc2F5aW5nIHdoZXRoZXIgb3Igbm90
IHdlIHdhbnQgdG8gZXh0cmFjdAorICAgICAgICBmcm9tIGFsbCBmcmFtZXMuIElmIHdlIGRvLCBp
dGVyYXRlIG92ZXIgYWxsIHRoZSBmcmFtZXMgYW5kIGdldCB0aGVpciBjb250ZW50IHN0cmluZ3Ms
IGFwcGVuZGluZyB0d28KKyAgICAgICAgbmV3IGxpbmVzIGluIHRoZSBtaWRkbGUuCisgCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogUGlwaW5nLgorCisgICAgICAgICogU2hhcmVk
L0NvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaDogQWRkIGEgbmV3IGhlYWRlciB0
byBleHBvc2UgYW4gZW51bS4KKwogMjAyMC0wMi0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
IHNob3VsZCBub3QgYmUgYWN0aXZlIGlmIHJ1bm5pbmcgYWN0aXZlIHBhZ2VzIGFuZCBzZXJ2aWNl
IHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0
cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjgyNDEyOThkZDhiOTUwZjMx
Y2I1YThlYjAxOTM5ODNjNWQ3MTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIENvbnRlbnRBc1N0cmluZ0lu
Y2x1ZGVzQ2hpbGRGcmFtZXMgOiBib29sIHsgTm8sIFllcyB9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGVjY2Y0
YWUzNTY2MTk2ODA1N2E3Y2ZlZWIyZDk1NDMxZTkyNDQ0ZGEuLmQ3Mjc5NTU0Njc1YjMxYTY0ZTVl
ZGMxZjZmM2M4M2RiMTc5Mjk4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb24uaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCisjaW5jbHVk
ZSAiQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2luY2x1ZGUgIkxlZ2Fj
eVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCkBAIC0yNTEwLDcgKzI1MTEsNyBAQCB2b2lkIFdLUGFn
ZUdldFNvdXJjZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lUmVm
LCB2b2lkKiBjb250ZQogCiB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmcoV0tQYWdlUmVm
IHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdGdW5jdGlv
biBjYWxsYmFjaykKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNTdHJpbmco
dG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFjaykpOworICAgIHRvSW1w
bChwYWdlUmVmKS0+Z2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzOjpObywgdG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFj
aykpOwogfQogCiB2b2lkIFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZShXS1BhZ2VSZWYgcGFnZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tQYWdlR2V0Qnl0ZWNvZGVQcm9maWxlRnVuY3Rpb24gY2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCBhYTkwMDJlNTYzMDg1YjE5ZGE4YjhkODVjODc2ZGVhMzdiZmYxY2ZiLi40NjBjMWE4YTgw
NDQ5YTgzODk1NGNjYjNmZWVjMjg3MWI0MmZhOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5o
IgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAiQ29u
dGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2ltcG9ydCAiRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCIKICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkZ1bGxzY3Jl
ZW5DbGllbnQuaCIKQEAgLTIyNzksNyArMjI4MCw3IEBAIC0gKHZvaWQpX2dldENvbnRlbnRzQXNT
dHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IK
IHsKICAgICBhdXRvIGhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOwog
Ci0gICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmcoW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcs
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5nZXRDb250
ZW50c0FzU3RyaW5nKFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6
Tm8sIFtoYW5kbGVyXShTdHJpbmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpIHsKICAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJv
cjo6Tm9uZSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFBpcGUgYSBwcm9wZXIgZXJyb3IgaW4g
ZnJvbSB0aGUgV2ViUGFnZVByb3h5LgogICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9y
IGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6c3RhdGljX2Nhc3Q8aW50PihlcnJv
cikgdXNlckluZm86bmlsXSk7CkBAIC0yMjg4LDYgKzIyODksMTcgQEAgLSAodm9pZClfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwg
TlNFcnJvcgogICAgIH0pOwogfQogCistICh2b2lkKV9nZXRDb250ZW50c09mQWxsRnJhbWVzQXNT
dHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgYXV0byBoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICBfcGFnZS0+Z2V0Q29udGVudHNBc1N0cmluZyhXZWJLaXQ6OkNvbnRlbnRB
c1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6OlllcywgW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcs
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBpZiAoZXJyb3Ig
IT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQorICAgICAgICAgICAgaGFuZGxl
cihuaWwpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBoYW5kbGVyKHN0cmluZyk7CisgICAg
fSk7Cit9CisKIC0gKHZvaWQpX2dldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nV2l0aENvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5
PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBpZD4gKiwgTlNFcnJvciAq
KSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIF9wYWdlLT5nZXRDb250ZW50c0FzQXR0cmlidXRl
ZFN0cmluZyhbaGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGF1dG8m
IGF0dHJpYnV0ZWRTdHJpbmcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDViOTVmOTdkZDI4Zjk0M2FmYjIxYTUy
ZWNkMGNhYzFmMDgxYzgyY2UuLjQ1NmIyY2E4ZTIyNDM3ODc0MDM1ZjNlNjU0MTJjNDlkNjVhZjM3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaApAQCAtMjY2LDYgKzI2Niw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogLSAo
dm9pZClfZ2V0TWFpblJlc291cmNlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9nZXRXZWJB
cmNoaXZlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJy
b3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nV2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBOU0Vycm9yICopKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwor
LSAodm9pZClfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfZ2V0Q29u
dGVudHNBc0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
QXR0cmlidXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1l
bnRBdHRyaWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCiAtICh2b2lkKV9nZXRBcHBs
aWNhdGlvbk1hbmlmZXN0V2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tBcHBsaWNh
dGlvbk1hbmlmZXN0ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA1ZjAzODQ0MGY4NmRjYjI3MjFiZjkyZDExOGJjYWM1OGRkYWM5NTk2Li41MGY2
MzkzOGNiYTI4ODJhODEzZTE1NGQzZWU2MWFmMTUxMTU1MWZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM5NjIsMTYgKzM5NjIsMTYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmdldFNvdXJjZUZvckZyYW1lKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXVEY6OkZ1
bmN0aW9uPHZvaWQgKGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTb3VyY2VGb3JG
cmFtZShmcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpnZXRDb250ZW50c0FzU3RyaW5nKFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5n
JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMgaW5jbHVkZXNDaGlsZEZyYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmlu
ZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYg
KCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CiAgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5n
KCksIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIAorCiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUo
Y2FsbGJhY2tGdW5jdGlvbiksIG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2
aXR5KCJXZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmciX3MpKTsKICAgICBtX2xvYWRE
ZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5hZGQoY2FsbGJhY2tJRCk7Ci0gICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhjYWxsYmFja0lEKSk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhpbmNsdWRlc0NoaWxkRnJh
bWVzLCBjYWxsYmFja0lEKSk7CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZmM0ZjIwYjQ1NzE0NTE3YzRiNWYwMjc3MjU4
OWVmZGYzNzI5YjBjNS4uYTY5ZjE5YmY4NWQ3YzU0OWIzZWU1YjI1NDU3M2EzNjgwY2U3NTNjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNs
dWRlICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRl
ICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgpAQCAtMTA3Nyw3ICsxMDc4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRp
ZEZpbmRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8V2Vi
Q29yZTo6SW50UmVjdD4+JiBtYXRjaFJlY3RzLCBpbnQzMl90IGZpcnN0SW5kZXhBZnRlclNlbGVj
dGlvbik7CiAKLSAgICB2b2lkIGdldENvbnRlbnRzQXNTdHJpbmcoV1RGOjpGdW5jdGlvbjx2b2lk
IChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CisgICAgdm9pZCBnZXRD
b250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMsIFdURjo6
RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmlu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEF0dHJpYnV0ZWRTdHJpbmcmKT4mJik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE2MzBjMDhkMDNlZjU3N2UwOTEzNWVjYmI3OGI0NTEwY2U4Zjc1OGYuLjQ4YmE4N2Mw
ZjI3NjA1Y2JlNDM2ZjIwYWQ4MzllMTkxM2UyM2UzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY4NCw2ICsxNjg0LDggQEAKIAkJ
QzlDMTgzM0MxQjc0MDI2RDAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlD
MTgzMzgxQjczRkQ2QTAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVu
dC5oICovOyB9OwogCQlDOUNENDM5ODFCNEIwMDFEMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICov
OyB9OwogCQlDOUNENDM5RDFCNEIwMjRGMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQz
OUExQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDQTA1Mzk3NzIzRUUzMUUx
MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EwNTM5NzYyM0VFMzFFMTAw
QTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLzsgfTsKKwkJ
Q0EwNTM5NzkyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENB
MDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJh
bWVzLmggKi87IH07CiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0
b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oICovOyB9OwogCQlDRDBDNjgzMTIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMEM2ODJGMjAxRkQxMDEwMEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ci5oICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oICovOyB9OwpAQCAtNDkwOSw2ICs0OTExLDggQEAKIAkJQzlDRDQzOTQxQjRCMDAwRTAwMjM5
RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM5Q0Q0Mzk5MUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDOUNENDM5QTFC
NEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNBMDUzOTc2MjNFRTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Ew
NTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFt
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAg
LyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lZGlh
Q2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDBDNjgyRjIwMUZEMTAxMDBBNTk0
MDkgLyogV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGdWxs
U2NyZWVuVmlld0NvbnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjY4LDYg
KzU2NzIsNyBAQAogCQkJCUJDRjE4NjM3MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNw
cCAqLywKIAkJCQlCQzMwNjVGOTEyNTkzNDRFMDBFNzEyNzggLyogQ2FjaGVNb2RlbC5oICovLAog
CQkJCTlCQzU5RDZDMUVGQ0NDQjYwMDFFOEQwOSAvKiBDYWxsYmFja0lELmggKi8sCisJCQkJQ0Ew
NTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFt
ZXMuaCAqLywKIAkJCQk1MTI5RUIxMTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hh
cmVkLmggKi8sCiAJCQkJNTEwNkQ3QkYxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29u
dGV4dERhdGEuY3BwICovLAogCQkJCTUxMDZEN0MwMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0
TWVudUNvbnRleHREYXRhLmggKi8sCkBAIC04NDQ4LDYgKzg0NTMsNyBAQAogCQkJCUUxNTEzQzY1
MTY2RUFCQjIwMDE0OUZDQiAvKiBBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCAqLywKIAkJCQk0NkEy
QjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcCAqLywKIAkJCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFBy
b2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCisJCQkJQ0EwNTM5NzYyM0VFMzFFMTAwQTU1
M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLywKIAkJCQkwNzI5
N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovLAog
CQkJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5o
ICovLAogCQkJCUJDMjY1MjEyMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmNw
cCAqLywKQEAgLTEwMTkwLDYgKzEwMTk2LDggQEAKIAkJCQkzN0JFQzRFMTE5NDkxNDg2MDA4QjQy
ODYgLyogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzdDNEU5RjYxMzFDNkU3RTAwMjlCRDVBIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMwMzJEQUIxMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUNBMDUzOTc5MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQTA1Mzk3NzIzRUUzMUUxMDBBNTUzREMg
LyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEyOUVCMTIyM0QwREU3QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEwNkQ3QzQxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29u
dGV4dERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzIxQ0FFMUU5OTRDMEMwMDI5RDVGOSAv
KiBDb3JlUHJlZGljdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVmMmE1MDIwY2I2ZDU0MzYyNmI4NjZk
ZmY2ZmZjZWNlMTZjOGY3MTMuLjE2MzdmYjQ0MWNhNGRjOTU3ODdiN2MyYmI5NmVkYzhjYjBmMGQ2
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0zNDQ2LDEwICszNDQ2LDMxIEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0CiAgICAgcnVuSmF2
YVNjcmlwdChmcmFtZSwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZvcmNlVXNlckdl
c3R1cmUgfSwgcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSwgY2FsbGJhY2tJRCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci17Ci0gICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9IG1fbWFpbkZyYW1lLT5jb250ZW50c0FzU3Ry
aW5nKCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhy
ZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKK3ZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc1N0
cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIGluY2x1ZGVDaGlsZEZyYW1l
cywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQoreworICAgIHN3aXRjaCAoaW5jbHVkZUNoaWxkRnJh
bWVzKSB7CisgICAgY2FzZSBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzOjpObzog
eworICAgICAgICBTdHJpbmcgcmVzdWx0U3RyaW5nID0gbV9tYWluRnJhbWUtPmNvbnRlbnRzQXNT
dHJpbmcoKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxs
YmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6WWVzOiB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgZm9yIChSZWZQdHI8RnJhbWU+IGZy
YW1lID0gJmNvcmVQYWdlKCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dFJlbmRlcmVkKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJG
cmFtZS0+Y29udGVudHNBc1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2soYnVpbGRl
ci50b1N0cmluZygpLCBjYWxsYmFja0lEKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9
CiB9CiAKICNpZiBFTkFCTEUoTUhUTUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggYjllZDlkNGZjNmQ4MTk5MWJkMTlmZjIyZDFlODI5MGU4OWZmNTQ1
Yy4uMzllM2IxM2Q0NmYyYzIzMDE4YjI4ZDVkYWVjYjNhZGU0ZDNmNThiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkFQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgorI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNp
bmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKICNpbmNsdWRlICJGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmgiCkBAIC0xNDUxLDcgKzE0NTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdmlld1dpbGxT
dGFydExpdmVSZXNpemUoKTsKICAgICB2b2lkIHZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpOwogCi0g
ICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29u
dGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLCBDYWxsYmFj
a0lEKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1
dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYp
PiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZGNiMTIzNGU5NWFjYWNmY2RlZTZiZTYwYjY5ZDA4
MWQ1ZjFjNjM5OS4uZjlhNjQyOTNhMmE1YjFjODk0MzI2ZDFiZmEwYjFlNjFlYmJiNDQ4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCkBAIC0xOTIsNyArMTkyLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBS
ZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCkKIAogICAgICMgQ2FsbGJh
Y2tzLgotICAgIEdldENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCisgICAgR2V0Q29udGVudHNBc1N0cmluZyhlbnVtOmJvb2wgV2ViS2l0OjpDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIGluQ2hpbGRGcmFtZXMsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdldENvbnRlbnRzQXNBdHRy
aWJ1dGVkU3RyaW5nKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0
KSBBc3luYwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA2YWZhNjQ1N2Fi
Njg5ODc5NGJmNjY5M2MxY2FmODRiYWUwMTUxNzc2Li45YjU4ODYwYjgxYzQ0NmYyN2EzMTViNTcw
M2ExOTE3N2YxZmUyMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KQEAgLTQ5LDYgKzQ5
LDIzIEBAIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVyblN0cmluZykKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KIAorVEVTVChXS1dlYlZp
ZXcsIEdldENvbnRlbnRzSW5BbGxGcmFtZXNTaG91bGRSZXR1cm5TdHJpbmcpCit7CisgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+YmVlcDxpZnJhbWUg
c3JjZG9jPVwibWVlcFwiPmhlcnA8L2lmcmFtZT48aWZyYW1lIHNyY2RvYz1cIm1vb3BcIj5kZXJw
PC9pZnJhbWU+PC9ib2R5PiJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7
CisKKyAgICBbd2ViVmlldyBfZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOllFUyB3aXRo
Q29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqc3RyaW5nLCBOU0Vycm9yICplcnJvcikgewor
ICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImJl
ZXBcblxubWVlcFxuXG5tb29wIiwgc3RyaW5nKTsKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOwor
ICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cit9CisK
IFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVybkF0dHJpYnV0ZWRTdHJpbmcp
CiB7CiAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KV0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390303</attachid>
            <date>2020-02-10 15:39:19 -0800</date>
            <delta_ts>2020-02-10 16:48:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200210153829.patch</filename>
            <type>text/plain</type>
            <size>21102</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkZmYxNmUyZmE5YTQzYmU4
OGE3Yzk3NjI4ZjNlZWUxN2RhMzk0ZjIuLjQ4NzQyNjExODU4NmM3OGE0N2NiODU0MDMwZDc5NTgy
ZGEwZDM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpdKTogCisgICAgICAgICgtW1dLV2Vi
VmlldyBfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVy
Ol0pOiBDYWxsIHRoZSBuZXcgZnVuY3Rpb24gdG8gZXh0cmFjdCBjb250ZW50cyBmcm9tIGFsbAor
ICAgICAgICBmcmFtZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaDogRXhwb3NlIGEgbmV3IFNQSSBmb3IgY2xpZW50cy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyk6IFBpcGluZy4gVGhpcyBlbXVsYXRlcyB3
aGF0IGdldENvbnRlbnRzQXNTdHJpbmcoKSBkb2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOiBFeHBvc2UgbmV3IG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0Q29udGVu
dHNBc1N0cmluZyk6IEF1Z21lbnQgdG8gdGFrZSBhIGZsYWcgc2F5aW5nIHdoZXRoZXIgb3Igbm90
IHdlIHdhbnQgdG8gZXh0cmFjdAorICAgICAgICBmcm9tIGFsbCBmcmFtZXMuIElmIHdlIGRvLCBp
dGVyYXRlIG92ZXIgYWxsIHRoZSBmcmFtZXMgYW5kIGdldCB0aGVpciBjb250ZW50IHN0cmluZ3Ms
IGFwcGVuZGluZyB0d28KKyAgICAgICAgbmV3IGxpbmVzIGluIHRoZSBtaWRkbGUuCisgCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogUGlwaW5nLgorCisgICAgICAgICogU2hhcmVk
L0NvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaDogQWRkIGEgbmV3IGhlYWRlciB0
byBleHBvc2UgYW4gZW51bS4KKwogMjAyMC0wMi0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
IHNob3VsZCBub3QgYmUgYWN0aXZlIGlmIHJ1bm5pbmcgYWN0aXZlIHBhZ2VzIGFuZCBzZXJ2aWNl
IHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0
cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjgyNDEyOThkZDhiOTUwZjMx
Y2I1YThlYjAxOTM5ODNjNWQ3MTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIENvbnRlbnRBc1N0cmluZ0lu
Y2x1ZGVzQ2hpbGRGcmFtZXMgOiBib29sIHsgTm8sIFllcyB9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGVjY2Y0
YWUzNTY2MTk2ODA1N2E3Y2ZlZWIyZDk1NDMxZTkyNDQ0ZGEuLmQ3Mjc5NTU0Njc1YjMxYTY0ZTVl
ZGMxZjZmM2M4M2RiMTc5Mjk4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb24uaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCisjaW5jbHVk
ZSAiQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2luY2x1ZGUgIkxlZ2Fj
eVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCkBAIC0yNTEwLDcgKzI1MTEsNyBAQCB2b2lkIFdLUGFn
ZUdldFNvdXJjZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lUmVm
LCB2b2lkKiBjb250ZQogCiB2b2lkIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmcoV0tQYWdlUmVm
IHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldENvbnRlbnRzQXNTdHJpbmdGdW5jdGlv
biBjYWxsYmFjaykKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNTdHJpbmco
dG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFjaykpOworICAgIHRvSW1w
bChwYWdlUmVmKS0+Z2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzOjpObywgdG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFj
aykpOwogfQogCiB2b2lkIFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZShXS1BhZ2VSZWYgcGFnZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tQYWdlR2V0Qnl0ZWNvZGVQcm9maWxlRnVuY3Rpb24gY2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCBhYTkwMDJlNTYzMDg1YjE5ZGE4YjhkODVjODc2ZGVhMzdiZmYxY2ZiLi40NjBjMWE4YTgw
NDQ5YTgzODk1NGNjYjNmZWVjMjg3MWI0MmZhOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5o
IgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAiQ29u
dGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2ltcG9ydCAiRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCIKICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkZ1bGxzY3Jl
ZW5DbGllbnQuaCIKQEAgLTIyNzksNyArMjI4MCw3IEBAIC0gKHZvaWQpX2dldENvbnRlbnRzQXNT
dHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IK
IHsKICAgICBhdXRvIGhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOwog
Ci0gICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmcoW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcs
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5nZXRDb250
ZW50c0FzU3RyaW5nKFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6
Tm8sIFtoYW5kbGVyXShTdHJpbmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpIHsKICAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJv
cjo6Tm9uZSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFBpcGUgYSBwcm9wZXIgZXJyb3IgaW4g
ZnJvbSB0aGUgV2ViUGFnZVByb3h5LgogICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9y
IGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6c3RhdGljX2Nhc3Q8aW50PihlcnJv
cikgdXNlckluZm86bmlsXSk7CkBAIC0yMjg4LDYgKzIyODksMTcgQEAgLSAodm9pZClfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwg
TlNFcnJvcgogICAgIH0pOwogfQogCistICh2b2lkKV9nZXRDb250ZW50c09mQWxsRnJhbWVzQXNT
dHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgYXV0byBoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKTsKKyAgICBfcGFnZS0+Z2V0Q29udGVudHNBc1N0cmluZyhXZWJLaXQ6OkNvbnRlbnRB
c1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6OlllcywgW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcs
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBpZiAoZXJyb3Ig
IT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQorICAgICAgICAgICAgaGFuZGxl
cihuaWwpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBoYW5kbGVyKHN0cmluZyk7CisgICAg
fSk7Cit9CisKIC0gKHZvaWQpX2dldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nV2l0aENvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5
PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBpZD4gKiwgTlNFcnJvciAq
KSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIF9wYWdlLT5nZXRDb250ZW50c0FzQXR0cmlidXRl
ZFN0cmluZyhbaGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGF1dG8m
IGF0dHJpYnV0ZWRTdHJpbmcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDViOTVmOTdkZDI4Zjk0M2FmYjIxYTUy
ZWNkMGNhYzFmMDgxYzgyY2UuLjQ1NmIyY2E4ZTIyNDM3ODc0MDM1ZjNlNjU0MTJjNDlkNjVhZjM3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaApAQCAtMjY2LDYgKzI2Niw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogLSAo
dm9pZClfZ2V0TWFpblJlc291cmNlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9nZXRXZWJB
cmNoaXZlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJy
b3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nV2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqLCBOU0Vycm9yICopKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwor
LSAodm9pZClfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfZ2V0Q29u
dGVudHNBc0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
QXR0cmlidXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1l
bnRBdHRyaWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCiAtICh2b2lkKV9nZXRBcHBs
aWNhdGlvbk1hbmlmZXN0V2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tBcHBsaWNh
dGlvbk1hbmlmZXN0ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA1ZjAzODQ0MGY4NmRjYjI3MjFiZjkyZDExOGJjYWM1OGRkYWM5NTk2Li41MGY2
MzkzOGNiYTI4ODJhODEzZTE1NGQzZWU2MWFmMTUxMTU1MWZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM5NjIsMTYgKzM5NjIsMTYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmdldFNvdXJjZUZvckZyYW1lKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXVEY6OkZ1
bmN0aW9uPHZvaWQgKGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTb3VyY2VGb3JG
cmFtZShmcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpnZXRDb250ZW50c0FzU3RyaW5nKFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5n
JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMgaW5jbHVkZXNDaGlsZEZyYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmlu
ZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYg
KCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CiAgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5n
KCksIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIAorCiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUo
Y2FsbGJhY2tGdW5jdGlvbiksIG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2
aXR5KCJXZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmciX3MpKTsKICAgICBtX2xvYWRE
ZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5hZGQoY2FsbGJhY2tJRCk7Ci0gICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhjYWxsYmFja0lEKSk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhpbmNsdWRlc0NoaWxkRnJh
bWVzLCBjYWxsYmFja0lEKSk7CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZmM0ZjIwYjQ1NzE0NTE3YzRiNWYwMjc3MjU4
OWVmZGYzNzI5YjBjNS4uYTY5ZjE5YmY4NWQ3YzU0OWIzZWU1YjI1NDU3M2EzNjgwY2U3NTNjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNs
dWRlICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRl
ICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgpAQCAtMTA3Nyw3ICsxMDc4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRp
ZEZpbmRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8V2Vi
Q29yZTo6SW50UmVjdD4+JiBtYXRjaFJlY3RzLCBpbnQzMl90IGZpcnN0SW5kZXhBZnRlclNlbGVj
dGlvbik7CiAKLSAgICB2b2lkIGdldENvbnRlbnRzQXNTdHJpbmcoV1RGOjpGdW5jdGlvbjx2b2lk
IChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CisgICAgdm9pZCBnZXRD
b250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMsIFdURjo6
RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmlu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEF0dHJpYnV0ZWRTdHJpbmcmKT4mJik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE2MzBjMDhkMDNlZjU3N2UwOTEzNWVjYmI3OGI0NTEwY2U4Zjc1OGYuLjQ4YmE4N2Mw
ZjI3NjA1Y2JlNDM2ZjIwYWQ4MzllMTkxM2UyM2UzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY4NCw2ICsxNjg0LDggQEAKIAkJ
QzlDMTgzM0MxQjc0MDI2RDAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlD
MTgzMzgxQjczRkQ2QTAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVu
dC5oICovOyB9OwogCQlDOUNENDM5ODFCNEIwMDFEMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICov
OyB9OwogCQlDOUNENDM5RDFCNEIwMjRGMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQz
OUExQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDQTA1Mzk3NzIzRUUzMUUx
MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EwNTM5NzYyM0VFMzFFMTAw
QTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLzsgfTsKKwkJ
Q0EwNTM5NzkyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENB
MDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJh
bWVzLmggKi87IH07CiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0
b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oICovOyB9OwogCQlDRDBDNjgzMTIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMEM2ODJGMjAxRkQxMDEwMEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ci5oICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oICovOyB9OwpAQCAtNDkwOSw2ICs0OTExLDggQEAKIAkJQzlDRDQzOTQxQjRCMDAwRTAwMjM5
RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM5Q0Q0Mzk5MUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDOUNENDM5QTFC
NEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNBMDUzOTc2MjNFRTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Ew
NTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFt
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAg
LyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lZGlh
Q2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDBDNjgyRjIwMUZEMTAxMDBBNTk0
MDkgLyogV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGdWxs
U2NyZWVuVmlld0NvbnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
blZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjY4LDYg
KzU2NzIsNyBAQAogCQkJCUJDRjE4NjM3MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNw
cCAqLywKIAkJCQlCQzMwNjVGOTEyNTkzNDRFMDBFNzEyNzggLyogQ2FjaGVNb2RlbC5oICovLAog
CQkJCTlCQzU5RDZDMUVGQ0NDQjYwMDFFOEQwOSAvKiBDYWxsYmFja0lELmggKi8sCisJCQkJQ0Ew
NTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFt
ZXMuaCAqLywKIAkJCQk1MTI5RUIxMTIzRDBERTc4MDBBRjFDRDcgLyogQ29udGVudFdvcmxkU2hh
cmVkLmggKi8sCiAJCQkJNTEwNkQ3QkYxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29u
dGV4dERhdGEuY3BwICovLAogCQkJCTUxMDZEN0MwMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0
TWVudUNvbnRleHREYXRhLmggKi8sCkBAIC04NDQ4LDYgKzg0NTMsNyBAQAogCQkJCUUxNTEzQzY1
MTY2RUFCQjIwMDE0OUZDQiAvKiBBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCAqLywKIAkJCQk0NkEy
QjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcCAqLywKIAkJCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFBy
b2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8sCisJCQkJQ0EwNTM5NzYyM0VFMzFFMTAwQTU1
M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLywKIAkJCQkwNzI5
N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovLAog
CQkJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5o
ICovLAogCQkJCUJDMjY1MjEyMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmNw
cCAqLywKQEAgLTEwMTkwLDYgKzEwMTk2LDggQEAKIAkJCQkzN0JFQzRFMTE5NDkxNDg2MDA4QjQy
ODYgLyogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzdDNEU5RjYxMzFDNkU3RTAwMjlCRDVBIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMwMzJEQUIxMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUNBMDUzOTc5MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQTA1Mzk3NzIzRUUzMUUxMDBBNTUzREMg
LyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEyOUVCMTIyM0QwREU3QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEwNkQ3QzQxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29u
dGV4dERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzIxQ0FFMUU5OTRDMEMwMDI5RDVGOSAv
KiBDb3JlUHJlZGljdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVmMmE1MDIwY2I2ZDU0MzYyNmI4NjZk
ZmY2ZmZjZWNlMTZjOGY3MTMuLjE2MzdmYjQ0MWNhNGRjOTU3ODdiN2MyYmI5NmVkYzhjYjBmMGQ2
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0zNDQ2LDEwICszNDQ2LDMxIEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0CiAgICAgcnVuSmF2
YVNjcmlwdChmcmFtZSwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZvcmNlVXNlckdl
c3R1cmUgfSwgcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSwgY2FsbGJhY2tJRCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci17Ci0gICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9IG1fbWFpbkZyYW1lLT5jb250ZW50c0FzU3Ry
aW5nKCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhy
ZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKK3ZvaWQgV2ViUGFnZTo6Z2V0Q29udGVudHNBc1N0
cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIGluY2x1ZGVDaGlsZEZyYW1l
cywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQoreworICAgIHN3aXRjaCAoaW5jbHVkZUNoaWxkRnJh
bWVzKSB7CisgICAgY2FzZSBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzOjpObzog
eworICAgICAgICBTdHJpbmcgcmVzdWx0U3RyaW5nID0gbV9tYWluRnJhbWUtPmNvbnRlbnRzQXNT
dHJpbmcoKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxs
YmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6WWVzOiB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgZm9yIChSZWZQdHI8RnJhbWU+IGZy
YW1lID0gJmNvcmVQYWdlKCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dFJlbmRlcmVkKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJG
cmFtZS0+Y29udGVudHNBc1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2soYnVpbGRl
ci50b1N0cmluZygpLCBjYWxsYmFja0lEKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9
CiB9CiAKICNpZiBFTkFCTEUoTUhUTUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggYjllZDlkNGZjNmQ4MTk5MWJkMTlmZjIyZDFlODI5MGU4OWZmNTQ1
Yy4uMzllM2IxM2Q0NmYyYzIzMDE4YjI4ZDVkYWVjYjNhZGU0ZDNmNThiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkFQSUluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgorI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNp
bmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKICNpbmNsdWRlICJGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmgiCkBAIC0xNDUxLDcgKzE0NTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdmlld1dpbGxT
dGFydExpdmVSZXNpemUoKTsKICAgICB2b2lkIHZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpOwogCi0g
ICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29u
dGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLCBDYWxsYmFj
a0lEKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1
dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidXRlZFN0cmluZyYp
PiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZGNiMTIzNGU5NWFjYWNmY2RlZTZiZTYwYjY5ZDA4
MWQ1ZjFjNjM5OS4uZjlhNjQyOTNhMmE1YjFjODk0MzI2ZDFiZmEwYjFlNjFlYmJiNDQ4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCkBAIC0xOTIsNyArMTkyLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBS
ZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCkKIAogICAgICMgQ2FsbGJh
Y2tzLgotICAgIEdldENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCisgICAgR2V0Q29udGVudHNBc1N0cmluZyhlbnVtOmJvb2wgV2ViS2l0OjpDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIGluQ2hpbGRGcmFtZXMsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdldENvbnRlbnRzQXNBdHRy
aWJ1dGVkU3RyaW5nKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0
KSBBc3luYwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQppbmRleCA2YWZhNjQ1N2Fi
Njg5ODc5NGJmNjY5M2MxY2FmODRiYWUwMTUxNzc2Li5mYmVjYjYwYTUyOWIzYmNkNTQ3ZjA2MTY2
ZmU1OTU3OGMxZTM0ZDRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KQEAgLTQ5LDYgKzQ5
LDIyIEBAIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVyblN0cmluZykKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KIAorVEVTVChXS1dlYlZp
ZXcsIEdldENvbnRlbnRzSW5BbGxGcmFtZXNTaG91bGRSZXR1cm5TdHJpbmcpCit7CisgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+YmVlcDxpZnJhbWUg
c3JjZG9jPVwibWVlcFwiPmhlcnA8L2lmcmFtZT48aWZyYW1lIHNyY2RvYz1cIm1vb3BcIj5kZXJw
PC9pZnJhbWU+PC9ib2R5PiJdOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkID0gZmFsc2U7
CisKKyAgICBbd2ViVmlldyBfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBs
ZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKnN0cmluZykgeworICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJiZWVwXG5cbm1lZXBcblxubW9vcCIsIHN0cmluZyk7CisgICAgICAgIGZpbmlzaGVkID0g
dHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQp
OworfQorCiBURVNUKFdLV2ViVmlldywgR2V0Q29udGVudHNTaG91bGRSZXR1cm5BdHRyaWJ1dGVk
U3RyaW5nKQogewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390316</attachid>
            <date>2020-02-10 16:48:04 -0800</date>
            <delta_ts>2020-02-10 16:53:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200210164714.patch</filename>
            <type>text/plain</type>
            <size>21071</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkZmYxNmUyZmE5YTQzYmU4
OGE3Yzk3NjI4ZjNlZWUxN2RhMzk0ZjIuLjQ4NzQyNjExODU4NmM3OGE0N2NiODU0MDMwZDc5NTgy
ZGEwZDM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgQSBudW1iZXIgb2YgaW50ZWxsaWdl
bmNlIGZlYXR1cmVzIGxpa2UgU3BvdGxpZ2h0IHJlbHkgb24gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOi4gSG93ZXZlciwgdGhpcworICAgICAgICBtZXRob2QgZG9l
cyBub3QgcmV0dXJuIGNvbnRlbnQgc3RyaW5ncyBmb3Igc3ViZnJhbWVzLiBUaGlzIG1lYW5zIHRo
YXQgU3BvdGxpZ2h0IGFuZCBvdGhlcnMgYXJlIG5vdCBhYmxlIHRvIGdldAorICAgICAgICB0ZXh0
IGZvciB0aGluZ3MgbGlrZSBBTVAgcGFnZXMsIHRoYXQgbGl2ZSBpbiBzdWJmcmFtZXMuIC1fZ2V0
Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjogaGFzIGNsaWVudHMgb3V0c2lk
ZQorICAgICAgICBvZiBqdXN0IGludGVsbGlnZW5jZSBmZWF0dXJlcywgYW5kIHdlIGRvbid0IHdh
bnQgdG8gd2hvbGVzYWxlIGNoYW5nZSB0aGVpciBiZWhhdmlvci4gQXMgYSByZXN1bHQsIGludHJv
ZHVjZSBhIG5ldworICAgICAgICAtX2dldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lczp3aXRo
Q29tcGxldGlvbkhhbmRsZXI6IHdoaWNoIGNsaWVudHMgY2FuIGFkb3B0IGFzIG5lY2Vzc2FyeS4g
UHJvdmlkaW5nIE5PIGZvciB0aGUgZmlyc3QKKyAgICAgICAgcGFyYW1ldGVyIGFsbG93cyBjbGll
bnRzIHRvIGdldCB0aGUgc2FtZSBjb250ZW50cyBhcyAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRo
Q29tcGxldGlvbkhhbmRsZXI6LiBPdGhlcndpc2UsIHdlIGVudW1lcmF0ZQorICAgICAgICBhbGwg
c3ViZnJhbWVzIGFuZCBleHRyYWN0IHRleHQgZnJvbSB0aGVyZS4gRmluYWxseSwgYXBwZW5kIGEg
dGVzdCBmb3IgZ2V0dGluZyBzdHVmZiBvdXQgb2YgZnJhbWVzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZ2V0Q29u
dGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpdKTogCisgICAgICAgICgtW1dLV2Vi
VmlldyBfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVy
Ol0pOiBDYWxsIHRoZSBuZXcgZnVuY3Rpb24gdG8gZXh0cmFjdCBjb250ZW50cyBmcm9tIGFsbAor
ICAgICAgICBmcmFtZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaDogRXhwb3NlIGEgbmV3IFNQSSBmb3IgY2xpZW50cy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmdldENvbnRlbnRzQXNTdHJpbmdJbkFsbEZyYW1lcyk6IFBpcGluZy4gVGhpcyBlbXVsYXRlcyB3
aGF0IGdldENvbnRlbnRzQXNTdHJpbmcoKSBkb2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOiBFeHBvc2UgbmV3IG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0Q29udGVu
dHNBc1N0cmluZyk6IEF1Z21lbnQgdG8gdGFrZSBhIGZsYWcgc2F5aW5nIHdoZXRoZXIgb3Igbm90
IHdlIHdhbnQgdG8gZXh0cmFjdAorICAgICAgICBmcm9tIGFsbCBmcmFtZXMuIElmIHdlIGRvLCBp
dGVyYXRlIG92ZXIgYWxsIHRoZSBmcmFtZXMgYW5kIGdldCB0aGVpciBjb250ZW50IHN0cmluZ3Ms
IGFwcGVuZGluZyB0d28KKyAgICAgICAgbmV3IGxpbmVzIGluIHRoZSBtaWRkbGUuCisgCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogUGlwaW5nLgorCisgICAgICAgICogU2hhcmVk
L0NvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaDogQWRkIGEgbmV3IGhlYWRlciB0
byBleHBvc2UgYW4gZW51bS4KKwogMjAyMC0wMi0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
IHNob3VsZCBub3QgYmUgYWN0aXZlIGlmIHJ1bm5pbmcgYWN0aXZlIHBhZ2VzIGFuZCBzZXJ2aWNl
IHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRBc1N0
cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDlkODJiZDlhZTRmODY0N2Qw
YzZiYTk0YWMzY2E4OTVjYTdhN2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oCkBAIC0wLDAgKzEsMzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Vu
dW0gY2xhc3MgQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyA6IGJvb2wgeyBObywg
WWVzIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKaW5kZXggZWNjZjRhZTM1NjYxOTY4MDU3YTdjZmVlYjJkOTU0MzFlOTI0
NDRkYS4uZDcyNzk1NTQ2NzViMzFhNjRlNWVkYzFmNmYzYzgzZGIxNzkyOTg1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5j
bHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIuaCIKKyNpbmNsdWRlICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxk
RnJhbWVzLmgiCiAjaW5jbHVkZSAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKQEAgLTI1
MTAsNyArMjUxMSw3IEBAIHZvaWQgV0tQYWdlR2V0U291cmNlRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2VSZWYsIFdLRnJhbWVSZWYgZnJhbWVSZWYsIHZvaWQqIGNvbnRlCiAKIHZvaWQgV0tQYWdlR2V0
Q29udGVudHNBc1N0cmluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdl
R2V0Q29udGVudHNBc1N0cmluZ0Z1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1wbChwYWdl
UmVmKS0+Z2V0Q29udGVudHNBc1N0cmluZyh0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRl
eHQsIGNhbGxiYWNrKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRDb250ZW50c0FzU3RyaW5n
KENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6Ok5vLCB0b0dlbmVyaWNDYWxsYmFj
a0Z1bmN0aW9uKGNvbnRleHQsIGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV0tQYWdlR2V0Qnl0ZWNv
ZGVQcm9maWxlKFdLUGFnZVJlZiBwYWdlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VHZXRCeXRl
Y29kZVByb2ZpbGVGdW5jdGlvbiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGFhOTAwMmU1NjMwODViMTlkYThiOGQ4NWM4
NzZkZWEzN2JmZjFjZmIuLjQ2MGMxYThhODA0NDlhODM4OTU0Y2NiM2ZlZWMyODcxYjQyZmE5Mzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAj
aW1wb3J0ICJBdHRyaWJ1dGVkU3RyaW5nLmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyLmgiCisjaW1wb3J0ICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVz
LmgiCiAjaW1wb3J0ICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2ltcG9ydCAiRmluZENs
aWVudC5oIgogI2ltcG9ydCAiRnVsbHNjcmVlbkNsaWVudC5oIgpAQCAtMjI3OSw3ICsyMjgwLDcg
QEAgLSAodm9pZClfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJvcgogewogICAgIGF1dG8gaGFuZGxlciA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uSGFuZGxlcik7CiAKLSAgICBfcGFnZS0+Z2V0Q29udGVudHNBc1N0cmlu
ZyhbaGFuZGxlcl0oU3RyaW5nIHN0cmluZywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CisgICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzOjpObywgW2hhbmRsZXJdKFN0cmluZyBzdHJpbmcsIFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICBpZiAoZXJyb3IgIT0g
V2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CiAgICAgICAgICAgICAvLyBGSVhN
RTogUGlwZSBhIHByb3BlciBlcnJvciBpbiBmcm9tIHRoZSBXZWJQYWdlUHJveHkuCiAgICAgICAg
ICAgICBoYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4g
Y29kZTpzdGF0aWNfY2FzdDxpbnQ+KGVycm9yKSB1c2VySW5mbzpuaWxdKTsKQEAgLTIyODgsNiAr
MjI4OSwxNyBAQCAtICh2b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU1N0cmluZyAqLCBOU0Vycm9yCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQp
X2dldENvbnRlbnRzT2ZBbGxGcmFtZXNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBhdXRvIGhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOworICAgIF9wYWdlLT5nZXRDb250ZW50
c0FzU3RyaW5nKFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lczo6WWVz
LCBbaGFuZGxlcl0oU3RyaW5nIHN0cmluZywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CisgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6
Ok5vbmUpCisgICAgICAgICAgICBoYW5kbGVyKG5pbCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGhhbmRsZXIoc3RyaW5nKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfZ2V0Q29udGVudHNB
c0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmli
dXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRy
aWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgX3Bh
Z2UtPmdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKFtoYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYgYXR0cmlidXRlZFN0cmluZykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5k
ZXggNWI5NWY5N2RkMjhmOTQzYWZiMjFhNTJlY2QwY2FjMWYwODFjODJjZS4uNDU2YjJjYThlMjI0
Mzc4NzQwMzVmM2U2NTQxMmM0OWQ2NWFmMzdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNjYsNiArMjY2LDcg
QEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9nZXRNYWluUmVzb3VyY2VEYXRhV2l0aENv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9u
SGFuZGxlcjsKIC0gKHZvaWQpX2dldFdlYkFyY2hpdmVEYXRhV2l0aENvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZv
aWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV9nZXRDb250ZW50c09mQWxsRnJhbWVz
QXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAtICh2b2lkKV9nZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZ1dpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TRGljdGlvbmFy
eTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICosIE5TRXJyb3Ig
KikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CiAKIC0gKHZvaWQpX2dldEFwcGxpY2F0aW9uTWFuaWZlc3RXaXRoQ29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QgKikpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDVmMDM4NDQwZjg2ZGNiMjcyMWJm
OTJkMTE4YmNhYzU4ZGRhYzk1OTYuLjUwZjYzOTM4Y2JhMjg4MmE4MTNlMTU0ZDNlZTYxYWYxNTEx
NTUxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzk2
MiwxNiArMzk2MiwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0U291cmNlRm9yRnJhbWUoV2Vi
RnJhbWVQcm94eSogZnJhbWUsIFdURjo6RnVuY3Rpb248dm9pZCAoYwogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdldFNvdXJjZUZvckZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNhbGxiYWNr
SUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmcoV1RGOjpG
dW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OmdldENvbnRlbnRzQXNTdHJpbmcoQ29u
dGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbmNsdWRlc0NoaWxkRnJhbWVzLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAg
ICAgY2FsbGJhY2tGdW5jdGlvbihTdHJpbmcoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93
bik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBhdXRvIGNhbGxiYWNrSUQg
PSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50
aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIldlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNB
c1N0cmluZyJfcykpOwogICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURzLmFkZChj
YWxsYmFja0lEKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0FzU3Ry
aW5nKGNhbGxiYWNrSUQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50
c0FzU3RyaW5nKGluY2x1ZGVzQ2hpbGRGcmFtZXMsIGNhbGxiYWNrSUQpKTsKIH0KIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBm
YzRmMjBiNDU3MTQ1MTdjNGI1ZjAyNzcyNTg5ZWZkZjM3MjliMGM1Li5hNjlmMTliZjg1ZDdjNTQ5
YjNlZTViMjU0NTczYTM2ODBjZTc1M2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hp
bGRGcmFtZXMuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRleHREYXRhLmgiCiAjaW5jbHVk
ZSAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyQWN0aW9uLmgiCkBAIC0x
MDc3LDcgKzEwNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGYWlsVG9GaW5kU3RyaW5nKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgZGlkRmluZFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5n
JiwgY29uc3QgVmVjdG9yPFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0Pj4mIG1hdGNoUmVjdHMsIGlu
dDMyX3QgZmlyc3RJbmRleEFmdGVyU2VsZWN0aW9uKTsKIAotICAgIHZvaWQgZ2V0Q29udGVudHNB
c1N0cmluZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmKTsKKyAgICB2b2lkIGdldENvbnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdl
dENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
QXR0cmlidXRlZFN0cmluZyYpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTYzMGMwOGQwM2VmNTc3ZTA5MTM1ZWNi
Yjc4YjQ1MTBjZThmNzU4Zi4uNDhiYTg3YzBmMjc2MDVjYmU0MzZmMjBhZDgzOWUxOTEzZTIzZTMw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNjg0LDYgKzE2ODQsOCBAQAogCQlDOUMxODMzQzFCNzQwMjZEMDA3MDM2QTcgLyogV2Vi
TWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUMxODMzODFCNzNGRDZBMDA3MDM2QTcgLyogV2ViTWVk
aWFTZXNzaW9uRm9jdXNNYW5hZ2VyQ2xpZW50LmggKi87IH07CiAJCUM5Q0Q0Mzk4MUI0QjAwMUQw
MDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQzOTQxQjRCMDAwRTAwMjM5RTMzIC8qIFdl
Yk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi87IH07CiAJCUM5Q0Q0MzlEMUI0QjAyNEYwMDIzOUUz
MyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDOUNENDM5QTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNl
c3Npb25NZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUNBMDUzOTc3MjNFRTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNs
dWRlc0NoaWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDQTA1Mzk3NjIzRUUzMUUxMDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVk
ZXNDaGlsZEZyYW1lcy5oICovOyB9OworCQlDQTA1Mzk3OTIzRUUzMjQ0MDBBNTUzREMgLyogQ29u
dGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EwNTM5NzgyM0VFMzI0NDAwQTU1M0RDIC8qIENvbnRl
bnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLzsgfTsKIAkJQ0QwMDNBNTMxOUQ0OUI1
RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAv
KiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCUNEMEM2ODMxMjAxRkQxMDEw
MEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwQzY4MkYyMDFGRDEwMTAwQTU5NDA5IC8q
IFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUNEMTlBMjZFMUExM0U4MzQw
MDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8q
IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CkBAIC00OTA5LDYgKzQ5MTEsOCBA
QAogCQlDOUNENDM5NDFCNEIwMDBFMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzlDRDQzOTkxQjRCMDI0MjAwMjM5
RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUM5Q0Q0MzlBMUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lv
bk1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0EwNTM5NzYyM0VF
MzFFMTAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDQTA1Mzk3ODIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVu
dEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMDAzQTUwMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuY3BwOyBwYXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwMDNBNTExOUQ0OUI1RDAwNUFC
Q0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBwYXRoID0gTWVkaWFDYWNo
ZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEMEM2ODJGMjAxRkQxMDEwMEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOyBwYXRoID0g
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTU2NjgsNiArNTY3Miw3IEBACiAJCQkJQkNGMTg2MzcxNjdEMDcx
RTAwQTFBODVBIC8qIENhY2hlTW9kZWwuY3BwICovLAogCQkJCUJDMzA2NUY5MTI1OTM0NEUwMEU3
MTI3OCAvKiBDYWNoZU1vZGVsLmggKi8sCiAJCQkJOUJDNTlENkMxRUZDQ0NCNjAwMUU4RDA5IC8q
IENhbGxiYWNrSUQuaCAqLywKKwkJCQlDQTA1Mzk3ODIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVu
dEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oICovLAogCQkJCTUxMjlFQjExMjNEMERFNzgw
MEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFyZWQuaCAqLywKIAkJCQk1MTA2RDdCRjE4QkRCRTcz
MDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAgKi8sCiAJCQkJNTEwNkQ3QzAx
OEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dERhdGEuaCAqLywKQEAgLTg0NDgs
NiArODQ1Myw3IEBACiAJCQkJRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIEF1eGlsaWFyeVBy
b2Nlc3NQcm94eS5oICovLAogCQkJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3Jv
dW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovLAogCQkJCTQ2QTJCNjA3MUU1Njc1
QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLywK
KwkJCQlDQTA1Mzk3NjIzRUUzMUUxMDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXND
aGlsZEZyYW1lcy5oICovLAogCQkJCTA3Mjk3RjlDMUMxNzExRUEwMDNGMDczNSAvKiBEZXZpY2VJ
ZEhhc2hTYWx0U3RvcmFnZS5jcHAgKi8sCiAJCQkJMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8q
IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8sCiAJCQkJQkMyNjUyMTIxMTgyNjA4MTAwMjQz
RTEyIC8qIERyYXdpbmdBcmVhUHJveHkuY3BwICovLApAQCAtMTAxOTAsNiArMTAxOTYsOCBAQAog
CQkJCTM3QkVDNEUxMTk0OTE0ODYwMDhCNDI4NiAvKiBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVj
a2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0RTlGNjEzMUM2RTdFMDAyOUJENUEgLyogY29u
ZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRBQjEwRjQzN0QxMDA1OEMxNUEgLyogQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0EwNTM5NzkyM0VFMzI0NDAwQTU1M0RDIC8q
IENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNBMDUzOTc3MjNFRTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxk
RnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcgLyog
Q29udGVudFdvcmxkU2hhcmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA2RDdDNDE4QkRCRTcz
MDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzdDMjFDQUUxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQcmVkaWN0aW9uU1BJLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggNWYyYTUwMjBjYjZkNTQzNjI2Yjg2NmRmZjZmZmNlY2UxNmM4ZjcxMy4uMTYzN2ZiNDQxY2E0
ZGM5NTc4N2I3YzJiYjk2ZWRjOGNiMGYwZDZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0NDYsMTAgKzM0NDYsMzEgQEAgdm9pZCBXZWJQ
YWdlOjpydW5KYXZhU2NyaXB0SW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBzY3JpcHQKICAgICBydW5KYXZhU2NyaXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFsc2Us
IFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVyZSB9LCBwYWdlQ29udGVudFdvcmxkSWRlbnRp
ZmllcigpLCBjYWxsYmFja0lEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3Ry
aW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLXsKLSAgICBTdHJpbmcgcmVzdWx0U3RyaW5nID0g
bV9tYWluRnJhbWUtPmNvbnRlbnRzQXNTdHJpbmcoKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwordm9p
ZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hp
bGRGcmFtZXMgaW5jbHVkZUNoaWxkRnJhbWVzLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit7Cisg
ICAgc3dpdGNoIChpbmNsdWRlQ2hpbGRGcmFtZXMpIHsKKyAgICBjYXNlIENvbnRlbnRBc1N0cmlu
Z0luY2x1ZGVzQ2hpbGRGcmFtZXM6Ok5vOiB7CisgICAgICAgIFN0cmluZyByZXN1bHRTdHJpbmcg
PSBtX21haW5GcmFtZS0+Y29udGVudHNBc1N0cmluZygpOworICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkp
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDb250ZW50QXNTdHJpbmdJbmNsdWRl
c0NoaWxkRnJhbWVzOjpZZXM6IHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
ICAgICBmb3IgKFJlZlB0cjxGcmFtZT4gZnJhbWUgPSAmY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCk7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0UmVuZGVyZWQoKSkgewor
ICAgICAgICAgICAgaWYgKGF1dG8qIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KmZyYW1lKSkgeworICAgICAgICAgICAgICAgIGlmICghYnVpbGRlci5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYkZyYW1lLT5jb250ZW50c0FzU3RyaW5nKCkpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTdHJpbmdDYWxsYmFjayhidWlsZGVyLnRvU3RyaW5nKCksIGNhbGxiYWNrSUQpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIH0KIH0KIAogI2lmIEVOQUJMRShNSFRNTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiOWVkOWQ0ZmM2ZDgx
OTkxYmQxOWZmMjJkMWU4MjkwZTg5ZmY1NDVjLi4zOWUzYjEzZDQ2ZjJjMjMwMThiMjhkNWRhZWNi
M2FkZTRkM2Y1OGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCIKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDYWxsYmFja0lELmgi
CisjaW5jbHVkZSAiQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2luY2x1
ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgogI2luY2x1
ZGUgIkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaCIKQEAgLTE0NTEsNyArMTQ1Miw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwogICAgIHZvaWQgdmll
d1dpbGxFbmRMaXZlUmVzaXplKCk7CiAKLSAgICB2b2lkIGdldENvbnRlbnRzQXNTdHJpbmcoQ2Fs
bGJhY2tJRCk7CisgICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0lu
Y2x1ZGVzQ2hpbGRGcmFtZXMsIENhbGxiYWNrSUQpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgZ2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBBdHRyaWJ1dGVkU3RyaW5nJik+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkY2Ix
MjM0ZTk1YWNhY2ZjZGVlNmJlNjBiNjlkMDgxZDVmMWM2Mzk5Li5mOWE2NDI5M2EyYTViMWM4OTQz
MjZkMWJmYTBiMWU2MWViYmI0NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE5Miw3ICsxOTIsNyBAQCBHZW5l
cmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFJlc3RvcmVTZWxlY3Rpb25JbkZvY3VzZWRFZGl0YWJs
ZUVsZW1lbnQoKQogCiAgICAgIyBDYWxsYmFja3MuCi0gICAgR2V0Q29udGVudHNBc1N0cmluZyhX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRDb250ZW50c0FzU3RyaW5nKGVu
dW06Ym9vbCBXZWJLaXQ6OkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMgaW5DaGls
ZEZyYW1lcywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgR2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoKSAtPiAoc3RydWN0IFdlYktp
dDo6QXR0cmlidXRlZFN0cmluZyByZXN1bHQpIEFzeW5jCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENv
bnRlbnRzLm1tCmluZGV4IDZhZmE2NDU3YWI2ODk4Nzk0YmY2NjkzYzFjYWY4NGJhZTAxNTE3NzYu
LmQ0MWUzZjE5MWFiMTZkM2NlMTRhZjkzYzU5OTUwZjYyMTMyYzQ3ZTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdH
ZXRDb250ZW50cy5tbQpAQCAtNDksNiArNDksMjIgQEAgVEVTVChXS1dlYlZpZXcsIEdldENvbnRl
bnRzU2hvdWxkUmV0dXJuU3RyaW5nKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWQpOwogfQogCitURVNUKFdLV2ViVmlldywgR2V0Q29udGVudHNPZkFsbEZyYW1lc1Nob3Vs
ZFJldHVyblN0cmluZykKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCI8Ym9keT5iZWVwPGlmcmFtZSBzcmNkb2M9XCJtZWVwXCI+aGVycDwvaWZyYW1lPjxp
ZnJhbWUgc3JjZG9jPVwibW9vcFwiPmRlcnA8L2lmcmFtZT48L2JvZHk+Il07CisKKyAgICBfX2Js
b2NrIGJvb2wgZmluaXNoZWQgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IF9nZXRDb250ZW50c09m
QWxsRnJhbWVzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqc3RyaW5n
KSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImJlZXBcblxubWVlcFxuXG5tb29wIiwgc3Ry
aW5nKTsKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cit9CisKIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250
ZW50c1Nob3VsZFJldHVybkF0dHJpYnV0ZWRTdHJpbmcpCiB7CiAgICAgUmV0YWluUHRyPFRlc3RX
S1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390318</attachid>
            <date>2020-02-10 16:53:14 -0800</date>
            <delta_ts>2020-02-10 17:05:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200210165224.patch</filename>
            <type>text/plain</type>
            <size>21112</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkZmYxNmUyZmE5YTQzYmU4
OGE3Yzk3NjI4ZjNlZWUxN2RhMzk0ZjIuLmIzZGI0NWVjOTcwZmVlZjdkN2E1ZWI4ZjM4MWE1Zjg3
NjBmYTg4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICBBIG51bWJlciBvZiBpbnRlbGxpZ2VuY2UgZmVhdHVyZXMgbGlr
ZSBTcG90bGlnaHQgcmVseSBvbiAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhh
bmRsZXI6LiBIb3dldmVyLCB0aGlzCisgICAgICAgIG1ldGhvZCBkb2VzIG5vdCByZXR1cm4gY29u
dGVudCBzdHJpbmdzIGZvciBzdWJmcmFtZXMuIFRoaXMgbWVhbnMgdGhhdCBTcG90bGlnaHQgYW5k
IG90aGVycyBhcmUgbm90IGFibGUgdG8gZ2V0CisgICAgICAgIHRleHQgZm9yIHRoaW5ncyBsaWtl
IEFNUCBwYWdlcywgdGhhdCBsaXZlIGluIHN1YmZyYW1lcy4gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOiBoYXMgY2xpZW50cyBvdXRzaWRlCisgICAgICAgIG9mIGp1
c3QgaW50ZWxsaWdlbmNlIGZlYXR1cmVzLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB3aG9sZXNhbGUg
Y2hhbmdlIHRoZWlyIGJlaGF2aW9yLiBBcyBhIHJlc3VsdCwgaW50cm9kdWNlIGEgbmV3CisgICAg
ICAgIC1fZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOndpdGhDb21wbGV0aW9uSGFuZGxl
cjogd2hpY2ggY2xpZW50cyBjYW4gYWRvcHQgYXMgbmVjZXNzYXJ5LiBQcm92aWRpbmcgTk8gZm9y
IHRoZSBmaXJzdAorICAgICAgICBwYXJhbWV0ZXIgYWxsb3dzIGNsaWVudHMgdG8gZ2V0IHRoZSBz
YW1lIGNvbnRlbnRzIGFzIC1fZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxl
cjouIE90aGVyd2lzZSwgd2UgZW51bWVyYXRlCisgICAgICAgIGFsbCBzdWJmcmFtZXMgYW5kIGV4
dHJhY3QgdGV4dCBmcm9tIHRoZXJlLiBGaW5hbGx5LCBhcHBlbmQgYSB0ZXN0IGZvciBnZXR0aW5n
IHN0dWZmIG91dCBvZiBmcmFtZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9nZXRDb250ZW50c0FzU3RyaW5nV2l0
aENvbXBsZXRpb25IYW5kbGVyOl0pOiAKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9nZXRDb250ZW50
c09mQWxsRnJhbWVzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6IENhbGwgdGhlIG5l
dyBmdW5jdGlvbiB0byBleHRyYWN0IGNvbnRlbnRzIGZyb20gYWxsCisgICAgICAgIGZyYW1lcy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOiBFeHBv
c2UgYSBuZXcgU1BJIGZvciBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0
cmluZ0luQWxsRnJhbWVzKTogUGlwaW5nLiBUaGlzIGVtdWxhdGVzIHdoYXQgZ2V0Q29udGVudHNB
c1N0cmluZygpIGRvZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEV4
cG9zZSBuZXcgbWV0aG9kLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKTogQXVn
bWVudCB0byB0YWtlIGEgZmxhZyBzYXlpbmcgd2hldGhlciBvciBub3Qgd2Ugd2FudCB0byBleHRy
YWN0CisgICAgICAgIGZyb20gYWxsIGZyYW1lcy4gSWYgd2UgZG8sIGl0ZXJhdGUgb3ZlciBhbGwg
dGhlIGZyYW1lcyBhbmQgZ2V0IHRoZWlyIGNvbnRlbnQgc3RyaW5ncywgYXBwZW5kaW5nIHR3bwor
ICAgICAgICBuZXcgbGluZXMgaW4gdGhlIG1pZGRsZS4KKyAKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluOiBQaXBpbmcuCisKKyAgICAgICAgKiBTaGFyZWQvQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcy5oOiBBZGQgYSBuZXcgaGVhZGVyIHRvIGV4cG9zZSBhbiBlbnVt
LgorCiAyMDIwLTAyLTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIgc2hvdWxkIG5vdCBiZSBh
Y3RpdmUgaWYgcnVubmluZyBhY3RpdmUgcGFnZXMgYW5kIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZy
YW1lcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGls
ZEZyYW1lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOWQ4MmJkOWFlNGY4NjQ3ZDBjNmJhOTRhYzNjYTg5NWNh
N2E3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBDb250ZW50
QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIDogYm9vbCB7IE5vLCBZZXMgfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApp
bmRleCBlY2NmNGFlMzU2NjE5NjgwNTdhN2NmZWViMmQ5NTQzMWU5MjQ0NGRhLi5kNzI3OTU1NDY3
NWIzMWE2NGU1ZWRjMWY2ZjNjODNkYjE3OTI5ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5o
IgorI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbmNs
dWRlICJMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgpAQCAtMjUxMCw3ICsyNTExLDcgQEAg
dm9pZCBXS1BhZ2VHZXRTb3VyY2VGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tGcmFtZVJl
ZiBmcmFtZVJlZiwgdm9pZCogY29udGUKIAogdm9pZCBXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5n
KFdLUGFnZVJlZiBwYWdlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VHZXRDb250ZW50c0FzU3Ry
aW5nRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRDb250ZW50
c0FzU3RyaW5nKHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsK
KyAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lczo6Tm8sIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4
dCwgY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXS1BhZ2VHZXRCeXRlY29kZVByb2ZpbGUoV0tQYWdl
UmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZUZ1bmN0
aW9uIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggYWE5MDAyZTU2MzA4NWIxOWRhOGI4ZDg1Yzg3NmRlYTM3YmZmMWNmYi4u
NDYwYzFhOGE4MDQ0OWE4Mzg5NTRjY2IzZmVlYzI4NzFiNDJmYTkzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW1wb3J0ICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbXBvcnQgIkF0dHJpYnV0
ZWRTdHJpbmcuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNp
bXBvcnQgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbXBvcnQgIkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW1wb3J0ICJGaW5kQ2xpZW50LmgiCiAjaW1wb3J0
ICJGdWxsc2NyZWVuQ2xpZW50LmgiCkBAIC0yMjc5LDcgKzIyODAsNyBAQCAtICh2b2lkKV9nZXRD
b250ZW50c0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAq
LCBOU0Vycm9yCiB7CiAgICAgYXV0byBoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKTsKIAotICAgIF9wYWdlLT5nZXRDb250ZW50c0FzU3RyaW5nKFtoYW5kbGVyXShTdHJp
bmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBfcGFn
ZS0+Z2V0Q29udGVudHNBc1N0cmluZyhXZWJLaXQ6OkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hp
bGRGcmFtZXM6Ok5vLCBbaGFuZGxlcl0oU3RyaW5nIHN0cmluZywgV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3I6Ok5vbmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQaXBlIGEgcHJvcGVy
IGVycm9yIGluIGZyb20gdGhlIFdlYlBhZ2VQcm94eS4KICAgICAgICAgICAgIGhhbmRsZXIobmls
LCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOnN0YXRpY19jYXN0
PGludD4oZXJyb3IpIHVzZXJJbmZvOm5pbF0pOwpAQCAtMjI4OCw2ICsyMjg5LDE3IEBAIC0gKHZv
aWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICosIE5TRXJyb3IKICAgICB9KTsKIH0KIAorLSAodm9pZClfZ2V0Q29udGVudHNPZkFs
bEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAq
KSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGF1dG8gaGFuZGxlciA9IG1ha2VCbG9ja1B0cihj
b21wbGV0aW9uSGFuZGxlcik7CisgICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0
OjpDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzOjpZZXMsIFtoYW5kbGVyXShTdHJp
bmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAg
aWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKKyAgICAgICAg
ICAgIGhhbmRsZXIobmlsKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaGFuZGxlcihzdHJp
bmcpOworICAgIH0pOworfQorCiAtICh2b2lkKV9nZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmlu
Z1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5T
RGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICos
IE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfcGFnZS0+Z2V0Q29udGVudHNB
c0F0dHJpYnV0ZWRTdHJpbmcoW2hhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiBhdHRyaWJ1dGVkU3RyaW5nKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA1Yjk1Zjk3ZGQyOGY5
NDNhZmIyMWE1MmVjZDBjYWMxZjA4MWM4MmNlLi40NTZiMmNhOGUyMjQzNzg3NDAzNWYzZTY1NDEy
YzQ5ZDY1YWYzN2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI2Niw2ICsyNjYsNyBAQCBmb3IgdGhpcyBwcm9w
ZXJ0eS4KIC0gKHZvaWQpX2dldE1haW5SZXNvdXJjZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TRGF0YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9p
ZClfZ2V0V2ViQXJjaGl2ZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0
YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZ2V0Q29udGVudHNB
c1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJv
ciAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKKy0gKHZvaWQpX2dldENvbnRlbnRzT2ZBbGxGcmFtZXNBc1N0cmluZ1dpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX2dldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0
cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBpZD4gKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIAogLSAodm9p
ZClfZ2V0QXBwbGljYXRpb25NYW5pZmVzdFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
X1dLQXBwbGljYXRpb25NYW5pZmVzdCAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggNWYwMzg0NDBmODZkY2IyNzIxYmY5MmQxMThiY2FjNThkZGFj
OTU5Ni4uNTBmNjM5MzhjYmEyODgyYTgxM2UxNTRkM2VlNjFhZjE1MTE1NTFmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zOTYyLDE2ICszOTYyLDE2IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTb3VyY2VGb3JGcmFtZShXZWJGcmFtZVByb3h5KiBmcmFt
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkIChjCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0
U291cmNlRm9yRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2
b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNs
dWRlc0NoaWxkRnJhbWVzIGluY2x1ZGVzQ2hpbGRGcmFtZXMsIFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQog
ewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewogICAgICAgICBjYWxsYmFja0Z1bmN0
aW9uKFN0cmluZygpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICAKKwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nIl9zKSk7CiAg
ICAgbV9sb2FkRGVwZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHMuYWRkKGNhbGxiYWNrSUQpOwotICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldENvbnRlbnRzQXNTdHJpbmcoY2FsbGJhY2tJRCkp
OworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldENvbnRlbnRzQXNTdHJpbmcoaW5jbHVk
ZXNDaGlsZEZyYW1lcywgY2FsbGJhY2tJRCkpOwogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGZjNGYyMGI0NTcxNDUxN2M0
YjVmMDI3NzI1ODllZmRmMzcyOWIwYzUuLmE2OWYxOWJmODVkN2M1NDliM2VlNWIyNTQ1NzNhMzY4
MGNlNzUzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2lu
Y2x1ZGUgIkNvbnRleHRNZW51Q29udGV4dERhdGEuaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgi
CiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCIKQEAgLTEwNzcsNyArMTA3OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCBkaWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8
VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+PiYgbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4
QWZ0ZXJTZWxlY3Rpb24pOwogCi0gICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKFdURjo6RnVu
Y3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAg
IHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJh
bWVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc0F0dHJp
YnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBBdHRyaWJ1dGVkU3RyaW5n
Jik+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAxNjMwYzA4ZDAzZWY1NzdlMDkxMzVlY2JiNzhiNDUxMGNlOGY3NThm
Li40OGJhODdjMGYyNzYwNWNiZTQzNmYyMGFkODM5ZTE5MTNlMjNlMzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2ODQsNiArMTY4
NCw4IEBACiAJCUM5QzE4MzNDMUI3NDAyNkQwMDcwMzZBNyAvKiBXZWJNZWRpYVNlc3Npb25Gb2N1
c01hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM5QzE4MzM4MUI3M0ZENkEwMDcwMzZBNyAvKiBXZWJNZWRpYVNlc3Npb25Gb2N1c01h
bmFnZXJDbGllbnQuaCAqLzsgfTsKIAkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDOUNENDM5NDFCNEIwMDBFMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGEuaCAqLzsgfTsKIAkJQzlDRDQzOUQxQjRCMDI0RjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM5Q0Q0MzlBMUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0EwNTM5
NzcyM0VFMzFFMTAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBMDUzOTc2
MjNFRTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgg
Ki87IH07CisJCUNBMDUzOTc5MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNs
dWRlc0NoaWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDQTA1Mzk3ODIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVk
ZXNDaGlsZEZyYW1lcy5oICovOyB9OwogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2Vi
TWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJQ0QwQzY4MzEyMDFGRDEwMTAwQTU5NDA5IC8qIFdLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDBDNjgyRjIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCAqLzsgfTsKQEAgLTQ5MDksNiArNDkxMSw4IEBACiAJCUM5Q0Q0Mzk0MUI0
QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDOUNENDM5OTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzlDRDQzOUExQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQTA1Mzk3NjIzRUUzMUUxMDBBNTUzREMgLyog
Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250
ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNBMDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRl
c0NoaWxkRnJhbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hp
bGRGcmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwMDNBNTAxOUQ0OUI1
RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7IHBh
dGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFL
ZXlTdG9yYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHBhdGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwQzY4MkYyMDFG
RDEwMTAwQTU5NDA5IC8qIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmg7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9X
S0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTY2OCw2ICs1NjcyLDcgQEAKIAkJCQlCQ0YxODYzNzE2N0QwNzFFMDBBMUE4NUEgLyogQ2Fj
aGVNb2RlbC5jcHAgKi8sCiAJCQkJQkMzMDY1RjkxMjU5MzQ0RTAwRTcxMjc4IC8qIENhY2hlTW9k
ZWwuaCAqLywKIAkJCQk5QkM1OUQ2QzFFRkNDQ0I2MDAxRThEMDkgLyogQ2FsbGJhY2tJRC5oICov
LAorCQkJCUNBMDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRl
c0NoaWxkRnJhbWVzLmggKi8sCiAJCQkJNTEyOUVCMTEyM0QwREU3ODAwQUYxQ0Q3IC8qIENvbnRl
bnRXb3JsZFNoYXJlZC5oICovLAogCQkJCTUxMDZEN0JGMThCREJFNzMwMDBBQjE2NiAvKiBDb250
ZXh0TWVudUNvbnRleHREYXRhLmNwcCAqLywKIAkJCQk1MTA2RDdDMDE4QkRCRTczMDAwQUIxNjYg
LyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oICovLApAQCAtODQ0OCw2ICs4NDUzLDcgQEAKIAkJ
CQlFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmggKi8s
CiAJCQkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHAgKi8sCiAJCQkJNDZBMkI2MDcxRTU2NzVBMjAwQzNERURBIC8qIEJh
Y2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovLAorCQkJCUNBMDUzOTc2MjNF
RTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggKi8s
CiAJCQkJMDcyOTdGOUMxQzE3MTFFQTAwM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdl
LmNwcCAqLywKIAkJCQkwNzI5N0Y5RDFDMTdCQkVBMjIzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2Fs
dFN0b3JhZ2UuaCAqLywKIAkJCQlCQzI2NTIxMjExODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0Fy
ZWFQcm94eS5jcHAgKi8sCkBAIC0xMDE5MCw2ICsxMDE5Niw4IEBACiAJCQkJMzdCRUM0RTExOTQ5
MTQ4NjAwOEI0Mjg2IC8qIENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTM3QzRFOUY2MTMxQzZFN0UwMDI5QkQ1QSAvKiBjb25maWcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDMyREFCMTBGNDM3RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDQTA1Mzk3OTIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0EwNTM5NzcyM0VFMzFF
MTAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMjlFQjEyMjNEMERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFy
ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDZEN0M0MThCREJFNzMwMDBBQjE2NiAvKiBDb250
ZXh0TWVudUNvbnRleHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0MyMUNBRTFFOTk0QzBD
MDAyOUQ1RjkgLyogQ29yZVByZWRpY3Rpb25TUEkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1ZjJhNTAyMGNiNmQ1
NDM2MjZiODY2ZGZmNmZmY2VjZTE2YzhmNzEzLi4xNjM3ZmI0NDFjYTRkYzk1Nzg3YjdjMmJiOTZl
ZGM4Y2IwZjBkNmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMzQ0NiwxMCArMzQ0NiwzMSBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3Jp
cHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdAog
ICAgIHJ1bkphdmFTY3JpcHQoZnJhbWUsIHsgc2NyaXB0LCBmYWxzZSwgV1RGOjpudWxsb3B0LCBm
b3JjZVVzZXJHZXN0dXJlIH0sIHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCksIGNhbGxiYWNr
SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotewotICAgIFN0cmluZyByZXN1bHRTdHJpbmcgPSBtX21haW5GcmFtZS0+Y29u
dGVudHNBc1N0cmluZygpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5n
Q2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7Cit2b2lkIFdlYlBhZ2U6OmdldENv
bnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbmNsdWRl
Q2hpbGRGcmFtZXMsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3sKKyAgICBzd2l0Y2ggKGluY2x1
ZGVDaGlsZEZyYW1lcykgeworICAgIGNhc2UgQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZy
YW1lczo6Tm86IHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9IG1fbWFpbkZyYW1lLT5j
b250ZW50c0FzU3RyaW5nKCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U3RyaW5nQ2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBjYXNlIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6Olll
czogeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGZvciAoUmVmUHRy
PEZyYW1lPiBmcmFtZSA9ICZjb3JlUGFnZSgpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHRSZW5kZXJlZCgpKSB7CisgICAgICAgICAgICBpZiAo
YXV0byogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCFidWlsZGVyLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ1xuJyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQod2ViRnJhbWUtPmNvbnRlbnRzQXNTdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxi
YWNrKGJ1aWxkZXIudG9TdHJpbmcoKSwgY2FsbGJhY2tJRCkpOworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgfQogfQogCiAjaWYgRU5BQkxFKE1IVE1MKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI5ZWQ5ZDRmYzZkODE5OTFiZDE5ZmYyMmQxZTgy
OTBlODlmZjU0NWMuLjM5ZTNiMTNkNDZmMmMyMzAxOGIyOGQ1ZGFlY2IzYWRlNGQzZjU4YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgogI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkNhbGxiYWNrSUQuaCIKKyNpbmNsdWRlICJDb250
ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJ
bmZvLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1JhbmdlLmgiCiAjaW5jbHVkZSAiRm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbi5oIgpAQCAtMTQ1MSw3ICsxNDUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CiAgICAgdm9pZCB2aWV3V2lsbEVuZExpdmVSZXNp
emUoKTsKIAotICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKKyAgICB2
b2lkIGdldENvbnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1l
cywgQ2FsbGJhY2tJRCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRDb250ZW50
c0FzQXR0cmlidXRlZFN0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEF0dHJpYnV0
ZWRTdHJpbmcmKT4mJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGRjYjEyMzRlOTVhY2FjZmNkZWU2
YmU2MGI2OWQwODFkNWYxYzYzOTkuLmY5YTY0MjkzYTJhNWIxYzg5NDMyNmQxYmZhMGIxZTYxZWJi
YjQ0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMTkyLDcgKzE5Miw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlCiAgICAgUmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRhYmxlRWxlbWVudCgpCiAKICAg
ICAjIENhbGxiYWNrcy4KLSAgICBHZXRDb250ZW50c0FzU3RyaW5nKFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQorICAgIEdldENvbnRlbnRzQXNTdHJpbmcoZW51bTpib29sIFdlYktpdDo6
Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbkNoaWxkRnJhbWVzLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBHZXRDb250
ZW50c0FzQXR0cmlidXRlZFN0cmluZygpIC0+IChzdHJ1Y3QgV2ViS2l0OjpBdHRyaWJ1dGVkU3Ry
aW5nIHJlc3VsdCkgQXN5bmMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0KaW5kZXgg
NmFmYTY0NTdhYjY4OTg3OTRiZjY2OTNjMWNhZjg0YmFlMDE1MTc3Ni4uZDQxZTNmMTkxYWIxNmQz
Y2UxNGFmOTNjNTk5NTBmNjIxMzJjNDdlNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCkBA
IC00OSw2ICs0OSwyMiBAQCBURVNUKFdLV2ViVmlldywgR2V0Q29udGVudHNTaG91bGRSZXR1cm5T
dHJpbmcpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CiB9CiAKK1RF
U1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c09mQWxsRnJhbWVzU2hvdWxkUmV0dXJuU3RyaW5nKQor
eworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
KTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5PmJl
ZXA8aWZyYW1lIHNyY2RvYz1cIm1lZXBcIj5oZXJwPC9pZnJhbWU+PGlmcmFtZSBzcmNkb2M9XCJt
b29wXCI+ZGVycDwvaWZyYW1lPjwvYm9keT4iXTsKKworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hl
ZCA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgX2dldENvbnRlbnRzT2ZBbGxGcmFtZXNBc1N0cmlu
Z1dpdGhDb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzdHJpbmcpIHsKKyAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAiYmVlcFxuXG5tZWVwXG5cbm1vb3AiLCBzdHJpbmcpOworICAgICAgICBm
aW5pc2hlZCA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmZpbmlzaGVkKTsKK30KKwogVEVTVChXS1dlYlZpZXcsIEdldENvbnRlbnRzU2hvdWxkUmV0dXJu
QXR0cmlidXRlZFN0cmluZykKIHsKICAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390320</attachid>
            <date>2020-02-10 17:05:23 -0800</date>
            <delta_ts>2020-02-10 18:18:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207352-20200210170433.patch</filename>
            <type>text/plain</type>
            <size>21972</size>
            <attacher name="Alan Sien Wei Hshieh">hshieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkZmYxNmUyZmE5YTQzYmU4
OGE3Yzk3NjI4ZjNlZWUxN2RhMzk0ZjIuLmIzZGI0NWVjOTcwZmVlZjdkN2E1ZWI4ZjM4MWE1Zjg3
NjBmYTg4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDItMDYgIEFsYW4gU2ll
biBXZWkgSHNoaWVoICA8aHNoaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB2YXJpYW50
IG9mIC1bV0tXZWJWaWV3UHJpdmF0ZSBfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjpdIHRoYXQgaW5jbHVkZXMgY29udGVudHMgZnJvbSBzdWJmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM1MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkxMTU3OTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICBBIG51bWJlciBvZiBpbnRlbGxpZ2VuY2UgZmVhdHVyZXMgbGlr
ZSBTcG90bGlnaHQgcmVseSBvbiAtX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhh
bmRsZXI6LiBIb3dldmVyLCB0aGlzCisgICAgICAgIG1ldGhvZCBkb2VzIG5vdCByZXR1cm4gY29u
dGVudCBzdHJpbmdzIGZvciBzdWJmcmFtZXMuIFRoaXMgbWVhbnMgdGhhdCBTcG90bGlnaHQgYW5k
IG90aGVycyBhcmUgbm90IGFibGUgdG8gZ2V0CisgICAgICAgIHRleHQgZm9yIHRoaW5ncyBsaWtl
IEFNUCBwYWdlcywgdGhhdCBsaXZlIGluIHN1YmZyYW1lcy4gLV9nZXRDb250ZW50c0FzU3RyaW5n
V2l0aENvbXBsZXRpb25IYW5kbGVyOiBoYXMgY2xpZW50cyBvdXRzaWRlCisgICAgICAgIG9mIGp1
c3QgaW50ZWxsaWdlbmNlIGZlYXR1cmVzLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB3aG9sZXNhbGUg
Y2hhbmdlIHRoZWlyIGJlaGF2aW9yLiBBcyBhIHJlc3VsdCwgaW50cm9kdWNlIGEgbmV3CisgICAg
ICAgIC1fZ2V0Q29udGVudHNBc1N0cmluZ0luQWxsRnJhbWVzOndpdGhDb21wbGV0aW9uSGFuZGxl
cjogd2hpY2ggY2xpZW50cyBjYW4gYWRvcHQgYXMgbmVjZXNzYXJ5LiBQcm92aWRpbmcgTk8gZm9y
IHRoZSBmaXJzdAorICAgICAgICBwYXJhbWV0ZXIgYWxsb3dzIGNsaWVudHMgdG8gZ2V0IHRoZSBz
YW1lIGNvbnRlbnRzIGFzIC1fZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxl
cjouIE90aGVyd2lzZSwgd2UgZW51bWVyYXRlCisgICAgICAgIGFsbCBzdWJmcmFtZXMgYW5kIGV4
dHJhY3QgdGV4dCBmcm9tIHRoZXJlLiBGaW5hbGx5LCBhcHBlbmQgYSB0ZXN0IGZvciBnZXR0aW5n
IHN0dWZmIG91dCBvZiBmcmFtZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9nZXRDb250ZW50c0FzU3RyaW5nV2l0
aENvbXBsZXRpb25IYW5kbGVyOl0pOiAKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9nZXRDb250ZW50
c09mQWxsRnJhbWVzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6IENhbGwgdGhlIG5l
dyBmdW5jdGlvbiB0byBleHRyYWN0IGNvbnRlbnRzIGZyb20gYWxsCisgICAgICAgIGZyYW1lcy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOiBFeHBv
c2UgYSBuZXcgU1BJIGZvciBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0
cmluZ0luQWxsRnJhbWVzKTogUGlwaW5nLiBUaGlzIGVtdWxhdGVzIHdoYXQgZ2V0Q29udGVudHNB
c1N0cmluZygpIGRvZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEV4
cG9zZSBuZXcgbWV0aG9kLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKTogQXVn
bWVudCB0byB0YWtlIGEgZmxhZyBzYXlpbmcgd2hldGhlciBvciBub3Qgd2Ugd2FudCB0byBleHRy
YWN0CisgICAgICAgIGZyb20gYWxsIGZyYW1lcy4gSWYgd2UgZG8sIGl0ZXJhdGUgb3ZlciBhbGwg
dGhlIGZyYW1lcyBhbmQgZ2V0IHRoZWlyIGNvbnRlbnQgc3RyaW5ncywgYXBwZW5kaW5nIHR3bwor
ICAgICAgICBuZXcgbGluZXMgaW4gdGhlIG1pZGRsZS4KKyAKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluOiBQaXBpbmcuCisKKyAgICAgICAgKiBTaGFyZWQvQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcy5oOiBBZGQgYSBuZXcgaGVhZGVyIHRvIGV4cG9zZSBhbiBlbnVt
LgorCiAyMDIwLTAyLTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIgc2hvdWxkIG5vdCBiZSBh
Y3RpdmUgaWYgcnVubmluZyBhY3RpdmUgcGFnZXMgYW5kIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZy
YW1lcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGls
ZEZyYW1lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOWQ4MmJkOWFlNGY4NjQ3ZDBjNmJhOTRhYzNjYTg5NWNh
N2E3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZW50QXNT
dHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBDb250ZW50
QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzIDogYm9vbCB7IE5vLCBZZXMgfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApp
bmRleCBlY2NmNGFlMzU2NjE5NjgwNTdhN2NmZWViMmQ5NTQzMWU5MjQ0NGRhLi5kNzI3OTU1NDY3
NWIzMWE2NGU1ZWRjMWY2ZjNjODNkYjE3OTI5ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5o
IgorI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbmNs
dWRlICJMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgpAQCAtMjUxMCw3ICsyNTExLDcgQEAg
dm9pZCBXS1BhZ2VHZXRTb3VyY2VGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tGcmFtZVJl
ZiBmcmFtZVJlZiwgdm9pZCogY29udGUKIAogdm9pZCBXS1BhZ2VHZXRDb250ZW50c0FzU3RyaW5n
KFdLUGFnZVJlZiBwYWdlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VHZXRDb250ZW50c0FzU3Ry
aW5nRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRDb250ZW50
c0FzU3RyaW5nKHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4dCwgY2FsbGJhY2spKTsK
KyAgICB0b0ltcGwocGFnZVJlZiktPmdldENvbnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lczo6Tm8sIHRvR2VuZXJpY0NhbGxiYWNrRnVuY3Rpb24oY29udGV4
dCwgY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXS1BhZ2VHZXRCeXRlY29kZVByb2ZpbGUoV0tQYWdl
UmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZUdldEJ5dGVjb2RlUHJvZmlsZUZ1bmN0
aW9uIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggYWE5MDAyZTU2MzA4NWIxOWRhOGI4ZDg1Yzg3NmRlYTM3YmZmMWNmYi4u
NDYwYzFhOGE4MDQ0OWE4Mzg5NTRjY2IzZmVlYzI4NzFiNDJmYTkzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW1wb3J0ICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbXBvcnQgIkF0dHJpYnV0
ZWRTdHJpbmcuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNp
bXBvcnQgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKICNpbXBvcnQgIkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW1wb3J0ICJGaW5kQ2xpZW50LmgiCiAjaW1wb3J0
ICJGdWxsc2NyZWVuQ2xpZW50LmgiCkBAIC0yMjc5LDcgKzIyODAsNyBAQCAtICh2b2lkKV9nZXRD
b250ZW50c0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAq
LCBOU0Vycm9yCiB7CiAgICAgYXV0byBoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25I
YW5kbGVyKTsKIAotICAgIF9wYWdlLT5nZXRDb250ZW50c0FzU3RyaW5nKFtoYW5kbGVyXShTdHJp
bmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBfcGFn
ZS0+Z2V0Q29udGVudHNBc1N0cmluZyhXZWJLaXQ6OkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hp
bGRGcmFtZXM6Ok5vLCBbaGFuZGxlcl0oU3RyaW5nIHN0cmluZywgV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3I6Ok5vbmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQaXBlIGEgcHJvcGVy
IGVycm9yIGluIGZyb20gdGhlIFdlYlBhZ2VQcm94eS4KICAgICAgICAgICAgIGhhbmRsZXIobmls
LCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOnN0YXRpY19jYXN0
PGludD4oZXJyb3IpIHVzZXJJbmZvOm5pbF0pOwpAQCAtMjI4OCw2ICsyMjg5LDE3IEBAIC0gKHZv
aWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICosIE5TRXJyb3IKICAgICB9KTsKIH0KIAorLSAodm9pZClfZ2V0Q29udGVudHNPZkFs
bEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAq
KSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGF1dG8gaGFuZGxlciA9IG1ha2VCbG9ja1B0cihj
b21wbGV0aW9uSGFuZGxlcik7CisgICAgX3BhZ2UtPmdldENvbnRlbnRzQXNTdHJpbmcoV2ViS2l0
OjpDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzOjpZZXMsIFtoYW5kbGVyXShTdHJp
bmcgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAg
aWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKKyAgICAgICAg
ICAgIGhhbmRsZXIobmlsKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaGFuZGxlcihzdHJp
bmcpOworICAgIH0pOworfQorCiAtICh2b2lkKV9nZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmlu
Z1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5T
RGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICos
IE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfcGFnZS0+Z2V0Q29udGVudHNB
c0F0dHJpYnV0ZWRTdHJpbmcoW2hhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiBhdHRyaWJ1dGVkU3RyaW5nKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA1Yjk1Zjk3ZGQyOGY5
NDNhZmIyMWE1MmVjZDBjYWMxZjA4MWM4MmNlLi40NTZiMmNhOGUyMjQzNzg3NDAzNWYzZTY1NDEy
YzQ5ZDY1YWYzN2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI2Niw2ICsyNjYsNyBAQCBmb3IgdGhpcyBwcm9w
ZXJ0eS4KIC0gKHZvaWQpX2dldE1haW5SZXNvdXJjZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TRGF0YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9p
ZClfZ2V0V2ViQXJjaGl2ZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0
YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZ2V0Q29udGVudHNB
c1N0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJv
ciAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKKy0gKHZvaWQpX2dldENvbnRlbnRzT2ZBbGxGcmFtZXNBc1N0cmluZ1dpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX2dldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0
cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBpZD4gKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIAogLSAodm9p
ZClfZ2V0QXBwbGljYXRpb25NYW5pZmVzdFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
X1dLQXBwbGljYXRpb25NYW5pZmVzdCAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggNWYwMzg0NDBmODZkY2IyNzIxYmY5MmQxMThiY2FjNThkZGFj
OTU5Ni4uNTBmNjM5MzhjYmEyODgyYTgxM2UxNTRkM2VlNjFhZjE1MTE1NTFmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zOTYyLDE2ICszOTYyLDE2IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTb3VyY2VGb3JGcmFtZShXZWJGcmFtZVByb3h5KiBmcmFt
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkIChjCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0
U291cmNlRm9yRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2
b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNs
dWRlc0NoaWxkRnJhbWVzIGluY2x1ZGVzQ2hpbGRGcmFtZXMsIFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQog
ewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewogICAgICAgICBjYWxsYmFja0Z1bmN0
aW9uKFN0cmluZygpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICAKKwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzU3RyaW5nIl9zKSk7CiAg
ICAgbV9sb2FkRGVwZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHMuYWRkKGNhbGxiYWNrSUQpOwotICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldENvbnRlbnRzQXNTdHJpbmcoY2FsbGJhY2tJRCkp
OworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldENvbnRlbnRzQXNTdHJpbmcoaW5jbHVk
ZXNDaGlsZEZyYW1lcywgY2FsbGJhY2tJRCkpOwogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGZjNGYyMGI0NTcxNDUxN2M0
YjVmMDI3NzI1ODllZmRmMzcyOWIwYzUuLmE2OWYxOWJmODVkN2M1NDliM2VlNWIyNTQ1NzNhMzY4
MGNlNzUzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2lu
Y2x1ZGUgIkNvbnRleHRNZW51Q29udGV4dERhdGEuaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgi
CiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCIKQEAgLTEwNzcsNyArMTA3OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCBkaWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8
VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+PiYgbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4
QWZ0ZXJTZWxlY3Rpb24pOwogCi0gICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKFdURjo6RnVu
Y3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAg
IHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJh
bWVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc0F0dHJp
YnV0ZWRTdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBBdHRyaWJ1dGVkU3RyaW5n
Jik+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAxNjMwYzA4ZDAzZWY1NzdlMDkxMzVlY2JiNzhiNDUxMGNlOGY3NThm
Li40OGJhODdjMGYyNzYwNWNiZTQzNmYyMGFkODM5ZTE5MTNlMjNlMzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2ODQsNiArMTY4
NCw4IEBACiAJCUM5QzE4MzNDMUI3NDAyNkQwMDcwMzZBNyAvKiBXZWJNZWRpYVNlc3Npb25Gb2N1
c01hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM5QzE4MzM4MUI3M0ZENkEwMDcwMzZBNyAvKiBXZWJNZWRpYVNlc3Npb25Gb2N1c01h
bmFnZXJDbGllbnQuaCAqLzsgfTsKIAkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDOUNENDM5NDFCNEIwMDBFMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGEuaCAqLzsgfTsKIAkJQzlDRDQzOUQxQjRCMDI0RjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM5Q0Q0MzlBMUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0EwNTM5
NzcyM0VFMzFFMTAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBMDUzOTc2
MjNFRTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgg
Ki87IH07CisJCUNBMDUzOTc5MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNs
dWRlc0NoaWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDQTA1Mzk3ODIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVk
ZXNDaGlsZEZyYW1lcy5oICovOyB9OwogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2Vi
TWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJQ0QwQzY4MzEyMDFGRDEwMTAwQTU5NDA5IC8qIFdLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDBDNjgyRjIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCAqLzsgfTsKQEAgLTQ5MDksNiArNDkxMSw4IEBACiAJCUM5Q0Q0Mzk0MUI0
QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDOUNENDM5OTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzlDRDQzOUExQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQTA1Mzk3NjIzRUUzMUUxMDBBNTUzREMgLyog
Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250
ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNBMDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRl
c0NoaWxkRnJhbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hp
bGRGcmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwMDNBNTAxOUQ0OUI1
RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7IHBh
dGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFL
ZXlTdG9yYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHBhdGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwQzY4MkYyMDFG
RDEwMTAwQTU5NDA5IC8qIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmg7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9X
S0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTY2OCw2ICs1NjcyLDcgQEAKIAkJCQlCQ0YxODYzNzE2N0QwNzFFMDBBMUE4NUEgLyogQ2Fj
aGVNb2RlbC5jcHAgKi8sCiAJCQkJQkMzMDY1RjkxMjU5MzQ0RTAwRTcxMjc4IC8qIENhY2hlTW9k
ZWwuaCAqLywKIAkJCQk5QkM1OUQ2QzFFRkNDQ0I2MDAxRThEMDkgLyogQ2FsbGJhY2tJRC5oICov
LAorCQkJCUNBMDUzOTc4MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRl
c0NoaWxkRnJhbWVzLmggKi8sCiAJCQkJNTEyOUVCMTEyM0QwREU3ODAwQUYxQ0Q3IC8qIENvbnRl
bnRXb3JsZFNoYXJlZC5oICovLAogCQkJCTUxMDZEN0JGMThCREJFNzMwMDBBQjE2NiAvKiBDb250
ZXh0TWVudUNvbnRleHREYXRhLmNwcCAqLywKIAkJCQk1MTA2RDdDMDE4QkRCRTczMDAwQUIxNjYg
LyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oICovLApAQCAtODQ0OCw2ICs4NDUzLDcgQEAKIAkJ
CQlFMTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmggKi8s
CiAJCQkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHAgKi8sCiAJCQkJNDZBMkI2MDcxRTU2NzVBMjAwQzNERURBIC8qIEJh
Y2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovLAorCQkJCUNBMDUzOTc2MjNF
RTMxRTEwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggKi8s
CiAJCQkJMDcyOTdGOUMxQzE3MTFFQTAwM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdl
LmNwcCAqLywKIAkJCQkwNzI5N0Y5RDFDMTdCQkVBMjIzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2Fs
dFN0b3JhZ2UuaCAqLywKIAkJCQlCQzI2NTIxMjExODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0Fy
ZWFQcm94eS5jcHAgKi8sCkBAIC0xMDE5MCw2ICsxMDE5Niw4IEBACiAJCQkJMzdCRUM0RTExOTQ5
MTQ4NjAwOEI0Mjg2IC8qIENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTM3QzRFOUY2MTMxQzZFN0UwMDI5QkQ1QSAvKiBjb25maWcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDMyREFCMTBGNDM3RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDQTA1Mzk3OTIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0EwNTM5NzcyM0VFMzFF
MTAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMjlFQjEyMjNEMERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFy
ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDZEN0M0MThCREJFNzMwMDBBQjE2NiAvKiBDb250
ZXh0TWVudUNvbnRleHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0MyMUNBRTFFOTk0QzBD
MDAyOUQ1RjkgLyogQ29yZVByZWRpY3Rpb25TUEkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1ZjJhNTAyMGNiNmQ1
NDM2MjZiODY2ZGZmNmZmY2VjZTE2YzhmNzEzLi4xNjM3ZmI0NDFjYTRkYzk1Nzg3YjdjMmJiOTZl
ZGM4Y2IwZjBkNmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMzQ0NiwxMCArMzQ0NiwzMSBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3Jp
cHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdAog
ICAgIHJ1bkphdmFTY3JpcHQoZnJhbWUsIHsgc2NyaXB0LCBmYWxzZSwgV1RGOjpudWxsb3B0LCBm
b3JjZVVzZXJHZXN0dXJlIH0sIHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCksIGNhbGxiYWNr
SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotewotICAgIFN0cmluZyByZXN1bHRTdHJpbmcgPSBtX21haW5GcmFtZS0+Y29u
dGVudHNBc1N0cmluZygpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5n
Q2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7Cit2b2lkIFdlYlBhZ2U6OmdldENv
bnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbmNsdWRl
Q2hpbGRGcmFtZXMsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3sKKyAgICBzd2l0Y2ggKGluY2x1
ZGVDaGlsZEZyYW1lcykgeworICAgIGNhc2UgQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZy
YW1lczo6Tm86IHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdFN0cmluZyA9IG1fbWFpbkZyYW1lLT5j
b250ZW50c0FzU3RyaW5nKCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U3RyaW5nQ2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBjYXNlIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6Olll
czogeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGZvciAoUmVmUHRy
PEZyYW1lPiBmcmFtZSA9ICZjb3JlUGFnZSgpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHRSZW5kZXJlZCgpKSB7CisgICAgICAgICAgICBpZiAo
YXV0byogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCFidWlsZGVyLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ1xuJyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQod2ViRnJhbWUtPmNvbnRlbnRzQXNTdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxi
YWNrKGJ1aWxkZXIudG9TdHJpbmcoKSwgY2FsbGJhY2tJRCkpOworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgfQogfQogCiAjaWYgRU5BQkxFKE1IVE1MKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI5ZWQ5ZDRmYzZkODE5OTFiZDE5ZmYyMmQxZTgy
OTBlODlmZjU0NWMuLjM5ZTNiMTNkNDZmMmMyMzAxOGIyOGQ1ZGFlY2IzYWRlNGQzZjU4YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgogI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkNhbGxiYWNrSUQuaCIKKyNpbmNsdWRlICJDb250
ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJ
bmZvLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1JhbmdlLmgiCiAjaW5jbHVkZSAiRm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbi5oIgpAQCAtMTQ1MSw3ICsxNDUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CiAgICAgdm9pZCB2aWV3V2lsbEVuZExpdmVSZXNp
emUoKTsKIAotICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKKyAgICB2
b2lkIGdldENvbnRlbnRzQXNTdHJpbmcoQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1l
cywgQ2FsbGJhY2tJRCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRDb250ZW50
c0FzQXR0cmlidXRlZFN0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEF0dHJpYnV0
ZWRTdHJpbmcmKT4mJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGRjYjEyMzRlOTVhY2FjZmNkZWU2
YmU2MGI2OWQwODFkNWYxYzYzOTkuLmY5YTY0MjkzYTJhNWIxYzg5NDMyNmQxYmZhMGIxZTYxZWJi
YjQ0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMTkyLDcgKzE5Miw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlCiAgICAgUmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRhYmxlRWxlbWVudCgpCiAKICAg
ICAjIENhbGxiYWNrcy4KLSAgICBHZXRDb250ZW50c0FzU3RyaW5nKFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQorICAgIEdldENvbnRlbnRzQXNTdHJpbmcoZW51bTpib29sIFdlYktpdDo6
Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbkNoaWxkRnJhbWVzLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBHZXRDb250
ZW50c0FzQXR0cmlidXRlZFN0cmluZygpIC0+IChzdHJ1Y3QgV2ViS2l0OjpBdHRyaWJ1dGVkU3Ry
aW5nIHJlc3VsdCkgQXN5bmMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNhYTE1MGI2YTcxMTNjZjk3ZGE5NmExNjVhYmI1NmRjMzFm
ODEzNzkuLjJkOWVkZjA3NGNlYzY3MDg4NjRmZTJiNmQ4MmE0OGQwMmFlZWU4OGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wMi0wNiAgQWxhbiBTaWVuIFdlaSBIc2hpZWggIDxoc2hpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhIHZhcmlhbnQgb2YgLVtXS1dlYlZpZXdQcml2YXRlIF9nZXRDb250ZW50
c0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOl0gdGhhdCBpbmNsdWRlcyBjb250ZW50cyBm
cm9tIHN1YmZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3MzUyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTExNTc5OD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8g
ZXhlcmNpc2UgdGhlIG5ldyBTUEkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tOiBBZGQgYSB0ZXN0IGZvciBnZXR0aW5n
IHRleHQgZnJvbSBhbGwgZnJhbWVzIHdpdGgKKyAgICAgICAgYSB3ZWJwYWdlIHRoYXQgY29udGFp
bnMgdGV4dCBpbiBzdWJmcmFtZXMuCisKKwogMjAyMC0wMi0wNSAgQWFrYXNoIEphaW4gIDxhYWth
c2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3c10gYWRkIGNvbW1pdC1xdWV1ZSBidWls
ZCBzdGVwIHRvIGNsZWFyIGZsYWdzIG9uIHBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQpp
bmRleCA2YWZhNjQ1N2FiNjg5ODc5NGJmNjY5M2MxY2FmODRiYWUwMTUxNzc2Li5kNDFlM2YxOTFh
YjE2ZDNjZTE0YWY5M2M1OTk1MGY2MjEzMmM0N2U2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMu
bW0KQEAgLTQ5LDYgKzQ5LDIyIEBAIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJl
dHVyblN0cmluZykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKIH0K
IAorVEVTVChXS1dlYlZpZXcsIEdldENvbnRlbnRzT2ZBbGxGcmFtZXNTaG91bGRSZXR1cm5TdHJp
bmcpCit7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJv
ZHk+YmVlcDxpZnJhbWUgc3JjZG9jPVwibWVlcFwiPmhlcnA8L2lmcmFtZT48aWZyYW1lIHNyY2Rv
Yz1cIm1vb3BcIj5kZXJwPC9pZnJhbWU+PC9ib2R5PiJdOworCisgICAgX19ibG9jayBib29sIGZp
bmlzaGVkID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0Fz
U3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKnN0cmluZykgeworICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEoQCJiZWVwXG5cbm1lZXBcblxubW9vcCIsIHN0cmluZyk7CisgICAg
ICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZmluaXNoZWQpOworfQorCiBURVNUKFdLV2ViVmlldywgR2V0Q29udGVudHNTaG91bGRS
ZXR1cm5BdHRyaWJ1dGVkU3RyaW5nKQogewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391410</attachid>
            <date>2020-02-21 10:49:37 -0800</date>
            <delta_ts>2020-02-21 12:23:48 -0800</delta_ts>
            <desc>Address comments</desc>
            <filename>bug-207352-20200221104936.patch</filename>
            <type>text/plain</type>
            <size>1963</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExOWNhNTM1YWMzMTIxNjIy
MWM3ZjcwN2VjZmRlNzFjMzNkZTUyNDQuLjVlY2E2Njg3NzY1MTlmOTY5ZjQxOWI4ZTg0MWY5YmEz
YzQyOWM1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDItMjEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkcmVzcyBwb3N0LXJl
dmlldyBmZWVkYmFjayBpbiB3ZWJraXQub3JnL2IvMjA3MzUyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDczNTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbV9tYWluRnJhbWUgaW5zdGVhZCBvZiBn
b2luZyB0aHJvdWdoIFBhZ2UsIGFuZCBhbHNvIGFwcGVuZCB0aGUgc3RyaW5nICJcblxuIiBpbnN0
ZWFkIG9mIGFwcGVuZGluZyB0aGUKKyAgICAgICAgbmV3bGluZSBjaGFyYWN0ZXIgdHdpY2UuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJpbmcpOgorCiAyMDIwLTAyLTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFdlYlBhZ2VQcm94eTo6
bWFjaFNlbmRSaWdodENhbGxiYWNrIGFzIGl0IGlzIGRlYWQgY29kZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjMDU0ZDUxOTg0YzgzNjI1N2Qx
NWNmNzUxMWRjZjI1MjViNzZhYmI1Li5lNTRlMWIwYWZmMjIxZTU5NmVmMWEwYzVjNjcwNWJmNGYx
YjA4NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMzQ0NiwxMiArMzQ0NiwxMCBAQCB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNTdHJp
bmcoQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbmNsdWRlQ2hpbAogICAgIH0K
ICAgICBjYXNlIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXM6OlllczogewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGZvciAoUmVmUHRyPEZyYW1lPiBm
cmFtZSA9ICZjb3JlUGFnZSgpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS50cmF2ZXJzZU5leHRSZW5kZXJlZCgpKSB7CisgICAgICAgIGZvciAoUmVmUHRyPEZyYW1l
PiBmcmFtZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS50cmF2ZXJzZU5leHRSZW5kZXJlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byog
d2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFidWlsZGVyLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghYnVpbGRlci5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5cbiIp
OwogCiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQod2ViRnJhbWUtPmNvbnRlbnRzQXNT
dHJpbmcoKSk7CiAgICAgICAgICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>